1. 用户权限管理

1.1 文件权限基础

权限表示法

1
2
3
4
5
6
d rwx r-x r--
↑ ↑ ↑ ↑
│ │ │ └─ 其他用户权限(r--)
│ │ └─── 所属组权限(r-x)
│ └────── 所有者权限(rwx)
└──────── 文件类型(d=目录)

权限数值

  • r(读): 4
  • w(写): 2
  • x(执行): 1

1.2 chmod 命令

1
chmod [选项] 权限 文件

常用选项

  • -R: 递归修改目录下所有文件

权限设置方法

  1. 符号法:

    1
    2
    3
    4
    chmod u+x file      # 给所有者添加执行权限
    chmod g-w file # 移除组的写权限
    chmod o=rx file # 设置其他用户为读执行
    chmod a+r file # 给所有用户添加读权限
  2. 数字法:

    1
    2
    chmod 755 file      # rwxr-xr-x
    chmod 644 file # rw-r--r--

1.3 特殊权限

权限 数值 设置方法 说明
SUID 4000 u+s 执行时以文件所有者权限运行
SGID 2000 g+s 执行时以文件所属组权限运行
Sticky 1000 o+t 目录中文件只有所有者能删除

1.4 umask 命令

1
2
umask           # 查看当前umask值
umask 022 # 设置新的umask值
  • 文件默认权限: 666 - umask
  • 目录默认权限: 777 - umask

1.5 ACL 高级权限控制

1
2
3
setfacl -m u:user:rwx file   # 添加用户ACL
setfacl -x u:user file # 删除用户ACL
getfacl file # 查看ACL权限

1.6 所有权管理

1
2
3
chown user:group file        # 修改所有者和组
chown -R user:group dir # 递归修改
chgrp group file # 修改文件所属组

2. 链接管理

2.1 链接类型对比

特性 硬链接 软链接
inode 相同 不同
跨文件系统 不支持 支持
链接目录 不允许 允许
原文件删除 仍可访问 失效

2.2 ln 命令

1
2
ln source link        # 创建硬链接
ln -s source link # 创建软链接

3. 进程管理

3.1 ps 命令

1
2
3
ps aux       # 查看所有进程
ps -ef # 完整格式显示
ps -u user # 查看指定用户进程

3.2 top 命令

1
top          # 动态查看进程
  • r: 调整进程优先级
  • k: 终止进程
  • q: 退出

3.3 进程控制

1
2
3
kill -9 PID          # 强制终止进程
killall process # 终止同名所有进程
pkill pattern # 按模式终止进程

常用信号

信号 说明
HUP 1 重新加载配置
INT 2 中断(Ctrl+C)
KILL 9 强制终止
TERM 15 正常终止

3.4 作业控制

1
2
3
4
command &       # 后台运行
fg %1 # 前台恢复作业1
bg %2 # 后台继续作业2
jobs # 查看后台作业

3.5 优先级管理

1
2
nice -n 10 command   # 启动低优先级进程
renice 15 -p PID # 调整运行中进程优先级

3.6 终端复用器

1
tmux                # 启动新会话

常用快捷键:

  • Ctrl+b c: 新建窗口
  • Ctrl+b %: 垂直分割
  • Ctrl+b ": 水平分割
  • Ctrl+b d: 分离会话

4. 压缩与归档

4.1 单文件压缩

gzip

1
2
3
gzip file            # 压缩为file.gz
gunzip file.gz # 解压
gzip -d file.gz # 解压(同上)

bzip2

1
2
bzip2 file           # 压缩为file.bz2
bunzip2 file.bz2 # 解压

xz

1
2
xz file              # 压缩为file.xz
unxz file.xz # 解压

4.2 归档工具

tar 命令

1
2
3
4
5
6
7
8
9
# 打包压缩
tar czvf archive.tar.gz dir/ # gzip压缩
tar cjvf archive.tar.bz2 dir/ # bzip2压缩
tar cJvf archive.tar.xz dir/ # xz压缩

# 解压
tar xzvf archive.tar.gz # 解压gzip
tar xjvf archive.tar.bz2 # 解压bzip2
tar xJvf archive.tar.xz # 解压xz

cpio 命令

1
2
find . | cpio -ov > backup.cpio      # 创建归档
cpio -idv < backup.cpio # 解压归档

dd 命令

1
2
dd if=/dev/sda of=disk.img bs=1M     # 创建磁盘映像
dd if=disk.img of=/dev/sdb # 恢复磁盘映像

5. 实用技巧

5.1 nohup 命令

1
nohup command &      # 退出终端后继续运行

5.2 watch 命令

1
watch -n 5 'ls -l'   # 每5秒执行一次命令

5.3 文件传输

1
dd if=file.iso | ssh user@host "dd of=file.iso"  # 通过SSH传输文件