Linux 常用命令速查
Linux 命令行是运维和开发者的核心工具。本文整理日常最常用的命令,涵盖文件操作、系统管理、网络诊断、进程监控四大类。
文件与目录操作
基础命令
bash
# 切换目录
cd /path/to/dir # 进入指定目录
cd ~ # 进入用户家目录
cd - # 返回上一次所在目录
cd .. # 返回上级目录
# 查看目录内容
ls -la # 列出所有文件(含隐藏文件),显示详细信息
ls -lh # 以人类可读方式显示文件大小
ls -lt # 按修改时间排序
ls -lS # 按文件大小排序
# 创建目录
mkdir -p /path/to/deep/dir # 递归创建目录
mkdir -m 755 mydir # 创建并指定权限
# 删除
rm -rf /path/to/dir # 强制递归删除(慎用!)
rm -i file.txt # 删除前确认
rmdir empty_dir # 删除空目录
# 复制与移动
cp -r source/ dest/ # 递归复制目录
cp -p file.txt /dest/ # 保留文件属性
mv oldname newname # 重命名
mv file.txt /dest/ # 移动文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
文件查看与编辑
bash
# 查看文件内容
cat file.txt # 完整显示文件内容
head -n 20 file.txt # 显示前20行
tail -n 50 file.txt # 显示后50行
tail -f /var/log/syslog # 实时跟踪日志(Ctrl+C 退出)
more file.txt # 分页查看(只能向下)
less file.txt # 分页查看(可上下滚动,,推荐)
# 统计
wc -l file.txt # 统计行数
wc -c file.txt # 统计字节数
wc -w file.txt # 统计单词数
# 查找
find / -name "*.log" -mtime -7 # 查找7天内修改的.log文件
find / -type f -size +100M # 查找大于100MB的文件
find / -user username -name "*.txt" # 查找某用户的txt文件
# 内容搜索
grep -r "keyword" /path/to/dir # 递归搜索关键词
grep -n "error" /var/log/messages # 显示行号
grep -v "comment" file.txt # 反向匹配(排除)
grep -E "error|warning" file.txt # 扩展正则匹配
# 文本处理
sort file.txt # 排序
uniq file.txt # 去重(需先排序)
awk '{print $1,$3}' file.txt # 打印第1、3列
sed -i 's/old/new/g' file.txt # 替换(全局)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
权限管理
bash
# 权限表示法:owner(group)/others,每位为 r(4)+w(2)+x(1)
chmod 755 script.sh # 设置 rwxr-xr-x
chmod +x script.sh # 添加执行权限
chmod -R 644 /path/to/files # 递归设置
chown user:group file.txt # 更改所有者
chown -R user:group /path/to/dir # 递归更改1
2
3
4
5
6
7
2
3
4
5
6
7
系统管理
磁盘与内存
bash
# 磁盘使用
df -h # 查看各分区使用情况(人类可读)
df -i # 查看inode使用情况
du -sh /path/to/dir # 查看目录总大小
du -h --max-depth=1 # 查看子目录大小
# 内存使用
free -h # 查看内存和交换分区使用情况
free -m # 以MB为单位显示
# 挂载
mount /dev/sdb1 /mnt/usb # 挂载设备
umount /mnt/usb # 卸载设备
mount | grep /mnt # 查看指定挂载点1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
用户与组
bash
# 用户管理
useradd -m -s /bin/bash username # 创建用户
passwd username # 设置密码
userdel -r username # 删除用户
usermod -aG sudo username # 添加到sudo组
# 查看用户
who # 当前登录用户
whoami # 当前用户名
id username # 查看用户UID/GID
last # 登录历史
# 组管理
groupadd groupname # 创建组
groups username # 查看用户所属组1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
包管理(CentOS/RHEL)
bash
yum install -y nginx # 安装包
yum remove nginx # 卸载
yum update # 更新所有包
yum update package-name # 更新指定包
yum search keyword # 搜索包
yum list installed # 列出已安装
yum info nginx # 查看包信息
# EPEL源
yum install -y epel-release1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
系统信息
bash
uname -a # 内核版本、架构等全部信息
cat /etc/os-release # 操作系统版本
hostname # 主机名
hostname -I # IP地址
uptime # 运行时间
date # 当前日期时间
timedatectl # 时区和时间管理1
2
3
4
5
6
7
2
3
4
5
6
7
网络诊断
bash
# 连接与端口
ping -c 4 8.8.8.8 # ping 4次
ping -c 100 -i 0.2 example.com # 快速ping
telnet 192.168.1.1 22 # 测试端口连通性
nc -zv 192.168.1.1 80 # 测试端口(无端口时也可用)
# 查看网络
ip addr show # 查看IP和网卡信息
ip route show # 查看路由表
ss -tulnp # 查看监听端口(比netstat快)
netstat -tulnp # 查看网络连接和端口
# 远程拷贝
scp file.txt user@host:/path/ # 复制到远程
scp -r dir/ user@host:/path/ # 递归复制目录
scp -P 2222 file.txt user@host:/ # 指定端口
# 下载
curl -O https://example.com/file # 下载文件
wget https://example.com/file # 下载文件
curl -X POST -d "data=xxx" url # POST请求1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
进程监控
bash
# 查看进程
ps aux # 查看所有进程
ps -ef # 查看进程(BSD风格)
ps aux | grep nginx # 查找nginx进程
pgrep -f "nginx" # 模糊匹配进程名
# 实时监控
top # 交互式进程监控
htop # 更友好的top(需安装)
top -u username # 只看某用户的进程
top -p PID # 监控指定进程
# 按内存/CPU排序(top中按 M 或 P)
# 进入top后:M=内存排序,P=CPU排序,q=退出
# 进程操作
kill PID # 优雅终止进程
kill -9 PID # 强制杀死(最后手段)
kill -15 PID # 优雅停止(默认)
killall nginx # 按名字杀死进程
pkill -f "python script.py" # 模糊匹配杀死
# 后台进程
nohup command & # 后台运行(忽略挂断信号)
nohup python app.py > app.log 2>&1 &
screen # 终端复用(会话保持)
tmux # 更现代的终端复用
# 进程树
pstree # 显示进程树
pstree -p username # 某用户的进程树
# 任务管理
jobs # 查看后台任务
bg # 将任务放到后台
fg # 将任务带回前台
Ctrl+Z # 挂起当前任务1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
管道与组合
Linux 命令的精髓在于管道组合:
bash
# 统计日志中错误数量
grep "ERROR" /var/log/app.log | wc -l
# 查找最大10个文件
du -ah /path | sort -rh | head -n 10
# 实时查看最新日志
tail -f /var/log/access.log | awk '{print $1}' | sort | uniq -c | sort -rn
# 终止某端口所有进程
lsof -ti:8080 | xargs kill -9
# 清理过期日志
find /var/log -name "*.log" -mtime +30 -exec rm -f {} \;
# 查看CPU占用最高的进程
ps aux --sort=-%cpu | head -n 6
# 内存占用最高的10个进程
ps aux --sort=-%mem | awk 'NR<=11{print $4"% "$11}' | head1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
快捷操作
bash
# 命令行快捷键
Ctrl+C # 取消当前命令
Ctrl+Z # 挂起当前命令
Ctrl+D # 退出当前shell
Ctrl+L # 清屏(等同于 clear)
Ctrl+A # 光标移到行首
Ctrl+E # 光标移到行尾
Ctrl+U # 删除光标前所有内容
Ctrl+K # 删除光标后所有内容
Ctrl+R # 搜索历史命令
!! # 重复上一条命令
!n # 重复第n条命令
!keyword # 重复最近一条以keyword开头的命令1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
小技巧
bash
# 命令历史
history # 查看历史命令
history | grep apt # 搜索历史
echo 'HISTSIZE=10000' >> ~/.bashrc # 增大历史记录
# alias 常用别名
echo "alias ll='ls -lh'" >> ~/.bashrc
source ~/.bashrc
# 快速回到上次目录
cd - # 在两个目录间快速切换
# 多命令组合
command1 && command2 # command1成功才执行command2
command1 || command2 # command1失败才执行command2
command1 ; command2 # 顺序执行两者
(command1 & command2 &) # 后台并行执行1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
掌握以上命令,能覆盖日常 Linux 操作的 80% 场景。建议将常用命令加入 ~/.bashrc 的 alias 提高效率,遇到不熟悉的工具时善用 man command 查看手册。
[[返回 Linux 首页|../index]]