linux命令大全

定位备忘录/工具书,全篇16645字,祝查阅愉快。

目录

1.系统目录

2.常用快捷键

1.命令行编辑快捷键​​

​​2.命令历史操作​​

​​3.进程与信号控制​​

​​4.终端窗口管理​​

​​5.系统级快捷键​​

​​6.其他实用快捷键​​

7.vim快捷键

1. 模式切换​​

​​2. 插入模式​​

​​3. 删除操作(命令模式)​​

​​4. 定位操作(命令模式)​​

​​5. 复制、剪切与粘贴​​

​​6. 保存与退出​​

3.常用命令

​1.文件与目录操作​​

ls

cd

pwd

mkdir

rmdir

rm

cp

mv

touch

cat

less

head

tail

2.系统管理与权限​​

chmod

chown

ps

top/htop

kill

shutdown/reboot

sudo

passwd

​​3.网络配置与工具​​

ifconfig/ip

ping

curl/wget

netstat/ss

ssh

scp

traceroute

​​

4.文本处理与搜索​​

grep

sed

awk

nano

sort

uniq

​​

5.软件包管理​​

apt(Debian/Ubuntu)

yum/dnf(CentOS/RHEL)

snap

rpm

​​

6.磁盘与存储管理​​

df

du

mount/umount

lsblk

fdisk/parted

​​7.压缩与归档​​

tar

gzip/gunzip

zip/unzip

​​8.系统监控与日志​​

vmstat

iostat

journalctl

tail -f

​​

9.用户与组管理​​

useradd/userdel

usermod

groups

​​10.实用工具​​

history

alias

date

cal

man


1.系统目录

