Linux学习笔记05—文件与目录权限

时间:2024-07-23 19:34:56

1、 绝对路径与相对路径
绝对路径:路径的写法一定由根目录 ‘/’写起,例如 /usr/local/mysql 这就是绝对路径
相对路径:路径的写法不是由根目录 ‘/’写起,例如:首先用户进入到/, 然后再进入到home ,命令为 cd /home 然后 cd test 此时用户所在的路径为 /home/test 第一个cd命令后跟 ‘/home’ 第二个cd命令后跟 ‘test’, 并没有斜杠,这个 ‘test’ 是相对于 ‘/home’ 目录来讲的,所以叫做相对路径
2、 cd 命令
切换目录的命令
cd 切换到当前用户的家目录(root的话是切换到根目录)
cd .. 切换到上一级目录
cd / 切换到根目录
cd /home 切换到指定的目录
3、 mkdir 命令
作用:创建目录
参数:-m :指定创建目录的权限 -p :创建递归目录
例如:
mkdir abc 在当前目录下创建ABC目录
mkdir –p /home/wyh/123 在/home/wyh下创建123目录(wyh 与123在/home目录下都不存在时需要加参数,不然无法创建成功)
4、 rmdir 命令
作用:删除空目录命令,后面可以是一个也可以是多少,多个的话用空格分隔。
参数:-p 可以级联删除一大串目录。
注意:该命令只能删除空目录如果目录中存在文件是无法删除的。
5、 rm 命令
作用:删除文件
参数:-r :删除目录 -f :强制删除不给出提示信息
6、 which 命令
作用:查看某个命令的绝对路径
7、 cp 命令
作用:拷贝
参数:-r :对目录进行拷贝,如果不加只能拷贝文件; -I :询问提示信息
格式:
cp 参数 源文件 目标文件
8、 touch 命令
作用: 创建文本文件
9、 mv 命令
作用:1、移动文件;2、给文件重命名
格式:
mv 参数 源文件 目标文件


二、几个和文档相关的命令

1、  cat 命令

作用:查看文件的内容并显示在屏幕上

参数: -n :显示行号

2、  >/>> 符号

echo  '111111111' > dirb/filee

echo  '222222222' >> dirb/filee

‘>>’ 这个符号跟前面介绍的 ‘>’ 的作用都是重定向,即把前面输出的东西输入到后边的文件中,只是 ‘>>’ 是追加的意思,而用 ‘>’ 如果文件中有内容则会删除文件中内容,而 ‘>>’ 则不会

3、  tac 命令

作用:查看文件内容并显示到屏幕上,从后往前显示。

4、  more 命令

作用:

也是用来查看一个文件的内容,后面直接跟文件名,当文件内容太多,一屏幕不能占下,而你用 ‘cat’ 肯定是看不前面的内容的,那么使用 ‘more’ 就可以解决这个问题了。当看完一屏后按空格键继续看下一屏。但看完所有内容后就会退出。如果你想提前退出,只需按 ‘q’ 键即可

5、  Less 命令

作用:

跟more一样,后面直接跟文件名,但比more好在可以上翻,下翻。空格键同样可以翻页,而按 ‘j’ 键可以向下移动(按一下就向下移动一行),按 ‘k’ 键向上移动。在使用more和less查看某个文件时,你可以按一下 ‘/’ 键,然后输入一个word回车,这样就可以查找这个word了。如果是多个该word可以按 ‘n’ 键显示下一个。另外你也可以不按 ‘/’ 而是按 ‘?’ 后边同样跟word来搜索这个word,唯一不同的是, ‘/’ 是在当前行向下搜索,而 ‘?’ 是在当前行向上搜索。

head 命令

作用:

后直接跟文件名,则显示文件的前十行。如果加 -n 选项则显示文件前n行;‘-n’后可以有空格也可以无空格。

tail 命令

作用:

后面直接跟文件名,则显示文件最后十行。

如果加-n 选项则显示文件最后n行;

-f : 动态显示文件的最后十行,如果文件是不断增加的,则用-f 选项


三、文件属性

Linux学习笔记05—文件与目录权限

使用ls –l 显示了九列内容,所对应的含义:

第一列:

包含的东西有该文件类型和所属主、所属组以及其他用户对该文件的权限;第一列共11位有的文件是10位,没有最后面的一位。 其中第一位用来描述该文件的类型。

文件类型:

‘d’ 表示该文件为目录;

‘-‘ 表示该文件为普通文件;

‘l’ 表示该文件为链接文件(linux file),上边提到的软链接即为该类型;

‘b’ 表示该文件为块设备,比如 /dev/sda 就是这样的文件。

‘c’ 表示该文件为串行端口设备,例如键盘、鼠标。

‘s’ 表示该文件为套接字文件(socket),用于进程间通信

后边的9位,每三个为一组。均为rwx 三个参数的组合。其中r 代表可读,w代表可写,x代表可执行。前三位为所属主(user)的权限,中间三位为所属组(group)的权限,最后三位为其他非本群组(others)的权限。也可用数字表示:r == 4 w==2 x==1

第2列,表示为链接占用的节点(inode), [1] 为目录时,通常与该目录底下还有多少目录有关系。

第3列,表示该文件的所属主。

第4列,表示该文件的所属组。

第5列,表示该文件的大小。

第6列、第7列和第8列为该文件的最近的修改日期,分别为月份日期以及时间,也就是所谓的mtime.

第9列,文件名。


四、更改文件权限

1、  chgrp 命令

作用:更改文件所属组

格式:chgrp  [组名]  [文件名]

