前言:

前几篇博客把linux基本操作,linux文件管理,linux 权限管理,更理论部分都说一下,但是哟只说理论,好多命令没有详细说一说,只是罗列了一下,今天和大家做一下总结,同时呢我自己也复习与再学习一下。

文件管理命令

先和大家总结一下,文件管理有哪些命令:ls, cd, pwd, mkdir, rmdir, cp, rm, mv, touch, cat, more, less, head, tail等,下面我们就来详细的说一下(只说常用的,不是命令全部)

(1). ls 命令

-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来 (常用)
-A :全部的文件,连同隐藏档,但不包括 . 与 .. 这两个目录
-d :仅列出目录本身,而不是列出目录内的文件数据 (常用)
-f :直接列出结果,而不进行排序  (ls 默认会以档名排序!)
-h :将文件容量以人类较易读的方式(例如 GB, KB 等等)列出来 (常用)
-i :列出 inode 号码,inode 的意义下一章将会介绍 (常用)
-l :长数据串列出,包含文件的属性与权限等等数据 (常用)
-n :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在用户管理提到!)
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小
-R :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来 (常说的递归)
-S :以文件容量大小排序,而不是用档名排序
 -t :依时间排序,而不是用档名

(2) cd 命令

cd [相对路径或绝对路径]
# 最重要的就是目录的绝对路径与相对路径,还有一些特殊目录的符号罗!
[root@www ~]# cd ~test
# 代表去到 vbird 这个使用者的家目录,亦即 /home/test
[root@www vbird]# cd ~
# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www ~]# cd
# 没有加上任何路径,也还是代表回到自己家目录的意思喔
[root@www ~]# cd ..
# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思
[root@www /]# cd -
 # 表示回到刚刚的那个目录,也就是 /root 罗~
 [root@www ~]# cd /var/spool/mail
# 这个就是绝对路径的写法!直接指定要去的完整路径名称
 [root@www mail]# cd ../mqueue
# 这个是相对路径的写法,我们由/var/spool/mail 去到/var/spool/mqueue 就这样写


(3). pwd 命令

pwd [-P] 选项与参数:    
 -P :显示出确实的路径,而非使用链接 (link) 路径。     
例:pwd     
cd /var/mail
pwd –P
/var/spool/mail
pwd与pwd –P 显示的路径不同,大家清楚了吧!


(4). mkdir 命令

mkdir [-mp] 目录名称 选项与参数:
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask)
-p :帮助你直接将所需要的目录(包含上一级目录)递回创建起来!
例:
mkdir -p test1/test2/test3/test4 (一起创建)
mkdir -m 744 test2


(5). rmdir 命令

rmdir [-p] 目录名称 选项与参数:
 -p :连同上一级“空的”目录也一起删除
例:
rmdir -p test1/test2/test3/test4 (全部删除)


(6). rm 命令

rm [-fir] 文件或目录 选项与参数:
 -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息
-i :互动模式,在删除前会询问使用者是否动作
-r :递回删除啊!最常用在目录的删除了(这是非常危险的选项)
我们一般常组合使用,rm –rf (删除全部文件或目录,大家得小心使用,因为删除了就无法恢复了)


(7). mv 命令

mv [-fiu] source destination 选项与参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
我们一般还可以用mv 命令进行重命名(例: mv test test.bak  )

(8). touch 命令

touch [-acdmt] 文件 选项与参数:
-a :仅修订 access time
-c :仅修改文件的时间,若该文件不存在则不创建新文件
-d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
-m :仅修改 mtime
-t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
补充:
我们在 ls 这个命令的介绍时(ls –l),有提到每个文件在linux底下都会记录许多的时间参数, 其实是有三个主要的变动时间,那么三个时间的意义是什么呢?我在这里补充一下
modification time (mtime):       
当该文件的“内容数据”变更时,就会升级这个时间!内容数据指的是文件的内容,而不是文件的属性或权限喔
status time (ctime):       
当该文件的“状态 (status)”改变时,就会升级这个时间,举例来说,像是权限与属性被更改了,都会升级这个时间啊。
access time (atime):       
当“该文件的内容被取用”时,就会升级这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man.config , 就会升级该文件的 atime 了
大家懂了吧!


(9). cat 命令

cat [-AbEnTv] 选项与参数:
-A :相当于-vET 的整合选项,可列出一些特殊字符而不是空白而已
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号
-E :将结尾的断行字节 $ 显示出来
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同 (常用)
-T :将 [tab] 按键以 ^I 显示出来
-v :列出一些看不出来的特殊字符

(10). more 命令

more (一页一页翻动查看)
常用的快捷键:
空白键 (space):代表向下翻一行
Enter     :代表向下翻一行
/字串     :代表在这个显示的内容当中,向下搜寻字串这个关键字
:f            :立刻显示出档名以及目前显示的行数
q            :代表立刻离开 more ,不再显示该文件内容
b 或 Ctrl+b :代表往回翻页,不过这动作只对文件有用


(11). less 命令

less (一页一页翻动)
less与more区别: 在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件
常用的快捷键:
空白键    :向下翻动一页
[pagedown]:向下翻动一页
[pageup]  :向上翻动一页
/字串     :向下搜寻字串的功能
?字串     :向上搜寻字串的功能
n         :重复前一个搜寻 (与 / 或 ? 有关!)
N        :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q         :离开 less 这个程序


(12). head 命令 (取出前面几行)

head [-n number] 文件 选项与参数:
-n :后面接数字,代表显示几行的意思
(默认是前10行)

(13). tail 命令 (取出后面几行)

tail [-n number] 文件 选项与参数:
-n :后面接数字,代表显示几行的意思  (默认后10行)
-f :表示持续查看后面所接的文件,要等到按下Ctrl+c才会结束tail的查看
(tail –f 非常有用,当我们看某些经常更新的日志时,例: tail -f /var/log/maillog)


(14). file 命令 (查看文件类型)

例:
file ~/.bashrc --------ASCII 的纯文字档
file /usr/bin/passwd ------------可执行文件
file /var/lib/mlocate/mlocate.db  --------------- data 文件


总结 :

经过上面的总结,基本上把文件的管理的命令总结了下,包括目录操作的相关命令(如cd, pwdm, mkdir, rmdir, ls)目录与文件的复制、删除、移动命令(cp, rm, mv)文件的新建与查看命令(touch, cat, more, less, head, tail),还有查看 文件类型有命令(file),上面命令很,多了就不容易记忆,大家只有多多练习才能记住,嘿嘿。好了今天的话题,就说到这,我们下一次得说一下,linux 文件权限管理的相关命令!