Shell 环境分类(不同系统默认解释器)
、Shell 基础内置命令详解date — 查看系统日期时间作用输出当前系统的日期、小时、分钟、秒、星期等完整时间信息。常用拓展用法date # 直接输出默认格式完整时间date %Y-%m-%d # 自定义格式年-月-日date %H:%M:%S # 自定义格式时:分:秒date -s “2026-07-02 20:00:00” # root权限修改系统时间2. echo — 内容打印输出基础规则后跟多个参数默认以空格分隔打印单引号 ’ ‘原样输出所有内容不解析变量、转义符双引号 可以解析变量、部分转义字符反斜杠 \ 转义符取消紧跟字符的特殊含义当作普通文本错误案例解析echo ‘jon’s world’问题原因第一个单引号从 jon 开始jon 中间的 ’ 提前闭合字符串后半段 s world’ 语法错乱终端进入等待输入状态。正确写法echo “jon’s world”echo jon’s\ world拓展常用用法echo $PATH # 打印环境变量echo -n “不换行输出” # -n 参数输出末尾不自动换行echo -e “第一行\n第二行” # -e 开启转义解析\n 代表换行3. man — 查看命令官方完整手册作用man 命令名 调出该命令最全面的官方英文帮助文档包含参数、语法、示例、版权说明。手册翻页操作空格向下翻一页回车向下一行q退出 man 手册界面/关键词向下搜索指定关键词轻量化替代方案命令名 --help输出精简中文/英文帮助适合快速查阅常用参数阅读成本更低示例ls --helpcd — 切换工作目录核心路径概念两个路径定义绝对路径永远以根目录 / 开头从系统最顶层目录完整定位无论当前在哪都能精准跳转例cd /usr/local/bin相对路径不以 / 开头基于当前所在目录进行跳转例当前在 /usr执行 cd local/bin 等价于 cd /usr/local/bin目录简写符号. 单个点当前所在目录… 两个点当前目录的上一级父目录~ 波浪号当前登录用户家目录简写最常用横杠回到上一次所在目录复杂路径示例拆解当前位置在系统根目录 /cd bin/…/bin/././…/bin拆解运算/bin → / → /bin → /bin → /bin → / → /bin最终执行完毕当前目录定位到 /binTab 自动补全技巧输入部分文件夹/命令按一次 Tab 自动补全唯一匹配内容连续按两次 Tab列出所有匹配候选项大幅减少手动输入拼写错误。PATH 环境变量 which 命令查询PATH 是什么PATH 是系统内置全局环境变量内部存储一组用冒号 : 分隔的目录列表。当你直接输入一个命令如 date、ls回车执行时系统会按先后顺序遍历 PATH 内所有目录查找对应可执行文件找到第一个匹配文件就运行后续同名文件不再检索。查看 PATH 内容echo $PATHwhich 命令查找命令真实路径语法which 命令名称示例which date输出示例/run/current-system/sw/bin/date也可以直接使用完整路径执行程序效果等同直接输入 date/run/current-system/sw/bin/date补充如果系统多个目录存在同名命令PATH 靠前目录的程序优先级更高。ls — 列出目录内文件、文件夹无参数默认查看当前目录所有内容搭配参数实现不同展示效果ls # 简略列出文件名ls -l # 长格式权限、所有者、大小、修改时间、文件名ls -a # 显示所有文件包含隐藏文件以 . 开头的文件默认隐藏ls -lh # 人性化单位展示文件大小KB/MBls /etc # 查看指定目录 /etc 内容三、文件处理专项命令文本查看、过滤、排序、替换、检索7. cat — 读取并输出文件全部内容基础用法cat test.txt # 一次性打印整个文件所有内容到终端cat file1 file2 # 连续打印多个文件内容适用场景小文件查看超大文件不推荐会刷屏。拓展小用法cat new.txt # 新建文件键盘录入内容CtrlD 结束输入8. sort — 按行文本排序默认以ASCII 字母顺序逐行升序排序不会修改原文件仅输出排序结果。sort test.txtsort -n num.txt # -n 参数按照数字大小排序避免 10 排在 2 前面sort -r test.txt # -r 倒序排序9. uniq — 去除连续重复行⚠️ 关键前提uniq 只能删除连续相邻重复行非连续重复无法自动去重通常搭配 sort 使用。uniq test.txtsort test.txt | uniq # 先排序再全局去重最常用组合uniq -c test.txt # -c 统计每行重复次数10. head / tail 截取文件首尾内容head查看文件开头语法head -n 行数 文件名head test.txt # 默认前10行head -n 5 test.txt # 查看前5行tail查看文件末尾日志排查高频命令tail test.txt # 默认末尾10行tail -n 8 test.txt # 查看末尾8行tail -f log.txt # -f 实时追踪文件新增内容查看实时日志CtrlC 退出11. grep — 文本关键词搜索匹配作用在文件中检索匹配指定字符串/正则表达式打印所有命中行基础语法grep “匹配关键词” 文件名grep “error” app.log # 查找包含 error 的行grep -i “error” app.log # -i 忽略大小写匹配grep -v “comment” test.txt # -v 反向匹配输出不包含关键词的行12. sed — 流式行编辑器批量替换主力工具核心用途批量修改、替换文件内容默认仅输出修改结果不改动原文件通用替换语法sed ‘s/原字符串/新字符串/修饰符’ 文件名示例解析sed ‘s/Windows/Linux/g’ open.txts/xxx/xxx/代表替换模式g 全局修饰符本行所有匹配内容全部替换不加 g 只替换每行第一个匹配词重要区分sed 替换规则内部支持正则表达式文件路径匹配不能用正则只能使用 glob 通配符*、?-i 参数直接修改原文件sed -i ‘s/a/b/g’ test.txt13. find — 递归查找文件根据文件名、大小、时间等条件遍历查找文件默认自动递归遍历所有子目录基础语法find 查找起始路径 筛选条件find /home -name “.txt # 在 /home 下查找所有后缀 .txt 文件find . -maxdepth 1 -name .sh”# --maxdepth 限制递归层级1只查当前目录不进子文件夹-exec 进阶用法找到文件后批量执行命令格式find 路径 条件 -exec 操作命令 {} ;示例查找到所有 .log 文件并删除find ./ -name “*.log” -exec rm {} ;输入 man find 查看完整复杂筛选参数。awk — 文本按列处理利器工作逻辑逐行读取文件 → 默认空格/制表符切割字段 → 按列做判断、运算、输出基础通用语法awk ‘判断条件{执行动作}’ 文件名内置变量$1 第一列、2第二列、2 第二列、2第二列、NF 最后一列