找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

5316

积分

0

好友

703

主题
发表于 1 小时前 | 查看: 2| 回复: 0

Shell 命令是运维工作的核心工具,熟练掌握文件操作与内容查看类命令,能大幅提升工作效率,减少操作失误。下面结合实际场景,补充进阶用法、扩展实例及注意事项,让内容更具连贯性和实用性。

一、文件操作命令

文件操作是 Shell 日常使用的基础,涵盖文件及目录的创建、删除、复制、移动、查找、链接等核心操作。以下补充进阶用法与场景化说明,覆盖更复杂的运维需求。

核心命令及用法

  • ls:列出目录内容。常用 -l 查看详细信息(权限、大小、修改时间等),-a 显示隐藏文件(以“.”开头),-h 以人类可读格式显示大小。
    实例:ls -lah /home/user,同时查看隐藏文件、详细信息及人性化大小,快速梳理目录全貌。

  • cd:切换工作目录。除基础切换外,cd - 可切换至上一次所在目录,适合在两个目录间频繁跳转。
    实例:在 /var/log 执行 cd /data 后,再执行 cd - 可快速返回 /var/log

  • pwd:显示当前目录的绝对路径。-P 参数可显示真实路径(忽略软链接)。
    实例:若当前目录是软链接,执行 pwd -P 可获取其指向的真实目录路径,避免混淆。

  • cp:复制文件或目录。-r 递归复制目录,-p 保留文件原有属性,-v 显示复制过程。
    实例:cp -rpv /data/backup /mnt/backup,将备份目录完整复制并显示进度,适用于重要数据迁移。

  • mv:移动文件/目录或重命名。可批量操作:mv file1.txt file2.txt /home/user/docs 一次移动多个文件;重命名时支持通配符,如 mv *.log log_202604/ 归档当前日志。

  • rm:删除文件或目录。-r 递归删除目录,-f 强制删除且不提示,-v 显示删除过程。
    实例:rm -rfv /tmp/old_data 会删除临时目录并列出删除内容。操作前务必用 ls 确认路径,避免误删。

  • mkdir:创建目录。-p 可递归创建多级目录,-m 在创建时指定权限。
    实例:mkdir -pm 755 /data/logs/nginx 一次性创建多层目录并预设权限为 755,适合服务部署前的准备。

  • rmdir:仅删除空目录。若目录非空会报错,可用 rm -rf 替代。-p 可递归删除多级空目录。
    实例:rmdir -p /data/empty1/empty2 若两个均为空目录,则一次性删除两个空目录。

  • touch:创建空文件或更新文件的时间戳。touch test{1..10}.txt 可批量生成 test1.txt 至 test10.txt;-a 仅更新访问时间,-m 仅更新修改时间,如 touch -a access.log

  • find:按条件查找文件/目录。常用:-size +100M 查找大于 100MB 的文件;-mtime -7 查找近 7 天修改过的日志;-perm 777 查找权限为 777 的文件,便于安全排查。
    实例:find /data -size +100M 快速定位大文件。

  • ln:创建链接文件。-s 创建软链接(类似快捷方式,源文件删除后失效),无参数则创建硬链接(共享 inode,源文件删除后仍可访问)。注意事项:软链接可跨文件系统,硬链接仅限同一文件系统。
    实例:ln -s /usr/bin/java /usr/bin/jdk 创建 Java 命令的快捷方式;ln /data/file.txt /home/file_link.txt 创建硬链接,即使源文件被删,链接仍有效。

小技巧:文件操作中可配合通配符(*?[])提升效率,例如 ls *.txt 列出所有文本文件,ls file?.log 匹配 file1.log、file2.log 等。

二、内容查看命令

日常运维免不了查看文件内容、统计信息、监控磁盘。以下补充进阶用法,覆盖日志分析、数据统计等场景。

核心命令及用法

  • cat:一次性输出文件全部内容,适用于小型文件。-n 显示行号,cat -n /etc/hosts 便于定位配置项;面对大文件可结合 more 分页:cat /var/log/messages | more

  • less:分页浏览,支持上下翻页、关键词检索(输入 /关键词n 下一个,N 上一个),q 退出。less +/error /var/log/nginx/error.log 打开文件直接定位到第一个 “error”,快速排查故障。

  • more:分页查看,仅向下翻页(空格翻页,Enter 逐行),q 退出。-n 指定每页行数,如 more -10 /var/log/messages 每页显示 10 行。

  • head:查看文件开头,默认 10 行。-n 指定行数,head -n -5 file.txt 可查看除最后 5 行外的所有内容。
    实例:head -n -10 /var/log/boot.log 排除末尾冗余行,快速获取系统启动概况。

  • tail:查看文件末尾,默认 10 行。-f 实时监控文件增长,-F(大写)更稳健:文件被删除重建后仍会继续监控,适合日志切割场景。
    实例:tail -F /var/log/nginx/access.log 持续跟踪访问日志。

  • wc:统计行数、单词数、字符数。-l 仅行数,-w 仅单词数,-c 仅字符数。
    实例:wc -l /var/log/access.log 统计请求量;wc -c test.txt 确认文件字符大小。

  • du:查看文件或目录占用空间。-h 人类可读,-s 汇总目录总大小。
    实例:du -sh /data/* 快速定位占用空间较大的子目录;du -ah /data 可列出所有文件及隐藏文件大小。

  • df:查看磁盘整体使用情况。-h 直观显示空间,-i 查看 inode 用量(inode 耗尽将无法创建新文件),-T 显示分区类型。
    实例:df -hT 同时获取各分区使用率、剩余空间及文件系统类型。

  • file:识别文件类型,区分文本、二进制、压缩等。-b 只显示类型不显示文件名。
    实例:file -b /usr/bin/ls 输出 “ELF 64-bit LSB executable”;file -b test.tar.gz 输出 “gzip compressed data”。

注意事项

  1. rm -rf 强制删除且不可恢复,执行前务必用 ls 确认路径,重要数据建议先备份。
  2. 查看 GB 级日志时,优先使用 lesstail,避免 cat 导致终端卡顿或内存激增。
  3. Shell 命令严格区分大小写,LSls 结果不同,参数亦需注意大小写。
  4. 使用 cpmv 操作重要文件前最好备份;跨磁盘操作需确认目标空间充足。
  5. 创建软链接推荐使用绝对路径,避免目录切换后失效;硬链接不能跨文件系统。
  6. find 在根目录等大范围查找时,建议用 -maxdepth 限制深度,如 find / -maxdepth 3 -name "*.log",减少系统开销。

掌握这些 Shell 基础命令与进阶技巧,无论是日常运维还是故障排查都能事半功倍。更多技术文档与避坑指南,欢迎前往 云栈社区 查阅。




上一篇:ChatGPT Images 2.0 刷屏背后:设计、版权、外包,正在被悄然淘汰
下一篇:芯片如何“洗澡”?中国石油G5级电子异丙醇突破封锁
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-25 10:36 , Processed in 0.879266 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表