🐧 Debian/Linux 常用命令速查手册

📁1. 文件和目录操作

1.1 基础操作

命令作用示例
ls列出目录内容ls -la(显示所有,含隐藏文件)
cd切换目录cd /home/user
pwd显示当前路径pwd
mkdir创建目录mkdir -p dir1/dir2(递归创建)
rmdir删除空目录rmdir empty_dir
rm删除文件或目录rm -rf dir/(递归强制删除)
cp复制cp -r source/ dest/(递归复制)
mv移动/重命名mv old.txt new.txt
touch创建空文件或更新时间戳touch file.txt
file查看文件类型file unknown.bin

1.2 ls 常用参数

ls -l      # 详细列表(权限、大小、时间)
ls -a      # 显示所有文件(包括 . 开头的隐藏文件)
ls -h      # 人类可读的大小(1K, 234M, 2G)
ls -t      # 按修改时间排序
ls -r      # 反向排序
ls -R      # 递归显示子目录

ls -lah # 最常用:详细+人类可读+隐藏文件

1.3 rm 参数详解

参数含义说明
-fforce强制删除,不提示,忽略不存在的文件
-r 或 -Rrecursive递归删除(删文件夹必须用)
-iinteractive删除前逐个确认
-vverbose显示删除过程
rm file.txt           # 删除文件(会提示确认)
rm -f file.txt        # 强制删除,不提示
rm -rf folder/        # 递归强制删除整个文件夹
rm -i *.log           # 删除每个 .log 文件前确认

1.4 cp 和 mv 常用参数

cp source dest        # 复制文件
cp -r src_dir/ dest_dir/   # 递归复制目录
cp -i file.txt backup/     # 覆盖前提示
cp -u file.txt backup/     # 只复制更新的文件(update)
cp -p file.txt backup/     # 保留原文件属性(权限、时间)
mv old.txt new.txt    # 重命名
mv file.txt folder/   # 移动文件
mv -i file.txt folder/    # 覆盖前提示
mv -u file.txt folder/    # 只移动更新的文件

🔐2. 权限管理

2.1 Linux 权限基础

每个文件/目录有三组权限:所有者(u)、所属组(g)、其他人(o)

-rwxr-xr--
^  ^^^ ^^^ ^^^
|  |   |   └─ 其他人权限
|  |   └───── 组权限
|  └───────── 所有者权限
└──────────── 类型(-文件,d目录,l链接)

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

2.2 常用命令

命令作用示例
chmod修改权限chmod 755 script.sh
chown修改所有者chown user:group file.txt
chgrp修改所属组chgrp staff file.txt
umask设置默认权限掩码umask 022

2.2.1 chmod 两种写法

2.2.1.1 数字法(推荐):

chmod 755 file.sh     # rwxr-xr-x
chmod 644 file.txt    # rw-r--r--
chmod 600 secret.txt  # rw-------
chmod 777 temp/       # rwxrwxrwx(危险!)

2.2.1.2 符号法:

chmod u+x file.sh     # 所有者加执行权限
chmod g-w file.txt    # 组去掉写权限
chmod o=r file.txt    # 其他人设为只读
chmod a+x script.sh   # 所有人加执行权限(a=all)

2.2.1.3 权限数字对照表

数字权限含义
7rwx读+写+执行
6rw-读+写
5r-x读+执行
4r–只读
3-wx写+执行
2-w-只写
1–x只执行
0无权限

2.2.1.4 常用权限组合

755  # rwxr-xr-x - 目录/脚本(所有者全权,其他人只读执行)
644  # rw-r--r-- - 普通文件(所有者读写,其他人只读)
600  # rw------- - 私密文件(只有所有者可读写)
700  # rwx------ - 私密目录(只有所有者可访问)
777  # rwxrwxrwx - 完全开放(危险,慎用!)

2.2.1.5 特殊权限(高级)

权限	数字	作用
SUID	4xxx	以文件所有者身份执行(如 passwd)
SGID	2xxx	以文件所属组身份执行
Sticky	1xxx	只有所有者能删除(如 /tmp)
chmod 4755 file    # 添加 SUID
chmod 1777 /tmp    # 添加 Sticky 位

👤3. 用户和组管理

命令作用示例
whoami显示当前用户whoami
id显示用户ID和组信息id username
users显示登录用户users
who显示谁在登录who -a
su切换用户su - root
sudo以root身份执行sudo command
useradd添加用户useradd -m newuser
usermod修改用户usermod -aG sudo user
userdel删除用户userdel -r user
passwd修改密码passwd username
groupadd添加组groupadd groupname
groups显示用户所属组groups username
#添加新用户并创建家目录
sudo useradd -m -s /bin/bash newuser

