外观
Liunx常用命令
约 1781 字大约 6 分钟
Linux
2025-07-03
日常命令
#查找删除指定大小的
# +:大于指定大小 -:小于指定大小的文件 不加符号就是等于
#单位:b(块、默认)、c(字节)、k(KB)、M(MB)、G(GB)
-size [+/-]数值[单位]
# 查找当前目录下大小为354字节的普通文件,列出详情
find . -maxdepth 1 -type f -size 354c -ls
# -type f 只匹配普通文件(排除目录、链接、设备文件等)
# 删除当前目录下354字节的普通文件(不递归子目录)
find . -maxdepth 1 -type f -size 354c -delete解析 > dev/null 2>&1
挨着解析:
>: 重定向符dev/null: Linux的黑洞文件,任何写入他的数据都会被丢弃2>&1: 将标准错误重定向到标准输出 (将标准错误也重定向到和标准输出一样的地方)等价于&>;: 命令结束符
比如这样一句命令:pnpm --version &> /dev/null; 综合起来就是:
- 终端不会有任何输出
- 标准输出
10.32.1与错误输出command not found(pnpm没安装时提示)都被丢进了dev/null
- 标准输出
- 该命令是否执行成功是由返回的可以通过
$0得到上一条命令的退出状态码- 执行成功返回
0,失败一般返回127
- 执行成功返回
pnpm --version >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "pnpm 已安装"
else
echo "pnpm 未安装,请先安装 pnpm"
fi
########################### 或者 ################################
if pnpm --version >/dev/null 2>&1; then
echo "=== pnpm 已存在,版本:$(pnpm --version) ==="
else
echo "=== pnpm 不存在 ==="
fi退出码 vs 布尔值
在其他编程语言中0就是false,取反就是true;
但在 Shell 脚本中,情况完全相反,Shell 中命令的退出码设计初衷是 0 一切正常,没有错误,非0 表示出错了,错误码是 X。
在 if 判断中
- 退出码
0= 成功 =true - 退出码
非0= 失败 =false
网络命令
ip addr show ens33 #查看某个网卡
netstat -tnlp | grep :80 #查看网络端口安装命令
apt install net-tools #安装网络工具一、文件与目录操作(20 个)
- ls:列出目录内容
- cd:切换工作目录
- pwd:显示当前目录路径
- mkdir:创建新目录
- rmdir:删除空目录
- cp:复制文件/目录
- mv:移动或重命名文件/目录
- rm:删除文件/目录(慎用 -r 递归删除)
- touch:创建空文件或更新文件时间戳
- cat:查看文件内容
- more / less:分页查看文件(less 支持上下滚动)
- head:显示文件头部内容(默认前 10 行)
- tail:显示文件尾部内容(常用 -f 跟踪日志)
- find:搜索文件/目录(支持条件过滤)
- locate:基于数据库快速查找文件
- ln:创建文件链接(-s 创建软链接)
- chmod:修改文件权限(如 chmod 755 file)
- chown:修改文件所有者(如 chown user:group file)
- chgrp:修改文件所属组
- file:检测文件类型
二、用户与权限管理(10 个)
- passwd:修改用户密码
- su:切换用户身份
- sudo:以超级用户权限执行命令
- useradd / adduser:添加新用户
- userdel:删除用户
- usermod:修改用户属性
- groupadd:创建用户组
- groupdel:删除用户组
- groups:显示用户所属组
- id:显示用户 ID 及组信息
三、文本处理与搜索(15 个)
- grep:文本搜索(支持正则,如 grep "error" log.txt)
- awk:文本分析/格式化工具
- sed:流编辑器(文本替换/删除,如 sed 's/old/new/g')
- cut:按列提取文本(如 cut -d: -f1 /etc/passwd)
- sort:文本排序
- uniq:去除重复行(常与 sort 联用)
- wc:统计行数/单词数/字节数(-l 统计行数)
- diff:比较文件差异
- comm:逐行比较两个有序文件
- echo:输出文本到终端
- printf:格式化输出文本
- tee:同时输出到屏幕和文件(如 ls | tee output.txt)
- tr:字符替换/删除(如 tr 'a-z' 'A-Z')
- paste:合并文件行
- nl:显示文件内容并添加行号
四、系统监控与进程管理(15 个)
- top:实时动态查看系统进程/资源占用
- -c cpu和内存
- ps:查看进程快照(常用 ps aux)
- kill:终止进程(如 kill -9 PID)
- pkill:按进程名终止
- free:显示内存使用情况(-h 人性化显示)
- df:查看磁盘空间(-h 显示易读单位)
- du:查看目录/文件大小(-sh * 查看当前目录大小)
- uptime:显示系统运行时间及负载
- uname:显示系统信息(-a 查看全部)
- hostname:显示或设置主机名
- dmesg:查看内核日志
- vmstat:报告虚拟内存统计
- iostat:监控磁盘 I/O 性能
- lsof:列出打开的文件(排查占用)
- nohup:后台运行程序(忽略挂断信号)
五、网络管理(15 个)
- ping:测试网络连通性
- ifconfig / ip:配置网络接口(ip 更现代)
- netstat:显示网络连接/路由表(常用 -tuln)
- ss:替代 netstat 的套接字统计工具
- traceroute / tracepath:跟踪数据包路由路径
- dig / nslookup:DNS 查询工具
- route:查看/设置路由表
- ssh:远程安全登录
- scp:安全远程文件复制
- wget / curl:下载文件或访问 API(curl 更强大)
- ftp / sftp:文件传输协议
- telnet:远程登录(不安全,建议用 ssh)
- nc (netcat):网络调试工具(端口扫描/数据传输)
- tcpdump:网络抓包分析
- nmcli:管理 NetworkManager 连接(配置 WiFi 等)
六、压缩与归档(7 个)
- tar:打包/解包文件
- 打包:tar -cvf archive.tar dir/ dir2/
- 解包:tar -xvf archive.tar
- 压缩:tar -zcvf archive.tar.gz dir/(gzip)
- 解压:tar -zxvf archive.tar.gz
- 压缩是分了两部的先归档(.tar代表多个文件),再压缩(.gz)
- gzip / gunzip:gzip 格式压缩/解压
- zip / unzip:zip 格式压缩/解压
- bzip2 / bunzip2:bzip2 格式压缩(高压缩比)
- xz / unxz:xz 格式压缩(更高压缩比)
- zcat / bzcat:直接查看压缩文本内容
- 7z:支持多格式压缩/解压(需安装 p7zip)
七、系统维护与开发(18 个)
- shutdown:关机/重启(shutdown -h now 立即关机)
- reboot:重启系统
- crontab:定时任务管理(-e 编辑任务)
- systemctl:管理系统服务(如 systemctl start nginx)
- journalctl:查看 systemd 日志(-u 按服务筛选)
- mount / umount:挂载/卸载文件系统
- fdisk / parted:磁盘分区工具
- lsblk:列出块设备信息(磁盘/分区)
- blkid:显示块设备 UUID
- alias:设置命令别名(如 alias ll='ls -l')
- history:查看命令历史记录
- man:查看命令手册(如 man ls)
- which / whereis:查找命令路径
- gcc:C/C++编译器
- make:代码编译管理
- git:版本控制工具
- docker:容器管理命令
- python3 / pip3:Python 解释器及包管理
