拜师鸟哥之linux学习体会(6)——linux档案与目录管理

这一章主要介绍了一些针对目录的指令,包括cd(变换目录)、pwd(显示当前目录)、mkdir(新建目录)、rmdir(删除目录)。

mkdir不能建立多层目录,如果想一次性建立很多目录,需要添加参数p,即mkdir -p 1/2/3,当然也可以在建立目录时赋予该目录一定的权限,采用m参数,即mkdir -m 711 test。

rmdir不能删除非空的目录,同样要删除多层目录,采用参数p,即rmdir -p 1/2/3.如果想要将目录下的所有东西都删掉,就要采用rm -r test

$PATH:执行文件路径的变量,可用指令echo $PATH来查看,里面定义了哪些目录被定义,如果一个指令存放在/usr/bin中,则如果echo之后存在这个目录,我们就能调用该指令,且先搜索到的指令先执行。

如果要将指令添加到PATH中,可采用PATH="$PATH":/root,这样就将/root添加到PATH中了,我们就可以调用/root下的指令了。

ls指令用于显示当前目录下存在哪些文件,这里主要介绍几个有意思的参数:

ls -alF --color=never ~:表示显示的文件不显示颜色

ls -al --full-time ~:表示呈现档案的完整修改时间

另外我们一般用ll来替代ls -l,可用指令alias完成。

复制文件:cp ~/.bashrc /tmp/bashrc:将 ~/.bashrc复制到/tmp/bashrc中。但是有些文件是不能复制的,例如密码文件和一些配置文件等,如果一定要复制,就要加上-a或-p参数来完整复制档案的权限。可以将多个数据依次复制到同一个目录中,但注意最后面的一定是目录!

rm -i bashrc*:删除以bashrc开头的文件。

移动文件:mv bashrc mvtest

获取文件名:basename /etc/sysyconfig/network,则获得network

获取目录名:dirname  /etc/sysyconfig/network,则获得/etc/sysconfig

 下面再简单介绍档案的内容查询指令,并做大概的说明:

1)cat:由第一行开始显示档案内容——cat /etc/issue,cat -n /etc/issue:添加行号

2)tac:即cat的反向,意思就是从最后一行开始显示档案内容——tac /etc/issue

3)nl:显示的时候显示行号——nl /etc/issue

4)more:一页一页的显示档案内容,但只能向后翻页——more /etc/issue,按q退出more

5)less:相比于more,less还能向前翻页——less /etc/issue

6)head:只看头几行——head -n 20 /etc/issue:只看前20行

7)tail:只看后几行——tail -n 20 /etc/issue:只看后20行。此外还可以看第10~20行,采用的指令是head -n 20 /etc/issue | tail -n 10,其中的|为截取,将在后面介绍。

修改档案时间或建立新档可以采用touch,这里要注意三个时间:

mtime——档案内容修改的时间

ctime——档案状态改变(属性改变)的时间

atime——档案内容被取用的时间,可以用touch test建立文档,用ls

 -l test来查看test文档的三个时间。

档案预设权限是umask,指定目前用户在建立档案或目录时的权限默认值,直接输入umask就会得到该默认值,假设结果为0022,最前面的0我们不要考虑,后面的022就是需要剪掉的权限,例如现在的权限就是777-022=755,即拥有者为rwx,群组和其他都是rx。

其实除了rwx这三个属性,还有隐藏属性,用指令chattr来管理,最常用的一个chattr指令是chattr +i test,即给予test一个i的属性,这样可以使该文档无法被删除,只有输入chattr -i test去掉i的属性后才能删除。如果想显示档案隐藏的属性,可采用lsattr test来显示。

观察文件类型:file test

查找文件:which test,whereis test, locate test,其中后面两个都是利用数据库来搜索数据,因此速度较快,而且没有实际的搜索硬盘,比较省时间。

当然最重要的一个搜索指令还是find,下面列出几个常用的find指令用法:

find / -mtime 0:之前讲过mtime是内容修改的时间,这里0表示目前时间,所以要找出从现在开始到24小时之前有变动内容的文件

find /etc -newer /etc/passwd:找出/etc中建立时间比/passwd新的文件

find /home -user jj:找到家目录中属于jj的档案

find / -nouser:找到不属于任何人的档案

find / -name passwd:找到根目录下名字为passwd的档案

find / -size +1000k:找到根目录下大小大于1M的档案

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。