6.1 目录与路径
6.1.1 相对路径和绝对路径
- 绝对路径:根路径/写起,例如:/usr/share/doc
- 相对路径:不是从根路径/写起,例如:从/usr/share/doc 要到 /usr/share/man 底下时,写cd…//man。相对路径指的是相对于目前工作的路径
一、相对路径的用途
输入指令的时候
例如:/cluster/raid/output/taiwan2006/smoke
到:/cluster/raid/output/taiwan2006/cctm
只需要写成cd…/cctm就可以
二、绝对路径的用途
写程序的时候避免错误
6.1.2 目录的相关操作
一、特殊目录
. 代表此层目录
… 代表上一层目录
-代表前一个工作目录
~ 代表『目前用户身份』所在的家目录
~account 代表 account 这个用户的家目录(account是个账号名称)
二、一些指令
cd :变换目录(change directory)
pwd :显示当前目录(print working directory)
mkdir :建立一个新的目录(make directory)
rmdir :删除一个空的目录(remove)
6.1.3 关于执行文件路径的变量:$PATH
执行echo $PATH命令
echo表示打印命令,美元符号表示后面接的是变量,Path表示变量
输出:
例如:ls命令,在/bin目录下,/bin目录设置在了环境变量Path中
6.2 文件和目录管理
6.2.1 文件和目录的查看:ls
略
6.2.2 复制、删除和移动:cp,rm,mv
略
6.2.3 取得路径的文件名和目录名称
6.3 文件内容查阅
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示 文件 内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
od 以二进制的方式读取以二进制的方式读取文件文件内容!内容!
6.3.1 直接检视文件内容
cat
tac
nl
6.3.2 可翻页检视
more /etc/man.db.conf 只能往后翻页显示
less /etc/man.db.conf 可以往前往后翻页显示
6.3.3 资料撷取
head -n 20 /etc/man.db.conf 显示前面20行,不加参数默认是10行
tail -n 20 /etc/man_db.conf 显示最后面的20行
6.3.4 非纯文本档:od
od -t c /usr/bin/passwd 使用ASCII方式输出二进制文件
6.3.5 修改文件时间或建置新档: touch
ls指令的三个选项:
ls --time=mtime /etc/man_db.conf 列出文件更改内容时间(modification time)
ls --time=ctime /etc/man_db.conf 列出文件更改属性和权限时间(status time)
ls --time=atime /etc/man_db.conf 列出文件被取用时间(access time)
touch指令:让文件变成现在的时间
6.4 文件与目录的默认权限与隐藏权限
6.4.1 文件预设权限:umask
umask的作用:通过设定umask的值,减去umask的权限得到文件权限。
例如:umask值为022,test.txt文件的权限是666,即:drwxrwxrwx
执行umask test.txt后,test.txt的权限就变成了644,即:drwxr-xr-x
6.4.2 文件隐藏属性
指令chatttr [±=选项] 文件或目录
例如:chaattr +a test.txt 表示对文件增加隐藏权限a,该权限只能增加数据,不能删除和更改文件数据。还有属性i表示不能增加更改删除数据
指令lsattr表示查看文件隐藏权限
6.4.3 文件 特殊权限:SUID, SGID, SBIT
一、SUID
SUID(Set UID)体现在替换ower执行权限x为s:-rwsrwxrwx
SUID限制和功能:
- SUID 权限仅对二进制程序 (binary program)有效,不能用在shell script;
- 执行者对于该程序需要具有 x 的可执行权限;
- 本权限仅在执行该程序的过程中有效 (run time)
- 执行者将具有该程序拥有者 (owner) L的权限。
举例:比如用户zhaojialu对/etc目录下的shadow文件权限有-rwsrwxrwx
,即在执行权限x的基础上多一个s权限,用户zhaojialu就能够对shadow进行特殊执行
二、SGID
SGID体现在替换group执行权限x为s:-rwxrwsrwx
SGID功能:
- SGID 对二进制程序有用;
- 程序执行者对于该程序来说,需具备 x 的权限;
- 有权限通过群组来执行群组内的其他程序
举例:比如用户zhaojialu通过/usr/bin/locate对/var/lib/mlocate/mlocate.db文件内容访问,locate的权限是-rwx–s--x,所属群组是slocate,zhaojialu可以有权限通过mlocate.db的群组slocate来访问mlocate.db内容
SGID还能用在目录上面,功能:
- 用户若对于此目录具有 r 与 x 的权限时,该用户能够进入此目录;
- 用户在此目录下的有效群组 (effective 将会变成该目录的群组;
- 用途:若用户在此目录下具有 w 的权限 可以新建 文件 )),则使用者所建立的新文件 ,该新文件的群组与此目录的群组相同。
三、Sticky Bit
该权限只对目录有效
SBIT作用:
没有加入SBIT情况下,用户可以对自己所属的群组的其他用户的文件进行增删改操作
对文件夹加入SBIT权限,只有用户自己和root能够删除和增加自己所建立的文件,不能增删改其他用户的文件。
例如:
/tmp文件权限是drwxrwxrwt,用户自己和root只能针对自己增加的文件进行增删改操作,对其他登录用户的文件无权操作。
6.4.4 观察文件类型: file
指令file:观察文件类型
6.5 指令与文件的搜寻
6.5.1 脚本文件名的搜寻
指令which command
6.5.2 文件档名的搜寻
whereis只找系统特定目录中的文件,locate利用数据库来查找文件,速度较快,find搜索全盘,速度最慢
例如:whereis ifconfig以及locate -l 5 passwd
locate已经建立的数据库存在于/var/lib
/mlocate,数据库每天更新一次,手动更新数据库命令:updatedb