您的位置:首页 > 运维架构 > Linux

【鸟哥 linux 基础篇】 第7章 Linux档案与目录管理

2014-06-12 22:28 190 查看
四个操作目录的指令

cd:变换目录

pwd:显示当前目录

mkdir:建立新目录

rmdir:删除空目录  也可用
rm -r 目录名
来删除整个非空目录

环境变量

诸如ls这样的指令,实际存在绝对路径 /bin/ls 中,但是无论当前处在哪个目录下,均可以执行ls命令,这是因为当前账户的/bin被放入了环境变量PATH中。通过指令echo $PATH 可以显示环境变量。通过指令 PATH="$PATH":/root 可将/root目录加入环境变量,必要可将/root替换为想添加的目录。

ls指令:用于显示文件
cp指令:复制文件,或者复制多个文件到一个目录 选项太多,查看man
rm指令:删除文件 -r用于删除目录

mv指令:移动文件或用于重命名,对于mv和cp -u意为update,只有源文件新于目标文件时才操作

档案内容查阅:

cat:从第一行开始显示档案内容 -n显示行号 -b显示非空行行号 -A显示换行 tab等特殊字符

tac:从最后一行显示档案内容

nl:顺带输出行号

more:一页一页显示档案内容

less:与more类似,可以往前翻

head:只看头几行 比如:-n 20

tail:只看尾巴几行

od:以二进制方式查看档案内容

touch

建立空档案或者将某档案时间修订为目前(mtime:修改时间 和 atime:访问时间)

linux中的三个时间

文档修改时间(modification time - mtime):更改文档中内容的时间,不是修改权限属性的时间

文档状态时间(status time - ctime):当文档的状态(权限和属性)被修改的时间

文档访问时间(access time - atime):当文档内容被访问、读取的时间

档案的预设权限:umask

每当新建一个文档或者目录,都会有一个预设权限,执行 umask 指令会得到一个4位数字,后三位就间接反映了预设的权限。具体而言,比如umask返回值为0022,那么后三位显然是022。下面分别对目录和文件讨论:

对于档案而言,预设最多不给与x权限,则应当是666(rw-rw-rw-),那么在此基础上再减去刚才的022(----w--w-),得到结果为644(rw-r--r--),注意此处不是数学上想减,而是减去对应的权限,最后档案的初始默认权限则为644。

对于目录而言,预设最多给予777权限,则应当是777(rwxrwxrwx),那么在此基础上也减去刚才的022(----w--w-),得到结果为755(rwxr-xr-x),同样此处不是数学上相减,最后目录的初始默认权限则为755

档案的隐藏属性

chattr:文档或者文件夹的隐藏属性,一般需要root才能设定, + - 或者 = 来设定,主要两种:

        a表示这个文档只能增加数据,不可以删和改,只有root能设定。

        i表示这个档案不能删,改名,设定连接,写入。 eg: chattr +i filename

lsattr: lsattr [-adR] 文件或文件夹   (与ls类似,但还显示隐藏属性)

         -a:将隐藏的文件属性也显示出来

         -d:如果后面跟的是文件夹,则只显示文件夹属性而非文件夹内文件

         -R:将子目录数据也一并列出

档案的特殊权限:SUID, SGID, SBIT

1.SUID(Set UID):当s出现在档案(这里指二进制程序)拥有者的x权限上,并且某个执行者账号对该文档有x执行的权限,则当他执行该文档时,能够具有该文档拥有者的权限,并且权限仅在程序运行时有效。

2.SGID(Set GID):s出现在档案群组属性的x上。对文档和文件夹作用不同。

                   文档:对于二进制程序的文档,程序执行者若拥有x权限,则执行时获得该程序群组支持

                   文件夹:用户能进入某个目录,当用户可以创建文档时,文档的群组为此目录的群组

3.SBIT(Sticky Bit):t出现在other的x上:只针对目录有效,当用户对此目录有w,x权限时,用户在该目录下建立档案和目录时,仅

                      有自己和root才有权利删除该档案

设置方法:chmod 4755 filename 其中4755第一位表示这三个权限, SUID-4  SGID-2  SBIT-1

          若原来不具备x权限,则对应加上这些特殊权限之后,S S T会变成大写,表示空。

          因为比如SUID中,档案拥有者本身都不具有x权限,无法执行该档案,就更不用考虑给其他人权限使用了。

指令和档案的搜寻

which (在环境变量中寻找指令】): which [-a] command  用于搜寻指令所在的文档,不加-a则显示在PATH中找到的第一个包含该指令的目录,-a表示列出所有在PATH中包含目标指令的目录。

whereis(在数据库中寻找指令):whereis [-bmsu] 指令  用于寻找与该指令相关的二进制执行文件,说明文件(manual - man),source来源档案。

locate(在数据库中寻找档案):locate [-ir] keyword   通过关键字keyword在数据库中寻找文件名包含该关键字的文件,即时性较差,因为数据库更新周期长,但可用updatedb手动更新。

find(在硬盘中寻找档案):

格式 find [PATH] [option] [action]

      选项和参数:

      1.与时间有关的选项:-atime -ctime -mtime 

        三个时间分别是:访问时间(读取或执行文档)

                        状态时间(权限或者属性被修改)

                        修改时间(文档的内容数据被修改,而不是权限和属性)

        下面 以mtime为例,

        -mtime n:n为数字 表示n天前的那一天被改动过的文档 如:find / -mtime 0 表示24小时内改过的文档

        -mtime +n:表示n天前的那天之前(不含n天)被改动过的文档

        -mtime -n:表示n天之内(含n天)被改动过的文档

        -newer file:列出比已存在的文件file更新的文档名

      2.与使用者和组名有关的选项

        -uid n:寻找目录下属于用户编号为uid的账号的文件

        -gid n:寻找目录下属于群组编号为gid的群组的文件

        -user name:寻找目录下属于账户名为name的账户的文件

        -group name:寻找目录下属于群组名为group的群组的文件

        -nouser:寻找档案不存在拥有者的文档

        -nogroup:寻找档案不存在拥有群组的文档

      3.与档案权限与名称有关的参数

        -name filename:寻找目录下文件名为filename的文件

        -size [+-]SIZE:寻找目录下比SIZE大或小的文档,SIZE有单位c:byte,k:kb 如:-size +50k

        -type TYPE:寻找目录下类型为TYPE(f,b,c,d,l,s,p:含义查看文档类型)的文档

        -perm mode:寻找目录下档案权限刚好等于mode的档案 eg:-perm 4755 (-rwsr-xr-x)

        -perm -mode:寻找目录下档案权限囊括mode的文件 如4755囊括0744

        -perm +mode:寻找目录下档案权限包含任一mode的文档

        

      4.额外动作

        -exec commond 如:find / -perm +7000 -exec ls -l {} \;

        表示将查询结果以ls显示出 -exec到\;直接表示附加指令

      5.find还可以使用通配符查询  find /etc -name ‘*httpd*’ 寻找/etc下名字包含httpd的文档

      !!!  find直接操作硬盘,whereis和locate查询数据库

权限与指令的关系(书的第236页)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  鸟哥linux