【鸟哥 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页)
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页)
相关文章推荐
- 第7章 Linux档案与目录管理
- find命令 -- 第7章 Linux 档案与目录管理
- 拜师鸟哥之linux学习体会(6)——linux档案与目录管理
- Linux的档案权限与目录配置(鸟哥的Linux私房菜 基础篇)
- 第7章 Linux档案与目录管理
- 鸟哥的私房菜 第七章Linux 档案于目录管理个人总结
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第7章 Linux档案与目录管理 笔记
- 基础篇第一版---Linux 档案与目录管理 <摘自鸟哥的私房菜>
- 鸟哥的 Linux 私房菜9 -- 档案与目录管理
- 《鸟哥的Linux学习:基础篇》第六章:Linux文件和=目录管理
- Linux 指令篇:档案目录管理--cd
- Linux 指令篇:档案目录管理--split
- Linux 指令篇:档案目录管理--mv
- Linux 指令篇:档案目录管理--less
- Linux 指令篇:档案目录管理--touch
- Linux 指令篇:档案目录管理--ln
- Linux 指令篇:档案目录管理--touch
- Linux 指令篇:档案目录管理--mkdir
- Linux 指令篇:档案目录管理--ls
- Linux 指令篇:档案目录管理--cat