这一章主要介绍了一些针对目录的指令,包括cd(变换目录)、pwd(显示当前目录)、mkdir(新建目录)、rmdir(删除目录)。
1. mkdir不能建立多层目录,如果想一次性建立很多目录,需要添加参数p,即mkdir -p 1/2/3,当然也可以在建立目录时赋予该目录一定的权限,采用m参数,即 mkdir -m 711 test。
2. rmdir不能删除非空的目录,同样要删除多层目录,采用参数p,即rmdir -p 1/2/3.如果想要将目录下的所有东西都删掉,就要采用rm -r test
3. $PATH:执行文件路径的变量,可用指令echo $PATH来查看,里面定义了哪些目录被定义,如果一个指令存放在/usr/bin中,则如果echo之后存在这个目录,我们就能调用该指令,且先搜索到的指令先执行。
如果要将指令添加到PATH中,可采用PATH="$PATH":/root,这样就将/root添加到PATH中了,我们就可以调用/root下的指令了。
4. ls指令用于显示当前目录下存在哪些文件,这里主要介绍几个有意思的参数:
ls -alF --color=never ~:表示显示的文件不显示颜色
ls -al --full-time ~:表示呈现档案的完整修改时间
另外我们一般用ll来替代ls -l,可用指令alias完成。
5. 复制文件:cp ~/.bashrc /tmp/bashrc:将 ~/.bashrc复制到/tmp/bashrc中。但是有些文件是不能复制的,例如密码文件和一些配置文件等,如果一定要复制,就要加上-a或-p参数来完整复制档案的权限。可以将多个数据依次复制到同一个目录中,但注意最后面的一定是目录!
6. rm -i bashrc*:删除以bashrc开头的文件。
7. 移动文件:mv bashrc mvtest
8. 获取文件名:basename /etc/sysyconfig/network,则获得network
9. 获取目录名:dirname /etc/sysyconfig/network,则获得/etc/sysconfig
10. 下面再简单介绍档案的内容查询指令,并做大概的说明:
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,其中的|为截取,将在后面介绍。
11. 修改档案时间或建立新档可以采用touch,这里要注意三个时间:
mtime——档案内容修改的时间
ctime——档案状态改变(属性改变)的时间
atime——档案内容被取用的时间,可以用touch test建立文档,用ls -l test来查看test文档的三个时间。
12. 档案预设权限是umask,指定目前用户在建立档案或目录时的权限默认值,直接输入umask就会得到该默认值,假设结果为0022,最前面的0我们不要考虑,后面的022就是需要剪掉的权限,例如现在的权限就是777-022=755,即拥有者为rwx,群组和其他都是rx。
13. 其实除了rwx这三个属性,还有隐藏属性,用指令chattr来管理,最常用的一个chattr指令是chattr +i test,即给予test一个i的属性,这样可以使该文档无法被删除,只有输入chattr -i test去掉i的属性后才能删除。如果想显示档案隐藏的属性,可采用lsattr test来显示。
14. 观察文件类型:file test
15. 查找文件: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的档案