DAY17 LinuxC高级

文章目录

shell中的特殊字符

管道 |

前一个命令的输出作为后一个命令输入

cat hello.c | wc -l ---> 将 cat 输出到终端的内容作为 wc -l 的输入,计算行数

补充:wc -l 文件名:文件行数

wc -c 文件名:文件字符个数

wc -m 文件名:计算文件字节大小

wc -w 文件名:文件单词个数

输入输出重定向

命令 > file:将file 作为输出源,file 文件不存在创建

命令 >> file:如果文件不存在则创建,如果文件中存在内容则会追加

命令 &> file 或者 命令 2> file:将由命令产生的错误输入到 file

命令置换符 ``

将一个命令的输出作为另一个命令的参数

系统维护命令

1.man man:查看 man 手册

1 Executable programs or shell commands : shell命令

2 System calls (functions provided by the kernel):系统调用

3 Library calls (functions within program libraries):C库

2.sudo passwd 用户名:修改用户密码

3.su:切换用户

su:默认切换到 root

sudo su 用户名

exit:退出切换的用户

4.echo "输出内容":向终端输出内容,默认换行

echo -n "输出内容" -----> 输出不换行

5.date 查看当前系统的日期

date -s 年/月/日

date -s 时:分:秒

6.clear:清屏

7.df -Th / df -h:查看磁盘空间

用户管理命令

sudo adduser 用户名:添加用户

给用户添加sudo权限:

切换到超级管理员身份:sudo su

给用户添加 sudo 权限:sudo vi /etc/sudoers

添加:用户名 ALL=(ALL:ALL) ALL

sudo deluser --remove-home 用户名:删除用户

sudo userdel -f 用户名:强制删除用户

进程管理命令

进程:是程序的一次运行过程,是动态的

程序:存放在磁盘空间上的可执行文件,是静态的

1.ps 查看进程的状态

ps -aux

USER(用户) PID(进程id) %CPU %MEM VSZ RSS TTY(终端 ?:不依赖终端) STAT(状态) START TIME COMMAND

PID:是唯一标识进程的id号

ps -ef:查看父进程(PPID)

ps -ajx:PPID PID PGID(组 id) SID(会话id)

通过 man ps 查看关于进程状态的信息

