作为Linux开发人员,这里是最常用的命令分类总结:
Linux开发人员常用命令全面分类
文件系统操作
-
ls- 列出文件和目录ls # 简单列出文件和文件夹 ls -l # 详细列表,显示权限、所有者、大小等 ls -a # 列出所有文件,包括隐藏的配置文件 -
cd- 切换目录 -
pwd- 显示当前路径 -
cp- 复制文件/目录 -
mv- 移动/重命名文件 -
rm- 删除文件/目录 -
mkdir- 创建目录mkdir my_folder # 在当前目录创建名为 ‘my_folder’ 的文件夹 mkdir -p project/docs # 创建嵌套目录(-p 确保父目录不存在时也会被创建) -
rmdir- 删除空目录 -
touch- 创建空文件 -
find- 查找文件-name "pattern" - 按文件名匹配(区分大小写) -iname "pattern" - 按文件名匹配(不区分大小写) -regex "pattern" - 使用正则表达式 # 在当前目录找所有 .js 文件 find . -name "*.js" # 在 src 目录找所有 .ts 文件 find src -name "*.ts" # 不区分大小写找配置文件 find . -iname "readme.md" -
locate- 快速定位文件-i:忽略大小写 -l N:只显示前 N 个结果 -b:只匹配文件名(不匹配路径) -c:只显示匹配数量,不显示具体文件 # 1. 快速找一个已知文件在哪 locate settings.py # 2. 查看系统中有多少某种类型的文件 locate -c ".gitignore" # 3. 找安装的软件在哪里 locate nginx -
ln- 创建链接 -
stat- 文件详细信息# 显示文件的详细信息 stat filename.txt # 显示目录的详细信息 stat /home/user
文本处理
-
cat- 查看文件内容 -
less/more- 分页查看文件 -
head- 查看文件头部 -
tail- 查看文件尾部# 查看最后10行(默认) tail filename.log # 查看最后20行 tail -n 20 app.log # 实时追踪日志(非常实用!) tail -f app.log # 实时追踪并显示行号 tail -fn 20 app.log -
grep- 文本搜索# 在文件中搜索关键词 grep "error" app.log # 搜索时忽略大小写 grep -i "error" app.log # 显示行号 grep -n "error" app.js # 在多个文件中搜索 grep "TODO" *.js grep "TODO" *.js 这里正则表达式不能用于文件匹配,但能用shell通配符:*匹配任意多字符,?指定一个字符。 # 显示匹配行的前后内容 grep -A 3 -B 2 "TODO" app.log # 显示匹配行及前后3行、前2行 # 搜索同时包含 A 和 B 的行 grep "error" app.log | grep "timeout" grep -E "error|timeout" app.log # 搜索包含 A 但不包含 B 的行 grep "error" app.log | grep -v "test" # 搜索 A 或 B grep "error" app.log; grep "warning" app.log -
sed- 流编辑器 -
awk- 文本处理语言 -
sort- 排序# 按字母顺序排序 sort file.txt # 按数字大小排序 sort -n numbers.txt # 反向排序 sort -r file.txt # 去重排序(同时去重) sort -u file.txt -
uniq- 去重# 统计重复次数(最实用) uniq -c file.txt # 只显示重复的行 uniq -d file.txt # 只显示唯一的行 uniq -u file.txt # 忽略大小写 uniq -i file.txt -
cut- 字段提取 -
tr- 字符替换 -
wc- 统计行数/字数
文件编辑
vim/vi- Vim编辑器nano- 简单文本编辑器emacs- Emacs编辑器
进程管理
-
ps- 查看进程# 看所有进程 ps aux USER(进程所有者) PID(进程ID) %CPU(CPU占用率) %MEM(内存占用率) VSZ(虚拟内存) RSS(物理内存) TTY(终端) STAT(进程状态) START(启动时间) TIME(CPU时间) COMMAND(命令) root 1 0.0 0.1 169256 13004 ? Ss Oct14 0:12 /sbin/init # 查看完整进程树 ps -ef UID(用户ID) PID(进程ID) PPID(父进程ID) C(CPU利用率) STIME(启动时间) TTY(终端) TIME(CPU时间) CMD(完整命令) root 1 0 0 Oct14 ? 00:00:12 /sbin/init STAT 进程状态: R - 运行中 S - 睡眠中 D - 不可中断睡眠 Z - 僵尸进程 T - 已停止 # 最常用 ps aux | grep 进程名 -
top- 实时进程监控# 启动 top(默认3秒刷新一次) top PID(进程ID) USER(进程所有者) PR(优先级) NI(友好值) VIRT(虚拟内存) RES(物理内存) SHR(共享内存) S(进程状态) %CPU(CPU使用率) %MEM(内存使用率) TIME+(累计CPU时间) COMMAND(命令名称) 1234 root 20 0 169256 13004 8904 S 0.0 0.1 0:12.34 systemd 5678 mysql 20 0 2123456 512304 12345 S 5.5 6.3 10:30.15 mysqld # 按内存使用排序启动 top -o %MEM -
htop- 增强版进程监控# Ubuntu/Debian sudo apt install htop # CentOS/RHEL sudo yum install htop # macOS brew install htop htop [1/2][||||||||||||||||||||| 50.5%] Tasks: 150, 125 thr; 1 running [2/2][||||||||||| 25.2%] Load average: 0.05 0.10 0.15 [Memory:||||||||||||||||||| 2.1G/8G] Uptime: 10 days, 15:30:25 [Swp: | 100M/2G] PID USER PRI NI VIRT RES SHR CPU% MEM% TIME+ Command 1234 root 20 0 169M 13M 8.7M 0.0 0.1 0:12.34 systemd 5678 mysql 20 0 2.1G 512M 12M 5.5 6.3 10:30.15 mysqld 上方顶部状态栏: CPU使用率 - 每个核心的条形图 内存使用 - 已用/总内存 交换空间 - 已用/总交换空间 系统负载 - 1/5/15分钟平均值 运行时间 - 系统运行时长 -
kill- 终止进程 -
killall- 按名称终止进程 -
jobs- 查看后台任务 -
bg- 将任务放到后台 -
fg- 将后台任务调至前台 -
nohup- 后台运行不挂断 -
screen- 终端会话管理 -
tmux- 终端复用器
系统信息
uname- 系统信息whoami- 当前用户id- 用户ID信息uptime- 系统运行时间date- 日期时间cal- 日历df- 磁盘使用情况du- 目录大小free- 内存使用情况lscpu- CPU信息lsblk- 块设备信息
权限管理
chmod- 修改文件权限chown- 修改文件所有者chgrp- 修改文件所属组umask- 设置默认权限sudo- 以超级用户权限执行su- 切换用户su- 进入root权限exit- 退出su权限
网络相关
ping- 网络连通性测试curl- 数据传输工具wget- 文件下载ssh- 远程登录scp- 远程文件复制rsync- 文件同步netstat- 网络连接状态ss- 现代版netstatiptables- 防火墙管理tcpdump- 网络抓包nmap- 端口扫描
压缩归档
tar- 归档文件gzip/gunzip- gzip压缩/解压zip/unzip- zip压缩/解压7z- 7zip压缩工具
环境变量
export- 设置环境变量env- 查看所有环境变量which- 查找命令位置whereis- 查找二进制、源码、手册type- 显示命令类型alias- 设置命令别名
包管理
apt/apt-get- Debian/Ubuntu包管理yum- RedHat/CentOS包管理dnf- Fedora包管理pip- Python包管理npm- Node.js包管理yarn- JavaScript包管理brew- macOS包管理
版本控制
git- Git版本控制svn- SVN版本控制
监控调试
strace- 系统调用跟踪ltrace- 库函数调用跟踪lsof- 查看打开的文件iostat- IO统计vmstat- 虚拟内存统计sar- 系统活动报告dmesg- 内核消息
磁盘管理
mount/umount- 挂载/卸载文件系统fdisk- 磁盘分区parted- 分区工具mkfs- 创建文件系统fsck- 文件系统检查
定时任务
crontab- 定时任务管理at- 一次性定时任务
输入输出重定向
>- 输出重定向>>- 追加输出<- 输入重定向|- 管道tee- 同时输出到文件和屏幕
字符串操作
echo- 输出文本printf- 格式化输出basename- 提取文件名dirname- 提取目录名
数据库
mysql- MySQL客户端psql- PostgreSQL客户端sqlite3- SQLite客户端
101万+

被折叠的 条评论
为什么被折叠?



