Linux 基础教程第四课:文件和目录的详细操作

浏览量:23 次 发布时间:2026-01-15 22:24 作者:明扬工控商城 下载docx

最近更新:Linux基础教程 第15课:Linux内核和驱动管理


好的,我们继续。上一课我们学了最基础的命令,今天我们来深入学习文件和目录的操作。


第一部分:查看文件的更多方法

1.1 查看大文件的分页显示(less命令)

cat命令适合看小文件,如果文件很大怎么办?


我们先用一个命令创建一个稍微大点的文件:


bash

for i in {1..50}; do echo "这是第 $i 行" >> bigfile.txt; done

运行上面的命令(可以复制粘贴到终端),它会创建一个有50行的文件。


现在用cat看这个文件:


bash

cat bigfile.txt

文件内容会快速滚过屏幕,看不到开头了。


解决方案:用less命令


bash

less bigfile.txt

现在你可以:


按空格键:向下翻一页


按b键:向上翻一页


按上下箭头:一行一行移动


按/键:搜索(比如输入第10,按回车,找"第10"这个词)


按q键:退出less


1.2 只看文件的头和尾(head和tail)

有时候我们只需要看文件的开头几行或最后几行。


bash

# 查看文件前10行(默认)

head bigfile.txt


# 查看文件前5行

head -5 bigfile.txt


# 查看文件最后10行(默认)

tail bigfile.txt


# 查看文件最后5行

tail -5 bigfile.txt


# 实时查看日志文件(非常有用!)

tail -f bigfile.txt

这个tail -f命令会一直显示文件的最后几行,如果文件有更新,它会自动显示新内容。常用于看日志文件。


1.3 统计文件信息(wc命令)

bash

# 统计文件有多少行

wc -l bigfile.txt


# 统计文件有多少单词

wc -w bigfile.txt


# 统计文件有多少字符

wc -m bigfile.txt


# 显示所有统计信息

wc bigfile.txt

输出类似:50 100 800 bigfile.txt(50行,100个单词,800个字符)


第二部分:文件和目录的权限

这是Linux非常重要的概念!


2.1 查看文件权限

bash

ls -l

你会看到类似这样的输出:


text

-rw-rw-r-- 1 ubuntu ubuntu  100 Mar 10 10:00 bigfile.txt

drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 10 10:01 myfolder

解释每一部分:


text

- rw- rw- r--  1  ubuntu ubuntu  100  Mar 10 10:00  bigfile.txt

↑ ↑↑↑ ↑↑↑ ↑↑↑   ↑   ↑       ↑      ↑        ↑           ↑

│ │││ │││ │││   │   │       │      │        │           └─ 文件名

│ │││ │││ │││   │   │       │      │        └─ 修改时间

│ │││ │││ │││   │   │       │      └─ 文件大小(字节)

│ │││ │││ │││   │   │       └─ 所属组

│ │││ │││ │││   │   └─ 所有者

│ │││ │││ │││   └─ 链接数(不用管)

│ │││ │││ │││

│ └┬┘ └┬┘ └┬┘

│  │   │   └─ 其他人权限(r--)

│  │   └─ 所属组权限(rw-)

│  └─ 所有者权限(rw-)

└─ 文件类型(-是文件,d是目录,l是链接)

权限字母解释:


r = read(读)


w = write(写)


x = execute(执行)


- = 没有这个权限


三个权限组:


第一个rw-:文件所有者的权限


第二个rw-:文件所属组的权限


第三个r--:其他人的权限


2.2 修改文件权限(chmod命令)

有两种方法修改权限:数字法和字母法。


数字法(常用):


bash

# 设置文件为只有所有者能读写,其他人不能访问

chmod 600 bigfile.txt


# 设置文件为所有者可读写,其他人只读

chmod 644 bigfile.txt


# 设置脚本文件为所有者可读写执行,其他人只读执行

chmod 755 myscript.sh

数字含义:


4 = 读(r)


2 = 写(w)


1 = 执行(x)


三个数字分别代表:所有者、所属组、其他人


7 = 4+2+1 = rwx(读+写+执行)


6 = 4+2 = rw-(读+写)


5 = 4+1 = r-x(读+执行)


4 = r--(只读)


字母法(更直观):


bash

# 给所有人添加执行权限

chmod a+x myscript.sh


# 去掉其他人的写权限

chmod o-w bigfile.txt


# 设置只有所有者能读写,其他人什么都不能做

chmod go-rwx bigfile.txt


# 设置目录权限,让所有人都能进入查看

chmod a+rx myfolder

字母含义:


u = user(所有者)


g = group(所属组)


o = others(其他人)


a = all(所有人)


= 添加权限


= 去掉权限


= = 设置权限


2.3 修改文件所有者和组(chown命令)

bash

# 修改文件所有者(需要sudo权限)

sudo chown root bigfile.txt


# 修改文件所有者和组

sudo chown ubuntu:ubuntu bigfile.txt


# 递归修改目录及其下所有文件的所有者

sudo chown -R ubuntu:ubuntu myfolder

第三部分:查找文件和内容

3.1 在文件系统中查找文件(find命令)

bash

# 在家目录下查找名为bigfile.txt的文件

find ~ -name "bigfile.txt"


# 在当前目录及子目录查找所有.txt文件

find . -name "*.txt"


# 查找最近1天内修改过的文件

find . -mtime -1


# 查找大小超过1MB的文件

find . -size +1M


# 查找文件并执行命令(比如删除)

find . -name "*.tmp" -delete

3.2 在文件中查找内容(grep命令)

bash

# 在文件中查找包含"hello"的行

grep "hello" bigfile.txt


# 忽略大小写查找