shell 复制代码
进程状态:
  D    uninterruptible sleep (usually IO)不可中断睡眠态
  R    running or runnable (on run queue)运行态
  S    interruptible sleep (waiting for an event to complete)可中断睡眠态
  T    stopped by job control signal停止态
  t    stopped by debugger during the tracing调试器打断
  X    dead (should never be seen)死亡态
  Z    defunct ("zombie") process, terminated but not reaped by its
       parent僵尸态
       
 <    high-priority (not nice to other users)高优先级
 N    low-priority (nice to other users)低优先级
 L    has pages locked into memory (for real-time and custom I
      锁定到内存中
 s    is a session leader 会话组组长
 l    is multi-threaded (using CLONE_THREAD, like NPTL pthread
      do)线程
 +    is in the foreground process group前台进程

./a.out &:将a.out 在后台运行

fg 数字:将后台运行起来的进程拉到前台运行

ctrl z(快捷键):将前台运行起来的进程暂停同时放到后台

bg 数字:(这里的数字是你按Ctrl + z 的时候返回的中括号中的数字)将后台暂停的进程在后台跑起来

2.top 动态显示进程状态

在进程管理中,NI通常表示进程的Nice值(Nice Value)。Nice值是用来调整进程优先级的参数,它可以影响进程在系统中的调度顺序

Nice值通常是一个整数,在大多数操作系统中,它的范围通常是-20到+19。较小的Nice值表示进程的优先级较高,而较大的Nice值表示进程的优先级较低

NI:优先级   +19  ~  -20  值越小,优先级越高
PR:20 + NI

在进程管理中,PR通常表示进程的优先级(Priority)。进程优先级是操作系统用来管理和调度进程的一种机制。每个进程都有一个与之相关联的优先级,用于确定进程在系统中的调度顺序。

3.renice:修改正在运行的进程的优先级

sudo renice -n num PID
num:要修改的优先级的值
PID:要修改进程优先级的PID

4.nice 定义运行的进程优先级

sudo nice -n num ./可执行文件

5.kill 发送一个信号

kill -l:查看linux下的信号
  1. SIGINT ctrl+c 结束进程
  2. SIGQUIT 程序正常退出
  3. SIGILL 结束进程
  4. SIGKILL 强制杀死进程 不可忽略信号 无条件终止指定进程
  5. SIGUSR1 未定义功能
  6. SIGUSR2 未定义功能
  7. SIGPIPE 管道破裂信号
  8. SIGALRM 时钟信号
  9. SIGCHLD 子进程状态发生改变会给父进程发送
  10. SIGSTOP 停止 不可忽略信号

kill num PID:给指定进程发送 num 号的信号

killall 文件名:杀死所有为该文件名的进程

文件系统命令

磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。常见文件系统格式有:autofs、coda、Ext(Extended File sytem,扩展文件系统)、Ext2、Ext3、VFAT、ISO9660(通常是CD-ROM)、UFS(Unix File System,Unix文件系统)、ReiserFS、XFS、JFS、FAT(File Allocation Table,文件分配表)、FAT16、FAT32、NTFS(New Technology File System)等;

网络文件系统:是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。常见文件系统格式有:NFS(Network File System,网络文件系统)、Samba(SMB/CIFS)、AFP(Apple Filling Protocol,Apple文件归档协议)和WebDAV等;

专有/虚拟文件系统:不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、PROCFS(Process File System,进程文件系统)和LOOPBACKFS(Loopback File ## 2.top 动态显示进程状态

linux 文件系统

目录名 描述

/ Linux文件系统根目录

/bin 存放系统中最常用的可执行文件(二进制)

/boot 存放Linux内核和系统启动文件,包括Grub、lilo启动器程序

/dev 存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等

/etc 存放系统的所有配置文件,例如passwd存放用户账户信息,hostname存放主机名等

/home 用户主目录的默认位置

/initrd 存放启动时挂载initrd.img映像文件的目录,以及载入所需设备模块的目录。

/lib 存放共享的库文件,包含许多被/bin和/sbin中程序使用的库文件

/lost+found 存放由fsck放置的零散文件

/media Ubuntu系统自动挂载CD-ROM、软驱、USB存储器后,存放临时读入的文件

/mnt 该目录通常用于作为被挂载的文件系统的挂载点

/opt 作为可选文件和程序的存放目录,主要被第三方开发者用来简易地安装和卸装他们的软件包

/proc 存放所有标志为文件的进程,它们是通过进程号或其他的系统动态信息进行标识,例如cpuinfo文件存放CPU当前工作状态的数据

/root 根用户(超级用户)的主目录

/sbin 存放更多的可执行文件(二进制),包括系统管理、目录查询等关键命令文件

/srv 系统提供的特定数据

/sys 虚拟文件系统

/tmp 存放用户和程序的临时文件,所有用户对该目录都有读写权限

/usr 用于存放与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。以下罗列了/usr中部分重要的目录。

/usr/X11R6: X Window系统

/usr/bin 用户和管理员的标准命令

/usr/include c/c++等各种开发语言环境的

标准include文件

/usr/lib 应用程序及程序包的连接库

/usr/local 系统管理员安装的应用程序目录

/usr/local/share 系统管理员安装的共享文件

/usr/sbin 用户和管理员的标准命令

/usr/share 存放使用手册等共享文件的目录

/usr/share/dict 存放词表的目录

/usr/share/man 系统使用手册

/usr/share/misc 一般数据

/usr/share/sgml SGML数据

/usr/share/xml XML数据

/var 通常用于存放长度可变的文件,例如日志文件和打印机文件。以下罗列了/var其中部分重要的目录。

/var/cache 应用程序缓存目录

/var/crash 系统错误信息

/var/games 游戏数据

/var/lib 各种状态数据

/var/lock 文件锁定纪录

/var/log 日志记录

/var/mail 电子邮件

/var/opt /opt目录的变量数据

/var/run 进程的标示数据

/var/spool 存放电子邮件,打印任务等的队列目录。

/var/tmp 临时文件目录

文件操作相关命令

1.file 文件名:查找文件属性信息

2.rm -f 文件名:强制删除,文件存不存在都会删除

rm -rf 文件夹名:强制删除文件夹,文件夹存不存在都会删除

3.cat 文件名:将文件内容输出到终端

cat -n 文件名:将文件内容及行号输出到终端

4.head 文件名:默认输出文件内容的前10行

head -num 文件名:将文件内容的前num行输出到终端

5.tail 文件名:默认输出文件内容的后10行

tail -num 文件名:将文件内容的后num行输出到终端

head -35 文件名 | tail -5

6.find 查找文件

格式:find 路径 -name "文件名":在这个路径下查找文件

7.grep 查找指定字符串

grep "字符串" 文件名:在一个文件中查找

grep "字符串" 路径 -nR:从这个路径开始往后查找,找到所有用到了这个字符串的文件

补充:

1.lscpu:显示CPU信息

2.free -g:显示内存使用情况

total used free shared buff/cache available

Mem: 1 0 0 0 0 0

Swap: 0 0 0

第一列:

Mem:内存的使用信息

Swap:交换空间的使用信息

第一行:

total:系统总的可用物理内存大小

used:已被使用的物理内存大小

free:还有多少物理内存可用

shared:被共享使用的物理内存大小

buff/cach:被 buffer 和 cache 使用的物理内存大小

available:还可以被应用程序使用的物理内存大小

硬链接和软连接(符号链接)

硬链接

ln 根据linux系统分配给文件inode(ls -li)进行建立,没办法跨越文件系统

格式:ln 被链接的文件(源文件) 生成的链接文件(目标文件)

1)硬链接的属性 - 相当于生成一个副本 起别名

2)修改内容都变化