#将用户加入 sudo 组(Debian/Ubuntu)
sudo usermod -aG sudo newuser

#删除用户及家目录
sudo userdel -r olduser

#切换到 root(需要root密码)
su -

#以 root 执行单条命令
sudo apt update

🔍4. 文件查找和搜索

命令作用示例
find按条件查找文件find / -name "*.txt"
locate快速查找(需数据库)locate filename
which查找命令路径which python
whereis查找命令/源码/手册whereis ls
grep搜索文件内容grep "text" file.txt
awk文本处理awk '{print $1}' file
sed流编辑器sed 's/old/new/g' file

4.1 find常用用法

#按名称查找
find /home -name "*.jpg"           # 区分大小写
find /home -iname "*.jpg"          # 不区分大小写

#按类型查找
find . -type f                     # 只找文件
find . -type d                     # 只找目录
find . -type l                     # 只找链接

#按大小查找
find / -size +100M                 # 大于100MB
find / -size -1k                   # 小于1KB

#按时间查找
find . -mtime -7                   # 7天内修改过
find . -mtime +30                  # 30天前修改
find . -amin -60                   # 60分钟内访问过

#组合条件
find . -name "*.log" -mtime -7     # 最近7天的log文件
find . -type f -size +1G -delete   # 删除大于1GB的文件

#执行操作
find . -name "*.tmp" -exec rm {} \;   # 删除找到的文件
find . -name "*.txt" -exec cp {} /backup/ \;  # 复制到备份目录

4.2 grep常用用法

4.2.1 基础搜索

grep "error" log.txt               # 搜索字符串
grep -i "error" log.txt            # 忽略大小写
grep -r "TODO" ./src/              # 递归搜索目录
grep -n "error" log.txt            # 显示行号
grep -v "debug" log.txt            # 反向匹配(不含debug的行)

4.2.2 正则表达式

grep "^start" file.txt             # 以start开头的行
grep "end$" file.txt               # 以end结尾的行
grep -E "error|warning" log.txt    # 扩展正则(或)

4.2.3 实用组合

ps aux | grep nginx                # 查找nginx进程
grep -l "ERROR" *.log              # 只显示包含ERROR的文件名
grep -c "error" log.txt            # 统计匹配行数

📦5. Debian 包管理(APT)

命令作用示例
apt update更新软件包列表sudo apt update
apt upgrade升级所有可升级包sudo apt upgrade
apt install安装软件包sudo apt install nginx
apt remove删除软件包(保留配置)sudo apt remove nginx
apt purge完全删除(含配置)sudo apt purge nginx
apt autoremove删除无用依赖sudo apt autoremove
apt search搜索软件包apt search python
apt show显示包详细信息apt show nginx
apt list列出包(–installed)apt list --installed
dpkg直接操作.deb文件dpkg -i package.deb

5.1 常用组合

#系统更新完整流程
sudo apt update && sudo apt upgrade -y

#查找并安装软件
apt search "image editor"
sudo apt install gimp

#清理无用包
sudo apt autoremove --purge

#查看已安装包的版本
apt list --installed | grep nginx

#修复依赖问题
sudo apt --fix-broken install

🖥️6. 进程和系统监控

命令作用示例
ps查看进程ps aux
top动态进程监控top
htop更友好的top(需安装)htop
kill终止进程kill -9 PID
pkill按名称终止pkill nginx
jobs查看后台任务jobs
bg将任务放到后台bg %1
fg将任务调到前台fg %1
&后台运行程序./script.sh &
nohup忽略挂断信号运行nohup ./script.sh &

6.1 进程管理详解

#查看进程
ps aux                    # 所有进程(详细)
ps -ef                    # 所有进程(标准格式)
ps aux | grep python      # 查找特定进程

#进程树
pstree -p                # 显示PID

#终止进程
kill PID                 # 正常终止(SIGTERM)
kill -9 PID              # 强制终止(SIGKILL)
kill -15 PID             # 同 kill PID
pkill -f "python script" # 按命令行匹配终止

#优先级
nice -n 10 ./script.sh   # 降低优先级(-20最高,19最低)
renice 5 -p PID          # 修改运行中进程的优先级
系统资源查看
bash
#内存
free -h                  # 人类可读的内存使用
cat /proc/meminfo        # 详细信息

#磁盘
df -h                    # 磁盘分区使用情况
du -sh /home/            # 目录总大小
du -h --max-depth=1 /home/   # 各子目录大小

