核心命令
超高频命令
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 1 | cd |
切换目录 | cd /home, cd .., cd -, cd ~ |
| 2 | ls |
列出目录内容 | ls -la, ls -lh, ls -lt |
| 3 | pwd |
显示当前工作目录 | pwd |
| 4 | cat |
查看/连接文件内容 | cat file.txt, cat file1 file2 |
| 5 | echo |
输出文本到标准输出 | echo "hello", echo $PATH |
| 6 | grep |
搜索文本模式 | grep "pattern" file, grep -r "text" . |
| 7 | vim/vi |
文本编辑器 | vim file.txt, vi config.conf |
| 8 | mkdir |
创建目录 | mkdir newdir, mkdir -p dir1/dir2 |
| 9 | rm |
删除文件/目录 | rm file, rm -rf directory |
| 10 | cp |
复制文件/目录 | cp file1 file2, cp -r dir1 dir2 |
高频命令
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 11 | mv |
移动/重命名文件 | mv old.txt new.txt, mv file /path/ |
| 12 | sudo |
以超级用户权限执行 | sudo apt update, sudo systemctl restart |
| 13 | find |
查找文件和目录 | find . -name "*.txt", find / -type f |
| 14 | touch |
创建空文件/更新时间戳 | touch newfile.txt |
| 15 | clear |
清空终端屏幕 | clear 或 Ctrl+L |
| 16 | man |
查看命令手册页 | man ls, man grep |
| 17 | history |
显示命令历史记录 | history, `history |
| 18 | less |
分页查看文件 | less /var/log/syslog |
| 19 | head |
显示文件开头部分 | head -n 20 file.txt |
| 20 | tail |
显示文件结尾部分 | tail -f /var/log/nginx/error.log |
| 21 | chmod |
修改文件权限 | chmod 755 script.sh, chmod +x file |
| 22 | chown |
修改文件所有者 | chown user:group file |
| 23 | ps |
显示进程状态 | ps aux, `ps -ef |
| 24 | kill |
终止进程 | kill 1234, kill -9 1234 |
| 25 | which |
显示命令完整路径 | which python, which java |
常用命令
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 26 | tar |
打包和压缩文件 | tar -xzf file.tar.gz, tar -czf archive.tar.gz dir/ |
| 27 | ssh |
远程登录 | ssh user@hostname, ssh -p 2222 user@ip |
| 28 | scp |
远程复制文件 | scp file user@host:/path, scp -r dir/ user@host:~ |
| 29 | wget |
下载文件 | wget http://example.com/file, wget -c url |
| 30 | curl |
传输数据/测试API | curl https://api.example.com, curl -X POST -d data url |
| 31 | git |
版本控制系统 | git clone, git pull, git commit, git push |
| 32 | top |
实时查看系统进程 | top, top -u username |
| 33 | df |
显示磁盘空间使用 | df -h, df -i |
| 34 | du |
显示目录/文件大小 | du -sh *, du -h --max-depth=1 |
| 35 | free |
显示内存使用情况 | free -h, free -m |
| 36 | ping |
测试网络连接 | ping google.com, ping -c 4 8.8.8.8 |
| 37 | nano |
简单文本编辑器 | nano file.txt |
| 38 | zip |
压缩文件 | zip archive.zip file1 file2 |
| 39 | unzip |
解压zip文件 | unzip archive.zip, unzip -d /path archive.zip |
| 40 | sed |
流编辑器 | sed 's/old/new/g' file, sed -i 's/old/new/' file |
| 41 | awk |
文本处理工具 | awk '{print $1}' file, awk -F: '{print $1}' /etc/passwd |
| 42 | sort |
排序文本行 | sort file.txt, sort -n -k2 file |
| 43 | uniq |
去除重复行 | `sort file |
| 44 | wc |
统计字数/行数 | wc -l file, wc -w file |
| 45 | diff |
比较文件差异 | diff file1 file2, diff -u old new |
系统管理命令
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 46 | systemctl |
管理系统服务(systemd) | systemctl status nginx, systemctl restart apache2 |
| 47 | service |
管理系统服务(旧版) | service nginx restart |
| 48 | apt/apt-get |
Debian/Ubuntu包管理 | apt update, apt install package, apt remove |
| 49 | yum |
RHEL/CentOS包管理 | yum install package, yum update |
| 50 | dnf |
Fedora包管理器 | dnf install package, dnf upgrade |
| 51 | journalctl |
查看systemd日志 | journalctl -u nginx, journalctl -f |
| 52 | htop |
交互式进程查看器 | htop |
| 53 | pkill |
按名称终止进程 | pkill nginx, pkill -9 process_name |
| 54 | pgrep |
按名称查找进程ID | pgrep nginx, pgrep -u username |
| 55 | useradd |
添加用户 | useradd -m username |
| 56 | usermod |
修改用户账户 | usermod -aG sudo username |
| 57 | userdel |
删除用户 | userdel username, userdel -r username |
| 58 | passwd |
修改用户密码 | passwd, passwd username |
| 59 | su |
切换用户 | su - username, su root |
| 60 | whoami |
显示当前用户名 | whoami |
| 61 | hostname |
显示/设置主机名 | hostname, hostname new-name |
| 62 | uname |
显示系统信息 | uname -a, uname -r |
| 63 | uptime |
显示系统运行时间 | uptime |
| 64 | date |
显示/设置日期时间 | date, date +"%Y-%m-%d %H:%M:%S" |
| 65 | cal |
显示日历 | cal, cal 2024 |
网络命令
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 66 | ifconfig |
配置网络接口(旧) | ifconfig, ifconfig eth0 |
| 67 | ip |
网络配置工具(新) | ip addr, ip route, ip link |
| 68 | netstat |
网络统计(旧) | netstat -tuln, netstat -anp |
| 69 | ss |
socket统计(新) | ss -tuln, ss -s |
| 70 | nslookup |
DNS查询 | nslookup google.com |
| 71 | dig |
DNS查询工具 | dig google.com, dig @8.8.8.8 example.com |
| 72 | host |
DNS查询 | host google.com |
| 73 | traceroute |
跟踪路由 | traceroute google.com |
| 74 | route |
显示/修改路由表 | route -n |
| 75 | iptables |
防火墙配置 | iptables -L, iptables -A INPUT |
| 76 | nc/netcat |
网络工具 | nc -zv host port, nc -l 8080 |
| 77 | tcpdump |
网络抓包 | tcpdump -i eth0, tcpdump port 80 |
| 78 | nmap |
网络扫描 | nmap 192.168.1.1, nmap -p 1-1000 host |
| 79 | rsync |
远程同步 | rsync -avz src/ dest/, rsync -e ssh user@host:/path |
| 80 | sftp |
安全文件传输 | sftp user@host |
文件系统命令
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 81 | mount |
挂载文件系统 | mount /dev/sdb1 /mnt, mount -t nfs |
| 82 | umount |
卸载文件系统 | umount /mnt, umount /dev/sdb1 |
| 83 | fdisk |
分区工具 | fdisk -l, fdisk /dev/sdb |
| 84 | mkfs |
创建文件系统 | mkfs.ext4 /dev/sdb1 |
| 85 | fsck |
文件系统检查修复 | fsck /dev/sdb1 |
| 86 | ln |
创建链接 | ln -s /path/to/file link, ln file hardlink |
| 87 | readlink |
显示符号链接目标 | readlink -f symlink |
| 88 | stat |
显示文件状态 | stat file.txt |
| 89 | file |
判断文件类型 | file document.pdf |
| 90 | tree |
树状显示目录结构 | tree, tree -L 2 |
进程和任务管理
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 91 | jobs |
显示后台任务 | jobs, jobs -l |
| 92 | bg |
将任务放到后台 | bg %1 |
| 93 | fg |
将任务调到前台 | fg %1 |
| 94 | nohup |
不挂断运行命令 | nohup command & |
| 95 | screen |
终端复用器 | screen, screen -r, screen -ls |
| 96 | tmux |
终端复用器 | tmux, tmux attach, tmux ls |
| 97 | crontab |
定时任务 | crontab -e, crontab -l |
| 98 | at |
一次性定时任务 | at 10:00 AM, at now + 1 hour |
| 99 | nice |
设置进程优先级 | nice -n 10 command |
| 100 | renice |
修改进程优先级 | renice -5 -p 1234 |
文本处理和查看
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 101 | more |
分页查看文件 | more file.txt |
| 102 | cut |
剪切文本列 | cut -d: -f1 /etc/passwd |
| 103 | paste |
合并文件行 | paste file1 file2 |
| 104 | tr |
转换或删除字符 | tr 'a-z' 'A-Z', tr -d '\r' |
| 105 | tee |
读取标准输入并写入文件 | `command |
| 106 | xargs |
构建和执行命令 | `find . -name "*.txt" |
| 107 | basename |
提取文件名 | basename /path/to/file.txt |
| 108 | dirname |
提取目录名 | dirname /path/to/file.txt |
| 109 | strings |
提取文件中可打印字符 | strings binary_file |
| 110 | od |
八进制/十六进制转储 | od -x file |
压缩和归档
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 111 | gzip |
压缩文件 | gzip file.txt, gzip -d file.gz |
| 112 | gunzip |
解压gzip文件 | gunzip file.gz |
| 113 | bzip2 |
压缩文件 | bzip2 file.txt, bzip2 -d file.bz2 |
| 114 | xz |
高压缩率压缩 | xz file.txt, xz -d file.xz |
| 115 | 7z |
7zip压缩 | 7z a archive.7z files, 7z x archive.7z |
| 116 | rar |
rar压缩 | rar a archive.rar files |
| 117 | unrar |
解压rar | unrar x archive.rar |
系统监控和性能
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 118 | vmstat |
虚拟内存统计 | vmstat 1, vmstat -s |
| 119 | iostat |
CPU和IO统计 | iostat, iostat -x 1 |
| 120 | sar |
系统活动报告 | sar -u, sar -r |
| 121 | mpstat |
多处理器统计 | mpstat, mpstat -P ALL |
| 122 | lsof |
列出打开的文件 | lsof -i :80, lsof -u username |
| 123 | strace |
跟踪系统调用 | strace command, strace -p pid |
| 124 | ltrace |
跟踪库调用 | ltrace command |
| 125 | dmesg |
显示内核消息 | dmesg, `dmesg |
| 126 | last |
显示用户登录记录 | last, last username |
| 127 | lastlog |
显示最近登录 | lastlog |
| 128 | w |
显示登录用户 | w |
| 129 | who |
显示在线用户 | who, who -b |
| 130 | id |
显示用户ID和组ID | id, id username |
磁盘和存储
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 131 | lsblk |
列出块设备 | lsblk, lsblk -f |
| 132 | blkid |
显示块设备属性 | blkid |
| 133 | dd |
转换和复制文件 | dd if=/dev/sda of=backup.img, dd if=/dev/zero of=file bs=1M count=100 |
| 134 | hdparm |
硬盘参数设置 | hdparm -I /dev/sda |
| 135 | parted |
分区工具 | parted -l, parted /dev/sdb |
| 136 | lvm |
逻辑卷管理 | lvcreate, lvextend, lvs |
开发和调试
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 137 | gcc |
C/C++编译器 | gcc -o program source.c |
| 138 | make |
构建工具 | make, make clean |
| 139 | gdb |
调试器 | gdb program, gdb -p pid |
| 140 | nm |
列出符号 | nm binary |
| 141 | objdump |
显示对象文件信息 | objdump -d binary |
| 142 | readelf |
显示ELF文件信息 | readelf -h binary |
| 143 | ldd |
显示共享库依赖 | ldd /bin/ls |
| 144 | hexdump |
十六进制转储 | hexdump -C file |
| 145 | xxd |
十六进制转储 | xxd file |
环境和Shell
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 146 | env |
显示环境变量 | env, env VAR=value command |
| 147 | export |
设置环境变量 | export PATH=$PATH:/new/path |
| 148 | alias |
创建命令别名 | alias ll='ls -la' |
| 149 | unalias |
删除别名 | unalias ll |
| 150 | source |
执行脚本(当前shell) | source ~/.bashrc, . script.sh |
| 151 | exec |
执行命令替换shell | exec bash |
| 152 | type |
显示命令类型 | type ls, type cd |
| 153 | hash |
记住命令路径 | hash, hash -r |
Docker和容器
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 154 | docker |
Docker容器管理 | docker run, docker ps, docker exec |
| 155 | docker-compose |
Docker编排 | docker-compose up, docker-compose down |
| 156 | kubectl |
Kubernetes管理 | kubectl get pods, kubectl apply -f |
其他实用命令
| 序号 | 命令 | 描述 | 常用示例 |
|---|---|---|---|
| 157 | bc |
计算器 | `echo "2+2" |
| 158 | expr |
表达式求值 | expr 5 + 3 |
| 159 | factor |
质因数分解 | factor 100 |
| 160 | seq |
生成数字序列 | seq 1 10, seq 1 2 10 |
| 161 | yes |
重复输出字符串 | `yes |
| 162 | watch |
周期性执行命令 | watch -n 1 'df -h' |
| 163 | time |
测量命令执行时间 | time command |
| 164 | timeout |
限时执行命令 | timeout 10s command |
| 165 | sleep |
延迟指定时间 | sleep 5, sleep 2h |
| 166 | wait |
等待进程完成 | wait pid |
| 167 | true |
返回成功状态 | true |
| 168 | false |
返回失败状态 | false |
| 169 | shred |
安全删除文件 | shred -u file |
| 170 | md5sum |
计算MD5校验和 | md5sum file |
| 171 | sha256sum |
计算SHA256校验和 | sha256sum file |
| 172 | base64 |
Base64编解码 | `echo "text" |
| 173 | uuencode |
编码文件 | uuencode file filename |
| 174 | uudecode |
解码文件 | uudecode file |
| 175 | locale |
显示本地化设置 | locale, locale -a |
| 176 | iconv |
字符编码转换 | iconv -f gbk -t utf8 file |
快速参考索引
按功能分类
| 分类 | 常用命令 |
|---|---|
| 📁 文件和目录操作 | ls, cd, pwd, mkdir, rm, cp, mv, touch, ln, tree, file, stat, basename, dirname |
| 📝 文本查看和编辑 | cat, less, more, head, tail, vim, nano, echo, tee |
| 🔍 搜索和查找 | grep, find, which, whereis, locate, ack, ag |
| 📊 文本处理 | sed, awk, cut, paste, sort, uniq, wc, tr, strings |
| 🗜️ 压缩和归档 | tar, gzip, gunzip, bzip2, zip, unzip, xz, 7z, rar, unrar |
| 🌐 网络 | ping, ssh, scp, wget, curl, ifconfig, ip, netstat, ss, nslookup, dig, traceroute, rsync, nc, tcpdump, nmap |
| 👤 用户和权限 | chmod, chown, sudo, su, useradd, usermod, userdel, passwd, whoami, id, groups |
| 💻 进程管理 | ps, top, htop, kill, pkill, pgrep, jobs, bg, fg, nohup, screen, tmux, nice, renice |
| 💾 系统信息和监控 | df, du, free, uptime, uname, hostname, vmstat, iostat, sar, dmesg, lsof, w, who |
| 🔧 系统管理 | systemctl, service, journalctl, crontab, at, mount, umount, shutdown, reboot |
| 📦 包管理 | apt, apt-get, yum, dnf, rpm, dpkg, pacman, snap, flatpak |
| 🐋 容器和虚拟化 | docker, docker-compose, kubectl, podman |
| 🔨 开发工具 | git, gcc, make, gdb, python, node, npm, pip |
常用快捷键
Bash Shell快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + C |
终止当前命令 |
Ctrl + Z |
暂停当前命令 |
Ctrl + D |
退出当前Shell或EOF |
Ctrl + L |
清屏 |
Ctrl + A |
光标移到行首 |
Ctrl + E |
光标移到行尾 |
Ctrl + U |
删除光标前的内容 |
Ctrl + K |
删除光标后的内容 |
Ctrl + W |
删除光标前一个单词 |
Ctrl + R |
搜索历史命令 |
Ctrl + P |
上一条命令 |
Ctrl + N |
下一条命令 |
Tab |
自动补全 |
!! |
执行上一条命令 |
!$ |
上一条命令的最后参数 |
管道和重定向
| 符号 | 说明 | 示例 |
|---|---|---|
| ` | ` | 管道,前一命令输出作为后一命令输入 |
> |
重定向输出(覆盖) | echo "text" > file.txt |
>> |
重定向输出(追加) | echo "text" >> file.txt |
< |
重定向输入 | command < input.txt |
2> |
重定向错误输出 | command 2> error.log |
&> |
重定向所有输出 | command &> all.log |
2>&1 |
错误输出重定向到标准输出 | command > out.txt 2>&1 |
<<EOF |
Here文档 | cat <<EOF > file |
通配符和模式
| 符号 | 说明 | 示例 |
|---|---|---|
* |
匹配任意字符 | ls *.txt |
? |
匹配单个字符 | ls file?.txt |
[abc] |
匹配括号中任意字符 | ls file[123].txt |
[a-z] |
匹配范围内字符 | ls [a-z]*.txt |
[!abc] |
匹配不在括号中的字符 | ls [!0-9]* |
{a,b} |
大括号展开 | cp file.{txt,bak} |
常用组合命令示例
文件查找和处理
bash
# 查找大于100M的文件
find / -type f -size +100M -exec ls -lh {} \;
# 查找最近7天修改的文件
find . -type f -mtime -7
# 查找并删除临时文件
find . -name "*.tmp" -delete
find /tmp -type f -mtime +7 -delete
# 查找空文件和空目录
find . -type f -empty
find . -type d -empty
# 按大小排序显示文件
find . -type f -exec du -h {} + | sort -rh | head -20
# 查找特定大小范围的文件
find . -type f -size +10M -size -50M
# 查找并压缩日志文件
find /var/log -name "*.log" -mtime +30 -exec gzip {} \;
# 统计目录下文件类型分布
find . -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn
# 批量重命名文件(txt改为md)
for f in *.txt; do mv "$f" "${f%.txt}.md"; done
# 批量重命名(添加前缀)
for f in *.jpg; do mv "$f" "IMG_$f"; done
# 批量修改文件扩展名为小写
for f in *.[A-Z]*; do mv "$f" "$(echo $f | tr '[:upper:]' '[:lower:]')"; done
# 递归查找包含特定文本的文件
grep -r "pattern" /path --include="*.txt"
grep -rl "ERROR" /var/log | xargs ls -lh
# 查找重复文件(基于MD5)
find . -type f -exec md5sum {} + | sort | uniq -w32 -dD
文本处理和统计
bash
# 统计文件行数
wc -l file.txt
find . -name "*.py" | xargs wc -l | sort -n
# 统计代码行数(排除空行和注释)
grep -v "^#\|^$" script.sh | wc -l
# 提取第2列数据
awk '{print $2}' file.txt
cut -d: -f1 /etc/passwd
# 去重并统计
sort file.txt | uniq -c | sort -rn
# 统计单词频率
cat file.txt | tr -s ' ' '\n' | sort | uniq -c | sort -rn | head -10
# 提取IP地址
grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" access.log | sort | uniq
# 批量替换文件内容
sed -i 's/old_text/new_text/g' file.txt
find . -name "*.txt" -exec sed -i 's/old/new/g' {} +
# 删除空行
sed '/^$/d' file.txt
# 删除行首空格
sed 's/^[ \t]*//' file.txt
# 在文件每行前添加行号
nl file.txt
cat -n file.txt
# 合并多行为一行
paste -sd ',' file.txt
# 按列合并文件
paste file1.txt file2.txt
# 提取文件的特定行
sed -n '10,20p' file.txt
awk 'NR>=10 && NR<=20' file.txt
日志分析
bash
# 查看实时日志
tail -f /var/log/syslog
tail -f /var/log/nginx/access.log
# 查看最后100行日志
tail -n 100 /var/log/syslog
# 统计日志中的错误数量
grep -c "ERROR" /var/log/app.log
# 查找包含ERROR的行及上下文
grep -C 3 "ERROR" /var/log/app.log
# 统计访问IP及次数
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10
# 统计最耗时的请求
awk '{print $NF, $7}' access.log | sort -rn | head -10
# 分析HTTP状态码分布
awk '{print $9}' access.log | sort | uniq -c | sort -rn
# 统计每小时的请求量
awk '{print $4}' access.log | cut -d: -f1-2 | sort | uniq -c
# 查找特定时间段的日志
sed -n '/2024-01-01 10:00/,/2024-01-01 11:00/p' app.log
awk '/2024-01-01 10:00/,/2024-01-01 11:00/' app.log
# 监控日志关键字
tail -f /var/log/syslog | grep --color=auto "ERROR\|WARN"
# 统计日志文件大小
du -sh /var/log/* | sort -rh | head -10
# 压缩旧日志
find /var/log -name "*.log" -mtime +7 -exec gzip {} \;
系统监控和性能
bash
# 查看CPU占用最高的10个进程
ps aux --sort=-%cpu | head -11
# 查看内存占用最高的10个进程
ps aux --sort=-%mem | head -11
# 持续监控CPU和内存
watch -n 1 'ps aux --sort=-%cpu | head -10'
# 查看系统负载
uptime
top -bn1 | head -5
w
# 监控磁盘IO
iostat -x 1
iotop -o
# 查看进程树
ps auxf
pstree -p
# 查找占用CPU的进程
top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d% -f1
# 统计进程数量
ps aux | wc -l
# 查看僵尸进程
ps aux | awk '$8=="Z"'
ps -eo pid,stat,cmd | grep "^[0-9]* Z"
# 监控网络流量
iftop
nethogs
vnstat
# 查看系统调用
strace -c ls
strace -p <pid>
# 监控文件系统变化
watch -d -n 1 'df -h'
# 实时监控内存使用
watch -n 1 free -h
磁盘和存储
bash
# 查看磁盘使用情况
df -h
df -i # 查看inode使用
# 查看目录大小并排序
du -sh * | sort -rh
du -h --max-depth=1 / | sort -rh
# 查找大目录
du -h / | sort -rh | head -20
# 查看指定目录大小
du -sh /var/log
du -sh /home/*
# 清理系统缓存
sync && echo 3 > /proc/sys/vm/drop_caches
# 查看挂载点
df -hT
mount | column -t
# 查看磁盘IO统计
iostat -x 1 5
# 查找占用已删除文件的进程
lsof | grep deleted
# 查看块设备信息
lsblk -f
blkid
# 检查磁盘使用超过80%的分区
df -h | awk '$5+0 > 80 {print $0}'
网络诊断
bash
# 查看端口占用
netstat -tuln | grep :80
ss -tuln | grep :80
lsof -i :80
# 查看所有监听端口
netstat -tuln
ss -tuln
# 查看已建立的连接
netstat -antp | grep ESTABLISHED
ss -antp state established
# 查看连接数最多的IP
netstat -ant | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10
# 测试端口连通性
nc -zv hostname 22
telnet hostname 80
# 批量ping测试
for ip in 192.168.1.{1..254}; do ping -c 1 -W 1 $ip &>/dev/null && echo "$ip is up"; done
# 查看路由表
route -n
ip route show
# 跟踪路由
traceroute google.com
mtr google.com
# DNS查询
nslookup google.com
dig google.com
host google.com
# 查看网络接口流量
ifconfig
ip -s link
# 抓包分析
tcpdump -i eth0 port 80 -w capture.pcap
tcpdump -i any host 192.168.1.1 -n
# 扫描端口
nmap -p 1-1000 192.168.1.1
nmap -sV 192.168.1.0/24
# 查看当前连接状态统计
netstat -an | awk '/^tcp/ {print $6}' | sort | uniq -c
# 测试网速
wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test100.zip
curl -o /dev/null http://speedtest.wdc01.softlayer.com/downloads/test100.zip
# 查看网络连接
ss -s
netstat -s
进程和服务管理
bash
# 查看进程详细信息
ps aux | grep nginx
ps -ef | grep mysql
# 查找进程ID
pgrep nginx
pidof nginx
# 批量终止进程
pkill -f "process_name"
killall process_name
# 优雅终止进程
kill -15 <pid>
# 强制终止
kill -9 <pid>
# 查看进程打开的文件
lsof -p <pid>
# 查看端口被哪个进程占用
lsof -i :8080
netstat -tuln | grep :8080
# 后台运行程序
nohup command &> output.log &
command &
# 查看后台任务
jobs -l
# 将后台任务调到前台
fg %1
# 监控进程资源使用
top -p <pid>
htop -p <pid>
# 查看进程线程
ps -eLf | grep <pid>
top -H -p <pid>
# 重启服务
systemctl restart nginx
service nginx restart
# 查看服务状态
systemctl status nginx
systemctl is-active nginx
# 设置开机自启
systemctl enable nginx
systemctl disable nginx
# 查看所有服务
systemctl list-units --type=service
用户和权限管理
bash
# 批量修改文件权限
chmod -R 755 /path/to/dir
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
# 批量修改所有者
chown -R user:group /path/to/dir
# 查找特定权限的文件
find / -perm 777
find / -perm /4000 # 查找SUID文件
# 查看用户登录历史
last
last -n 10
# 查看当前登录用户
who
w
users
# 查看用户组
groups username
id username
# 添加用户到组
usermod -aG groupname username
# 查看sudo权限
sudo -l
# 切换到其他用户
su - username
sudo -u username command
# 批量创建用户
for user in user1 user2 user3; do useradd -m $user; done
# 查看密码过期信息
chage -l username
# 锁定/解锁用户
passwd -l username
passwd -u username
备份和同步
bash
# 使用tar备份
tar -czf backup_$(date +%Y%m%d).tar.gz /path/to/backup
# 增量备份
rsync -av --delete /source/ /backup/
# 远程备份
rsync -avz -e ssh /local/path user@remote:/remote/path
# 排除特定文件的备份
tar --exclude='*.log' --exclude='tmp' -czf backup.tar.gz /path
# 定时备份脚本示例
#!/bin/bash
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d_%H%M%S)
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz /data
# 同步并显示进度
rsync -av --progress /source/ /dest/
# 只同步新文件
rsync -av --update /source/ /dest/
# 镜像同步(删除目标多余文件)
rsync -av --delete /source/ /dest/
# 限制传输速度
rsync -av --bwlimit=1000 /source/ /dest/
# 使用scp复制整个目录
scp -r /local/dir user@host:/remote/path
# 断点续传下载
wget -c http://example.com/large_file.iso
curl -C - -O http://example.com/large_file.iso
系统维护
bash
# 清理包缓存
apt clean
apt autoclean
apt autoremove
# 查找并删除旧内核
dpkg --list | grep linux-image
apt remove linux-image-x.x.x-xx-generic
# 清理日志
journalctl --vacuum-time=7d
journalctl --vacuum-size=100M
# 查看系统启动时间
systemd-analyze
systemd-analyze blame
# 查看系统信息
uname -a
cat /etc/os-release
lsb_release -a
# 查看硬件信息
lscpu
lsmem
lsblk
lspci
lsusb
# 查看系统日志
journalctl -xe
journalctl -u nginx -f
journalctl --since "2024-01-01" --until "2024-01-02"
# 检查系统错误
dmesg | grep -i error
journalctl -p err -b
# 更新系统
apt update && apt upgrade -y
yum update -y
# 搜索软件包
apt search package_name
yum search package_name
开发相关
bash
# 统计代码行数
find . -name "*.py" | xargs wc -l | sort -n
cloc .
# Git相关
git log --oneline --graph --all
git log --author="username" --since="2024-01-01"
git diff --stat
git log --pretty=format:"%h %an %ar - %s"
# 查找包含某个字符串的提交
git log -S "search_string"
# 批量处理Git仓库
find . -name ".git" -type d | while read dir; do cd ${dir}/..; git pull; cd -; done
# 编译和构建
make -j$(nproc) # 使用所有CPU核心编译
time make # 测量编译时间
# 查找Python进程
ps aux | grep python
# 运行Python HTTP服务器
python3 -m http.server 8000
python2 -m SimpleHTTPServer 8000
# Node.js进程管理
pm2 list
pm2 logs
pm2 restart all
# Docker相关
docker ps -a
docker images
docker logs -f container_name
docker exec -it container_name bash
docker system prune -a # 清理未使用的镜像和容器
# 查看Docker容器资源使用
docker stats
# 批量停止容器
docker stop $(docker ps -q)
# 批量删除镜像
docker rmi $(docker images -q)
性能测试
bash
# 测试磁盘写入速度
dd if=/dev/zero of=testfile bs=1M count=1024 oflag=direct
# 测试磁盘读取速度
dd if=testfile of=/dev/null bs=1M count=1024 iflag=direct
# 压力测试CPU
stress --cpu 8 --timeout 60s
# 内存压力测试
stress --vm 2 --vm-bytes 1G --timeout 60s
# 网络带宽测试(需要iperf)
iperf -s # 服务器端
iperf -c server_ip # 客户端
# Web服务器压力测试
ab -n 1000 -c 10 http://localhost/
实用技巧
bash
# 快速创建多级目录
mkdir -p project/{src,bin,doc,test}
# 快速备份文件
cp file.txt{,.bak}
# 比较两个目录
diff -r dir1 dir2
# 查看命令历史并执行
history | grep ssh
!123 # 执行历史中第123条命令
!! # 执行上一条命令
!$ # 上一条命令的最后一个参数
# 生成随机密码
openssl rand -base64 12
tr -dc A-Za-z0-9 </dev/urandom | head -c 16
# 查看文件的MD5/SHA256
md5sum file.txt
sha256sum file.txt
# 批量重命名(添加日期前缀)
for f in *; do mv "$f" "$(date +%Y%m%d)_$f"; done
# 监控命令执行
watch -n 1 'ps aux | grep nginx'
# 并行执行命令
cat hosts.txt | xargs -P 10 -I {} ssh {} 'uptime'
# 计算表达式
echo "scale=2; 22/7" | bc
expr 5 + 3
# 生成序列
seq 1 10
seq 1 2 10 # 步长为2
# JSON格式化
cat file.json | python -m json.tool
cat file.json | jq '.'
# 提取压缩包并保持目录结构
tar -xzf archive.tar.gz -C /target/directory
# 创建当前目录的备份
tar -czf ../backup_$(basename $PWD)_$(date +%Y%m%d).tar.gz .
# 监控文件变化
inotifywait -m /path/to/watch
# 计算文件数量
find . -type f | wc -l
# 生成文件列表
ls -R > file_list.txt
tree -L 3 > directory_structure.txt