第七章 Linux文件和目录管理
绝对路径:以“/”开始
相对路径:以非“/”开始
其中,“.”代表当前目录,“..”代表上一级目录
“-”代表前一个工作目录,“~”代表当前用户的家目录 = cd 回车
注:在写shell时,尽量使用绝对路径
特“/”的“.”与“..”属性一样
pwd (print working directory) :显示当前所在目录(路径) -p 显示实际路径,而非连接路径
新建目录命令:mkdir -p 目录递归 -m 设置目录权限
默认属性与umask 有关
删除“空”目录命令:rmdir -p 同上一层目录一起删除(空目录)
系统环境变量: $PATH
echo $PATH 显示环境变量PATH值
将/home添加到环境变量里 则: PATH=$PATH:/home
查看文件或目录命令:ls [ls -al = ll] 主要参数 -a (列出隐藏) -F(文件类型) -h(文件大小) -l(长格式) -R(子目录)
复制命令:cp 主要参数:-d (复制链接) -f(强制) -i(询问) -l(硬链接) -p(复制属性) -r(递归) -s(符号链接)-u(更新)[常用作备份] 注:-a = -dpr
删除文件或目录命令:rm 相当于Windows 的DEL 使用要特别小心,建议将 rm -i 加入别名里
主要参数: -f(强制) -i(询问) -r(递归)
移动文件或目录命令(可重命名):mv 主要参数 :-f(强制) -i(询问) -u(更新)
basename :短文件名
dirname:路径名
查看文件内容命令:
1.cat 有第一行开始显示文件(ASCII)中的内容 (tac刚好相反)
主要参数:-E(显换行符) -n(显示行号) -T(TAB以^I显示)-v(显示特殊字符)
linux系统中 换行符为:$
windows系统中换行符为:^M$
2.nl 显示文件(ASCII)内容冰添加行号
主要参数: -ba(空行显示行号)-bt(空行不显示行号)
3.more 显示文件内容(非一次性显示)
主要参数::f:显示文件名及显示的行数 q(离开)
4.less 同more,但可以上下翻页
5.head 显示文件的头几行,默认头10行 主要参数:-n(显示行数)
6.od 显示非纯文本文件 主要参数:-t(类型) a 默认字符输出 c ASCII字符输出
新建文件命令:touch
其中,mtime:文件内容修改时间、ctime:文件状态(属性)修改时间、atime:问你家最后读时间
主要参数:-a(修改 atime) -c(仅修改时间) -d(后跟日期) -m(修改mtime) -t(后跟时间)
一行中多个命令用“;”分隔
chattr 设置系统文件或目录安全属性
主要参数:-A(atime不可更改) -S(数据同步写入磁盘 同sync) -a(只能增加 适合日志) -c(自动压缩) -d(执行dump备份使文件具有转存功能) -i(不能被删除、改名、设置、无法写入或新增数据 适合密码) -j(文件写入时记录在日志文件系统中) -s(从硬盘空间彻底删除) -u(与s相反)
lsattr 查看系统文件或目录安全属性(同时显示隐藏)主要参数:-R(递归)
umask(指:默认需要减掉的权限 不可直接减,而要逻辑运算) 文件或目录默认建立权限
查看文件或目录建立默认属性命令:umask -S
文件:666 目录:777 ---计算
root的默认umask为:022
一般用户的默认umask为:002
文件特殊权限:
SUID (Set UID)其中,s 为暂时拥有文件拥有者的权限
SUID 仅可用在“二进制”文件 SUID对目录无效
SGID (Set GID)
SBIT (Sticky Bit) 只对目录有效,对文件无效
查询文件类型名:file
搜索文件命令:
1.whereis (在系统数据库中搜索)
主要参数: -b #二进制 -m #帮助文件路径中的文件 -s #源文件 -u #没有帮助文件的文件
2.locate (在系统数据库中搜索)
3.which (寻找可执行文件)
更新系统数据库命令:updatedb
功能强大的文件查找命令:find
主要参数:-atime n -ctime n -mtime n -newer file(查找比file文件还新的文件) -uid n -gid n -user 用户名 -group 用户组 -nouser(查找文件拥有者不在/etc/passwd文件中的文件) -nogroup(查找文件拥有用户组不在/etc/group中的文件) -name 文件名 -size[+-] 文件大小(其中 +为大 -为小 c表示字节) -type 文件类型 -perm mode(搜索包含文件属性)
附加:-exec 命令 :将搜索结果通过该命令来处理
例如:find / -perm +7000 -exec ls -l {} \; 其中,{} 代表 find命令找出的结果,\ 表示命令到此结束。
课后习题及答案
1.什么是绝对路径与相对路径?
答:绝对路径是以“/”开始写,而相对路径非以“/”开始写
2.如何更改一个目录的名称?例如由 /home/test 变为 /home/test2
答:mv /home/test /home/test2
3.PATH变量名的含义是是什么?
答:是指文件执行的时候,文件搜索的目录路径。
4.umask 有什么用处与优点?
答:umask 可以拿掉一些属性,因此,适当的定义umask有助于系统安全,因为它可以建立预设文件或目录的权限。
5.当一个使用者的 umask 分别为 033 与 044 他所建立的档案与目录的权限为何?
答:在umask为033时,则预设去掉group与other的w(2)+x(1)权限,因此,权限就成为【文件 -rw-r--r--,目录:drwx--r--r】而当umask为044是,则拿掉r的属性,因此就成为【文件 -rw--w--w,目录:drwx-wx-wx】
6.什么是 SUID ?
答:当一个指令具有SUID的功能时,则当其他人使用这个指令时,该程序将具有指令拥有者的权限。
7.当我要查询 /usr/bin/passwd 这个档案的一些属性时,可以使用什么指令来查询?
答:ls -al 或者 lsattr 或者 file /usr/bin/passwd
8.尝试用 find 找出目前 linux 系统中,所有具有 SUID 的档案有哪些?
答:find / -type f -perm 04000 -print
本文所整理的答案出自 作者:鸟哥 原文地址:http://linux.vbird.org
转载时,请务必附上上述作者和出处