#CPU
lscpu                    # CPU信息
cat /proc/cpuinfo        # 详细信息
nproc                    # CPU核心数

#系统负载
uptime                   # 系统运行时间和负载
cat /proc/loadavg        # 平均负载

#网络
ss -tlnp                 # 查看监听端口
netstat -tlnp            # 同上(需安装net-tools)

📀7. 磁盘和挂载

命令作用示例
lsblk列出块设备lsblk -f(含文件系统)
fdisk分区工具sudo fdisk -l
mount挂载设备mount /dev/sda1 /mnt
umount卸载设备umount /mnt
df磁盘使用情况df -h
du目录占用空间du -sh /home
blkid查看UUIDsudo blkid
partedGPT分区工具sudo parted -l

7.1 常用操作

#查看所有磁盘和分区
lsblk -f

#挂载NTFS硬盘
sudo mount -t ntfs-3g /dev/sdb1 /mnt/data

#卸载
sudo umount /mnt/data

#查看UUID(用于fstab自动挂载)
sudo blkid

#查看磁盘使用情况
df -Th                    # 显示类型和人类可读大小

#查看目录大小
du -sh /*                 # 根目录下各文件夹大小
fstab 自动挂载示例

#编辑 /etc/fstab 添加
UUID=1234-5678 /mnt/data ntfs-3g defaults,uid=1000,gid=1000,umask=022 0 0

🌐8. 网络相关

命令作用示例
ip网络配置(推荐)ip addr show
ifconfig网络配置(旧)ifconfig
ping测试连通性ping google.com
curlHTTP请求curl -O http://file.zip
wget下载文件wget https://example.com/file
ssh远程连接ssh user@host
scp安全复制scp file user@host:/path/
rsync增量同步rsync -avz src/ dest/
netstat网络统计netstat -tlnp
sssocket统计(推荐)ss -tlnp

8.1 常用操作

#查看IP地址
ip addr show
ip -4 addr show           # 只显示IPv4

#测试网络
ping -c 4 8.8.8.8

#下载文件
wget -c http://bigfile.zip    # 断点续传
curl -O http://file.zip       # 保存为原文件名

#查看端口监听
ss -tlnp                  # TCP监听端口
ss -ulnp                  # UDP监听端口

#测试端口连通性
nc -zv google.com 80      # 需要安装 netcat

#SSH 密钥登录
ssh-keygen -t rsa -b 4096
ssh-copy-id user@host

📜9. 文本编辑和查看

命令作用示例
cat显示文件内容cat file.txt
less分页查看(推荐)less large.log
head查看文件开头head -20 file.txt
tail查看文件结尾tail -f log.txt(实时跟踪)
nano简单编辑器nano config.conf
vim高级编辑器vim script.py
echo输出文本echo "Hello" > file.txt
\(管道)传递输出`cat file \grep word`
>重定向(覆盖)echo text > file
>>重定向(追加)echo text >> file

9.1 常用操作

#查看文件
cat file.txt              # 全部显示(适合小文件)
less file.txt             # 分页(空格翻页,q退出)
head -20 file.txt         # 前20行
tail -f app.log           # 实时跟踪日志(Ctrl+C退出)

#重定向示例
ls -la > list.txt         # 覆盖写入
echo "new line" >> list.txt  # 追加
command 2> error.log      # 只重定向错误输出
command &> output.log     # 重定向所有输出

#管道组合
dmesg | grep error        # 查找内核错误
ps aux | sort -rnk3 | head -10  # CPU占用前10进程

🗜️10. 压缩和解压

10.1 tar(最常用)

#创建压缩包
tar -czf archive.tar.gz folder/     # gzip压缩
tar -cjf archive.tar.bz2 folder/    # bzip2压缩
tar -cvf archive.tar folder/        # 不压缩,只打包

#解压
tar -xzf archive.tar.gz             # 解压到当前目录
tar -xjf archive.tar.bz2 -C /target/ # 解压到指定目录
tar -xf archive.tar                  # 自动识别格式

#查看压缩包内容
tar -tzf archive.tar.gz

# 数说明
#-c 创建  -x 解压  -z gzip  -j bzip2  -v 显示过程  -f 文件  -C 指定目录

10.2 其他格式

#zip
zip -r archive.zip folder/
unzip archive.zip -d /target/

#7z(需安装 p7zip)
7z a archive.7z folder/
7z x archive.7z -o/target/

#gz
gunzip file.gz
gzip file.txt

10.3 查看压缩文件内容(不解压)

zcat file.gz | head
zless file.gz

🔧11. 系统管理和维护

命令作用示例
systemctl服务管理systemctl status nginx
journalctl查看日志journalctl -u nginx -f
reboot重启sudo reboot
shutdown关机sudo shutdown -h now
uname系统信息uname -a
lsb_release发行版信息lsb_release -a
uptime运行时间uptime
dmesg内核日志`dmesg \tail`
crontab定时任务crontab -e

11.1 systemctl常用命令

#服务管理
systemctl start nginx       # 启动
systemctl stop nginx        # 停止
systemctl restart nginx     # 重启
systemctl reload nginx      # 重载配置(不中断)
systemctl enable nginx      # 开机自启
systemctl disable nginx     # 取消自启
systemctl status nginx      # 查看状态

#查看所有服务
systemctl list-units --type=service --state=running

# 系统操作
systemctl reboot            # 重启
systemctl poweroff          # 关机
systemctl suspend           # 挂起

11.2 journalctl日志查看

journalctl -xe                       # 查看最新日志(含说明)
journalctl -u nginx                  # 查看nginx服务日志
journalctl -u nginx -f               # 实时跟踪
journalctl --since "2024-01-01"      # 指定开始时间
journalctl --since today             # 今天的日志
journalctl -k                        # 内核日志
journalctl | grep error              # 搜索错误

11.3 定时任务 Crontab

crontab -e        # 编辑定时任务
crontab -l        # 列出当前任务
crontab -r        # 删除所有任务

# 格式:分 时 日 月 周 命令
# 示例
0 2 * * * /backup.sh           # 每天2点执行
*/5 * * * * /check.sh          # 每5分钟执行
0 9 * * 1-5 /report.sh         # 周一至周五9点
@reboot /start-service.sh      # 开机执行