3)源文件删除链接文件依然存在

4)不能链接目录

软连接

ln -s(符号链接) 利用文件的路径名来建立的,最好从绝对路径开始

格式:ln -s 被链接的文件(源文件) 生成的链接文件(目标文件)

1)软连接的文件属性 l 相当于快捷方式

2)源文件删除,链接断开,建立w源文件之后重新链接

3)软连接可以链接目录

4)修改内容都变化

硬链接和软连接的区别

首先,从使用的角度讲,两者没有任何区别,都与正常文件访问方式一样,支持读写,如果是可执行文件的话也可以直接执行

区别在底层原理上

本质区别:

硬链接:本质上是同一个文件

软连接:本质上不是同一个文件

跨设备区别:

硬链接:不支持

软连接:支持

inode区别:

硬链接:相同

软连接:不同

连接数:

硬链接:创建新的硬链接,连接数会增加,删除硬链接,链接数减少

软连接:创建或删除,链接数不会变化

文件夹:

硬链接:不支持

软连接:支持

解压和压缩

gzip 和 gunzip

特点:只能对单个的普通文件进行压缩

不能进行归档,压缩或解压后的源文件都不存在

压缩后所生成的压缩格式是 .gz 格式

压缩:gzip 文件名 ----> 默认生成:文件名.gz 的压缩文件

解压:gunzip 文件名 ----> 默认解压为:文件名

bzip2 和 bunzip2(特点和gzip相似)

压缩后生成压缩格式是:.bz2 格式
压缩:bzip2 文件名      ----> 默认生成:文件名.bz2 的压缩文件
解压:bunzip2 文件名  ----> 默认解压为:文件名

xz 和 unxz(特点和gzip相似)

压缩后生成压缩格式是:.xz 格式
压缩:xz 文件名      ----> 默认生成:文件名.xz 的压缩文件
解压:unxz 文件名  ----> 默认解压为:文件名

zip 和 unzip

zip命令用于将一个文件或多个文件压缩成单一的文件 .zip

注意:

1.具有归档功能,并进行压缩

2.可以压缩文件夹,后缀 .zip ,压缩文件夹时需要加 -r 选项

3.压缩或解压后源文件依然存在

压缩格式:zip 压缩文件名 要压缩文件列表

解压格式:unzip 要解压的压缩文件

相关推荐
梅见十柒21 分钟前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
Koi慢热24 分钟前
路由基础(全)
linux·网络·网络协议·安全
传而习乎34 分钟前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
我们的五年44 分钟前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
IT果果日记1 小时前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教1 小时前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
羑悻的小杀马特1 小时前
环境变量简介
linux
小陈phd2 小时前
Vscode LinuxC++环境配置
linux·c++·vscode
是阿建吖!2 小时前
【Linux】进程状态
linux·运维
明明跟你说过2 小时前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump