第七章 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

转载时,请务必附上上述作者和出处