Linux常用命令
gooood个人博客网站
linux教程
目录管理类命令
mkdir 创建目录
-p 先创建父目录(递归创建目录)
-v 显示创建目录的详细过程信息
-m 在创建目录时设定其权限
rmdir 删除空目录
-p 只能删除一线单的目录
Linux中同一路径下的文件名和文件夹名字不能同名
文本查看类命令
more 只支持向后翻,翻到文件尾部后自动退出
less 支持前后翻(man调用的less命令)
head 显示文件首部10行内容
-n # 显示文件首部#行内容
-c # 显示文件前#字节的内容
tail 显示文件尾部10行内容
-n # 显示文件尾部#行内容
-c # 显示文件后#字节的内容
-f 从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容
Linux文件时间戳
访问时间:access time (atime):当读取文件或者执行文件时更改,任何对inode的访问都会使此处改变,就会更新这个读取时间 (access)。例如我们使用cat去读取 /etc/man.config ,就会更新该文件atime了。
修改时间:modify time (mtime):当该文件的内容数据改变时,就会更新这个时间,“内容数据”指的是文件的内容,而不是文件的属性或权限
改变时间:change time (ctime):当该文件的元数据信息改变时,就会更新这个时间,写入文件会改变文件大小、更改所有者、权限或链接设置时随 inode的内容更改而更改的。只要stat出来的内容发生改变就会发生改变。atime、mtime的改变必然导致ctime的改变,因为时间戳信息也是元数据信息
在默认情况下,ls显示出来的是该文件的mtime
stat 文件名 可以查看文件的详细元数据信息如三个时间、inode号
ls -lc 文件名 或者是ls -l --time=ctime 列出文件的 ctime (Chang)
ls -lu 文件名 或者是ls -l --time=atime 列出文件的 atime (Access)
ls -l 文件名 列出文件的 mtime(Modify)
文件的时间戳:
修改文件,如果是通过vi打开文件修改完在保存文件三个时间都会变化,mtime会变是因为改变了文件的内容,ctime会变是因为stat中的文件大小和mtime变化,atime会变是因为打开文件访问了inode信息
如果vi只是打开文件不做任何改变退出只会改变atime因为只访问了inode信息
如果是通过命令行将内容追加到文件中,mtime会变是因为改变了文件的内容,ctime会变是因为stat中的文件大小和mtime变化,但atime不会变化,因为你没有访问inode信息
cat访问文件atime会变是因为访问了inode信息,ctime、mtime都不会变
chown、chgrp、chmod、mv都会使ctime改变,atime 、mtime都不会变
文件夹的时间戳:
atime 是在读取文件或者执行文件时更改的(我们只cd进入一个目录然后cd ..不会引起atime的改变,但ls会改变atime)
mtime 是在文件夹中有文件的新建、删除才会改变(如果只是改变文件内容不会引起mtime的改变,换句话说如果ls -f <directory>的结果发生改变,mtime就会被刷新。这里可能有人要争论了:我进入某个文件夹vi了一个文件然后退出,前后ls -f <directory>的结果没有改变但是文件夹的mtime发生改变了、这点请主意vi命令在编辑文件时会在本文件夹下产生一 个".file.swp"临时文件,该文件随着vi的退出而被删除这就导致了mtime的改变 。
ctime 基本同文件的ctime,其体现的是inode的change time。这里还要补充一点:mount -o noatime(mount -o remount,atime / 可以在线重新挂载根目录) 可以选择不记录文件的atime的改变,这意味着什么呢?当你创建了这个文件后这个文件的atime就定格了,除非你用touch或者touch -a强制刷新文件的atime。这样在可以在一定程度上提升文件系统的读写性能,特别是网站这种系统中在fstab里面加上noatime是个好主意