𝑻𝒆𝒏𝑪𝒍𝒂𝒘正在头脑风暴···
𝑻𝒆𝒏𝑲𝒊𝑺𝒆𝒀𝒂の𝑨𝒈𝒆𝒏𝒕助手
𝑻𝒆𝒏-𝒇𝒍𝒂𝒔𝒉

Linux 常用命令速查手册

Linux 是服务器运维必备技能。本文提供 Linux 常用命令的速查指南,帮助你快速完成日常运维任务。

一、文件与目录管理

1.1 列出文件

# 列出当前目录
ls

# 详细列表(包括隐藏文件)
ls -la

# 人类可读格式(文件大小)
ls -lh

# 递归列出
ls -R

# 按时间排序
ls -lt

# 只显示目录
ls -d */

# 按名称排序
ls -lS

1.2 创建目录

# 创建目录
mkdir mydir

# 递归创建
mkdir -p a/b/c/d

# 同时创建多个目录
mkdir dir1 dir2 dir3

1.3 删除文件和目录

# 删除文件
rm file.txt

# 递归删除目录
rm -r mydir

# 强制删除(不确认)
rm -f file.txt
rm -rf mydir

# 删除目录下的所有内容
rm -rf mydir/*

1.4 复制文件

# 复制文件
cp file1.txt file2.txt

# 递归复制目录
cp -r dir1 dir2

# 复制时保留属性
cp -p file1.txt file2.txt

# 复制时覆盖不询问
cp -f file1.txt file2.txt

# 显示复制进度
cp -v file1.txt file2.txt

1.5 移动文件

# 移动文件
mv file.txt /path/to/destination/

# 重命名文件
mv oldname.txt newname.txt

# 递归移动目录
mv -r dir1 dir2

# 显示移动过程
mv -v file.txt /path/to/destination/

1.6 查找文件

# 按名称查找
find . -name "file.txt"

# 按名称查找(不区分大小写)
find . -iname "file.txt"

# 查找特定扩展名
find . -name "*.log"

# 查找特定大小的文件
find . -size +100M
find . -size -1M

# 按时间查找
find . -mtime -7 # 7天内
find . -mtime +7 # 7天前
find . -ctime -1 # 24小时内创建
find . -atime -1 # 24小时内访问

# 按类型查找
find . -type f # 普通文件
find . -type d # 目录
find . -type l # 符号链接
find . -type s # 套接字

# 组合查找
find /var -name "*.log" -type f -size +10M

1.7 搜索文件内容

# 搜索文件内容
grep "pattern" file.txt

# 递归搜索
grep "pattern" .

# 显示行号
grep -n "pattern" file.txt

# 不区分大小写
grep -i "pattern" file.txt

# 反向搜索
grep -v "pattern" file.txt

# 显示匹配的行数
grep -c "pattern" file.txt

# 显示匹配行前后的上下文
grep -A 2 -B 2 "pattern" file.txt

二、网络操作

2.1 网络连接

# 查看网络连接
netstat -tuln

# 查看网络连接
ss -tuln

# 查看所有连接
netstat -an

# 查看 TCP 连接
netstat -ant

# 查看监听的端口
netstat -tulnp
ss -tulnp

2.2 测试网络

# 测试连通性
ping google.com
ping -c 4 8.8.8.8

# 检查端口
telnet google.com 80

# 使用 nc 测试端口
nc -zv google.com 80

# 测试 DNS
nslookup google.com
dig google.com

# HTTP 请求
curl https://www.google.com
curl -I https://www.google.com

2.3 IP 配置

# 查看 IP 地址
ip addr

# 查看 IP 地址
ifconfig

# 查看路由表
ip route

# 查看 DNS 配置
cat /etc/resolv.conf

# 修改 IP 地址
ip addr add 192.168.1.100/24 dev eth0

2.4 网络下载

# 使用 wget 下载
wget https://example.com/file.zip

# 使用 wget 后台下载
wget -b https://example.com/file.zip

# 下载并指定文件名
wget -O file.zip https://example.com/file.zip

# 下载目录
wget -r -np -k https://example.com/
# 使用 curl 下载
curl -O https://example.com/file.zip

# 使用 curl 后台下载
curl -O https://example.com/file.zip &

# 下载并指定文件名
curl -o file.zip https://example.com/file.zip

三、进程管理

3.1 查看进程

# 查看所有进程
ps aux

# 查看进程树
pstree

# 查看特定进程
ps -p 1234

# 查看 SSH 连接
ps -u root

# 查看进程详细信息
ps -ef

# 查看进程树
ps -ef --forest

# 查看进程状态
top

# 动态查看进程
htop

# 查看 PID
pgrep nginx

3.2 进程操作

# 终止进程
kill 1234

# 强制终止进程
kill -9 1234

# 终止所有 nginx 进程
killall nginx

# 终止所有匹配的进程
pkill nginx

# 查看进程详细信息
cat /proc/[pid]/status

3.3 服务管理

# systemd 服务管理
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl status nginx
systemctl enable nginx # 开机启动
systemctl disable nginx # 禁止启动

# 启动服务
service nginx start
service nginx stop
service nginx restart
service nginx status

# 查看 systemd 日志
journalctl -u nginx
journalctl -u nginx -f # 实时查看

3.4 定时任务

# 查看当前用户的 crontab
crontab -l

# 编辑 crontab
crontab -e

# 删除 crontab
crontab -r

# 查看系统 crontab
cat /etc/crontab

# crontab 格式
# * * * * * command
# 分 时 日 月 周 命令
# 每分钟执行
* * * * * command

# 每小时执行
0 * * * * command

# 每天 1 点执行
0 1 * * * command

# 每周执行
0 0 * * 0 command

# 每月执行
0 0 1 * * command

四、系统监控

4.1 内存使用

# 查看内存使用
free -h

# 查看内存详细信息
cat /proc/meminfo

# 查看内存使用情况
vmstat

4.2 磁盘使用

# 查看磁盘使用
df -h

# 查看当前目录使用
du -sh .

# 查看目录使用
du -h --max-depth=1

# 查看特定目录使用
du -sh /path/to/directory

4.3 系统信息

# 查看系统信息
uname -a

# 查看内核版本
uname -r

# 查看发行版
cat /etc/os-release

# 查看系统负载
uptime

# 查看系统时间
date

# 修改系统时间
date -s "2024-12-15 14:30:00"

# 硬件信息
lscpu
lsblk

4.4 系统日志

# 查看系统日志
dmesg

# 查看系统日志
tail -f /var/log/syslog

# 查看错误日志
tail -f /var/log/error.log

# 查看内核日志
journalctl -k

# 查看特定时间日志
journalctl --since today

4.5 CPU 使用

# 查看 CPU 使用
top

# 查看特定进程 CPU 使用
top -p 1234

# 查看进程详细信息
ps aux --sort=-%cpu | head

五、用户管理

5.1 用户管理

# 查看当前用户
whoami

# 查看所有用户
cat /etc/passwd

# 查看当前登录用户
who

# 查看所有登录用户
w

5.2 用户创建

# 创建用户
useradd username

# 创建用户并设置密码
useradd -m username
passwd username

# 创建用户并指定 UID
useradd -u 1000 username

# 创建用户并指定主目录
useradd -d /home/username -m username

5.3 用户删除

# 删除用户
userdel username

# 删除用户和主目录
userdel -r username

5.4 权限管理

# 查看文件权限
ls -l

# 修改文件权限
chmod 755 file.txt
chmod u+rwx,g+rx,o+rx file.txt

# 修改文件所有者
chown newuser file.txt

# 修改文件所有者和组
chown newuser:newgroup file.txt

# 递归修改
chmod -R 755 /path/to/directory
chown -R newuser:newgroup /path/to/directory

5.5 用户组

# 查看用户组
cat /etc/group

# 创建用户组
groupadd groupname

# 删除用户组
groupdel groupname

# 添加用户到组
usermod -aG groupname username

# 查看用户组
groups username

六、压缩和解压

6.1 tar

# 创建 tar 包
tar -cvf archive.tar file1 file2

# 创建压缩 tar 包
tar -czvf archive.tar.gz file1 file2

# 解压 tar 包
tar -xvf archive.tar

# 解压压缩 tar 包
tar -xzvf archive.tar.gz

# 查看 tar 包内容
tar -tvf archive.tar

6.2 zip

# 压缩文件
zip archive.zip file1 file2

# 压缩目录
zip -r archive.zip directory/

# 解压 zip 文件
unzip archive.zip

# 解压到指定目录
unzip archive.zip -d /path/to/destination/

# 查看 zip 文件内容
unzip -l archive.zip

6.3 gzip

# 压缩文件
gzip file.txt

# 压缩并保留原文件
gzip -k file.txt

# 解压文件
gunzip file.txt.gz

# 压缩多个文件
gzip file1.txt file2.txt

6.4 其他压缩工具

# 创建 .tar.xz 压缩包
tar -cJf archive.tar.xz directory/

# 解压 .tar.xz
tar -xJf archive.tar.xz

# 创建 .tar.bz2 压缩包
tar -cjf archive.tar.bz2 directory/

# 解压 .tar.bz2
tar -xjf archive.tar.bz2

七、管道和重定向

7.1 管道

# 管道使用
ps aux | grep nginx

# 管道链
ls | grep "\.txt" | wc -l

# 并行执行
command1 & command2

7.2 重定向

# 输出重定向
echo "hello" > file.txt
echo "world" >> file.txt

# 错误重定向
command 2> error.log

# 输出和错误重定向
command > output.log 2>&1

# 空输出
command > /dev/null 2>&1

八、编辑器

8.1 Vim

# 启动 Vim
vim file.txt

# 命令模式
i # 插入模式
Esc # 退出插入模式
:q # 退出
:w # 保存
:q! # 强制退出
:wq # 保存并退出

# 搜索
/word # 搜索
n # 下一个
N # 上一个

8.2 Nano

# 启动 Nano
nano file.txt

# 常用快捷键
Ctrl+O # 保存
Ctrl+X # 退出
Ctrl+K # 剪切
Ctrl+U # 粘贴

九、脚本编程

9.1 Shell 脚本

#!/bin/bash

# 变量
name="张三"
echo "欢迎, $name"

# 条件判断
if [ $name = "张三" ]; then
echo "正确"
else
echo "错误"
fi

# 循环
for i in {1..5}
do
echo $i
done

# 函数
function greet() {
echo "Hello, $1"
}

greet "张三"

9.2 自动化任务

#!/bin/bash

# 脚本执行
echo "开始执行..."

# 检查服务状态
if systemctl is-active --quiet nginx; then
echo "Nginx 运行正常"
else
echo "Nginx 未运行"
fi

# 备份数据
tar -czf backup-$(date +%Y%m%d).tar.gz /path/to/data

# 发送通知
echo "备份完成" | mail -s "备份通知" admin@example.com

十、总结

10.1 常用命令速查

# 文件操作
ls, cd, pwd, mkdir, rmdir, rm, cp, mv
find, grep

# 系统监控
top, free, df, du, ps, kill, systemctl

# 网络操作
ping, curl, wget, netstat, ss

# 用户管理
useradd, userdel, passwd
chmod, chown, chgrp

# 压缩解压
tar, zip, unzip, gzip

10.2 最佳实践

  1. 使用相对路径:减少错误
  2. 使用引号:保护特殊字符
  3. 添加错误处理:提高健壮性
  4. 定期备份:保护数据
  5. 使用脚本:提高效率

掌握 Linux,高效管理服务器!