目录
2.5.1、ls -a:查看目录中的所有文件(包括隐藏文件)
1、部分知识点
1、 ~ <==> /home/用户名
开机后,第一次进入终端时,终端会显示如上路径:~ 或 ~/Desktop ,~:代表了我们普通用户的家目录,相当于 /home/用户名 。
当使用了 cd ~ 命令,切换到 ~ 目录下,再使用 pwd 命令 (使系统显示我们当前所属目录的绝对路径),就可以看到,我们处于 /home/用户名 目录下。作者本人的用户名为jiax。
2、$ 代表普通用户,# 代表管理员用户
普通用户只能在 /home/用户名 目录下活动(文件访问、创建、修改、删除等),对于其他目录只有访问权,甚至不能访问部分目录,如:/boot(系统盘,存放系统内核与启动的相关文件)。
想要切换到管理员身份的话,需要使用 sudo su 命令可以获取到管理员身份:
此时,系统提示需要输入用户密码,就是我们登录账号时的密码,并且在输入时,密码不屏显,需要在心里默记输入到哪里。
在切换完成后,文字颜色改变,终端的格式语句前方 用户名 改为 root ,且 后方用户身份由 $ 改为 # 。此时,我们就可以对其他目录进行想要的操作,但要谨记,不能肆意使用管理员身份对系统文件进行随意修改,可能会导致系统故障。所以,sudo su 命令不在我主要介绍的命令的部分。
使用 exit 命令可以退出管理员身份。
3、退出Linux操作系统
我本地在 VMware 模拟器 上运行ubuntu版Linux系统,目前不熟悉正确关机方法,只会使用模拟器自带关闭虚拟机的方法。直接点击关闭客户机,完成退出。
4、查看版本号命令 uname -a
使用 uname -a命令看看自己安装的Ubuntu的版本号。
2、常用命令
下述创建、删除等对文件进行实际操作的命令都是在 /home/用户名 目录下执行,因为普通用户权限问题。
2.1、cd:切换当前位置到指定路径
使用方法:cd + 路径(可以是相对路径,也可以是绝对路径(不清楚路径,可查看Linux初识)
此处 ' / ' 为Linux的根目录。
2.2、pwd:显示当前位置的绝对路径
使用方法:直接输入 pwd ,回车
2.3、创建文件
2.3.1、mkdir:创建目录文件
使用方法:
1.可以先cd 跳转到你想要创建目录文件的位置,然后直接 mkdir + 目录名 ,将目录创建到该位置。
若无任何提示就是执行成功。此时,使用查看目录下所有文件的命令:ls ,查看dir1是否创建成功。由图可知,目录 dir1 创建成功。
2.使用 cd +目标路径/目录名 ,在目标目录下创建一个目录文件。
使用 mkdir /home/jiax/dir2 命令,在家目录下用户目录中,创建目录dir2。系统无报错。在跳转到 /home/jiax 后查看所有文件,找到我们创建的 dir2 文件。
2.3.2、touch:创建普通文件
Linux系统上文件分类有 普通文件、目录文件、管道文件、套接字文件、块设备文件、 字符、设备文件、链接文件。除了后面那几个比较陌生的文件类型和目录文件,其他所有文件都是普通文件,如:.c、.txt、.cpp等。(陌生文件还没学,后续再记笔记)
并且Linux系统不以文件后缀(如:.c)来区分文件类型,根据创建方法创建不同类型的文件。在文件上有一部分内容专门保存着文件的详细信息。(后续会讲到)
但是在创建C程序文件时,我们还需要以 .c 结尾,因为C编译器是靠文件后缀来区分一个文件是否是C程序文件。在Linux上,C程序文件后缀名必须为 .c ,C++程序文件后缀名必须为 .cpp,二者区分开,因为编译器不同。在vs上对C和Cpp是兼容的。
使用方法: touch 文件名
此时我们在 dir2 目录下创建了两个不同的普通文件,f1.c 文件可以后续用来编写C代码。
touch 命令以及后续大部分命令都和 mkdir 命令一样,都可以加上指定路径,在指定目录下进行操作,如:touch ~/f2 :在/home/jiax目录下创建一个普通文件 f2。
2.4、删除文件
2.4.1、rmdir:删除目录文件(空目录)
使用方法:rmdir 目录文件名
rmdir只能用于删除空目录,刚才我们在dir2目录下创建了文件,所以不能直接使用rmdir 删除dir2 目录文件。所以,我新建了一个空目录 dir3。
2.4.2、rm:删除普通文件
使用方法:rm 文件名
2.4.3、rm -r :强制删除
对于非空目录,我们就可以使用 rm -r +目录名 ,进行强制删除。使用rmdir的话,会显示警告,并删除失败。
对于在删除部分文件时,会显示警告。可以使用rm -rf ,就会忽略警告。
2.4.4、模糊匹配删除
使用方法:
1.删除目录:(1) rmdir 部分文件名* :删除目录文件名以部分文件名起始的目录文件
(2) rmdir *部分文件名:删除目录文件名以部分文件名起始的目录文件
2.删除文件:使用方法与rmdir相同。如:rm *.c :删除所有以 .c 结尾的文件。
3.rm *:删除当前位置所有普通文件
创建了一个目录 dir4,在其中创建了三个普通文件 f3、f3.c、f4。
使用命令 rm *,删除 dir4 目录下所有普通文件。再使用命令 ls 后,查看到当前目录没有文件显示(没有文件)。
拓展:在dir目录下,创建了两个个普通文件 f3、f4 与一个目录文件 dir5,使用 rm -r * 命令,强制删除所有文件。(使用touch + 多个文件名 可同时创建多个普通文件)
由上图可知,删除成功。所以 rm -r 命令可以强制删除用户家目录下的所有类型文件(rm * 只能删除普通文件),并且Linux系统中命令的使用是非常灵活的,可以搭配使用,读者可灵活尝试。
2.5、ls:显示目录下的所有非隐藏文件
在一个目录下,有系统显示给我们看的文件,还有一些被系统隐藏的文件,使用 ls 命令,可以显示出所有非隐藏文件。
使用方法:ls 直接回车
在/home/jiax 目录下,目前只剩下这些文件,其他一些普通文件都在前面的操作中被删除了。
拓展用法:ls + 路径 ,可以查看指定路径下的所有非隐藏文件
如果该路径目录不允许普通用户访问,可以使用 sudo ls 路径 :以管理员身份使用ls命令访问该路径目录。
2.5.1、ls -a:查看目录中的所有文件(包括隐藏文件)
进入Desktop目录后,使用 ls -a 命令,系统显示出Desktop目录的所有文件。此时,就会出现 . 和 . . 。一个点代表当前目录,两个点代表上一级目录(连接着当前目录的上一级目录)。此时,使用 cd .. 命令就可跳转到上一级目录。
2.5.2、ls -i:显示文件的节点号
Linux系统使用文件标识符(节点号)唯一标识一个文件,其值为整型值。
2.5.3、ls -l:查看目录下文件的详细信息
使用命令后,会出现如上信息,我们依次来分析:
1、total的意思是:所列出内容的磁盘占用空间总和值。单位是 kbytes,就是KB。上图中,第五列的数值 1、4096、4096 就是每个文件的大小,Linux系统对空文件默认大小为4096字节。1 + 4096 + 4096 才是8KB多一点,为什么total处的值为12呢?
因为文件系统中是有block(块)的概念的,块就像一间间屋子,如果你得文件系统中存的都是一些较大的文件,那么使用较大的block会得到较好的性能,反之亦然。再注意total 解释中 “占用”二字,Linux系统中一个分块大小为4 KB,对于 8KB+1B 放在两个block中,肯定是放不下的,所以会占用3个block。此时,占用的总大小就是 12KB。
2、文件信息具体解读
(1)第一列的第一个字符就是文件的类型。 - 就是普通文件, d 是目录文件等等。
(2)文件权限:分为四种:
◼ w 写权限 值: 2
◼ x 执行权限 值: 1
◼ - 无权限 值: 0
文件权限又对不同用户的权限做出限制:
u:表示文件属主的访问权限,目前有读和写。
g:表示文件同组用户的访问权限,目前有读和写。
o:表示其他用户的访问权限,目前只有读。
(3)链接数:对于非目录文件:这代表文件的硬链接个数。(可理解为这个文件有几个文件名,或有几个指针指向该文件,任何一个指针进行操作都会影响该文件)
对于目录文件:表示软连接个数。(可理解为子目录个数。对于空目录,其还隐藏有两个目录 . 和 .. ,前一个链接其本身,后一个链接其上一级目录)
(4)拥有者就是谁创建了这个目录。
(5)所属组:可以理解为多个人合作开发一个项目,同属于一个组,这些人就是同组用户。
(6)文件大小就是文件内容所占字节数。注意Linux对空文件默认大小为4KB。
剩余内容就不过多赘述。
2.6、chmod:修改文件权限
在2.5中说明了,系统在文件权限中分别对三类用户的权限进行了设置。我们也可以通过chmod 命令进行修改。
2.6.1、文字设定法
u 表属主 g 同组人 o 其他人 a 所有人 “+”表示增加权限 “-”表示去掉权限
使用格式:chmod 用户+增减+权限 文件名 ,如:chmod u-w a.c ,取消属主对文件的写权限。
chmod a+x a.c :增加所有用户对文件的执行权限。
2.6.2、数字设定法
在2.5中有说明:r 权限的值为 4 ,w 权限的值为 2 ,x 权限的值为 1,这三个权限任意组合(rex、rx、x、rw)的值都确定出是哪个权限被设置:7代表rwx,6代表rw等等。
文字设定法每次只能设定一个权限,效率低。使用数字设定法可以直接对三种用户的所有权限进行设定。
使用方法:chmod 属主的权限值+同组人的权限值+其他用户的权限值 文件名 。如:chmod 764 a.c ,设定属主的权限为rwx,同组人的权限为 rw ,其他用户的权限为 r 。
2.7、find:查找文件是否存在
使用方法:
1.find 文件名 :在当前目录下查找文件。此时,find 命令只会在当前目录中查找你指定的文件,并且不会在当前目录的子目录去寻找。
先在 dir4目录下创建一个普通文件 f1 ,再在 dir4目录下查找 f1。
如果此时在 dir4目录文件所在目录 /home/jiax 目录下,直接使用 find f1 命令查找f1文件,会显示,无此文件。
2.find -name 文件名:在当前位置以及子目录下查找指定文件是否存在。
此时,在 /home/jiax 目录就可以直接找到 f1文件,系统就会显示其相对于/home/jiax目录的相对路径。
小圆点 . 代表当前目录。图中的路径就是 f1 对于 home/jiax目录的相对路径。
3.find 指定路径 -name 文件名:在指定目录中及其子目录中查找指定文件是否存在。
此时假如我们切换到 Linux的 bin目录,然后记得 f1文件大概在 home目录下,就可以使用 find /home -name f1 命令进行查找。
此时显示的路径为绝对路径,因为f1所在目录没在bin目录中,bin目录的上一级目录为Linux的根目录'/',f1 的路径表示必须以Linux根目录'/' 为起始,所以是绝对路径。
2.8、clear:清屏
在使用命令过程中,终端会产生许多过程信息,使用clear 命令可以将前方不需要的信息全部清除。
使用方法:clear,直接回车。终端被清空。
3、总结
1、我们来学Linux系统,就要学会如何使用命令。Linux命令有很多,本文只整理了一部分,后续会继续整理。
2、命令的使用是很灵活的。可以加上路径、同时对多个文件进行操作等。读者可以自由发挥,多尝试。
3、命令有很多,许多常用的我们要牢记。不用死记硬背,可以通过多练习,在练习的过程中,熟悉命令。