目录的相关操作
. # 代表此层目录
.. # 代表上一层目录
- # 代表前一个工作目录
~ # 代表『目前使用者身份』所在的家目录
~account # 代表 account 这个使用者的家目录(account是个帐号名称)
- 在所有目录底下都会存在的两个目录,分别是
.
与..
- 根目录的上一层
(..)
与根目录自己(.)
是同一个目录
几个常见的处理目录的命令
- cd:变换目录,cd是Change Directory的缩写
- pwd:显示目前的目录,pwd是Print Working Directory的缩写
- mkdir:创建一个新的目录
- rmdir:删除一个空的目录
- mv:移动文件
pwd -P # -P:代表显示正确的完整路径,而不是连接路径
mkdir -m xxx # -m:直接配置文件的权限
mkdir -p test1/test2 # -p:直接将所需要的目录(包含上一级目录)递回创建起来!
PATH="$PATH":/root # 将/root路径加入PATH环境变量中
文件与目录管理
- 文件与目录的检视: ls
- 复制、删除与移动: cp, rm, mv
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
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
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
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 的权限