Linux 常用高级命令详解与实践
which:定位可执行文件路径
该命令用于查找系统中某个命令对应的二进制文件位置,常用于确认命令来源。
which ls
# 输出示例:/bin/ls
which python3
# 输出示例:/usr/bin/python3
find:强大的文件搜索工具
支持按名称、大小、类型等多种条件递归查找文件。
- -name:按文件名匹配(支持通配符)
- -size:根据文件体积筛选(+表示大于,-表示小于)
- -type:按类型过滤(f为普通文件,d为目录)
# 搜索当前目录下所有以.txt结尾的文件
find . -name "*.txt"
# 查找/home中超过100MB的文件
find /home -size +100M
# 搜索/etc中扩展名为.conf的配置文件
find /etc -name "*.conf"
# 精确查找名为config.yaml的文件
find / -name "config.yaml" 2>/dev/null
df:磁盘空间使用情况查看
显示各挂载点的磁盘占用概览。
# 人性化格式展示磁盘使用率
df -h
# 仅列出ext4类型的文件系统
df -t ext4
# 显示inode使用情况
df -i
du:目录和文件空间分析
统计指定路径下的磁盘占用详情。
# 统计当前目录下各子项大小
du -sh *
# 查看某用户主目录总用量
du -sh /home/john
# 展示日志目录层级占用分布
du -h --max-depth=1 /var/log
grep:文本内容检索利器
在文件或数据流中搜索匹配特定模式的行。
- -n:输出匹配行的行号
- -i:忽略大小写进行匹配
- -v:反选,显示不匹配的行
# 在文档中查找关键词"error"
grep 'error' app.log
# 结合管道筛选进程信息
ps aux | grep nginx
# 多条件联合过滤(交集)
cat access.log | grep '404' | grep 'GET'
# 忽略大小写搜索并标出行号
grep -ni 'warning' system.log
# 列出包含.py的运行进程
ps -ef | grep '\.py'
echo:字符串输出与重定向操作
将文本输出至终端或写入文件,配合重定向符号实现内容写入。
- >:覆盖写入目标文件
- >>:追加内容到文件末尾
# 打印欢迎信息
echo "Welcome to Linux!"
# 创建新文件并写入内容
echo "初始化配置" > config.ini
# 向日志文件追加时间戳
echo "$(date): 服务启动" >> server.log
# 写入多行内容
echo -e "项目A\n项目B\n项目C" > list.txt
vim:高效文本编辑器操作指南
Vim具备三种核心模式,适用于快速编辑任务。
- 普通模式:默认状态,支持快捷键操作(如 dd 删除行,yy 复制,p 粘贴,u 撤销)
- 插入模式:按下 i/a/o 进入编辑状态
- 命令行模式:输入 : 开头指令,例如:
- :w — 保存文件
- :q — 退出编辑器
- :wq 或 :x — 保存并退出
- :q! — 强制放弃更改
- :set nu — 显示行号
# 编辑主机配置文件
vim /etc/hosts
# 常见操作流程
i # 进入插入模式开始编辑
[输入内容]
Esc # 返回普通模式
:wq # 保存修改后退出
用户账户管理
管理系统级用户账号及其权限。
# 新增用户账户
useradd alice
useradd bob
# 设置对应密码
passwd alice
# 查询系统所有用户信息
getent passwd
# 查看当前登录用户身份
id
id alice
用户切换与权限提升
# 切换至其他用户环境
su alice
# 切换至root管理员
su -
# 使用sudo临时获取高权限
sudo systemctl restart docker
# 安全地编辑sudo权限列表
sudo visudo
删除用户账户
# 移除用户但保留其文件
userdel charlie
# 彻底删除用户及其家目录
userdel -r david
用户组管理
通过组机制实现权限批量分配。
# 创建新的用户组
groupadd developers
# 查看所有组信息
getent group
# 将用户加入附加组
usermod -aG developers alice
# 删除指定用户组
groupdel developers
文件权限控制
使用 chmod 和 chown 调整访问策略。
# 权限数字含义:
# 读(r)=4, 写(w)=2, 执行(x)=1
chmod +x script.sh # 添加执行权限
chmod 755 script.sh # 所有者可读写执行,其余人可读执行
chmod 644 document.txt # 所有者可读写,其他人只读
# 递归设置目录权限
chmod -R 755 /opt/app/
# 修改文件归属
chown root:admin data.conf # 更改所有者和所属组
chown -R ubuntu:ubuntu /home/ubuntu/project
链接文件管理
创建软链接(符号链接)或硬链接共享文件引用。
# 创建软链接(类似快捷方式)
ln -s /var/log/nginx/error.log error_link
# 创建硬链接(指向同一inode)
ln original.txt hardlink_copy.txt
进程监控与管理
实时查看和控制系统运行中的程序。
# 列出全部运行进程
ps -ef
# 查看特定用户的进程
ps -u alice
# 显示进程树结构
pstree -p
# 动态监控资源消耗
top
历史命令操作技巧
提高命令行操作效率。
# 显示已执行命令记录
history
# 搜索历史中包含apt的操作
history | grep apt
# 执行第123条历史命令
!123
# 执行最近一次以ssh开头的命令
!ssh
# 启动逆向搜索(交互式)
Ctrl+R → 输入关键字查找
实用组合命令示例
# 查找所有日志文件并搜索错误信息
find . -name "*.log" -exec grep -l "Failed" {} \;
# 统计代码文件总行数
wc -l *.c *.h
# 对列表去重并排序
sort names.txt | uniq | sort
# 实时跟踪日志更新
tail -f /var/log/messages
通配符高级用法
# 匹配任意长度字符
cp *.pdf /backup/
# 单字符占位符
ls report?.docx
# 数字范围匹配
ls data[1-5].txt
# 多模式集合匹配
ls *.{jpg,png,gif}
以上命令构成了Linux日常运维的核心技能集。建议结合 man 手册深入学习每个命令的完整参数,例如:man find 或 man grep,以掌握更复杂的使用场景。