Linux学习:文件与目录管理

目录的相关操作

1
2
3
4
5
.         # 代表此层目录
.. # 代表上一层目录
- # 代表前一个工作目录
~ # 代表『目前使用者身份』所在的家目录
~account # 代表 account 这个使用者的家目录(account是个帐号名称)
  • 在所有目录底下都会存在的两个目录,分别是.与..
  • 根目录的上一层(..)与根目录自己(.)是同一个目录

几个常见的处理目录的命令

  • cd:变换目录,cd是Change Directory的缩写
  • pwd:显示目前的目录,pwd是Print Working Directory的缩写
  • mkdir:创建一个新的目录
  • rmdir:删除一个空的目录
  • mv:移动文件
    1
    2
    3
    4
    pwd -P                   # -P:代表显示正确的完整路径,而不是连接路径
    mkdir -m xxx # -m:直接配置文件的权限
    mkdir -p test1/test2 # -p:直接将所需要的目录(包含上一级目录)递回创建起来!
    PATH="$PATH":/root # 将/root路径加入PATH环境变量中

文件与目录管理

  • 文件与目录的检视: ls
  • 复制、删除与移动: cp, rm, mv
    1
    2
    3
    4
    5
    6
    7
    cp -a        # 将文件的所有特性都一起复制过来
    cp -p # 连同文件的属性一起复制过去,而非使用默认属性(备份常用)
    cp -r # 可以复制目录,但是,文件与目录的权限可能会被改变
    rm -i # 互动模式,在删除前会询问使用者是否动作
    rm -r # 连目录下的东西一起删掉,并且不会询问,慎用
    mv -f # force强制移动,如果目标文件已经存在,不会询问而直接覆盖
    mv -i # 若目标文件 (destination) 已经存在时,就会询问是否覆盖

文件内容查询

  • 直接检视文件内容: cat, tac, nl (常用)
  • 可翻页检视: more, less (常用)
  • 数据摘取: head, tail
  • 非纯文字档: od
  • 修改文件时间与建置新档: touch
    1
    2
    3
    4
    5
    6
    7
    8
    cat [-AbEnTv] filename # 由第一行开始显示文件内容。-b列出非空白行行号;-n列出所有行号。
    tac # 从最后一行开始显示文件内容,tac就是cat倒着写!
    nl # 显示文件内容,顺便输出行号
    more # 一页一页地显示文件内容
    less # 与more类似,但可以往前翻页
    head [-n number] # 只看文件头几行,默认是10行,number是自定义行数
    tail # 只看文件尾几行,文件很大的时候常用
    od # 以二进制方式读取文件内容

文件与目录的默认权限与隐藏权限

  • 文件默认权限:umask
  • 文件隐藏属性: chattr, lsattr
  • 文件特殊权限:SUID, SGID, SBIT, 权限配置
  • 观察文件类型:file
    1
    2
    3
    umask           # 后三位数是被拿走的权限分数,比如0022,u没有被拿走权限,g和o被拿走了w权限
    umask -S # 以符号类型来显示权限
    umask number # 配置自己需要的权限

在默认的情况中,root的umask会拿掉比较多的属性,root的umask默认是022, 这是基于安全的考量啦~至于一般身份使用者,通常他们的 umask 为002 ,亦即保留同群组的写入权力。

  • 特殊权限s和t
  • Set UID,简称SUID,当s标志在文件拥有者的x项目为SUID,对目录无效
  • Set GID,简称SGID,当s标志在群组的x项目为SGID,对目录有效
  • Sticky Bit, 简称SBIT,目前只针对目录有效,对於文件已经没有效果了

配置SUID,SGID,SBIT权限

在原有的权限数字前面加上需要配置的权限数字。 比如755->4755 ,就意味着-rwxr-xr-x变为了-rwsr-xr-x。

  • 4 为 SUID
  • 2 为 SGID
  • 1 为 SBIT
    1
    2
    3
    chmod 4755 filename
    chmod u=rwxs,go=x test; ls -l test # 配置权限为-rws--x--x的模样
    chmod g+s,o+t test; ls -l test #配置权限为-rws--s--t,即加入SGID,SBIT权限

命令与文件的搜寻

  • 命令档名的搜寻:which
  • 文件档名的搜寻:whereis, locate, find

权限与命令的关系

一、让使用者能进入某目录成为『可工作目录』的基本权限为何:

  • 可使用的命令:例如 cd 等变换工作目录的命令;
  • 目录所需权限:使用者对这个目录至少需要具有 x 的权限
  • 额外需求:如果使用者想要在这个目录内利用 ls 查阅档名,则使用者对此目录还需要 r 的权限。

二、使用者在某个目录内读取一个文件的基本权限为何?

  • 可使用的命令:例如本章谈到的 cat, more, less等等
  • 目录所需权限:使用者对这个目录至少需要具有 x 权限;
  • 文件所需权限:使用者对文件至少需要具有 r 的权限才行!

三、让使用者可以修改一个文件的基本权限为何?

  • 可使用的命令:例如 nano 或未来要介绍的 vi 编辑器等;
  • 目录所需权限:使用者在该文件所在的目录至少要有 x 权限;
  • 文件所需权限:使用者对该文件至少要有 r, w 权限

四、让一个使用者可以创建一个文件的基本权限为何?

  • 目录所需权限:使用者在该目录要具有 w,x 的权限,重点在 w 啦!

五、让使用者进入某目录并运行该目录下的某个命令之基本权限为何?

  • 目录所需权限:使用者在该目录至少要有 x 的权限;
  • 文件所需权限:使用者在该文件至少需要有 x 的权限
文章目录
  1. 1. 目录的相关操作
    1. 1.0.1. 几个常见的处理目录的命令
  • 2. 文件与目录管理
  • 3. 文件内容查询
  • 4. 文件与目录的默认权限与隐藏权限
  • 5. 配置SUID,SGID,SBIT权限
  • 6. 命令与文件的搜寻
  • 7. 权限与命令的关系
    1. 7.0.1. 一、让使用者能进入某目录成为『可工作目录』的基本权限为何:
    2. 7.0.2. 二、使用者在某个目录内读取一个文件的基本权限为何?
    3. 7.0.3. 三、让使用者可以修改一个文件的基本权限为何?
    4. 7.0.4. 四、让一个使用者可以创建一个文件的基本权限为何?
    5. 7.0.5. 五、让使用者进入某目录并运行该目录下的某个命令之基本权限为何?