​目录名称​​作用​​适用对象​​备注​
/ (根目录)​所有目录的起点,文件系统的根节点系统系统启动时挂载,通常不直接存储用户数据
/bin存放基本用户命令(如 lscpmv所有用户系统启动和修复必需
/sbin存放系统管理命令(如 ifconfigfdisk管理员(root)普通用户可通过 sudo 执行
/usr/bin存放用户级应用程序(如 Python、浏览器)所有用户系统软件包安装的主要位置
/usr/sbin存放系统服务管理命令(如 Apache/Nginx 工具)管理员(root)
/boot存放启动文件(内核、GRUB 配置等)系统需确保足够磁盘空间,避免启动失败
/dev虚拟文件系统,包含硬件设备接口文件(如 /dev/sda/dev/tty系统通过文件操作访问硬件设备
/etc全局配置文件(网络、用户账户等)管理员(root)修改可能影响系统行为,需谨慎
/home普通用户的主目录(如 /home/user1所有用户存储用户数据(文档、下载等)
/root管理员(root 用户)的主目录管理员(root)
/lib系统和应用程序依赖的共享库文件系统与 /usr/lib 类似,缺失可能导致程序无法运行
/media自动挂载可移动设备(如 U 盘、光盘)所有用户
/mnt临时手动挂载文件系统(如外部硬盘)管理员(root)
/opt存放第三方软件或非标准安装的应用程序所有用户如自行编译的软件
/proc虚拟文件系统,显示内核和进程信息(如 /proc/cpuinfo系统数据存储在内存中,不占用磁盘空间
/run存储运行时数据(如进程 PID 文件)系统重启后清空
/srv存放服务相关数据(如 Web 服务器网站文件)管理员(root)示例:Apache 网页目录可能位于 /srv/www
/sys虚拟文件系统,提供内核设备树的接口系统
/tmp临时文件存放处,系统重启时可能清空所有用户所有用户可读写
/var经常变化的文件(日志 /var/log、缓存 /var/cache等)系统需定期清理或扩展磁盘空间
/lost+found文件系统损坏恢复时存放找回的文件碎片系统通常在非法关机或磁盘错误后出现

2.常用快捷键

1.命令行编辑快捷键​

快捷键功能示例场景
Ctrl + A跳转到行首快速删除行首内容
Ctrl + E跳转到行尾快速追加内容到行末
Ctrl + K删除光标后的所有字符删除光标后的整段文本
Ctrl + U删除光标前的所有字符快速清除当前输入行的前半部分
Ctrl + W删除光标前的一个单词删除前一个单词(以空格分隔)
Alt + B向后移动一个单词(以空格分隔)跳转到上一个单词的开头
Alt + F向前移动一个单词跳转到下一个单词的开头
Ctrl + Y粘贴之前删除的内容恢复被 Ctrl+U/W 删除的内容
Ctrl + T交换光标前两个字符交换 ab 为 ba

​2.命令历史操作​

快捷键功能示例场景
 / 浏览上一条/下一条历史命令快速查找之前执行的命令
Ctrl + R反向搜索历史命令输入 error 查找包含 error 的命令
Ctrl + G退出反向搜索模式结束搜索后返回普通模式
!!执行上一条命令快速重复执行 sudo apt update
!<命令首字母>执行最近一条以指定字母开头的命令!apt 执行最近的 apt 命令

​3.进程与信号控制​

快捷键功能使用场景
Ctrl + C终止当前进程强制停止卡死的程序
Ctrl + Z挂起当前进程(暂停运行)将进程放到后台,稍后恢复
jobs查看后台运行的进程列表jobs 显示所有后台任务
fg将后台进程切换到前台运行fg %1 恢复第一个后台任务
bg将挂起的进程放到后台继续运行bg %1 让挂起的任务在后台运行

​4.终端窗口管理​

快捷键(通用)功能适用终端模拟器(如 GNOME/Konsole)
Ctrl + Shift + T新建标签页大多数终端支持
Ctrl + Shift + W关闭当前标签页
Ctrl + PageUp/PageDown切换标签页
Alt + 数字键切换到指定编号的标签页例如 Alt+1 切换到第一页
Ctrl + L清空终端屏幕(保留历史输出)替代 clear 命令
Ctrl + Shift + C复制选中内容需启用鼠标支持(如 xterm
Ctrl + Shift + V粘贴剪贴板内容

​5.系统级快捷键​

快捷键功能适用场景
Ctrl + Alt + Del重启系统(需配置)紧急重启(默认行为可能不同)
Ctrl + Alt + F1~F6切换到虚拟终端(TTY1~TTY6)系统无响应时修复问题
Ctrl + Alt + F7返回图形界面(Xorg/Wayland)从 TTY 切回桌面
Ctrl + Alt + L锁屏(需桌面环境支持)保护隐私

​6.其他实用快捷键​

快捷键功能示例场景
Ctrl + S暂停终端输出(冻结滚动)查看快速滚动的日志时暂停
Ctrl + Q恢复终端输出(解冻滚动)继续查看日志
Ctrl + D退出终端(关闭当前会话)退出 SSH 或本地终端
Alt + F4关闭当前终端窗口在图形界面中关闭标签页

7.vim快捷键

1. 模式切换​
  • Esc​:从插入模式/命令模式返回​​命令模式​​(必要操作!)。
  • i​:在光标​​前​​进入​​插入模式​​(Insert Mode)。
  • a​:在光标​​后​​进入插入模式。
  • o​:在当前行​​下方插入新行​​并进入插入模式。
  • I​:在光标所在行的​​行首​​进入插入模式。
  • A​:在光标所在行的​​行尾​​进入插入模式。
  • O​:在当前行​​上方插入新行​​并进入插入模式。

​2. 插入模式​
  • ​常规操作​​(直接输入字符即可)。
  • ​退格键​​:删除光标前字符。
  • ​方向键​​:移动光标(在插入模式下)。

​3. 删除操作(命令模式)​
命令作用示例
x删除光标处的字符按 x 删除当前字符
dd删除整行按 dd 删除当前行
dw删除光标开始的单词(直到空格)按 dw 删除当前单词
db删除光标前的单词按 db 删除前一个单词
d$删除光标到行尾的内容按 d$ 删除到行尾
D同 d$(删除到行尾)快捷键 D
dG删除从当前行到文件末尾的所有行按 dG
3dd删除当前行及下方 2 行(数字可替换)按 3dd

​4. 定位操作(命令模式)​
命令作用示例
gg跳转到文件第一行按 gg
G跳转到文件最后一行按 G
行号 + G跳转到指定行(如 10G 跳转第 10 行)按 10G
/关键词向下搜索关键词(如 /error按 /error + Enter
n查找下一个匹配项按 n
$跳转到当前行行尾按 $
^跳转到当前行行首按 ^
Ctrl + f向下翻页按 Ctrl + f
Ctrl + b向上翻页按 Ctrl + b

​5. 复制、剪切与粘贴​
命令作用示例
yy复制整行按 yy
dd剪切(删除)整行按 dd
yw复制光标开始的单词按 yw
dw剪切光标开始的单词按 dw
p在光标​​后​​粘贴按 p
P在光标​​前​​粘贴按 P
u撤销上一步操作按 u
Ctrl + r重做被撤销的操作按 Ctrl + r

​6. 保存与退出​
命令作用
:w保存文件(不退出)
:q退出(未修改时可用)
:wq保存并退出
:q!强制退出(不保存修改)
:w filename另存为新文件(如 :w new.txt

3.常用命令

​1.文件与目录操作​

​命令​​功能​​示例​
ls
列出目录内容

ls -l 长格式显示(权限、时间、大小)
ls -a 显示隐藏文件
ls -h 人类可读的文件大小(如1K)
ls -S 按文件大小排序

ls -r 逆序排列

ls -t 按时间排序

cd
切换目录cd ~/docs
cd ..(返回上级)
cd -(返回上一次目录)
cd /path/to/dir(绝对路径)
pwd
显示当前路径pwd(默认输出)
pwd -P(显示物理路径,解析符号链接)
mkdir
创建目录mkdir -p parent/child(递归创建)
mkdir -v dir(显示创建过程)
mkdir -m 755 dir(设置权限)
rmdir
删除空目录rmdir empty_dir
rmdir -p parent/empty_dir(递归删除空父目录)
rm
删除文件/目录rm -rf dir
rm -i file(交互确认)
rm -v file(显示删除过程)
rm --preserve-root(防止误删根目录)
cp
复制文件/目录cp file.txt backup/
cp -r dir1 dir2
cp -v file1 file2(显示进度)
cp -p file(保留时间戳)
mv
移动/重命名文件mv old.txt new.txt
mv file.txt /backup/
mv dir1 dir2(重命名目录)
touch
创建空文件或更新时间戳touch newfile
touch -a file(仅修改访问时间)
touch -m file(仅修改修改时间)
cat
查看/合并文件cat file1 file2 > merged.txt
cat -n file(显示行号)
cat -b file(仅显示非空行号)
less
分页查看大文件less large.log
less -N large.log(显示行号)
less +G large.log(跳转到文件末尾)
查看文件头部内容head -n 10 file(显示前10行)
head -c 200 file(显示前200字节)
tail
查看文件尾部内容tail -f log.txt(实时跟踪)
tail -n 20 log.txt(显示最后20行)
tail -F log.txt(跟踪并自动重连)

rm 安全提示​

  • -i​:删除前询问确认(建议高风险操作时使用)。
  • --preserve-root​:禁止递归删除根目录(默认启用)。

cp 高级用法​

  • -a​:归档模式(保留权限、时间戳等,等同于 -rp)。
  • -u​:仅复制更新过的文件(增量备份)。

mv 注意事项​

  • 若目标路径是目录且存在,文件会被移动到该目录下。
  • 若目标路径是文件名,原文件会被重命名。

常用组合示例​

  1. ​批量重命名文件​​:
    for file in *.txt; do mv "$file" "new_$file"; done
  2. ​强制递归复制并保留属性​​:
    cp -a source_dir/ destination_dir/
  3. ​安全删除目录​​:
    rm -ri dir_to_delete  # 递归删除,交互确认

2.系统管理与权限​

命令功能示例
chmod
修改文件权限

chmod 777 4读/2写/1执行 所有者/所属组/其他

chmod +rwx 添加读写执行权限

chmod -R 递归修改目录权限

u=rwx,g=rx,o=r 符号模式

chmod 644 file.txt

chmod g+w file.txt

chown
修改文件所有者

chown user:group file.txt 修改用户和组

chown :group file.txt 仅修改组

ps
查看进程状态

ps aux(所有进程)

ps -e 同aux

ps -f 显示完整格式(含PPID)

ps --forest 显示进程树

top/htop
实时监控系统资源

top(动态视图)k终止进程,r调整优先级

htop 增强版 鼠标操作

kill
终止进程

kill -1 重启进程

kill -2 终端进程(Ctrl+c)

kill -9 强行终止

kill -15 优雅终止

killall nginx 终止所有进程

kill -15 8888 终止进程8888(PID)

shutdown/reboot
关机/重启

shutdown -h now 立即关机

shutdown -r +5 5分钟后重启

shutdown -h 22:00 22点关机

 shutdown -c 取消关机计划

sudo
以管理员权限执行

-u root 以root用户身份执行

-l 列出可执行命令

-k 清除缓存密码

passwd
修改密码

passwd -l root 锁定root账号

passwd -u 解锁账号

passwd -e 强制过期密码

passwd -d user1 删除user1密码,允许空密码登录

参数对比与安全提示​

chmod 符号 vs 数字模式​

  • ​符号模式​​(如 u+x):更直观,适合精细化调整权限。
  • ​数字模式​​(如 755):快速设置权限,但需计算数值(r=4w=2x=1)。

kill 信号优先级​

  • 优先使用 -15 (SIGTERM),若无效再尝试 -9 (SIGKILL),避免数据丢失。

sudo 安全建议​

  • 避免滥用 sudo su,改用 sudo -i 或 sudo command
  • 通过 visudo 配置免密码执行特定命令(需谨慎)。

实用组合示例​

  1. ​批量修改目录权限​​:
    chmod -R 755 /var/www  # 递归设置目录权限
  2. ​强制终止进程并释放资源​​:
    kill -9 $(pgrep -f "hung_process")  # 查找并强制终止进程
  3. ​定时关机​​:
    shutdown -h +30  # 30分钟后关机

​3.网络配置与工具​

命令功能示例
ifconfig/ip
查看网络接口

ip addr show 显示所有网络接口信息

ip link set enth0 up 启用网卡

ip addr add 192.168.1.1/24 dev eth0 手动分配IP

ping
测试网络连通性

ping google.com 

-c 4 发送4次请求后停止

-i 2 发送间隔两秒

-W 5 超时时间5秒

curl/wget
下载文件或请求API

curl http://example.com/file.zip

-O 保存文件路径

-O- 输出标准输出(适合脚本处理)

-L 自动跟随重定向

wget http://example.com/file.zip

-O 指定保存

-r 递归下载

netstat/ss
查看网络连接

netstat -tuln 监听TCP/UDP端口

-p 显示进程PID

ss -tulpn  监听TCP/UDP端口

-r 尝试解析数字地图/端口

ssh
远程登录

ssh user@192.168.1.100

-p 2222 指定端口

-i ~/.ssh/key.pem 使用私钥认证

-L 8080:localhos:80 本地端口转发

-L 8080:localhos:80 远程端口转发

scp
安全复制文件

scp file.txt user@remote:/path

-r 递归复制目录

-P 2222 指定端口

-l 1000 限制带宽

traceroute
追踪路由路径

traceroute google.com

-n 不解析主机名

-m 30 最大跳数30

-w 2 每跳超时2秒

参数对比与安全提示​

ping 场景建议​

  • ​基础连通性​​:ping -c 4 host
  • ​网络延迟​​:ping -i 0.5 host(高频率测试)
  • ​防火墙测试​​:ping -s 1472 host(测试MTU,-s 指定数据包大小)

curl 高级用法​

  • ​下载断点续传​​:curl -C - -O http://example.com/largefile.zip
  • ​模拟浏览器请求​​:curl -A "Mozilla/5.0" https://example.com
  • ​上传文件​​:curl -F "file=@test.txt" http://example.com/upload

ssh 安全建议​

  • 优先使用密钥认证(ssh-keygen + ssh-copy-id)。
  • 避免使用 ssh user@host 直接登录,改用配置文件(~/.ssh/config)简化命令。

scp 注意事项​

  • 使用 -P 指定端口(注意是大写)。
  • 限制带宽避免占用过多资源(-l 500 限制为500kbps)。

实用组合示例​

  1. ​批量测试多主机连通性​​:
    for ip in 192.168.1.{1..254}; do ping -c 1 -W 1 $ip | grep "64 bytes"; done
  2. ​监控实时网络流量​​:
    sudo ss -tunp | grep ESTAB  # 查看已建立的TCP/UDP连接
  3. ​通过SSH隧道访问内网服务​​:
    ssh -N -L 8888:localhost:3306 user@remote-server  # 本地访问 localhost:8888 即连内网MySQL

4.文本处理与搜索​

命令功能示例
grep
文本搜索

grep -i "error" log.txt  忽略大小写
-v:反向匹配(排除包含关键词的行)
-n:显示行号
-r:递归搜索目录
-E:支持扩展正则表达式(`grep -E "warning)

sed
流编辑器(替换文本)

sed 's/foo/bar/g' file.txt 全局替换

sed -i 's/\r$//' file.txt(删除Windows换行符)
sed -n '1,10p' data.csv(仅打印前10行)
sed '/^$/d' file.txt(删除所有空行)
-i:直接修改文件(慎用!建议先备份)
-n:抑制默认输出,配合 p 打印指定行
1,5s/foo/bar/g:仅在第1~5行替换

awk
文本处理与分析

awk '{print $1}' data.csv(提取第一列)

awk -F ',' '{sum+=$3} END{print sum}' sales.csv

(统计第三列总和)
awk '$5 > 100 {print $0}' data.txt

(筛选第五列大于100的行)

-F ',':指定字段分隔符(如CSV文件)
{print $1}:打印第一列
-v var=value:定义变量
NR==1:处理第一行(表头)
END{sum+=$2} END{print sum}:统计第二列总和

vi/vim文本编辑器见上
nano
简易文本编辑器

nano readme.md

Ctrl + O:保存文件
Ctrl + X:退出
Ctrl + G:查看帮助
Ctrl + W:搜索关键词
Alt + /:跳转到指定行号

-Ctrl + \:替换文本(支持正则)
-Ctrl + _:跳转到指定行
-Alt + 6:复制当前行

sort
排序文本

sort -n numbers.txt(按数字排序)

-n:按数字排序(如 sort -n numbers.txt
-r:逆序排序
-k 2,2n:按第二列数字排序
-u:去重(类似 uniq
-t ',':指定字段分隔符
 

uniq
去重

`sort file.txt

-c:显示重复次数

参数对比与实用技巧​

grep 高级技巧​

  • ​匹配整个单词​​:grep -w "error" log.txt(避免匹配 errors 或 terror)。
  • ​统计匹配次数​​:grep -c "success" log.txt(显示匹配行数)。
  • ​Pcre 正则​​:grep -P "(?<=ERROR ).+" log.txt(匹配 ERROR 后的内容,需支持PCRE)。

sed 文件修改警告​

  • 使用 -i 直接修改文件时,建议先备份:sed -i.bak 's/foo/bar/g' file.txt

awk 复杂数据处理​

  • ​多条件过滤​​:awk '$2 == "admin" && $5 > 100 {print $0}' data.csv(筛选第二列为 admin 且第五列大于100的行)。
  • ​计算字段​​:awk '{sum += $3} END {avg = sum/NR; print avg}' numbers.txt(计算第三列平均值)。

sort 与 uniq 组合​

  • ​统计词频​​:cat words.txt | tr ' ' '\n' | sort | uniq -c | sort -nr(统计单词频率并降序排列)。

​组合命令示例​

  1. 1.​​提取日志中的高频错误​​:

    grep "ERROR" app.log | awk '{print $5}' | sort | uniq -c | sort -nr | head -n 10

    (提取 ERROR 行的第五列,统计并显示前10个高频错误)

  2. 2.​​清理重复数据并排序​​:

    sort data.csv | uniq -u > cleaned_data.csv
  3. 3.​​快速分析CSV文件​​:

    awk -F ',' 'NR==1 {print "Header"} NR>1 {sum+=$3} END {print "Total:", sum}' sales.csv

    (保留表头,计算第三列总和)

5.软件包管理​

命令功能示例
apt(Debian/Ubuntu)
Debian/Ubuntu 软件包管理

sudo apt search python(搜索软件包)
sudo apt full-upgrade(升级并处理依赖)
sudo apt autoremove(清理旧依赖)

-y:自动确认安装
-f:修复依赖关系
-s:模拟执行(dry-run)
--purge:彻底删除软件包及配置文件
update:更新软件源索引
upgrade:升级所有已安装包
autoremove:删除不再需要的依赖

yum/dnf(CentOS/RHEL)
CentOS/RHEL 软件包管理

sudo yum erase package(删除软件包)
sudo dnf provides */nginx.conf

(查找配置文件所属包)
sudo yum history list(查看操作历史)

-y:自动确认安装
-C:使用缓存(不下载元数据)
--security:仅安装安全更新
check-update:检查可用更新(不执行)
clean all:清理缓存

snap
通用软件包管理(跨发行版)

sudo snap install code(安装VS Code)

sudo snap connect code:ssh-askpass(授权 VS Code 访问 SSH)
snap refresh --time(查看下次自动更新时间)
snap list --all(显示所有版本)

-d:开发模式(允许自动更新)
-e:查看软件包详情
refresh:更新所有 snap 包
list:列出已安装包
remove --purge:彻底删除包及数据

rpm
RPM 包管理(Red Hat 系底层工具)

rpm -ivh package.rpm(安装)

rpm -qp --info package.rpm(查看 RPM 包信息)
`rpm -qa

-i:安装
-U:升级(rpm -Uvh
-e:卸载(rpm -e package
-q:查询(rpm -q package
-K:验证包完整性(rpm -K package.rpm
--nodeps:忽略依赖(慎用)
--force:强制安装(覆盖现有文件)

参数对比与安全提示​

apt vs yum/dnf

  • apt​:更友好的交互界面,支持 snap 和 flatpak 等混合包管理。
  • yum/dnf​:兼容性更强,支持旧版 CentOS/RHEL 系统。

snap 注意事项​

  • 默认启用自动更新,可通过 snap refresh --hold 暂停特定包更新。
  • 部分系统需安装 snapd 服务(如 Ubuntu)。

rpm 依赖管理​

  • ​不推荐直接使用 rpm​:建议优先使用 yum/dnf 处理依赖。
  • ​强制安装风险​​:--nodeps 或 --force 可能导致软件无法运行。

实用组合示例​

  1. ​清理旧内核(Ubuntu)​​:
    sudo apt autoremove --purge  # 删除旧内核及配置
  2. ​批量卸载不需要的包(CentOS)​​:
    sudo yum list installed | grep unused | awk '{print $1}' | xargs sudo yum remove -y
  3. ​验证 RPM 包安全性​​:
    rpm -K httpd-2.4.6-97.el7.centos.x86_64.rpm  # 

6.磁盘与存储管理​

命令功能示例
df
查看磁盘空间

df -hT(查看磁盘空间及文件系统类型)

-h:人类可读格式(如 1K234M

-T:显示文件系统类型
-a:显示所有文件系统(含虚拟设备)
--exclude-type=ext4:排除指定文件系统类型

du
查看目录大小

du -sh /var/*(汇总各子目录大小)

du -h --max-depth=2 /home(显示 /home 下两级目录大小)

-s:汇总显示总大小
-h:人类可读格式
--max-depth=N:限制显示目录层级(如 --max-depth=1
-a:显示所有文件(含子目录)

mount/umount
挂载/卸载设备

mount -o ro /dev/sdb1 /mnt(只读挂载磁盘)
-t ext4:指定文件系统类型
-o ro:以只读方式挂载
-a:挂载 /etc/fstab 中所有设备
umount -l /mnt 强制卸载挂载点
-l:懒卸载(允许进程结束后卸载)

lsblk
列出块设备

lsblk(查看磁盘分区)

-f:显示文件系统类型及 UUID
-p:显示完整设备路径
-t:树状结构显示(含父子关系)

fdisk/parted
分区工具

sudo fdisk /dev/sdb(进入交互模式分区)

-l:列出所有磁盘分区表
-b 4096:设置扇区大小

n:新建分区
p:主分区
w:保存并退出

sudo parted /dev/sda mklabel gpt

(初始化 GPT 分区表)
sudo parted /dev/sdb mkpart logical 10GB 50GB

(创建逻辑分区)

mklabel gpt:创建 GPT 分区表
mkpart primary 0% 100%:创建主分区
quit:退出并保存
 

参数对比与安全提示​

df 与 du 差异​

  • df​:显示文件系统级别的磁盘使用情况(基于超级块统计)。
  • du​:基于文件实际占用空间统计(可能因稀疏文件或硬链接产生差异)。

mount 高级用法​

  • ​绑定挂载​​:mount --bind /source /target(将目录挂载到另一位置)。
  • ​临时文件系统​​:mount -t tmpfs tmpfs /mnt/ramdisk(挂载内存文件系统)。

​分区工具选择​

  • fdisk​:适用于 MBR 分区(≤2TB),交互式操作简单。
  • parted​:支持 GPT 分区(>2TB),功能更强大(如调整分区对齐)。

实用组合示例​

  1. ​快速清理临时文件​​:
    du -sh /tmp/*  # 查看 /tmp 下各文件/目录大小
    rm -rf /tmp/*.log  # 删除临时日志文件
  2. ​挂载 ISO 镜像​​:
    sudo mount -t iso9660 -o loop ubuntu.iso /mnt/iso
  3. ​迁移分区表​​:
    sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb  # 复制磁盘分区表

​7.压缩与归档​

命令功能示例
tar
打包/解包

tar -czvf archive.tar.gz /path(压缩为 .tar.gz
tar -xzvf archive.tar.gz -C /target/dir(解压到指定目录)
tar -tf archive.tar.gz(查看归档内容)
tar -czvf project.tar.gz --exclude="*.tmp" src/

(排除临时文件)- -c:创建归档文件
-x:解压归档文件
-z:通过 gzip 压缩/解压(.tar.gz
-j:通过 bzip2 压缩/解压(.tar.bz2
-J:通过 xz 压缩/解压(.tar.xz
-v:显示操作过程
-f:指定文件名
-C <目录>:解压到指定目录
--exclude="*.log":排除指定文件
-t:列出归档内容

gzip/gunzip
压缩/解压文件

gzip -k file.txt(保留原文件)
gunzip -c file.txt.gz > restored.txt(解压到标准输出)

-9:最高压缩率(gzip -9 file
-1:最快压缩(gzip -1 file
-d:解压(等价于 gunzip

zip/unzip
ZIP压缩/解压

zip -r backup.zip folder/ -x "*.log"

-r:递归压缩目录
-x "*.tmp":排除文件
-P password:设置密码(不安全,慎用)
-q:静默模式

unzip -d /target/dir backup.zip(解压到指定目录)
unzip -t archive.zip(检查压缩包是否损坏)

-d <目录>:解压到指定目录
-o:覆盖文件不提示
-t:测试压缩包完整性

参数对比与实用技巧​

tar 与压缩格式选择​

  • .tar.gz​:通用压缩格式,适合大多数场景(-z)。
  • .tar.bz2​:更高压缩率,但速度较慢(-j)。
  • .tar.xz​:最佳压缩率,适合大文件(-J)。

gzip 注意事项​

  • 仅压缩单个文件,生成 .gz 文件,原文件被删除(除非用 -k 保留)。
  • 常与 tar 结合使用(如 tar -czvf)。

zip 密码安全​

  • 避免使用 -P password(明文传输密码),改用交互式输入:
    zip -r secure.zip folder/  
    unzip secure.zip  # 输入密码时不会显示

组合命令示例​

  1. ​分卷压缩(适合大文件传输)​​:

    tar -czvf - project/ | split -d -b 200M - project.tar.gz.part  
    # 解压:cat project.tar.gz.part* | tar -xzvf -
  2. ​批量解压 ZIP 文件​​:

    for zipfile in *.zip; do unzip "$zipfile" -d "${zipfile%.zip}"; done
  3. ​排除多个文件类型​​:

    tar -czvf backup.tar.gz --exclude="*.tmp" --exclude="*.log" /data


 

​8.系统监控与日志​

命令功能示例
vmstat
内存/CPU统计

vmstat 1 5(每秒刷新,共5次)
vmstat -s(查看内存总量及使用详情)
vmstat -d(监控磁盘读写性能)

-a:显示活跃/非活跃内存
-s:内存统计摘要(总内存、交换分区等)
-d:磁盘 I/O 统计
-t:显示时间戳
-w:宽输出模式(适配大内存系统)

iostat
磁盘I/O统计

iostat -dm /dev/sdb

iostat -x 2(每2秒刷新磁盘 I/O 详情)
iostat -c 1(每秒监控 CPU 使用率)
iostat -dm /dev/sdb(监控 /dev/sdb 的磁盘使用

-c:显示 CPU 使用率
-d:显示磁盘设备统计
-m:以 MB 为单位显示
-x:扩展统计(含 I/O 请求队列、服务时间等)
-p sda:监控指定设备(如 sda

journalctl
查看系统日志

journalctl -u nginx.service

--since "5 minutes ago"(查看 Nginx 近5分钟日志)
journalctl -p 3 -xb(显示所有优先级≥3的启动日志)
journalctl -f(实时监控系统日志)

-f:实时跟踪(类似 tail -f
-n 50:显示最后50条日志
--since "2023-10-01":按时间过滤(支持相对时间如 -1h
-p err:仅显示错误及以上级别日志
-u nginx.service:按服务过滤

tail -f
实时跟踪日志

tail -n 100 -f /var/log/syslog(查看最后100行并跟踪)
tail -F /var/log/auth.log(持续跟踪认证日志,即使文件轮转)
tail -q -f /var/log/*.log(静默跟踪多个日志文件)

-n 100:显示最后100行并跟踪
-F:跟踪文件轮转后的内容(如日志切割后)
-q:静默模式(不显示文件名)
-s 2:延迟2秒刷新


参数对比与实用技巧​

vmstat vs iostat

  • vmstat​:侧重全局资源监控(内存、CPU、进程、I/O)。
  • iostat​:专攻磁盘 I/O 性能分析(如 await 表示 I/O 平均等待时间)。

journalctl 高级用法​

  • ​按优先级过滤​​:
    journalctl -p emerg..err  # 显示紧急到错误级别的日志
  • ​查看内核日志​​:
    journalctl -k  # 等价于 dmesg
  • ​限制输出行数​​:
    journalctl -u nginx.service -n 100  # 查看 Nginx 最后100条日志

tail 实时跟踪优化​

  • ​结合 grep 过滤​​:
    tail -f /var/log/nginx/access.log | grep "404"
  • ​多文件跟踪​​:
    tail -f /var/log/{syslog,auth.log}  # 同时跟踪多个日志

​组合命令示例​

  1. ​监控系统资源瓶颈​​:
    vmstat 1 3 && iostat -x 1 2  # 先检查内存/CPU,再监控磁盘 I/O
  2. ​排查磁盘性能问题​​:
    iostat -dxm 1  # 查看磁盘设备详细 I/O 统计(MB单位)
  3. ​分析服务日志异常​​:
    journalctl -u mysql.service -p err --since "1 hour ago" | grep "timeout"
    (查找 MySQL 服务过去1小时内的超时错误)

9.用户与组管理​

命令功能示例
useradd/userdel
添加/删除用户

sudo useradd newuser
sudo userdel -r user1(连带主目录删除)

sudo useradd -m -s /bin/bash alice

(创建用户并指定 Shell)
sudo useradd -G www-data -e 2025-01-01 bob

(添加到 www-data 组,1月1日过期)

-m:创建用户主目录(默认不创建)
-s:指定登录 Shell(如 -s /bin/bash
-G:添加附加组(如 -G developers
-e:设置账户过期时间(如 -e 2024-12-31
-p:设置初始密码(需加密字符串)
-N:不创建家目录(慎用)

sudo userdel -r alice(删除用户并清理文件)
sudo userdel -f bob(强制删除未退出的进程关联用户)

-r:删除用户主目录及邮件池(/home/user 和 /var/mail/user
-f:强制删除(即使用户正在登录)

usermod
修改用户属性

usermod -aG sudo user1(添加到sudo组)

sudo usermod -aG sudo alice

(将用户添加到 sudo 组,保留原有组)
sudo usermod -d /home/newdir -m alice

(修改家目录并迁移旧数据)

-l newname:修改用户名(如 -l alice_new
-d /new/home:修改家目录路径
-G group1,group2:重置附加组(覆盖原有组,需配合 -a 保留原组)
-aG group:追加到附加组(不覆盖原组)
-s /bin/zsh:修改登录 Shell

groups
查看用户所属组

groups username

groups alice(显示用户所属的所有组)
groups(查看当前用户所在组)

username:查看指定用户的组(如 groups alice

​参数对比与安全提示​

useradd 与 usermod 关键区别​

  • useradd​:创建新用户,需一次性定义账户属性。
  • usermod​:修改现有用户属性(如组、家目录、Shell)。

userdel -r 注意事项​

  • ​数据丢失风险​​:删除用户主目录和邮件文件后无法恢复,建议提前备份。
  • ​残留文件​​:若用户创建过其他文件(如 /var/www),需手动清理。

usermod 组操作陷阱​

  • -G 与 -aG 差异​​:
    • -G group1,group2:覆盖用户原有附加组。
    • -aG group1,group2:保留原有组,追加新组(推荐使用)。

​实用组合示例​

  1. ​批量创建用户并分配组​​:

    for user in user1 user2 user3; do
      sudo useradd -m -s /bin/bash -G developers $user
      echo "user:$user:123456" | sudo tee -a /etc/shadow
    done

    (批量创建用户,添加到 developers 组,设置初始密码)

  2. ​迁移用户家目录​​:

    sudo usermod -d /new/home -m alice  # -m 自动迁移旧家目录内容
  3. ​排查用户组权限问题​​:

    groups alice  # 确认用户是否在所需组中(如 `docker` 组)

​10.实用工具​

命令功能示例
history
查看命令历史

`history

-c:清空历史记录
-d <行号>:删除指定行号的历史记录
-n <数量>:显示最近N条记录
!n:执行历史记录中第n条命令
!!:重复执行上一条命令
!string:执行最近一条以string开头的命令

alias
创建命令别名

alias ll='ls -alF'(创建常用列表命令)
alias today='date +"%Y-%m-%d"'(快速显示今日日期)
unalias ll(删除别名)

alias 别名='命令':临时别名(仅当前会话有效)
alias -p:列出所有别名
unalias 别名:删除别名
- ​永久生效​​:将别名写入 ~/.bashrc 或 ~/.zshrc

date
显示系统时间

date +"%Y%m%d"(输出 20231025
sudo date -s "2023-10-25 12:00:00"(手动设置时间)
date --rfc-3339=ns(显示高精度时间)

+"%Y-%m-%d %H:%M:%S":自定义格式(年-月-日 时:分:秒)
-s "时间":设置系统时间(需 sudo
-R:RFC 5322 格式(邮件头时间)
--rfc-3339=ns:高精度时间(纳秒)

cal
查看日历

cal -y 2023(全年日历)

cal -m 10(显示10月日历)
cal -y 2023(显示2023年全年日历)
cal -w -A 2(显示未来两周日历)

-m:显示月份日历(默认当前月)
-y:显示全年日历
-w:显示周数(1-53)
-A <周数>:显示未来N周
-B <周数>:显示过去N周
-s:一周从周日开始(默认周一)

man
查看命令手册

man ls(查看ls的详细用法)

man -k "copy file"(搜索与“复制文件”相关的命令)
man -a printf(查看所有 printf 手册页,如 Shell 和 C 库函数)
man -w ls(获取 ls 手册页路径)

-k:搜索关键字(类似 apropos
-a:显示所有匹配的手册页(如 man -a printf
-w:仅显示手册页路径
-f:同 whatis(简短描述)
-K:全文搜索手册页内容

参数对比与实用技巧​

history 高级用法​

  • ​执行历史命令片段​​:
    !apt  # 执行最近一条以 `apt` 开头的命令
  • ​批量删除历史记录​​:
    history -d 100-200  # 删除历史记录中100到200行

alias 安全提示​

  • ​避免覆盖危险命令​​:
    alias rm='rm -i'  # 添加确认提示(但可能被 `rm -f` 绕过)
  • ​永久生效​​:需写入 shell 配置文件(如 ~/.bashrc)并执行 source ~/.bashrc

date 设置时间权限​

  • 需 sudo 权限修改系统时间,普通用户只能查看。

cal 周数计算​

  • 不同地区对周起始日定义不同(如欧美习惯周日,中国习惯周一)。

组合命令示例​

  1. ​快速创建临时别名​​:
    alias temp='ssh user@remote-server'  # 临时定义SSH快捷连接
  2. ​批量清理历史记录​​:
    history -c && history -w  # 清空内存历史并写入文件
  3. ​自动化时间戳记录​​:
    alias logtime='echo "$(date +"%Y-%m-%d %H:%M:%S") - Task completed" >> logfile.txt'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值