当前位置:首页 > 技术 > 正文内容

Linux 常用高级命令详解与实践

访客 技术 2026年5月28日 2

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 findman grep,以掌握更复杂的使用场景。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。