知识点汇总linuxC高级 -2系统命令压缩与链接
系统维护命令
- man man:查看man手册
第一个章节:shell命令
第二个章节:系统调用
第三个章节:C库
2.用户相关:
su:切换用户
su:默认切换root
su 用户名:切换到指定的用户
exit:退出切换的用户
sudo passwd 用户名:修改用户密码
3.系统终端:
echo "输出内容":向终端输出内容,默认换行
echo -n "输出内容":输出不换行
4.其他:
date:查看当前系统的日期
clear:清屏
df -Th 或者 df -h:查看磁盘空间
用户管理命令
新建用户
sudo adduser 用户名
给新建用户添加sudo权限:
切换到管理员用户:su
给用户添加sudo权限:vi /etc/sudoers 添加用户名 ALL=(ALL:ALL) ALL
删除用户
sudo deluser 用户名 ---> 删除用户,但是不会删除用户的主目录(残留的主目录可以直接使用rm -r删除)
sudo deluser --remove-home 用户名:删除用户的同时,删除用户的主目录
sudo userdel -r 用户名 ---> 删除用户的同时,删除用户的主目录
sudo userdel -rf 用户名 ---> 强制删除
进程管理命令
进程:程序运行一次的过程:动态的
程序:存放在磁盘空间上的可执行文件,是静态
ps 查看进程状态:ps -aux
PID:是唯一标识id号
ps -ef:查看父进程的id:PPID
ps -ajx:PPID PID PGID(组id) SID(会话id)
可以通过man ps查看关于进程状态的信息
进程状态:
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)低优先级
./a.out &:将a.out在后台运行
fg 编号:将后台运行的进程拉到前台运行
ctrl z:将前台运行的进程暂停同时放在后台
bg 编号:将后台暂停的进程在后台运行起来
top 动态显示进程的状态
在进程管理中,NI通常表示进程的Nice值(Nice Value)。Nice值是用来调整进程优先级的参数,它可以影响进程在系统中的调度顺序
Nice值通常是一个整数,在大多数操作系统中,它的范围通常是-20到+19。较小的Nice值表示进程的优先级较高,而较大的Nice值表示进程的优先级较低
在进程管理中,PR通常表示进程的优先级(Priority)。
进程优先级是操作系统用来管理和调度进程的一种机制。每个进程都有一个与之相关联的优先级,用于确定进程在系统中的调度顺序。
NI:优先级 +19 ~ -20 值越小,优先级越高
PR:20 + NI
renice 修改正在运行的进程的优先级
sudo renice -n num PID
num:要修改的NI值
PID:要修改的进程id
nice 定制运行的优先级
sudo nice -n num ./可执行文件
kill:发送信号
kill -l:查看Linux下的信号
2) SIGINT ctrl+c 结束进程
3) SIGQUIT 退出
4) SIGILL 结束进程
9) SIGKILL 杀死进程 不可忽略信号
10) SIGUSR1 未定义功能
12) SIGUSR2 未定义功能
13) SIGPIPE 管道破裂信号
14) SIGALRM 时钟信号
17) SIGCHLD 子进程状态发生改变会给父进程发送
SIGSTOP 停止 不可忽略信号
kill num PID:给指定进程发送num信号
kill PID:默认执行15信号
kill -18 PID:将目标进程转为前台进程
文件系统命令
文件系统类型
磁盘文件系统
网络文件系统
专有/虚拟文件系统
Linux文件
/bin:存放系统中最常用的可执行文件
/dev:存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等
/home:用户主目录的默认位置
/mnt:该目录通常用于作为被挂载的文件系统的挂载点
/usr:用于存放与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件
文件操作相关命令
file 文件名:查找文件属性信息
cat 文件名:将文件内容输出到终端
cat -n 文件名:输出显示行号
find 查找文件
格式:find 路径 -name "文件名" --> 从路径往后查找文件
find ./ -name "*.c"
grep 查询指定字符串
grep "字符串" 文件名:在一个文件中查找
grep "字符串" 路径 -nR:从路径往后查找,找到所有用到这个字符串的文件
-n:回显找到的行数
-R:查找路径可以是目录,-R会进行递归查找
rm -f 文件名:强制删除,文件不存在都会删除
rm -rf 目录名:强制删除,文件夹不存在都会删除
head 文件名:默认输出文件内容的前10行
head -num 文件名:默认输出文件内容的前num行
tail 文件名:默认输出文件内容的后10行
tail -num 文件名:默认输出文件内容的后num行
tail -30 文件名 | head -5
硬链接和软连接(符号链接)
硬链接
硬链接文件可以理解为文件的副本(可以理解为复制粘贴)
ln 根据Linux系统分类给文件 inode(ls -li) 号进行建立
格式:ln 被链接文件(源文件) 生成链接文件(目标文件)
- 硬链接的属性是 - 相当于生成一个副本 起别名
- 源文件删除链接文件依然存在
- 删除源文件后,即使创建一个和源文件同名文件,也和硬链接文件之间不存在链接关系
- 修改其中一个文件的内容另一个会更改
- 硬链接文件和源文件拥有相同的inode号
软连接
理解为wins下的快捷方式
ln -s 利用文件的路径来建立的,最好是从绝对路径开始
格式:ln -s 被链接的文件(源文件) 生成链接文件(目标文件)
- 软连接文件属性 l 相当于快捷方式
- 修改内容都变化
- 软连接文件可以连接目录
- 源文件删除,链接断开,在原来的位置创建就可以重新链接
- 拷贝目录的软连接可以直接拷贝,如果需要拷贝普通文件的软链接文件,需要加上-d保证参数可以存在链接属性
cp -d 软连接文件(普通文件)
硬链接和软连接的区别
首先,从使用的角度讲,两者没有任何区别,都与正常文件访问方式一样,支持读写,如果是可执行文件的话也可以直接执行
本质区别:
硬链接:本质上是同一个文件
软连接:本质上不是同一个文件
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
tar注意:
1)具有归档功能,并进行压缩
2)可以压缩文件夹,后缀为.zip。压缩文件夹需加-r
3)压缩或者解压后源文件依然存在
压缩:zip 压缩文件名.zip 要压缩的文件列表
解压:unzip 压缩文件名
选项:
-c:创建一个新的归档文件
-v:显示归档和释放的过程信息
-x:释放归档文件
-f:用户指定归档文件的文件名
-t:列出tar归档文件中包含的文件或目录
-j:由tar生成归档,然后由bzip2压缩 .bz2
-z:由tar生成归档,然后由gzip压缩 .gz
-J: 由tar生成归档,然后由xz压缩 .xz
格式:
tar 选项 压缩文件名.tar.压缩格式 要压缩的文件列表
压缩组合:
tar -cvjf file.tar.bz2 *
tar -cvJf file.tar.xz *
tar -cvzf file.tar.gz *
解压:tar -xvf xxx.tar.压缩格
注:tar -cvf file.tar * --> 只归档不压缩
查看压缩包中,存在的文件有哪些