6、Linux常用命令-文件操作命令
1. 创建文件
a. touch:创建空文件或更新文件时间戳
作用:
- 若文件不存在,创建空文件;
- 若文件已存在,更新其 ”
-a最后访问时间” 或者 “-m最后修改时间”(不改变内容)。
示例:
touch 1.txt # 创建空文件1.txt
touch 1.txt 2.txt # 同时创建多个空文件
touch -d "2021-10-01" 1.txt # 创建文件并指定访问和修改时间

b. echo 重定向:创建含内容的文件
作用:通过 > 或 >> 重定向符号,将字符串写入文件(> 覆盖文件,>> 追加新一行内容)。
示例:
echo "Hello Linux" > 1.txt # 创建1.txt,写入内容“Hello Linux”(覆盖原有内容)
echo "Hello Wrold" >> 1.txt # 向1.txt追加新一行内容
c. cat:从标准输入创建文件
作用:通过 cat > 文件名 交互式输入内容,按 Ctrl+D 结束输入。 如果是已经存在的文件是全覆盖的输入
示例:
cat > 2.txt # 开始输入内容
ni hao
Linux
(按Ctrl+D结束)
2. 查看文件信息
a. stat:查看文件信息
作用:输出文件完整路径,文件大小,文件权限,文件访问、修改、创建时间
示例
stat /home/1.txt
| 输出内容 | 说明 |
|---|---|
File |
显示目标文件的名称(若执行 stat 时输入的是相对路径,此处显示相对路径;若为绝对路径,显示完整路径) |
Size |
文件的实际大小,以字节(Byte) 为单位(普通文件有效,目录 / 设备文件等可能显示特殊值) |
Blocks |
文件在磁盘上占用的物理块数量(每个块大小由文件系统决定,通常为 512 字节或 4096 字节)。注意:实际占用磁盘空间 = Blocks × 块大小(可能大于 Size,因磁盘按块分配,即使文件很小也会占用至少一个块) |
IO Block |
文件系统的块大小(单位字节),即磁盘操作的最小单位(如 4096 字节 = 4KB) |
文件类型 |
regular file普通文件(文本、二进制等),touch创建,标识:-directory目录,mkdir创建,标识:dsymbolic link符号链接(软链接),ln -s创建,标识:lcharacter special字符设备文件(如 /dev/tty),标识:cblock special块设备文件(如 /dev/sda),标识:bfifo管道文件,mkfifo 创建,标识:psocket套接字文件,标识:s可以用 file 文件名 的方式查看文件类型 |
Device |
存储文件的设备编号(由主设备号和次设备号组成),用于标识文件所在的物理设备(如硬盘分区)。格式为 “十六进制 / 十进制”(如 801h 对应十进制 2049) |
Inode |
文件的inode 编号(唯一标识)。Linux 中,文件内容与文件名分离:inode 存储文件的元数据(权限、时间戳等),文件名仅通过目录项指向 inode |
Links |
指向该 inode 的硬链接数量(默认 1,即文件名本身;创建硬链接后会增加,删除硬链接会减少,直到 0 时 inode 被释放) |
Access |
八进制权限(如 0644):对应符号权限的数字表示(r=4、w=2、x=1,所有者 6=4+2,组 4=4,其他人 4=4) 符号权限(如 -rw-r–r–):第一位是文件类型(- 表示普通文件),后 9 位分 3 组(所有者、组、其他人),每组 r(读)、w(写)、x(执行) |
Uid |
文件所有者的用户 ID(UID) 及对应的用户名 |
GID |
文件所属组的组 ID(GID) 及对应的组名 |
Access (atime) |
最后一次访问文件内容的时间(如 cat、less、grep 等读取操作会更新,但部分系统因性能优化可能延迟更新) |
Modify (mtime) |
最后一次修改文件内容的时间(如编辑后保存,内容变化时更新,是最常用的 “文件修改时间”) |
Change (ctime) |
最后一次修改文件元数据的时间(元数据指权限、所有者、硬链接数、大小等,内容修改时也会同步更新 ctime,因大小变化属于元数据变化) |
Birth |
文件的创建时间(crtime),仅在支持该功能的文件系统(如 ext4、APFS)中显示,否则为 - |
2. 查看文件内容
a. cat:查看文件全部内容(适合短文件)
作用:一次性输出文件所有内容,适合内容较少的文件。
| 常用选项 | 说明 |
|---|---|
-n |
显示行号 |
-b |
显示行号(忽略空行,但是有空行的距离) |
示例:
cat 1.txt # 查看1.txt全部内容
cat -n 1.txt # 查看1.txt并显示行号
b. more/less:分页查看长文件
作用:用于内容较多的文件,支持分页浏览(more 功能简单,less 支持前后滚动)。
more操作:按Enter下一行,Space下一页,q退出;less操作:按↑/↓滚动行,PageUp/PageDown翻页,/关键词搜索,q退出。(最好用)
示例:
more /home/1.txt # 分页查看系统日志(只能向下翻页)
less /home/1.txt # 灵活查看配置文件(支持上下滚动和搜索)
c. head/tail:查看文件开头/结尾内容
作用:
head:默认显示文件前10行;tail:默认显示文件后10行(常用於查看日志实时更新)。
| 常用选项 | 说明 |
|---|---|
-n N |
显示前/后N行(如 -n 5 显示5行) |
-f |
tail 专用,实时追踪文件新增内容(如日志) |
示例:
head -n 3 /home/1.txt # 显示/home/1.txt前3行
tail -n 5 /home/1.txt # 显示/home/1.txt最后5行
tail -f /home/1.txt # 实时查看/home/1.txt(新内容会自动刷新,按Ctrl+C退出)
d. nl:显示内容并添加行号
作用:类似 cat -n,但默认跳过空行(空行不编号,但是空行空位还在)。
示例:
nl /home/1.txt # 查看/home/1.txt,显示行号,跳过空行(空行不编号,但是空行空位还在)
3. 编辑文件
a. nano:简单易用的编辑器
作用:轻量编辑器,操作简单,适合快速修改文件。
基本操作:
- 直接输入内容(默认插入模式);
Ctrl+O保存(按Enter确认文件名);Ctrl+X退出;Ctrl+W搜索关键词。
示例:
nano /home/1.txt # 用nano打开/home/1.txt进行编辑
b. vi:功能强大的编辑器
b. vim:功能更强大的编辑器
作用:全功能编辑器,支持语法高亮、多窗口、宏等,需掌握基本模式切换。
核心操作:
- 启动:
vim 文件名(如vim test.txt); - 模式切换:
- 按
i进入插入模式(可输入内容); - 按
Esc回到命令模式(执行保存、退出等操作);
- 按
- 保存退出(命令模式下):
:w保存;:q退出(未修改时);:wq保存并退出;:q!强制退出(不保存修改)。
示例:
vim /home/1.txt # 用vim编辑/home/1.txt文件(自动语法高亮)
4. 复制、移动与删除文件
a. cp:复制文件
作用:复制文件到指定位置(与目录复制不同,复制文件无需 -r 选项)。
| 常用选项 | 说明 |
|---|---|
-i |
覆盖目标文件前提示确认(避免误操作) |
-f |
强制覆盖目标文件(不提示) |
-v |
显示复制过程(详细模式) |
-p |
保留原文件的权限、时间戳等属性 |
示例:
cp note.txt /tmp # 复制note.txt到/tmp目录下
cp -i file1.txt file2.txt # 复制file1.txt为file2.txt,若file2.txt存在则提示确认
cp -v *.txt docs/ # 复制当前目录所有.txt文件到docs目录,并显示复制过程
b. mv:移动或重命名文件
作用:
- 移动:改变文件的存储位置;
- 重命名:在同一目录下修改文件名(原子操作,中间失败不会丢失文件)。
示例:
mv /home/1.txt ~/Documents # 将report.pdf移动到Documents目录
mv /home/1.txt /home/2.txt # 将oldname.txt重命名为newname.txt
mv *.txt /home/admin # 将当前目录所有.txt文件移动到/home/admin目录
c. rm:删除文件
作用:删除指定文件(注意:Linux 中删除文件默认不进回收站,需谨慎操作)。
| 常用选项 | 说明 |
|---|---|
-i |
删除前提示确认(推荐新手使用) |
-f |
强制删除(不提示,忽略不存在的文件) |
-v |
显示删除过程 |
示例:
rm /home/1.txt # 删除/home/1.txt(若文件存在,直接删除)
rm -i /home/1.txt # 删除前提示“rm: remove regular file '/home/1.txt'? ”,输入y确认
rm -fv *.txt # 强制删除所有.txt文件,并显示删除信息
警告:rm -f 会直接删除文件,误删后难以恢复,操作前务必确认文件名!
5. 文件权限与属性修改
Linux 文件权限控制“谁能操作文件”,核心是 chmod(权限)、chown(所有者)、chgrp(所属组)。
a. chmod:修改文件权限
作用:控制用户(u)、组(g)、其他人(o)对文件的“读(r)、写(w)、执行(x)”权限。
- 权限表示:
- 符号:
r(读,4)、w(写,2)、x(执行,1); - 数字:权限组合的总和(如
rwx=7,rw-=6,r-x=5)。
- 符号:
用法:
- 符号模式:
chmod [u/g/o/a][+/-/=][r/w/x] 文件名(a表示所有用户,+表示加权限,-表示移除权限); - 数字模式:
chmod 权限数字 文件名。
示例:
# 符号模式
chmod u+x /home/1.txt # 给文件所有者(u)添加执行(x)权限
chmod g-w,o-r /home/1.txt # 移除组(g)的写权限,移除其他人(o)的读权限
chmod a=rwx data/ # 给所有用户(a)赋予读、写、执行权限(目录常用)
# 数字模式(最常用)
chmod 644 /home/1.txt # 所有者rw-,组r--,其他人r--(6=4+2,4=4,4=4)
chmod 755 /home/1.txt # 所有者rwx,组r-x,其他人r-x(7=4+2+1,5=4+1)
chmod 777 /home/1.txt # 所有者rwx,组rwx,其他人rwx(7=4+2+1,5=4+1)
b. chown:修改文件所有者
作用:改变文件的所属用户(需 root 权限或 sudo)。
用法:chown 用户名 文件名(可同时修改用户和组:chown 用户名:组名 文件名)。
示例:
sudo chown admin /home/1.txt # 将/home/1.txt的所有者改为admin
sudo chown root:admin /home/1.txt # 将所有者改为root,所属组改为admin
c. chgrp:修改文件所属组
作用:单独修改文件的所属组(需 root 权限或该组的成员)。
示例:
sudo chgrp admin /home/1.txt # 将/home/1.txt的所属组改为admin
6. 查找文件内容:grep
作用:在文件中搜索匹配指定字符串的行(支持正则表达式),是文本处理的核心工具。
| 常用选项 | 说明 |
|---|---|
-i |
忽略大小写(如搜索“hello”和“HELLO”都匹配) |
-n |
显示匹配行的行号 |
-v |
反向匹配(显示不包含关键词的行) |
-r |
递归搜索目录下的所有文件 |
-w |
匹配完整单词(避免部分匹配,如搜索“cat”不匹配“category”) |
示例:
grep "error" /home/1.txt # 在/home/1.txt中搜索含“error”的行
grep -in "warning" /home/1.txt # 忽略大小写,显示含“warning”的行及行号
grep -r "config" /etc # 递归搜索/etc目录下所有文件中含“config”的行
grep -v "^#" /home/1.txt # 显示/home/1.txt中不包含“#”开头的行(过滤注释)
总结
文件操作核心命令可归纳为:
- 创建:
touch(空文件)、echo >(含内容)、cat >(交互式); - 查看:
cat(短文件)、more/less(长文件)、head/tail(开头/结尾); - 编辑:
nano(简单)、vi(厉害)、vim(强大); - 管理:
cp(复制)、mv(移动/重命名)、rm(删除,谨慎); - 权限:
chmod(权限)、chown(所有者)、chgrp(所属组); - 搜索:
grep(查找内容)。
更多推荐


所有评论(0)