概述
参考文档:GNU Coreutils Manual
coreutils是 GNU 的核心工具集,包含文件操作、文本查看与 shell 环境相关的上百个基础命令,几乎所有Linux发行版都预装历史上它由
fileutils、textutils、shellutils等包合并而来,ls --version输出里的GNU coreutils即归属证明按功能分三类:
flowchart LR A["coreutils"] --> B["文件操作"] A --> C["文本查看"] A --> D["身份与信息"] B --> B1["ls cp mv rm touch"] C --> C1["cat head tail"] D --> D1["pwd whoami hostname date"]
本文只讲"看一眼就会"的命令,
sort、xargs等需要专门学习的命令见sed、awk 与进阶 coreutils
快速开始
每个命令都可用
--help看简要用法,详细手册用man 命令:console$ ls --help $ man cat命令格式统一为
命令 选项 参数,多个短选项可合并:ls -lah等价于ls -l -a -h
身份与位置
pwd打印当前目录的绝对路径whoami打印当前用户名,hostname打印主机名ls列出目录内容,最常用的组合是-lah:-l长格式,逐行显示权限、链接数、属主、属组、大小与修改时间-a显示以.开头的隐藏文件-h以人类可读单位显示大小,如1.5K、2.3M-t按修改时间排序,配-r反转,找"最近改过的文件"-F给目录加/、可执行文件加*等类型后缀-1每行一个名字,给管道下游消费时干净
cd切换目录,注意它是 shell 内建命令而非 coreutils:cd -回到上一个目录cd ~或不带参数回到家目录
文件查看
cat顺序输出整个文件:-n显示行号-A显示所有不可见字符,^I是制表符、$是行尾,排查"看着一样其实不一样"的格式问题必备- 多个文件参数会依次拼接输出
head看开头,默认10行:-n 20指定行数,-c 100按字节数截取
tail看结尾,选项同head:-f持续追踪文件增长,看日志的经典用法-n +2从第2行输出到结尾,跳过表头常用
cat会一次读整个文件,大文件查看用head/tail或分页器less,less来自util-linux而非 coreutils
文件操作
touch更新文件时间戳,文件不存在时创建空文件mkdir创建目录,-p一次性创建多级路径且已存在不报错rmdir只能删除空目录,实际更常用rm -rcp复制文件或目录:-r递归复制目录,复制目录必须加-i覆盖前询问,-f强制覆盖-a归档模式,等价于-dR --preserve=all,保留权限、时间戳与链接,备份首选-u只在源比目标新时复制,可做简易同步
mv移动或重命名:mv a b是重命名,mv a dir/是移动进目录- 目标存在时默认直接覆盖,批量移动前先确认目标路径
-n不覆盖已存在文件,-u只移动更新的文件
rm删除文件:-r递归删除目录,-f忽略不存在并不再询问- 没有回收站,删了就是删了,脚本里慎用
rm -rf拼出来的路径
- 权限与链接相关命令(
chmod、ln等)见文件系统
相关阅读
- 查找工具(find、fd 与 rg):定位到文件之后再做这些操作
- sed、awk 与进阶 coreutils:文本流水线里的进阶命令