Linux文件目录指令
前言
以下是有关Linux文件目录的相关指令,相关学习来自于B站韩顺平老师。
【小白入门 通俗易懂】2021韩顺平 一周学会Linux
提前知识:绝对地址与相对地址
在介绍指令之前,我觉得有必要说一下绝对地址与相对地址,因为在下面的指令中都会涉及这个问题。
绝对地址
绝对地址可以理解为文件或文件夹的绝对目录
举个简单的例子,我们很多人应该在电脑上安装过软件,安装软件时候填写的目录就是绝对地址,比如我这个
D:\googleDownloads
在Linux系统下,在指令后的地址如果以绝对地址形式输入,您可以在其他位置来执行操作。
比如我现在在root目录下,我想在home里面创建一个animal文件夹,那我就可以写成绝对地址方式
mkdir /home/animal
这样写比我直接去home目录里会更加省事一点
相对地址
相对地址是相对于上一级的地址,比如我在home目录里面有个tom目录
,而现在我恰好在home目录里面,如果我想把tom目录删除,那就就可以直接写
rm tom
而不用写成
rm /home/tom
会更加省事一点。
注意,下面需要写地址的都适用于这两条,下面在介绍指令时我不再详细说明地址问题了。
一、pwd指令
pwd指令的作用是显示当前我们处于位置的绝对地址
比如,我现在在是在 etc 下面的 abrt 目录,pwd指令就会显示为/etc/abrt
二、ls指令
ls指令会显示当前目录下,所有未隐藏的文件与文件夹
如果想查看隐藏的文件,在后面加上 -a
如果想以列表的方式来查看,还可以在后面加上 -l
两个可以以 ls -a -l 的方式同时使用
三、cd指令
1、cd指令是用来进入文件夹的,和退出文件夹的。
cd指令的后面要跟上我们想去文件夹的绝对地址或相对地址。
比如,我想去etc中的abrt文件夹,而我现在在根目录下,那我就可以写
cd /etc/abrt
或者
cd etc
然后再 cd abrt
2、
cd ~ 或 cd 用于回到当前用户下的家目录
比如我现在是以root用户来登录现在的操作系统,那就是输入cd 就是回到 /root
或者我现在是tom 用户,那就是回到 /home/tom
3、
cd .. 是返回当前目录的上一级目录
比如你现在在etc中的abrt目录,你就可以这样回到root目录
cd ../../root
四、mkdir指令
mkdir指令用来创建目录,目录的创建分为创建一个目录和创建多级目录.
比如,我想在 home 里面创建animal目录,那它就是创建了一个目录,但是我想在创建animal的同时创建dog目录,那就是创建多级目录
如果创建多级目录,那我们需要在mkdir后面加上 -p 这个参数才能创建,否则会报错。
在这里我想强调一点,Linux涉及到地址问题,据我这个小白观察,似乎都可以使用相对地址与绝对地址。
比如我现在在home里,那我就可以写成
mkdir -p animal/dog
但我现在不在home里,那我就可以写成
mkdir -p /home/animal/dog
五、rmdir指令
rmdir用于删除空的目录
这里需要解释一下空的目录,比如上面的 /home/animal/dog 里面什么东西都没有,所以dog是一个空目录,但是animal里面有dog所以,animal就不是空目录。如果删除animal它会报错
rmdir /home/animal/dog
注意:下面介绍如何删除非空目录
如果需要删除非空目录,就需要使用到rm -rf
比如我要删除 animal目录,那就是
rm -rf /home/animal
请注意!!!
rm -rf 是强制删除指令,非常危险,请小心谨慎!!!
六、touch指令
touch用于创建一个空文件
比如
touch hello.txt
就会在当前目录下创建一个hello.txt的空文件。
当然,也可以使用vim 或者vi来创建。
七、cp指令
cp指令是将文件拷贝到指定目录下
比如我在root目录下有一个hello.txt文件,想拷贝到opt目录下,那我就可以写
cp /root/hello.txt /opt
如果我在root目录下有一个bbb文件夹想copy到opt目录时,我就可以这样写
cp -r /home/bbb /opt
注意,在实际应用中,我们很有可能会遇到将同一个文件在不同的时间点copy到同一个文件夹的问题,也就是覆盖问题,在Linux系统中,它会询问你是否要覆盖文件,如果你想把所有的文件都给覆盖掉,那就可以这样写
\cp -r /home/bbb /opt
注意,写这句话之前要想清楚,之前的文件到底需不需要
八、rm指令
rm指令用于删除文件或者目录
rm有两个常用选项
-r:递归删除整个文件夹
-f:强制删除不提示
例:
1.如果你只是想删除一个文件
比如将/home/hello.txt删除,就可以写成
rm /home/hello.txt
注:在每次删除的时候,Linux系统都会提示你是否删除
2.如果你想删除整个文件夹
比如删除/home/bbb,就可以这样写
rm -r /home/bbb
说明:因为删除文件与文件夹是会提示的,所以如果要删除的1个文件夹里有n个文件,你就要输入n+2个y,比较麻烦。
3.如果你想一个文件删除且不带提示
比如将/home/hello.txt删除
rm -f /home/hello.txt
4.如果你想将一个文件删除且不带提示
比如删除/home/bbb
rm -rf /home/bbb
注意!!!
在rmdir里面我说过了一次,这里再强调一遍,rm -rf非常危险,在删除前请小心谨慎,好好想一想要不要把这个文件删除!!!
九、mv指令
mv指令用于移动文件与目录或重命名
对于这个指令,可以简单的理解为剪切
如果让我详细的描述的话,我觉得很像是:把在A地点的a里的东西搬到B地点的b里
下面举例
1.重命名
假设我现在在home目录里,有个cat.txt文件,我想把它重命名pig.txt文件,我就可以写成
mv cat.txt pig.txt
2.移动文件
把/home/pig.txt文件移动到/root目录下
mv /home/pig.txt /root
3.移动文件夹
把/opt/bbb移动到/home目录下
mv /opt/bbb /home
4.在移动中重命名
把/opt/bbb移动到/home目录下,重命名为aaa
mv /opt/bbb /home/aaa
在这里我再重复一下上文说的东西,mv指令可以简单的理解为剪切,
详细的理解为把在A地点的a里的东西搬到B地点的b里。
我觉得在4里面有详细的体现
小tips:因为文件格式就在名字中,所以这个指令也可以更改文件格式。
例:把pig.png 改为 pig.jpg
mv pig.png pig.jpg
十、cat指令
cai指令用于查看文件内容,区别于vim,cat指令只能查看文件内容而无法对文件内容进行修改。
cat指令常跟 -n 一起使用,-n是用来显示行号
例:查看/etc/profile文件内容,并显示行号
cat -n /etc/profile
小tips:为了浏览方便,一般会带上管道命令 | more ,即
cat -n /etc/profile | more
more指令是为了更好的浏览进行交互,我会在下面介绍more指令。
关于cat 与more的连用交互,实测more指令中的部分相关交互是用不了的
ctrl+B向上翻页无法使用
:f 能使用但是文件显示似乎不太正常
十一、more指令
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,more指令中内置了若干快捷键(交互的指令)
例:比如我要查看 /etc/profile文件
more /etc/profile
关于交互,我放一个图片
十二、less指令
less指令主要用来查看大型文件,less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容。
语法与上文相同
less /opt/斗罗大陆.txt
小tips:偶尔过把瘾,用less看个小说还是挺爽的。
十三、echo指令
echo指令相当于编程语言的print,将内容输出到控制台上
例,查看环境变量
echo $PATH
十四、head指令
head指令用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
查看斗罗大陆前10行的内容
head /opt/斗罗大陆.txt
注:空行也算是1行
head还可以指定显示前多少行
例,查看斗罗大陆前100行的内容
head -n 100 斗罗大陆.txt
十五、tail指令
tail指令与head指令相反,tail指令是显示文件末尾部分内容,默认情况下,tail指令显示末尾的10行内容。
tail也可以指定显示末尾的多少行内容,语法与head一样,把上面的head换成tail即可,这里不再过多赘述。
下面说一个有点意思的东西。
tail可以实时监控一个文件的更新
比如实时监控/opt/mydate.txt更新
tail -f /opt/mydate.txt
这个时候你通过另外一个窗口来更新这个文件,就会发现来监控的窗口会把更新的东西输出在窗口上面。
小tips:ctrl + c可以退出这个实时监控,ping命令也是可以的
十六、>指令与>>指令
>指令 与 >>指令可以简单的理解为覆盖写入与追加写入
举例
echo "hello" >> mydate.txt
将hello追加到mydate.txt文件里面
echo "hello" > mydate.txt
hello将覆盖mydate.txt文件里面的内容
>指令与>>指令一般还会有以下几种用法
ls -l > 文件
将列表的内容覆盖写入文件中
ls -al >> 文件
将列表的内容追加到文件的末尾
cat 文件1 > 文件2
将文件1的内容覆盖到文件2上
小tips:
1.在>指令与>>指令中,后面指向的文件如果不存在,会创建一个新文件。
2.>>指令可以在一定程度上实现cp指令
十七、ln指令
软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
举例 在home目录下创建一个软链接 myroot,链接到/root目录
ln -s /root /home/myroot
小tips:当我们处于myroot里面时,输入pwd指令时,任然看到的是软链接所在的目录,而不是软链接指向的目录。
删除软链接 myroot
rm /home/myroot
注意:软链接就相当于一个文件一样,在写地址的时候不要写成 /home/myroot/ 的形式,这样写就相当于一个目录了,rm是没法删除的。
还有一点就是,不要误打误撞写成
rm -r /home/myroot/
的形式,不然真的会把你root里面的文件给删除的。
十八、history指令
history指令主要是查看已经执行过的历史命令
1.查看历史所有命令
history
2.查看最近使用过的10个命令
history 10
3.执行历史编号为5的指令
!5
(英文下的感叹号 5)