# 🐧 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 常用参数 ```bash ls -l # 详细列表(权限、大小、时间) ls -a # 显示所有文件(包括 . 开头的隐藏文件) ls -h # 人类可读的大小(1K, 234M, 2G) ls -t # 按修改时间排序 ls -r # 反向排序 ls -R # 递归显示子目录 ``` ls -lah # 最常用:详细+人类可读+隐藏文件 ## 1.3 rm 参数详解 | 参数 | 含义 | 说明 | |------|------|------| | -f | force | 强制删除,不提示,忽略不存在的文件 | | -r 或 -R | recursive | 递归删除(删文件夹必须用) | | -i | interactive | 删除前逐个确认 | | -v | verbose | 显示删除过程 | ```bash rm file.txt # 删除文件(会提示确认) rm -f file.txt # 强制删除,不提示 rm -rf folder/ # 递归强制删除整个文件夹 rm -i *.log # 删除每个 .log 文件前确认 ``` ## 1.4 cp 和 mv 常用参数 ```bash 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/ # 保留原文件属性(权限、时间) ``` ```bash 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 数字法(推荐): ```bash 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 符号法: ```bash 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 权限数字对照表 | 数字 | 权限 | 含义 | |------|------|------| | 7 | rwx | 读+写+执行 | | 6 | rw- | 读+写 | | 5 | r-x | 读+执行 | | 4 | r-- | 只读 | | 3 | -wx | 写+执行 | | 2 | -w- | 只写 | | 1 | --x | 只执行 | | 0 | --- | 无权限 | #### 2.2.1.4 常用权限组合 ```bash 755 # rwxr-xr-x - 目录/脚本(所有者全权,其他人只读执行) 644 # rw-r--r-- - 普通文件(所有者读写,其他人只读) 600 # rw------- - 私密文件(只有所有者可读写) 700 # rwx------ - 私密目录(只有所有者可访问) 777 # rwxrwxrwx - 完全开放(危险,慎用!) ``` #### 2.2.1.5 特殊权限(高级) ```bash 权限 数字 作用 SUID 4xxx 以文件所有者身份执行(如 passwd) SGID 2xxx 以文件所属组身份执行 Sticky 1xxx 只有所有者能删除(如 /tmp) ``` ```bash 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` | ```bash #添加新用户并创建家目录 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常用用法 ```bash #按名称查找 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 基础搜索 ```bash 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 正则表达式 ```bash grep "^start" file.txt # 以start开头的行 grep "end$" file.txt # 以end结尾的行 grep -E "error|warning" log.txt # 扩展正则(或) ``` ### 4.2.3 实用组合 ```bash 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 常用组合 ```bash #系统更新完整流程 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 进程管理详解 ```bash #查看进程 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 | 查看UUID | `sudo blkid` | | parted | GPT分区工具 | `sudo parted -l` | ## 7.1 常用操作 ```bash #查看所有磁盘和分区 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` | | curl | HTTP请求 | `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` | | ss | socket统计(推荐) | `ss -tlnp` | ## 8.1 常用操作 ```bash #查看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 常用操作 ```bash #查看文件 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(最常用) ```bash #创建压缩包 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 其他格式 ```bash #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常用命令 ```bash #服务管理 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日志查看 ```bash 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 ```bash 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 环境变量 ```bash # 查看变量 echo $PATH env # 显示所有环境变量 # 设置临时变量 export MY_VAR="value" # 永久设置(添加到 ~/.bashrc 或 ~/.profile) echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc source ~/.bashrc # 立即生效 ``` ## 12.3 重定向总结 | 符号 | 含义 | |------|------| | > | 标准输出重定向(覆盖) | | >> | 标准输出重定向(追加) | | 2> | 错误输出重定向 | | 2>&1 | 错误输出合并到标准输出 | | &> | 所有输出重定向 | | < | 输入重定向 | | \| | 管道(前一个输出作为后一个输入) | ```bash #实用重定向示例 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炸弹(死机) |