2026-01-23
最近更新:Linux基础教程 第18课:Linux云计算基础
2026-01-23
2026-01-23
2026-01-23
最近更新:Linux基础教程 第15课:Linux内核和驱动管理
2026-01-21
浏览量:23 次 发布时间:2026-01-15 22:24 作者:明扬工控商城 下载docx
2026-01-23
最近更新:Linux基础教程 第18课:Linux云计算基础
2026-01-23
2026-01-23
2026-01-23
最近更新:Linux基础教程 第15课:Linux内核和驱动管理
2026-01-21
好的,我们继续。上一课我们学了最基础的命令,今天我们来深入学习文件和目录的操作。
第一部分:查看文件的更多方法
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的学习就像学乐器,需要经常练习才能熟练。
你完成练习了吗?如果有问题,告诉我具体哪一步卡住了。
如果都完成了,我们就准备第五课:用户管理和进程管理。
将本文的Word文档下载到电脑
推荐度: