1. pwd指令(显示文件路径)
1.1. 指令背景
我们要查询一个文件的路径通常有两种方式
- 第一种是以根目录为开始的绝对路径,如图中的:
/root/home/tom/a.txt
- 第二种是以相对于当前所在文件夹的相对路径,如图中的:
/tom/a.txt
1.2. pwd 语法
基本语法 :pwd
(功能描述:显示当前工作目录的绝对路径)
1.3. 应用实例
案例:显示当前工作目录的绝对路径
我们先转到tom目录下,然后创建一个a.txt文件,然后我们通过pwd命令就可以看到当前tom目录的绝对路径
[root@CtCentos01 home]# cd tom
[root@CtCentos01 tom]# vim a.txt
[root@CtCentos01 tom]# pwd
/home/tom
2. ls指令(显示所有文件目录)
2.1. ls 语法
基本语法:ls [选项] [目录或是文件]
常用选项
- -a:显示当前目录所有的文件和目录,包括隐藏的,
- -1:以列表的方式显示信息
2.2. 应用实例
案例:查看当前目录的所有内容信息
我们通过-a和-l的组合,实现以列表形式展示所有文件
[root@CtCentos01 tom]# ls -la
效果如下:
3. cd指令(切换路径)
3.1. cd 语法
基本语法:cd [参数]
(功能描述:切换到指定目录)
理解:绝对路径和相对路径
cd ~
或者cd
:回到自己的家目录。如果你是root,cd ~
到/root;但如果你是tom,你cd ~
就到/home/tom
cd ..
回到当前目录的上一级目录。如果你在tom目录,你cd ..
就到了/home目录,你再cd ..
就到了/目录(这时你再cd ..
发现它还在/目录,因为根目录就是最上一级的目录了)
3.2. 应用实例
案例1:使用绝对路径切换到root目录
直接切换到绝对路径
[root@CtCentos01 /]# cd /root
案例2:使用相对路径到/root 目录
我们先转到tom目录下,然后通过两次返回上一级目录,分别转到home目录和root目录,然后再在root目录里面搜索root目录
[root@CtCentos01 home]# cd /home/tom
[root@CtCentos01 tom]# cd ../../root
注意:
可能在这个案例中直接使用绝对路径更加快捷简单,但是当我们遇到很深的子目录的时候,返回几个上级目录再搜索肯定比重新输入一遍很深的绝对路径要快,所以我们要掌握这种方法。
案例3:表示回到当前目录的上一级目录
[root@CtCentos01 tom]# cd ..
案例4:回到家目录
[root@CtCentos01 home]# cd ~
4. mkdir指令(创建目录)
4.1. mkdir语法
mkdir指令用于创建目录
基本语法:mkdir [选项] 要创建的目录
常用选项:
- -p:创建多级目录
4.2. 应用实例
案例1:创建一个目录 /home/dog
[root@CtCentos01 ~]# mkdir /home/dog
注意:创建目录需要root权限
效果:
我们切换到home目录下,可以看到确实成功创建了dog目录
案例2:创建多级目录/home/animal/tiger
[root@CtCentos01 home]# mkdir -p /home/animal/tiger
注意:mkdir原则上一次只允许创建一级目录,如果需要同时创建多个目录,需要加上-p
效果:
可以看到我们在home目录下创建了animal目录,在animal目录下又创建了tiger目录
5. rmdir指令(删除空目录)
5.1. rmdir语法
rmdir指令删除空目录
基本语法:rmdir [选项] 要删除的空目录
5.2. 应用实例
案例:删除一个目录 /home/dog
[root@CtCentos01 ~]# rmdir /home/dog
效果:
使用细节
- rmdir 删除的是空目录,如果目录下有内容时无法删除的。
- 提示:如果需要删除非空目录,需要使用
rm -rf
要删除的目录
6. touch指令(创建空文件)
6.1. touch语法
touch指令创建空文件
基本语法:touch 文件名称
6.2. 应用实例
案例:在/hom目录下,创建一个空文件hello.txt
[root@CtCentos01 home]# touch hello.txt
效果:
7. cp指令(拷贝到制定目录)
7.1. cp语法
cp指令拷贝文件到制定目录
基本语法:cp [选项] source dest
常用选项:
-r
:递归复制整个文件夹
7.2. 应用实例
案例1:将/home/hello.txt拷贝到/home/bbb目录下
我们在/home目录下创建一个bbb文件,再将hello.txt文件拷贝到bbb文件夹下面
[root@CtCentos01 home]# mkdir bbb
[root@CtCentos01 home]# ls
bbb ct hello.txt jack milan test tom zwj
[root@CtCentos01 home]# cp hello.txt bbb/
[root@CtCentos01 home]# ls
bbb ct hello.txt jack milan test tom zwj
[root@CtCentos01 home]# cd bbb/
[root@CtCentos01 bbb]# ls
hello.txt
案例2:递归复制整个文件夹,举例,比如将/home/bbb整个目录拷贝到/opt下面
我们先在/home/bbb文件夹下面又创建一个hello2.txt文件
[root@CtCentos01 bbb]# touch hello2.txt
[root@CtCentos01 bbb]# ls
hello2.txt hello.txt
然后我们将整个bbb文件直接拷贝到/opt目录下,可以看到/bbb目录和他里面的文件hello.txt和hello2.txt都存在
[root@CtCentos01 bbb]# cp -r /home/bbb/ /opt
[root@CtCentos01 bbb]# cd /opt/
[root@CtCentos01 opt]# ls
63829818119204.png bbb rh VMwareTools-10.3.23-16594550.tar.gz vmware-tools-distrib
[root@CtCentos01 opt]# cd bbb/
[root@CtCentos01 bbb]# ls
hello2.txt hello.txt
但是当我们再次拷贝同样文件到同样目录下时,他会提示我们是否选择呢覆盖,我们可以输入y
选择覆盖
[root@CtCentos01 bbb]# cp -r /home/bbb/ /opt
cp:是否覆盖"/opt/bbb/hello2.txt"? y
cp:是否覆盖"/opt/bbb/hello.txt"? y
但是当目录下文件内容很多的的时候,这样做效率就很低,因此我们引入一个强制覆盖而不提示的操作
\cp
,可以看到此时他已经全部覆盖了但是不需要我们手动确认
[root@CtCentos01 bbb]# \cp -r /home/bbb/ /opt
[root@CtCentos01 bbb]#
使用细节:
- 强制覆盖不提示的方法:
\cp
8. rm指令(移除文件或目录)
8.1. rm语法
说明:rm 指令移除文件或目录
基本语法:rm [选项] 要删除的文件或目录
常用选项:
- -r:递归删除整个文件夹
- -f:强制删除不提示
8.2. 应用实例
案例1: 将 /home/hello.txt 删除
我们先转到/home目录下,然后删除hello.txt文件,输入y确认删除
[root@CtCentos01 bbb]# cd /home
[root@CtCentos01 home]# ls
bbb ct hello.txt jack milan test tom zwj
[root@CtCentos01 home]# rm hello.txt
rm:是否删除普通空文件 "hello.txt"?y
[root@CtCentos01 home]# ls
bbb ct jack milan test tom zwj
如果不想要确认删除步骤,删除的时候加上-f
即可
[root@CtCentos01 home]# ls
bbb ct hello.txt jack milan test tom zwj
[root@CtCentos01 home]# rm -f hello.txt
[root@CtCentos01 home]# ls
bbb ct jack milan test tom zwj
[root@CtCentos01 home]#
使用细节
- 强制删除不提示的方法:带上 -f 参数即可
案例2: 递归删除整个文件夹 /home/bbb
我们在rm后面加一个-r即可递归删除整个文件夹
[root@CtCentos01 home]# ls
bbb ct jack milan test tom zwj
[root@CtCentos01 home]# rm -r /home/bbb/
rm:是否进入目录"/home/bbb/"? y
rm:是否删除普通空文件 "/home/bbb/hello2.txt"?y
rm:是否删除普通空文件 "/home/bbb/hello.txt"?y
rm:是否删除目录 "/home/bbb/"?y
[root@CtCentos01 home]# ls
ct jack milan test tom zwj
当然,如果你不想一个一个的删除,那么再加上-f直接全部删除即可
[root@CtCentos01 home]# rm -rf /home/bbb/
注意:
删除文件一定要特别小心,如果你拿不准输入命令的效果,请查询后再选择使用,或者选择保险的方式。
9. mv指令(重命名与移动文件)
9.1. mv语法
mv 移动文件与目录或重命名
基本语法:
mv oldNameFile newNameFile
(功能描述:重命名)
mv /temp/movefile /targetFolder
(功能描述:移动文件(也可以成为剪切))
9.2. 应用实例
案例1: 将 /home/cat.txt 文件 重新命名为 pig.txt
我们先在/home目录下创建一个cat.txt文件,然后将其重命名为pig.txt
[root@CtCentos01 home]# ls
ct jack milan test tom zwj
[root@CtCentos01 home]# touch cat.txt
[root@CtCentos01 home]# ls
cat.txt ct jack milan test tom zwj
[root@CtCentos01 home]# mv cat.txt pig.txt
[root@CtCentos01 home]# ls
ct jack milan pig.txt test tom zwj
提示:因为此时这两个文件都是使用的相对路径,在同一路径下的作用是重命名
案例2:将 /home/pig.txt 文件 移动到 /root 目录下
我们直接将pig.txt文件移动到/root目录下,因为此时两个路径不相同,所以mv指令的作用就变成了移动文件
[root@CtCentos01 home]# ls
ct jack milan pig.txt test tom zwj
[root@CtCentos01 home]# mv pig.txt /root/
[root@CtCentos01 home]# cd /root/
[root@CtCentos01 ~]# ls
63829030153345.png Hello.java pig.txt 公共 视频 文档 音乐
anaconda-ks.cfg initial-setup-ks.cfg shcode 模板 图片 下载 桌面
当然,两者组合一下我们也可以实现移动文件并重命名的效果
可以看到我们实现了把pig.txt文件移回到/home目录下,并重命名为了cow.txt
[root@CtCentos01 ~]# ls
63829030153345.png Hello.java pig.txt 公共 视频 文档 音乐
anaconda-ks.cfg initial-setup-ks.cfg shcode 模板 图片 下载 桌面
[root@CtCentos01 ~]# mv pig.txt /home/cow.txt
[root@CtCentos01 ~]# cd /home/
[root@CtCentos01 home]# ls
cow.txt ct jack milan test tom zwj
案例3:把/opt/bbb重新移动到/home目录下
同样的,我们只需要把移动的内容变成文件就行了
[root@CtCentos01 opt]# mv bbb/ /home/
可以看到我们之前的bbb文件再/opt目录下
可以看到后来bbb文件和他里面的文件都到了/home目录下
10. cat指令(查看文件内容)
10.1. cat语法
cat 查看文件内容(vim也可以,但是cat只能修改,更加安全)
基本语法:cat [选项] 要查看的文件
常用选项
- -n:显示行号
10.2. 应用实例
案例1:查看/etc/profile 文件内容,并显示行号
[root@CtCentos01 bbb]# cat /etc/profile
效果:
使用细节
- cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令
| more
(管道命令类似于把前面得到的结果交给下一个下一个指令处理)
此时我们使用管道命令查看这个文件
[root@CtCentos01 bbb]# cat -n /etc/profile | more
此时我们可以按Enter键一行一行的看
我们也可以按空格整页整页的观看
除此之外,more指令还可以单独使用
11. more指令(文本过滤器)
11.1. more语法
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more
指令中内置了若干快捷键交互),详见操作说明
基本语法:more 要查看的文件
操作说明,如图:
操作 | 功能说明 |
空白键(space) | 代表向下翻【一页】 |
Enter | 代表向下翻【一行】 |
q | 代表立刻【离开】more,不再显示该文件内容 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行号 |
:f | 输出文件名和当前行的行号 |
11.2. 应用案例
案例:采用more查看文件/etc/profile
具体操作根据上方表格自行体验即可
[root@CtCentos01 bbb]# more /etc/profile
12. less指令(分屏查看文件内容)
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各
种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示
需要加载内容,对于显示大型文件具有较高的效率。
12.1. less语法
基本语法:less 要查看的文件
操作说明:
操作 | 功能说明 |
空白键 | 向下翻动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
/字串 | 向下搜索【字串】的功能;n:向下查找;N向上查找 |
?字串 | 向上搜索【字串】的功能;n:向上查找;N向下查找 |
q | 离开less这个程序 |
12.2. 应用实例
案例:采用less查看一个大文件文件/opt/蛊真人.txt
我们先通过Xftp将较大的txt文件发送到/opt目录下
然后我们转到/opt目录下,用less打开小说txt
[root@CtCentos01 opt]# ls
63829818119204.png rh VMwareTools-10.3.23-16594550.tar.gz vmware-tools-distrib 蛊真人.txt
[root@CtCentos01 opt]# less 蛊真人.txt
然后我们用操作命令来观看
13. echo指令(输出到控制台)
echo输出内容到控制台
13.1. echo语法
基本语法:echo [选项] [输出内容]
13.2. 应用实例
案例: 使用echo 指令输出环境变量,比如输出 $PATH $HOSTNAME
[root@CtCentos01 opt]# echo $HOSTNAME
CtCentos01
案例: 使用echo 指令输出 hello,world!
[root@CtCentos01 opt]# echo "hello,world!"
hello,world!
[root@CtCentos01 opt]# echo "hello,world!"
-bash: !": event not found
提示:echo引号中不能输入英文的!(感叹号)
14. head指令
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
14.1. head语法
基本语法:
head 文件
(功能描述:查看文件头10行内容)head -n 5 文件
(功能描述:查看文件头5行内容,5可以是任意行数)
14.2. 应用实例
案例: 查看/etc/profile 的前面5行代码
不加限制的head,默认查看前10行
[root@CtCentos01 opt]# head /etc/profile
我们要查看前5行的话应该这么做
[root@CtCentos01 opt]# head -n 5 /etc/profile
15. tail指令(输出文件尾部内容)
15.1. tail语法
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容。
基本语法:
tail 文件
(功能描述:查看文件尾10行内容)tail -n 5 文件
(功能描述:查看文件尾5行内容,5可以是任意行数)tail -f 文件
(功能描述:实时追踪该文档的所有更新 )
15.2. 应用实例
案例1: 查看/etc/profile 最后5行的代码
[ct@CtCentos01 ~]$ tail -n 5 /etc/profile
效果:
案例2: 实时监控 mydate.txt,看看到文件有变化时,是否看到 ,实时的追加日期
[root@CtCentos01 ~]# cd /home/
[root@CtCentos01 home]# ls
bbb cow.txt ct jack milan test tom zwj
[root@CtCentos01 home]# touch mydate.txt
[root@CtCentos01 home]# ls
bbb cow.txt ct jack milan mydate.txt test tom zwj
[root@CtCentos01 home]# tail -f mydate.txt
注意:这里要是用root权限才能创建空文件
当我们实时监控mydate.txt时,程序会占用显示终端进行监控,然后我们在图形界面中对其进行修改
注意:这里我们使用echo获取输入,但是我们不将其输出到控制台,而是使用>
(重定向符号)将获取到的输入重定向到mydate.txt中(这里会产生覆盖的效果,之前的内容会消失),这样mydate.txt中的内容就改变了。
修改之后,我们就可以看到tail监控到mydate.txt发生了改变
额外:要退出tail -f
的监控状态的话,可以按ctrl+c
或ctrl+z
退出
16. >和>>指令(输出重定向和追加)
>输出重定向和 >>追加
16.1. >和>>语法
基本语法:
ls -l > 文件
(功能描述:列表的内容写入文件a.txt中(覆盖写))ls -al >> 文件
(功能描述:列表的内容追加到文件aa.txt的末尾)cat 文件1 > 文件2
(功能描述:将文件1的内容覆盖到文件2)echo "内容" >> 文件
16.2. 应用实例
案例1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中,覆盖写入
[root@CtCentos01 home]# ls -l /home > /home/info.txt
效果:
可以看到写入后二者内容完全相同
但是当我们能把ok重定向进去后,内容就成了ok,体现了其覆盖性
注意:如果写入的文件不存在,那么会自动创建文件
案例2: 将当前日历信息 追加到 /home/mycal 文件中
(cal
命令可以输出当前日历信息)
[root@CtCentos01 home]# cal >> /home/mycal
然后我们在mycal文件里就可以看到日历信息
如果我们在追加一次,那么就将输出两个日历信息,体现了其追加性
注意:这两个指令可用于快速进行复制文件,一条命令即可搞定
17. ln指令(软连接)
软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
17.1. ln语法
基本语法:In -s [原文件或目录] [软链接名]
(功能描述:给原文件创建一个软链接)
17.2. 应用实例
案例1: 在/home 目录下创建一个软连接 myroot,连接到 /root 目录
[root@CtCentos01 ~]# ln -s /root/ /home/myroot
可以看到,通过myroot下面的列表其实是root下的
案例2: 删除软连接 myroot
当你想删除软连接的时候,将其看作是一个文件,用rm指令删除即可
[root@CtCentos01 myroot]# rm /home/myroot
细节说明:当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录
18. history指令(查看历史指令)
history指令,查看已经执行过历史命令,也可以执行历史指令
18.1. history语法
基本语法:history
(功能描述:查看已经执行过历史命令)
18.2. 应用实例
案例1: 显示所有的历史命令
[root@CtCentos01 home]# history
案例2: 显示最近使用过的10个指令
[root@CtCentos01 home]# history 10
案例3:执行历史编号为5的指令
[root@CtCentos01 home]# !350
可以看到我们通过!350执行了ls命令