Linux之文件权限与目录管理

一,Linux文件权限概念
ls是“list”的意思,重点在显示文件的文件名与相关属性。而参数“-al”则表示列出所有的文件详细的权限与属性(包括隐藏文件,就是文件名第一个字符为“.”的文件)。

Linux图6-2Linux图6-3第一个字符代表这个文件是“目录、文件或链接文件等”

  1. 若是[d]则是目录,若是[-]则是文件,[l]表示链接文件(linkfile)。
  2. 若是[b]则表示设备文件里面的可供存储的接口设备。
  3. 若是[c]则表示设备文件里面的串行端口设备,例如键盘、鼠标。

二,如何改变文件属性与权限

  1. 改变所属用户组:chgrp(change group的简称)
    命令格式:chgrp [-R] dirname/filename …
    -R:进行递归(recursive)持续更改,也即联通子目录小的所有文件、目录
    栗子:chgrp users install.log    #改变install.log文件的用户组为users
  2. 改变文件所有者:chown(change owner)
    命令格式:chown [-R] 账号名称 文件或目录
    栗子:chown bin install.log    #将install.log的所有者改为bin这个账号
  3. 改变权限:chmod
    Linux文件的基本权限就有9个,分别是owner、group、others三种身份各有自己的read、write、execute权限。其中,我们可以使用数字来代表各个权限:
    (1)r:4
    (2)w:2
    (3)x:1
    命令格式:chmod [-R] xyz 文件或目录
    chmod 777 .bashrc    #将.bashrc这个文件的权限都设置启用。

三,目录的相关操作

  1. 切换目录的命令是cd,下面这些比较特殊的目录要记下来:
    (1).    代表此层目录
    (2)..   代表上一层目录
    (3)-   代表前一个工作目录
    (4)~   代表“目前用户身份”所在的主文件夹
  2. 常见的处理目录的命令:
    (1)cd:切换目录(Change Directory的缩写)
    (2)pwd:显示当前目录(Print Working Directory的缩写)
    (3)mkdir:新建一个新的目录(make directory的缩写)
    (4)rmdir:删除一个空的目录

四,文件与目录管理

  1. 查看文件与目录:ls
    (1)命令格式:
    ls [-aAdfFhilnrRSt] 目录名称
    ls [–color={never,auto,alaways}] 目录名称
    ls [–full-time] 目录名称
    (2)参数:
    -a:全部的文件,连同隐藏文件一起列出来(常用)
    -A:列出全部的文件,连同隐藏文件,但不包括.与..这两个目录
    -d:仅列出目录本身,而不是列出目录内的文件数据(常用)
    -h:将文件容量已人类较已读的方式(GB,KB等)列出来
    -i:列出inode号码
    -l:列出长数据串,包含文件的属性与权限等数据(常用)
    –color=never:不要依据文件特性给予颜色显示
    –color=always:显示颜色
    –color=auto:让系统自行依据设置来判断是否给予颜色
    –full-time:以完整的时间模式输出
  2. 复制、删除与移动:cp,rm,mv
    (1)cp(复制文件或目录)
    命令格式:
    cp [-adfilprsu] 源文件 目标文件
    cp [options] source1 source2 … directory
    参数:
    -a:相当于-pdr的意思(常用)
    -d:若源文件为连接文件的属性,则复制连接文件属性而非文件本身
    -f:强制(force)的意思若目标文件已经存在且无法开启,则删除后再尝试一次
    -i:若目标文件已经存在时,在覆盖时会先询问操作在进行(常用)
    -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用)
    -r:递归持续复制,用于目录的赋值行为(常用)
    最后需要注意的是,若源文件有两个以上,则最后一个目的文件一定要是目录才行。
    (2)rm(移除文件或目录)
    命令格式:rm [-fir] 文件或目录
    参数:
    -f:就是force的意思,忽略不存在的文件,不会出现警告信息
    -i:互动模式,在删除前会询问用户是否操作
    -r:递归删除。最常用在目录的删除了,但,这是非常危险的参数!!!
    (3)mv(移动文件与目录,或更名)
    命令格式:
    mv [-fiu] source destination
    mv [options] source1 source2 … directory
    参数:
    -f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
    -i:若目标文件已经存在时,就会询问是否覆盖
    -u:若目标文件已经存在,且source比较新,才会更新
  3. 文件内容查阅
    cat:由第一行开始显示文件内容
    tac:从最后一行开始显示,可以看出tac是cat的倒写形式
    nl:显示的时候,顺便输出行号
    more:一页一页的显示文件内容
    less:与more类似,但是比more更好的是,它可以往前翻页
    head:会看头几行
    tail:只看结尾几行
    od:以二进制的方式读取文件内容
  4. 修改文件或创建新文件:touch
    命令格式:touch [-acdmt] 文件
    参数:
    -a:仅修改访问时间
    -c:仅修改文件的时间,若该文件不存在则不创建新文件
    -d:后面可以接欲修改的日期而不用目前的日期,也可以使用–date=”日期或时间”
    -m:仅修改mtime
    -t:后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm]
  5. 文件默认权限:umask
    (1)若用户创建“文件”则默认没有可执行权限,也就是最大为666;若用户新建目录,则由于x与是否可以进入此目录有关,因此默认为所有777
    (2)umask就是指定“目前用户在新建文件或目录时候的权限默认值”,需要注意的是,umask的分数指的是“该默认值需要减掉的权限”
  6. 命令与文件的查询
    (1)which(寻找“执行文件”):which [-a] command
    -a:将所有由PATH目录中可以找到的命令均列出,而不只第一个被找到的命令名称
    which ifconfig(2)whereis(寻找特定文件)
    whereis [-bmsu] 文件或目录名
    -b:只找二进制格式的文件
    -m:只找在说明文件manual路径下的文件
    -s:只找source源文件
    -u:查找不在上述三个选项当中的其他特殊文件
    (3)locate
    有的时候使用上面两个命令会发现,会找到已经被删除的文件,而且也找不到最新的刚才创建的文件。
    locate [-ir] keyword
    -i:忽略大小写的差异
    -r:后面可接正则表达式的显示方式
    这个locate的使用更简单,直接在后面输入“文件的部分名称”后就能得到结果。(4)find
    find [PATH] [option] [action]
    与时间有关的参数:共有-atime,-ctime,-mtime。下面以-mtime说明:
    -mtime n: n为数字,意义为在n天前的那“一天之内”被更改过的文件
    -mtime +n: 列出在n天之前(不含n天本身)被更改过的文件名
    -mtime -n: 列出在n天之内(含n天本身)被更改过的文件名
    -newer file: file为一个存在的文件,列出比file还要新的文件名
    比如:
    find / -mtime 0    #将过去系统上面24小时内有改动的文件列出
    find /home -user leo    #查找/home下面属于leo的文件
    find / -nouser      #查找系统中不属于任何人的文件

    参考自:Linux私房菜基础学习篇

发表评论

电子邮件地址不会被公开。 必填项已用*标注