grep -i "hello" bigfile.txt


# 显示行号

grep -n "hello" bigfile.txt


# 查找不包含"hello"的行

grep -v "hello" bigfile.txt


# 在多个文件中查找

grep "hello" *.txt


# 递归在目录中查找

grep -r "hello" ~/mypractice

第四部分:文件压缩和解压

4.1 压缩文件(tar命令)

bash

# 创建一个压缩包(常用)

tar -czvf archive.tar.gz myfolder/


# 分解这个命令:

# c = create(创建)

# z = gzip(用gzip压缩)

# v = verbose(显示过程)

# f = file(指定文件名)


# 只打包不压缩

tar -cvf archive.tar myfolder/

4.2 解压文件

bash

# 解压.tar.gz文件

tar -xzvf archive.tar.gz


# 分解这个命令:

# x = extract(解压)

# z = gzip(用gzip解压)

# v = verbose(显示过程)

# f = file(指定文件名)


# 只解压特定文件

tar -xzvf archive.tar.gz specificfile.txt


# 查看压缩包内容(不解压)

tar -tzvf archive.tar.gz

4.3 zip格式的压缩解压

bash

# 压缩为zip格式

zip -r archive.zip myfolder/


# 解压zip文件

unzip archive.zip


# 查看zip文件内容(不解压)

unzip -l archive.zip

第五部分:链接文件(硬链接和软链接)

5.1 软链接(符号链接,像Windows的快捷方式)

bash

# 创建软链接

ln -s bigfile.txt link_to_bigfile


# 查看链接(注意l开头的文件类型)

ls -l link_to_bigfile


# 软链接如果源文件删除,链接就失效了

5.2 硬链接

bash

# 创建硬链接

ln bigfile.txt hardlink_to_bigfile


# 硬链接和源文件是同一个文件的不同名字

# 删除一个,另一个还在(直到所有硬链接都删除)

第六部分:实用技巧

6.1 命令的三种重定向

bash

# 1. 输出重定向(覆盖)

echo "第一行" > file.txt


# 2. 输出重定向(追加)

echo "第二行" >> file.txt


# 3. 错误重定向

command_that_might_fail 2> error.log


# 4. 同时重定向标准输出和错误输出

command &> output.log

6.2 管道(pipe)的使用

bash

# 把前一个命令的输出作为后一个命令的输入

ls -l | grep "Mar 10"


# 多个管道连接

cat bigfile.txt | grep "hello" | wc -l


# 常见组合:查找进程

ps aux | grep ssh

6.3 组合命令

bash

# 顺序执行多个命令

cd ~/mypractice && ls -l


# 无论前一个命令成功与否,都执行下一个

cd ~/nonexistent || echo "目录不存在"


# 后台执行命令(命令后加&)

long_running_command &


# 查看后台任务

jobs


# 把后台任务调到前台

fg %1

第七部分:综合练习

请完成以下练习:


练习1:权限操作

创建一个文件secret.txt,写入一些内容


查看它的默认权限


修改权限为600(只有你能读写)


再修改为644(你能读写,其他人只读)


创建一个脚本文件test.sh,写入echo "Hello"


给它执行权限(755)


练习2:查找操作

在家目录创建几个测试文件:test1.txt, test2.log, data.txt


在家目录查找所有的.txt文件


在这些文件中查找包含"test"的内容


统计家目录下有多少个文件(用管道组合命令)


练习3:压缩操作

创建一个目录backup_source,里面放几个文件


把这个目录压缩为backup.tar.gz


解压到新目录backup_restored


比较两个目录的内容是否一样


练习4:综合任务

在家目录创建project目录


在里面创建三个文件:main.py, config.json, README.md


设置合理的权限(脚本可执行,配置文件只有所有者可读写)


打包这个项目目录


查找项目目录中所有包含"TODO"的行


第八部分:遇到问题怎么办?

获取帮助的方法

bash

# 1. 查看命令手册(最详细)

man ls

# 在man页面中:空格翻页,q退出,/搜索


# 2. 查看简要帮助

ls --help


# 3. 查看命令是什么

whatis ls

type ls


# 4. 查看命令位置

which ls

whereis ls

常见错误和解决

bash

# 错误:Permission denied

# 解决:用sudo或检查文件权限


# 错误:Command not found

# 解决:检查拼写,或安装相应软件


# 错误:No such file or directory

# 解决:检查路径是否正确,注意大小写

今天的总结

今天我们学习了:


查看大文件的多种方法(less, head, tail)


Linux权限系统(chmod, chown)


查找文件(find)和查找内容(grep)


压缩和解压文件(tar, zip)


链接文件(硬链接和软链接)


实用技巧(重定向、管道、组合命令)


最重要的一点:Linux是区分大小写的!File.txt和file.txt是两个不同的文件。


慢慢练习这些命令,不用着急。Linux的学习就像学乐器,需要经常练习才能熟练。


你完成练习了吗?如果有问题,告诉我具体哪一步卡住了。


如果都完成了,我们就准备第五课:用户管理和进程管理。


明扬工控商城

推荐阅读:

Linux基础教程 第20课:Linux安全攻防和渗透测试基础

Linux基础教程 第19课:性能调优和容量规划

Linux基础教程 第18课:Linux云计算基础

Linux基础教程 第17课:自动化运维工具

Linux基础教程 第16课:集群和高可用性

Linux基础教程 第15课:Linux内核和驱动管理

热门标签:
Linux 基础教程第四课:文件和目录的详细操作.docx

将本文的Word文档下载到电脑

推荐度:

下载

全部评论

请登录
产业新闻-明扬资讯网
科技资讯-明扬资讯网