文章目录
- 一、先搞懂:终端里你正在和谁对话
- 二、第一组命令:ls / cd / mkdir / touch(建目录、建空文件)
- 2.1 ls:列出当前目录里有什么
- 2.2 cd:切换目录(最容易踩坑的命令)
- 2.3 rm -rf *:清空当前目录(先认识,后面第五节细讲)
- 2.4 mkdir:创建目录
- 2.5 touch:创建空文件
- 三、第二组命令:echo 重定向写内容 + cat 查看 + cp 复制
- 3.1 echo 配合 `>` 重定向,把文字写进文件
- 3.2 cat:把文件内容打印到屏幕上查看
- 3.3 cp:复制文件
- 四、第三组命令:跨目录复制到桌面(~ 家目录与绝对路径)
- 4.1 把文件复制到桌面
- 4.2 用绝对路径查看桌面文件内容
- 五、第四组命令:rm 删除(交互确认 / -f 强制 / -rf 递归)与清理现场
- 5.1 普通 rm:删除前会询问确认
- 5.2 rm -f:强制删除,不询问
- 5.3 cd ..:回到上一级目录
- 5.4 rm -rf 目录:递归删除整个文件夹
- 六、第五组命令:mv 一条命令两用——重命名 + 移动文件
- 6.1 先建文件并查看详细属性
- 6.2 用法一:同目录下 mv = 重命名
- 6.3 用法二:不同目录下 mv = 移动
- 七、第六组命令:ls -l 查看文件详细属性与时间戳
- 7.1 长格式查看
- 7.2 关键观察:mv 移动不会改变时间戳
- 八、课堂作业:touch -t 手动改时间记录
- 8.1 任务1:切换目录并查看属性
- 8.2 任务2:touch -t 修改时间戳
- 8.3 验证修改结果
- 九、课堂作业:touch -r 把一个文件的时间改成和另一个一样
- 9.1 任务3:新建 file1.txt、file2.txt
- 9.2 任务4:touch -r 同步时间
- 9.3 验证
- 十、文本查看四件套:cat / more / less / head / tail
- 十一、一条龙完整脚本(可直接复制照敲)
- 十二、命令速查表(建议收藏)
- 十三、新手高频报错对照表
- 十四、安全红线:rm -rf 为什么被称为"删库跑路"命令
- 十五、总结
适用人群:Linux / openEuler 零基础新手、计算机类课程随堂练习、期末实训作业、计算机二级 Linux 方向备考。
学习方式:跟着课堂实录截图一条命令一条命令敲,每一步都有「大白话解释 + 易错点 + 报错对照」,建议边看边在自己的虚拟机里同步操作。
环境:openEuler 终端,root 用户,提示符形如[root@主机名 当前目录]#。
一、先搞懂:终端里你正在和谁对话
打开 openEuler 的「终端」,你会看到这样一行提示符:
[root@lym tmp]#拆开看,它告诉你三件事:
| 部分 | 含义 |
|---|---|
root | 当前登录用户(root 是超级管理员,权限最大) |
lym | 主机名 |
tmp | 你当前所在的目录(工作目录),这是最重要的信息 |
# | 管理员提示符(普通用户是$) |
大白话:终端就像一个"只靠打字操作的文件管理器"。你说一句命令,系统做一件事,做完把结果打印给你。所有命令都在当前目录下生效,所以先搞清楚"我现在站在哪",是不迷路的前提。
二、第一组命令:ls / cd / mkdir / touch(建目录、建空文件)
课堂实录第一步,在/tmp目录里从零开始建目录、建文件。
2.1 ls:列出当前目录里有什么
ls- 作用:list,列出当前目录下的文件和子目录名字。
- 截图里第一次
ls输出了aa,说明/tmp下已经有一个叫aa的目录。
2.2 cd:切换目录(最容易踩坑的命令)
cd/aa系统报错:
bash: cd: /aa: 没有那个文件或目录为什么报错?这里必须搞懂「绝对路径」和「相对路径」:
- 绝对路径:从根目录
/开始写全,例如/aa表示"根目录下的 aa",/tmp/aa表示"tmp 目录下的 aa"。 - 相对路径:不从
/开始,相对于"你现在站的位置"来找。你现在在/tmp,写cd aa就是"进入当前目录下的 aa"。
截图里aa这个目录实际在/tmp/aa,而你写的是/aa(根目录下找 aa),根目录下根本没有 aa,所以报错。
正确写法二选一:
cdaa# 相对路径:进当前目录下的 aacd/tmp/aa# 绝对路径:直接写全位置易错点:路径前面带不带
/,意思完全不同。带/是从根目录找(绝对),不带/是从当前目录找(相对)。
2.3 rm -rf *:清空当前目录(先认识,后面第五节细讲)
rm-rf*- 作用:把当前目录下的所有东西强制删掉(
*是通配符,代表"全部")。 - 课堂上是在
/tmp这个临时目录里做练习清空,现实环境千万不要在不确定的目录里敲这条命令,第十四节专门讲风险。
2.4 mkdir:创建目录
mkdiraa- 作用:make directory,新建一个目录。
- 执行后当前目录下多了一个
aa文件夹。
紧接着又试了一次cd /aa,依然报"没有那个文件或目录"——因为新建的 aa 在/tmp下,不在根目录下,这再次印证了上面的路径问题。改用cd aa就成功了,提示符变成[root@lym aa]#。
2.5 touch:创建空文件
touchfile1 file2- 作用:新建空文件(一次可以建多个,空格隔开)。
- 再敲
ls验证:
file1 file2两个空文件建好了。
小结:
mkdir建文件夹,touch建文件,两者别混。
三、第二组命令:echo 重定向写内容 + cat 查看 + cp 复制
进入aa目录后,给文件写入内容、查看内容、复制文件。
3.1 echo 配合>重定向,把文字写进文件
echo"This is file1.">file1echo"This is file2.">file2echo本来是把文字打印到屏幕上;- 加上
>(输出重定向),就不打印到屏幕了,而是把文字写进右边的文件里。 - 注意:
>是覆盖写,文件里原来有内容会被直接替换掉(后面会讲到追加用>>)。
3.2 cat:把文件内容打印到屏幕上查看
catfile1输出:
This is file1.catfile2输出:
This is file2.- 作用:concatenate,一次性把整个文件内容输出到终端,适合看短文本。
3.3 cp:复制文件
cpfile1 file3- 作用:copy,把
file1复制一份,新文件叫file3。 - 格式:
cp 源文件 目标文件。 - 执行后
ls看到:
file1 file2 file3用cat file3验证,内容和 file1 一模一样:
This is file1.大白话:cp 是"复印",原文件不动,多出一份副本。
四、第三组命令:跨目录复制到桌面(~ 家目录与绝对路径)
4.1 把文件复制到桌面
cpfile2 ~/Desktop/file4- 把当前目录的
file2复制到"桌面",并命名为file4。 - 这里出现两个新符号:
~代表当前用户的家目录(root 用户就是/root),~/Desktop就是/root/Desktop,也就是桌面。- 目标位置写的是绝对路径,所以不管你当前站在哪个目录,都能准确复制到桌面。
执行后回到桌面,就能看到新出现的file4文件(截图左上角桌面区域)。
4.2 用绝对路径查看桌面文件内容
cat~/Desktop/file4或等价地写全:
cat/root/Desktop/file4输出:
This is file2.内容与 file2 一致,复制成功。
路径小总结:
~= 家目录(/root).= 当前目录..= 上一级目录/= 根目录
五、第四组命令:rm 删除(交互确认 / -f 强制 / -rf 递归)与清理现场
5.1 普通 rm:删除前会询问确认
rm~/Desktop/file4系统弹出确认:
rm: 是否删除普通文件'/root/Desktop/file4'?- 这是交互式删除,需要手动输入
y(yes)回车才删,输入n取消。 - 课堂上直接改用了强制删除,跳过询问。
5.2 rm -f:强制删除,不询问
rm-f~/Desktop/file4-f(force):强制,不再弹"是否删除",直接删掉。- 文件不存在也不会报错。
5.3 cd …:回到上一级目录
cd....表示上一级目录,从/tmp/aa退回/tmp。
截图里回到上级目录这一步,先打错了两次,正好当反面教材:
[root@lym aa]# cd -bash:cd-: 未找到命令[root@lym aa]# ch ..bash: ch: 未找到命令[root@lym aa]# cd ..[root@lym tmp]#
- 第一次想敲
cd ..(两个点),却打成了cd -(横杠),系统按错误写法找不到对应命令,报"未找到命令";- 第二次把命令名
cd拼成了ch,系统同样不认识ch,报"未找到命令";- 第三次敲对
cd ..,提示符从[root@lym aa]#变回[root@lym tmp]#,回到上级目录成功。- 口诀:看到"未找到命令",第一反应就是检查命令名拼写、以及符号是不是打错(
.和-、..别混)。
5.4 rm -rf 目录:递归删除整个文件夹
rm-rfaa- 删除目录不能只写
rm aa(普通 rm 不肯删文件夹),需要加-r(recursive 递归,连文件夹带里面的内容一起删)。 -rf就是"递归 + 强制",连问都不问直接删掉整个aa。- 最后
ls验证,目录空了,清理完成。
六、第五组命令:mv 一条命令两用——重命名 + 移动文件
老师在/tmp目录演示了 mv 的两种用法。
6.1 先建文件并查看详细属性
touchtest.txtls-l输出:
总用量0-rw-r--r--.1root root09月1612:01 test.txtls -l(长格式)显示了权限、所有者、大小、修改时间等信息,第七节专门解读。
6.2 用法一:同目录下 mv = 重命名
mvtest.txt test1.txt- 源和目标在同一个目录时,mv 不是移动,而是改名:test.txt → test1.txt。
ls -l验证,原来的 test.txt 消失,变成 test1.txt,文件大小、时间都不变。
6.3 用法二:不同目录下 mv = 移动
mvtest1.txt /home- 目标是另一个目录
/home,这时 mv 就是把文件搬过去。 - 验证:
ls# 看当前 /tmp,test1.txt 已经不在了ls/home# 看 /home 目录输出:
lost+found student test1.txttest1.txt 出现在 /home 里,移动成功。
mv 判断口诀:
- 目标是"当前目录下的新名字" → 重命名;
- 目标是"另一个目录" → 移动。
- mv 是"剪切 + 粘贴",原位置不再保留。
七、第六组命令:ls -l 查看文件详细属性与时间戳
7.1 长格式查看
ls-l/home/test1.txt输出:
-rw-r--r--.1root root09月1612:01 /home/test1.txt逐列拆解:
| 字段 | 值 | 含义 |
|---|---|---|
-rw-r--r--. | 文件类型与权限(-普通文件,d目录) | |
1 | 硬链接数 | |
第一个root | 文件所有者 | |
第二个root | 所属组 | |
0 | 文件大小(字节,空文件为 0) | |
9月 16 12:01 | 最后修改时间(时间戳) | |
/home/test1.txt | 文件路径 |
7.2 关键观察:mv 移动不会改变时间戳
注意移动到 /home 之后,时间依然是9月 16 12:01,和移动前一模一样。这说明:
移动、重命名文件,只改变文件的"位置/名字",不会改动它的修改时间。
这也是下一节作业"手动改时间记录"的前提:系统自带的时间戳是创建/最后修改时自动打的,想要改成指定时间,得用touch -t。
八、课堂作业:touch -t 手动改时间记录
课件布置的作业任务如下。
任务清单:
- 切换至
/home目录,查看 test1.txt 文件的详细属性; - 将 test1.txt 的时间记录改为2009年12月21日17:30分;
- 在当前目录创建 file1.txt、file2.txt;
- 将 file1.txt 的时间记录改变成与 test1.txt 文件一样。
8.1 任务1:切换目录并查看属性
cd/homels-ltest1.txt反面教材(截图里老师打错过):
ls-l/home/test1 ls: 无法访问'/home/test1':没有那个文件或目录文件名是
test1.txt,漏写.txt就找不到文件。文件名(含扩展名)必须写全。
8.2 任务2:touch -t 修改时间戳
touch-t200912211730/home/test1.txt时间格式拆解(重点,考试常考):
2009 12 21 17 30 │ │ │ │ └─ 分钟 │ │ │ └──── 小时(24小时制) │ │ └────── 日 │ └───────── 月 └────────────── 年即[[CC]YY]MMDDhhmm:年(4位) + 月(2位) + 日(2位) + 时(2位) + 分(2位),一共 12 位数字,中间不要加横杠、冒号、空格。
8.3 验证修改结果
cd/homels-ltest1.txt输出:
-rw-r--r--.1root root012月212009test1.txt时间戳从原来的9月 16 12:01变成了12月 21 2009,修改成功。
说明:
touch -t同时会修改文件的访问时间和修改时间;如果文件不存在,touch 还会顺手新建一个文件。
九、课堂作业:touch -r 把一个文件的时间改成和另一个一样
9.1 任务3:新建 file1.txt、file2.txt
cd/hometouchfile1.txt file2.txtls-l此时两个新文件的时间都是"当前系统时间"(截图里是 10月 21 15:53),而 test1.txt 是 2009 年的旧时间。
9.2 任务4:touch -r 同步时间
touch-rtest1.txt file1.txt-r(reference,参考):把后面文件(file1.txt)的时间戳,改成和参考文件(test1.txt)一模一样。- 格式:
touch -r 参考文件 被改文件。
报错对照(截图里少打了文件参数):
touch-rtouch: 选项需要一个参数 -- r 请尝试执行"touch --help"来获取更多信息。
-r后面必须跟"参考文件 + 被改文件"两个参数,漏一个就报"选项需要一个参数"。
9.3 验证
ls-l输出(关键行):
-rw-r--r--.1root root012月212009file1.txt -rw-r--r--.1root root010月2115:53 file2.txt -rw-r--r--.1root root012月212009test1.txtfile1.txt的时间变成了12月 21 2009,和 test1.txt 完全一致;file2.txt没被指定,仍然是当前时间,作业完成。
十、文本查看四件套:cat / more / less / head / tail
课件最后一页进入"查看文本文件"命令。
| 命令 | 作用 | 使用场景 |
|---|---|---|
cat 文件名 | 一次性把整个文件内容打印到屏幕 | 文件短、内容少,直接看完 |
more 文件名 | 分屏显示,空格键翻页,看完自动退出 | 文件较长,一屏放不下 |
less 文件名 | 分屏显示,可上下方向键翻页、可搜索,按q退出 | 长文件逐段精读,功能比 more 更强 |
head 文件名 | 只看文件开头若干行,默认 10 行 | 看日志开头、文件头部 |
tail 文件名 | 只看文件末尾若干行,默认 10 行 | 看日志最新内容(常配合-f实时跟踪) |
常用扩展写法:
head-n20file.txt# 只看前 20 行tail-n20file.txt# 只看后 20 行tail-f/var/log/messages# 实时滚动查看日志新增内容记忆口诀:cat 一屏倒完,more/less 分页慢慢翻,head 看头,tail 看尾。
十一、一条龙完整脚本(可直接复制照敲)
把课堂两部分练习串成一份完整脚本,按顺序在/tmp下执行即可复现全部结果:
# ===== 第一部分:建目录、建文件、写内容、复制 =====cd/tmprm-rf*# 清空当前练习目录(仅限 /tmp 练习环境!)mkdiraacdaa# 写内容到文件(> 覆盖写)echo"This is file1.">file1echo"This is file2.">file2# 查看内容catfile1catfile2# 复制cpfile1 file3catfile3# 复制到桌面cpfile2 ~/Desktop/file4cat~/Desktop/file4# 删除并清理rm-f~/Desktop/file4cd..rm-rfaa# ===== 第二部分:mv 重命名/移动 + 改时间戳作业 =====cd/tmptouchtest.txtls-lmvtest.txt test1.txt# 同目录 = 重命名mvtest1.txt /home# 不同目录 = 移动ls/home# 改时间记录为 2009-12-21 17:30touch-t200912211730/home/test1.txtcd/homels-ltest1.txt# 新建两个文件并同步时间touchfile1.txt file2.txttouch-rtest1.txt file1.txtls-l十二、命令速查表(建议收藏)
| 命令 | 格式 | 作用 | 备注 |
|---|---|---|---|
ls | ls/ls -l/ls 目录 | 列出目录内容;-l长格式详细信息 | 最基础的查看命令 |
cd | cd 目录路径 | 切换工作目录 | cd ..上级,cd ~回家目录 |
mkdir | mkdir 目录名 | 创建目录 | |
touch | touch 文件名 | 新建空文件 / 更新时间戳 | |
touch -t | touch -t 年月日时分 文件 | 把时间戳改成指定时间 | 格式YYYYMMDDhhmm |
touch -r | touch -r 参考文件 被改文件 | 同步两个文件的时间戳 | |
echo > | echo "文字" > 文件 | 覆盖写入文字到文件 | >>为追加 |
cat | cat 文件 | 查看/拼接文件内容 | 短文件 |
cp | cp 源 目标 | 复制文件 | 原文件保留 |
mv | mv 源 目标 | 重命名(同目录)/ 移动(异目录) | 剪切粘贴 |
rm | rm 文件 | 删除(交互询问) | |
rm -f | rm -f 文件 | 强制删除不询问 | |
rm -rf | rm -rf 目录 | 递归强制删除目录及内容 | 高危,慎敲 |
more/less | more/less 文件 | 分页查看 | less功能更强,q退出 |
head/tail | head/tail [-n N] 文件 | 看前/后 N 行,默认10行 |
十三、新手高频报错对照表
| 报错信息 | 真实原因 | 解决办法 |
|---|---|---|
bash: cd: /aa: 没有那个文件或目录 | 把相对路径写成了绝对路径,根目录下没有该目录 | 用cd aa(相对)或写全cd /tmp/aa(绝对) |
ls: 无法访问 '/home/test1': 没有那个文件或目录 | 文件名漏写扩展名.txt | 文件名必须和实际完全一致 |
bash: ch: 未找到命令 | 把cd拼成了ch | 检查命令拼写 |
bash: cd -: 未找到命令 | 想敲cd ..却把两个点打成了横杠- | 回到上级目录应写cd ..(两个英文点) |
bash: cd/home: 没有那个文件或目录 | 命令和路径之间漏了空格,写成了cd/home | 写成cd /home,命令与参数间必须有空格 |
rm: 是否删除普通文件 '...'? | 普通 rm 进入交互确认 | 输入y回车,或改用rm -f |
touch: 选项需要一个参数 -- r | touch -r后面漏了文件参数 | 补全:touch -r 参考文件 被改文件 |
mv: 请尝试执行 "mv --help" 来获取更多信息 | mv 缺少源文件或目标参数 | 检查mv 源 目标是否写全 |
十四、安全红线:rm -rf 为什么被称为"删库跑路"命令
课堂上用rm -rf *、rm -rf aa是在/tmp练习目录里清空,风险可控。但在真实系统里,必须记住:
rm -rf删了不进回收站,无法撤销,没有"Ctrl+Z"后悔药;-r递归会把目录及其下所有子目录、文件一层层全删;-f强制,连询问都跳过;*通配当前目录全部,一旦站错目录(比如站在/根目录或/home),整盘数据可能瞬间被清空。
安全习惯:
- 删目录前先
pwd确认自己在哪,再ls看看要删的是什么; - 不确定时先不带
-f用rm交互删除,逐条确认; - 绝对不要在
/、/home、重要项目目录里敲rm -rf *; - 课堂练习尽量固定在
/tmp这类临时目录里做。
十五、总结
这一节课我们把 openEuler 最常用的文件管理命令串成了一条完整流水线:
- 看位置:
ls/ls -l,先看清当前有什么、文件属性和时间戳; - 建东西:
mkdir建目录,touch建空文件; - 写与看:
echo >覆盖写内容,cat查看; - 复印与搬家:
cp复制留原件,mv同目录改名、异目录移动; - 删除:
rm交互删、rm -f强制删、rm -rf递归删目录(高危); - 改时间戳:
touch -t 年月日时分自定义时间,touch -r 参考文件 被改文件同步时间; - 看长文本:
cat直出,more/less分页,head/tail看头尾。
把第十一节的脚本在虚拟机里完整敲一遍、看到和截图一致的结果,这一节的命令就算真正拿下了。
如果这篇保姆级教程帮你顺利完成了课堂练习,欢迎点赞 + 收藏 + 关注,后续会继续更新 openEuler / Linux 常用命令系列。作业里还有哪一步报错,把报错信息打在评论区,我来帮你逐条排。