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创建,标识:d
symbolic link符号链接(软链接),ln -s创建,标识:l
character special字符设备文件(如 /dev/tty),标识:c
block special块设备文件(如 /dev/sda),标识:b
fifo管道文件,mkfifo 创建,标识:p
socket套接字文件,标识: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(查找内容)。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