🎯12. 实用技巧和快捷键

12.1 命令行快捷键

快捷键作用
Ctrl+C终止当前命令
Ctrl+Z挂起当前命令(fg恢复)
Ctrl+D退出终端(相当于exit)
Ctrl+L清屏(相当于clear)
Ctrl+A跳到行首
Ctrl+E跳到行尾
Ctrl+U删除光标前所有内容
Ctrl+K删除光标后所有内容
Ctrl+W删除前一个单词
Ctrl+R历史命令搜索
!!执行上一条命令
!$上一条命令的最后一个参数
Tab自动补全

12.2 环境变量

# 查看变量
echo $PATH
env                     # 显示所有环境变量

# 设置临时变量
export MY_VAR="value"

# 永久设置(添加到 ~/.bashrc 或 ~/.profile)
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc        # 立即生效

12.3 重定向总结

符号含义
>标准输出重定向(覆盖)
>>标准输出重定向(追加)
2>错误输出重定向
2>&1错误输出合并到标准输出
&>所有输出重定向
<输入重定向
\管道(前一个输出作为后一个输入)
#实用重定向示例
command > output.txt 2>&1    # 标准输出和错误都写入文件
command &> output.txt        # 同上(bash简写)
command > /dev/null 2>&1     # 忽略所有输出(静默运行)
cat < file.txt               # 从文件读取输入

12,4 📚快速参考卡

常用命令速查 | 要做的事 | 命令 | |———-|——| | 更新系统 | sudo apt update && sudo apt upgrade | | 安装软件 | sudo apt install 包名 | | 查看IP | ip a | | 查看端口 | ss -tlnp | | 查看磁盘 | df -h | | 查看目录大小 | du -sh 目录 | | 查找文件 | find / -name 文件名 | | 搜索内容 | grep -r "内容" ./ | | 实时查看日志 | tail -f log.txt | | 后台运行 | nohup 命令 & | | 查看进程 | ps aux \| grep 进程名 | | 杀掉进程 | kill -9 PID | | 重启服务 | systemctl restart 服务名 | | 查看服务日志 | journalctl -u 服务名 -f | | 压缩文件夹 | tar -czf archive.tar.gz 文件夹/ | | 解压 | tar -xzf archive.tar.gz | | 远程拷贝 | scp file user@host:/path/ | | 同步文件夹 | rsync -avz src/ dest/ |

13.⚠️危险命令(永远不要运行!)

命令说明
rm -rf /删除整个系统
rm -rf /*同上
rm -rf .*会匹配到 ..(上级目录)!
dd if=/dev/zero of=/dev/sda清空硬盘
mkfs.ext4 /dev/sda格式化硬盘
`:(){ :\:& };:`Fork炸弹(死机)

类似文章

发表回复