注意:‘chgrp’命令也可以更改目录的所属组,但是只能更改目录本身,而目录下面的目录或者文件没有更改,要想级联更改子目录以及子文件,需要加参数 – R

2、  chown 命令

作用:更改文件的所属主

格式:

chown [ -R ] 账户名 文件名

chown [ -R ] 账户名:组名 文件名

这里的-R选项只作用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件全部更改。

3、  chmod 命令

作用:修改用户对文件的权限

格式:

chmod [-R] xyz 文件名 (这里的xyz,表示数字)

‘-R’ 选项作用同chown,级联更改

值得提一下的是,在linux系统中,默认一个目录的权限为 755,而一个文件的默认权限为644.

’chmod’ 还支持使用rwx的方式来设置权限。从之前的介绍中我们可以发现,基本上就九个属性分别是(1)user (2)group (3)others, 我们可以使用u, g, o 来代表它们三个的属性,此外, a 则代表 all 亦即全部。例如:

Linux学习笔记05—文件与目录权限

Linux学习笔记05—文件与目录权限

4、  Umask 命令

格式:umask  XXX (XXX代表三个数字)

作用:更改目录、文件默认的权限

umask预设是0022,其代表什么含义?先看一下下面的规则:

1)若用户建立为普通文件,则预设 ‘没有可执行权限’, 只有’rw’两个权限。最大为666 (‘-rw-rw-rw-‘).

2)若用户建立为目录,则预设所有权限均开放,即777 (‘drwxrwxrwx’).

umask数值代表的含义为,上边两条规则中的默认值(文件为666,目录为777)需要减掉的权限。所以目录的权限为 'rwxrwxrwx' - '----w--w-' = 'rwxr-xr-x',普通文件的权限为 'rw-rw-rw-' - '----w--w-' = 'rw-r--r--'. umask的值是可以自定义的,比如设定umask 为 002,你再创建目录或者文件时,默认权限分别为 'rwxrwxrwx' - '-------w-' = 'rwxrwxr-x' 和 'rw-rw-rw-' - '-------w-' = 'rw-rw-r--'

5、  chattr 命令

作用:修改文件的特殊属性

语法格式:chattr  [+-=][ASaci [文件或者目录名]

‘+-=’ : 分别为增加、减少、设定

‘A’ : 增加该属性后,文件或目录的atime将不可被修改;

‘S’ : 增加该属性后,会将数据同步写入磁盘中;

‘a’ : 增加该属性后,只能追加不能删除,非root用户不能设定该属性;

‘c’ : 自动压缩该文件,读取时会自动解压;

‘i’ : 增加后,使文件不能被删除、重命名、设定链接接、写入、新增数据;

6、  lsattr          命令

作用:读取文件或者目录的特殊权限

格式: lsattr  [-aR] [文件/目录名]

‘-a’ : 类似与ls 的-a 选项,即连同隐藏文件一同列出;

‘-R’ : 连同子目录的数据一同列出


五、文件的查询

1、 which 命令
作用:用来查找可执行文件的绝对路径
需要注意的一点是,which只能用来查找PATH环境变量中出现的路径下的可执行文件。
2、 whereis 命令
作用:过预先生成的一个文件列表库去查找跟给出的文件名相关的文件
格式:whereis [-bmsu] [文件名称]
-b: 只找binary 文件
-m: 只找在说明文件manual路径下的文件
-s: 只找source来源文件
-u: 没有说明档的文件
3、 locate 命令
作用:类似于’whereis’, 也是通过查找预先生成的文件列表库来告诉用户要查找的文件在哪里。后边直接跟文件名
4、 find 命令
格式:find -name filename find -type filetype


六、链接文件

链接文件分为两种,硬链接(hard link)和软链接(symbolic link)。两种链接的本质区别关键点在于inode.
注意:(inode 译成中文就是索引节点,它用来存放档案及目录的基本信息,包含时间信息、文档名、属主以及属组等。Inode是Unix操作系统中的一种数据结构,本质是结构体,inode是随文件系统创建时生成的,它的个数有限。在Linux下,可以通过 df -i 来查看各个分区的inode数量)
Hard Links : 当系统要读取一个文件时,就会先去读inode table,然后再去根据inode中的信息到块区域去将数据取出来。而hard link 是直接再建立一个inode链接到文件放置的块区域。也就是说,进行hard link的时候实际上该文件内容没有任何变化,只是增加了一个指到这个文件的inode, hard link 有两个限制:(1)不能跨文件系统,因为不同的文件系统有不同的inode table; (2) 不能链接目录。

Symbolic Links : 跟hard link不同,这个是建立一个独立的文件,而这个文件的作用是当读取这个链接文件时,它会把读取的行为转发到该文件所link的文件上。这样讲,也许比较绕口,那么就来举一个例子。现在有文件a,我们做了一个软链接文件b(只是一个链接文件,非常小),b指向了文件a。当读取b时,那么b就会把读取的动作转发到a上,这样就读取到了文件a。所以,当你删除文件a时,文件b并不会被删除,但是再读取b时,会提示无法打开文件。而,当你删除b时,a是不会有任何影响的。
ln命令
作用:创建文件、目录的链接
格式:ln [-s] [来源文件] [目的文件]
参数:-s: 如果不加就是建立硬链接,加上就建立软链接
硬链接:
1、 硬链接不能用于目录。
2、 删除源文件之后硬链接不受影响
软链接:
1、 软链接可以用于目录
2、 如果删除软链接的源文件,软链接无法读取


参考文档:

http://www.apelearn.com/study_v2/