目录
1、ls指令
1.1 ls -l
1.2 ls -a
1.3 ls -i
2、pwd指令
3、cd指令
3.1 路径的概念
3.1.1 绝对路径
3.1.2 相对路径
3.2 cd ~
3.3 cd -
4、touch指令
5、mkdir指令
6、删除系列的指指令
6.1 rmdir
6.2 rm
7、man指令
8、cp指令
9、move指令
结语
前言:
Linux由林纳斯·托瓦兹于1991.10.5发布,是一款开放源代码的操作系统,Linux的应用场景非常广泛,例如服务器后台、车载系统、嵌入式设备等等,在Linux下有一句很经典的话叫做:一切皆为文件。无论是设备还是文件都当作文件来看待,因此他有着统一的文件操作接口,即拷贝文件、添加文件、删除文件都需要命令行来进行,本文介绍的是最基础的命令行指令对文件的操作。
因此下文中“文件”的概念包括:普通文件和目录(目录的含义对应windows下的文件夹)
1、ls指令
语法:ls [选项] [要执行的目录或者普通文件] (注意指令之间用空格隔开)
他的功能是列出该目录下所有的普通文件和子目录,选项的作用就是可以列出普通文件或目录的更详细的信息,若单独一个ls指令,则只是显示出该目录下的文件名,示例如下:
上图中表示的是,在目录zh下,有普通文件11、普通文件20243.17以及目录code、目录new11(简单来说就是白色文件名是普通文件,而蓝色文件名是目录)并无其他的文件详细信息。
1.1 ls -l
ls后面跟-l表示的是在显示文件名的基础下,还显示出文件的更多属性,即文件的时间、权限、大小,ls -l指令测试如下:
从上图可以发现刚好对应windows下的文件的基本属性。
1.2 ls -a
ls -a也可以查看该目录下的文件,并且包括隐藏文件,那什么又是隐藏文件呢?在Linux下以.开头的文件就叫做隐藏文件,若不使用ls -a是查看不了隐藏文件的,ls -a测试指令如下:
1.3 ls -i
ls -i可以显示出文件的索引信息,即文件的“身份证号码”,每个文件都有唯一的索引信息。ls -i测试指令如下:
从上图可以发现,只要是文件就会有索引信息。
2、pwd指令
语法:pwd
该指令的功能就是显示当前目录的路径,pwd指令测试如下:
3、cd指令
语法:cd 目录名/路径
cd的功能是从当前目录进入到某个目录。
3.1 路径的概念
在介绍cd指令前,先引入路径的概念,因为在Linux下,所有的文件和目录都是以多叉树的结构进行存储的,每个节点代表的是一个普通文件或者目录,而该多叉树的根结点称为根目录,他是所有文件的源头,具体示意图如下:
从上图可以得出一个结论,每个文件都会有一条专门的路径且唯一。参考windows下的路径形式:D:\vs代码\test_3_16, \是windows下的路径分隔符,得以将不同层级的文件分割开来。而在Linux下,路径的形式和windows下逻辑是一样的,只不过Linux下的路径分隔符是反斜杠/,比如上图中test.c的路径为:/home/code/test.c。
定位一个文件时,有两种方法:1、绝对路径定位。2、相对路径定位。
3.1.1 绝对路径
从根目录开始定位的路径叫做绝对路径,cd 绝对路径就能进入该路径的最后一个目录,体现绝对路径的用法如下:
值得注意的是,这里cd /home/zh可以写成cd /home/zh/,严格来说后者比较规范因为最后以/结尾表示是一个路径。
3.1.2 相对路径
以当前目录为基准的叫相对路径,比如以下写法:
相对路径的第二种写法,如下:
cd ..也是一种以当前目录为基准,找到上层的目录的方式。
3.2 cd ~
cd ~的作用是不管在哪个目录下,直接回到家目录(家目录即该用户的目录,一般是在home目录下),比如上述进行测试的用户是zh,zh的目录是:/home/zh,则zh就是家目录。
cd ~测试指令如下:
3.3 cd -
cd -的作用是跳转至上一次所在的目录,测试指令如下:
4、touch指令
语法:touch [选项] [文件]
touch的作用是创建一个新的普通文件,若该普通文件存在则更新该文件的创建时间,touch指令测试如下:
5、mkdir指令
语法:mkdir [选项] 目录名
mkdir是在当前目录下创建一个新的目录,值得注意的是:若选项为-p时,目录名可以是一条路径,即一次性创建多个目录,mkdir指令测试如下:
mkdir -p 路径,创建一条路径下多个目录:
此处的tree指令可以在屏幕上打印出当前目录下的所有内容的结构,tree是需要下载的,他的下载指令为:yum install -y tree。
6、删除系列的指指令
首先,rm -rf /*或者rm -rf /这两个删除指令会删除根目录以下的所有文件,也就是说若执行了该指令则Linux系统会直接崩溃,所有不要执行这句指令!!!
6.1 rmdir
rmdir只能删除空目录,但是必须得有该文件的使用权,他是与mkdir对应的,rmdir指令测试如下:
但是用rmdir删除上文创建的z1目录,则会删除失败,因为z1目录不是一个空目录,需要对应的使用rmdir -p 路径的形式进行删除:
若想删除非空目录,则还可以使用另一种删除指令:rm。
6.2 rm
语法:rm [选项] 文件名
rm可以删除任何文件, 甚至可以删除没有权限的文件,所以rm用起来即方便又危险。当rm不带任何选项时,只可以删除普通文件,rm指令测试如下:
若想删除目录还需要在选项处加上-r,则rm -r可以删除该目录下的一切文件(除了只读权限的文件), 测试如下:
rm -f可以删除权限为只读的文件,-f意为强制的意思,因此rm -r -f才是真正的可以删除一切文件。
7、man指令
因为Linux的指令有很多,若有些记不住则可以查看联机手册,则直接在Linux下通过man指令进行手册的查看,甚至一些c语言的库函数也可以通过man指令查找。
语法:man [选项] 命令/库函数
比如查找指令ls的用法:
也可以使用man man直接打开手册的具体内容(手册总共分八章):
比如我们要查找strlen函数的具体用法,可以使用指令man 3(对应手册第三章的内容) strlen,指令测试如下:
8、cp指令
语法:cp [选项] 源文件 目标处
cp的功能就是拷贝文件,若没有选项,则cp只能拷贝普通文件,cp拷贝普通文件的测试代码如下:
若想拷贝目录,则选项要为-r,即cp -r 目录名,测试指令如下:
9、move指令
语法:mv [选项] 源文件 目标处/新的名字
move的缩写是mv,他的作用是可以移到文件或者将文件重命名,若mv的第二个参数是路径则发生的是移动,mv移动的指令:
若mv的第二个参数是一个文件名则发生的是重命名,mv进行重命名的测试:
结语
以上就是关于Linux下的基础指令讲解,可以发现这些基础指令实现的是对文件的添加、删除、查看文件属性、修改文件名,以及路径的更换,只不过有些指令只对普通文件生效,而对目录的指令则需要多加一些选项。
最后希望本文可以给你带来更多的收获,如果本文对你起到了帮助,希望可以动动小指头帮忙点赞👍+关注😎+收藏👌!如果有遗漏或者有误的地方欢迎大家在评论区补充,谢谢大家!!