LINUX常用的基本命令2
Linux的命令的参数可以组合使用,[ ]括号内为可选参数,可不填
基本属性
在Linux中,我们可以通过用ll
或者ls –l
命令来显示当前目录下除隐藏文件外所有文件的属性以及所属的用户和组,如:
[root@zhouxiaoke /]# ll
total 60
lrwxrwxrwx. 1 root root 7 Aug 18 2017 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 Aug 28 14:07 boot
drwxr-xr-x 19 root root 2980 Aug 28 15:11 dev
drwxr-xr-x. 81 root root 4096 Aug 28 23:08 etc
drwxr-xr-x. 4 root root 4096 Aug 28 18:27 home
lrwxrwxrwx. 1 root root 7 Aug 18 2017 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Aug 18 2017 lib64 -> usr/lib64
drwx------. 2 root root 16384 Aug 18 2017 lost+found
drwxr-xr-x. 2 root root 4096 Nov 5 2016 media
drwxr-xr-x. 2 root root 4096 Nov 5 2016 mnt
drwxr-xr-x. 2 root root 4096 Nov 5 2016 opt
dr-xr-xr-x 74 root root 0 Aug 28 15:08 proc
dr-xr-x---. 5 root root 4096 Aug 28 20:49 root
drwxr-xr-x 21 root root 600 Aug 28 15:09 run
lrwxrwxrwx. 1 root root 8 Aug 18 2017 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 Nov 5 2016 srv
dr-xr-xr-x 13 root root 0 Aug 28 23:08 sys
-rw-r--r-- 1 root root 0 Aug 29 16:38 test1
drwxrwxrwt. 9 root root 4096 Aug 29 03:39 tmp
drwxr-xr-x. 13 root root 4096 Aug 18 2017 usr
drwxr-xr-x. 19 root root 4096 Aug 28 23:08 var
-
文件的第一个属性表示该文件是目录、文件或链接文件等
- d:目录
- -:文件
- l:链接文件,link file
- b:表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 )
- c:表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )
- 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合,共有三组,分别代表属主(该文件的所有者)、属组(所有者的同组用户)和其他用户对该文件的拥有的权限。
-
第三个属性:文件数或目录数
- 如果该文件是文件,则这个属性为文件数,即是1。如bin是一个链接文件,因此1。
- 如果该文件是目录,则这个属性表示这个目录中包含的目录数(含隐藏目录)。比如,root目录的第三属性为4,进入root后用
ls -al
查看,可以看到有4个目录。
- 第四个属性:拥有者。
- 第五个属性:所属的组。
- 第六个属性:文件大小,单位字节byte。
- 第六个属性:修改时间。
- 第七个属性:文件名/目录名。
修改文件属性
chgrp:更改文件属性
chgrp [-R] 属组名 要更改的文件或目录
- -R:递归修改。
chown:更改文件属主或属组
chown [-R] 属主名[:属组名] 要更改的文件或目录
- -R:递归修改。
chmod:更改文件权限
chmod [-R] xyz 要更改的文件或目录
- -R:递归修改。
文件权限xyz有两个设置方式,数字或符号:
-
数字:
- 每个身份的权限就相当于用一个3位的二进制树来表示,从高位到地位(左到右)分别代表read、write、excutede的权限。如111,指的是可读可写可执行;如101,可读不可写可执行。然后把这个3位进制数转换为十进制数,就可。如111,7;如101,5。
- ? 需要分别表示属主、属组、其他用户的权限,因此需要三个十进数依次表示。如751,属主可读可写可执行,属组可读不可写可执行,其他用户不可读不可写可执行。
chmod -R 777 dir1
-
符号:
chmod -R -rwxrwxrwx dir1
文件内容查看
Linux系统中使用以下命令来查看文件的内容:
命令 | 作用 |
---|---|
cat | 由第一行开始显示文件内容 |
tac | 从最后一行开始显示,可以看出 tac 是 cat 的倒着写! |
nl | 显示的时候,顺道输出行号! |
more | 一页一页的显示文件内容 |
less | 与 more 类似,但是比 more 更好的是,他可以往前翻页! |
head | 只看头几行 |
tail | 只看尾巴几行 |
cat 由第一行开始显示文件内容
cat [-AbeEnstTuv] [--help] [--version] fileName
参数 | 作用 |
---|---|
-n | --number:由 1 开始对所有输出的行数编号。 |
-b | --number-nonblank:和 -n 相似,只不过对于空白行不编号。 |
-s | --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。 |
-v | --show-nonprinting:列出一些看不出来的特殊字符(使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外)。 |
-E | --show-ends : 在每行结束处显示 $。 |
-T | --show-tabs: 将 TAB 字符显示为 ^I。 |
-A | --show-all:等价于 -vET。 |
-e | 等价于"-vE"选项; |
-t | 等价于"-vT"选项; |
链接文件
在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index),它是文件或者目录在一个文件系统中的唯一标识。
硬链接
在Linux系统中,多个文件名指向同一索引节点(Inode)是正常且允许的。一般这种链接就称为硬链接。硬链接的作用之一是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据。不过硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。
之所以文件建立了硬链接就会防止数据误删,是因为文件系统的原理是,只要文件的索引节点还有一个以上的链接(仅删除了该文件的指向),只删除其中一个链接并不影响索引节点本身和其他的链接(数据的实体并未删除),只有当最后一个链接被删除后,此时如果有新数据要存储到磁盘上,被删除的文件的数据块及目录的链接才会被释放,空间被新数据暂用覆盖。
软链接
软链接(也叫符号链接),类似于windows系统中的快捷方式,与硬链接不同,软链接就是一个普通文件,只是数据块内容有点特殊,文件用户数据块中存放的内容是另一文件的路径名的指向,通过这个方式可以快速定位到软连接所指向的源文件实体。软链接可对文件或目录创建。
删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。
测试1:
[root@zhouxiaoke zhouxiaoke]# ls
[root@zhouxiaoke zhouxiaoke]# touch file1
[root@zhouxiaoke zhouxiaoke]# ln file1 file2
[root@zhouxiaoke zhouxiaoke]# ln -s file1 file3
[root@zhouxiaoke zhouxiaoke]# ls -li
total 0
393255 -rw-r--r-- 2 root root 0 Aug 30 14:25 file1
393255 -rw-r--r-- 2 root root 0 Aug 30 14:25 file2
393256 lrwxrwxrwx 1 root root 5 Aug 30 14:26 file3 -> file1
[root@zhouxiaoke zhouxiaoke]#
-
创建文件file1。
-
创建file1的硬链接文件file2。
ln file1 file2
-
创建file1的软链接文件file3。
ln -s file1 file3
-
使用
ln -li
查看这三个文件的inode:(查询结果的第一列属性)- file1和file2的inode一样。
- file1和file3的inode不一样。
测试2:
[root@zhouxiaoke zhouxiaoke]# ls
[root@zhouxiaoke zhouxiaoke]# touch file1
[root@zhouxiaoke zhouxiaoke]# ln file1 file2
[root@zhouxiaoke zhouxiaoke]# ln -s file1 file3
[root@zhouxiaoke zhouxiaoke]# cat file3
[root@zhouxiaoke zhouxiaoke]# rm -f file1
[root@zhouxiaoke zhouxiaoke]# cat file3
cat: file3: No such file or directory
[root@zhouxiaoke zhouxiaoke]#
-
file1分别创建了硬链接file2和软链接file3,在删除file1后,file3无法正常访问。
-
软链接file3存放的是file1的路径,删除file1后,file3所记录的路径变成了空路径,所以file3无法访问。尽管file1和file2都是指向同一个inode的文件,但是file1和file2的路径不一样。