一、
o 第一个属性代表这个档案是『目录、档案或连结文件等等』:
当为[ d ]则是目录
当为[ - ]则是档案
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口设备;
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。
o 接下来的属性中,三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(excute):
第一组为『拥有人的权限』,以第 5 行为例,该档案的拥有人可以读写,但不可执行;
第二组为『同群组的权限』
第三组为『其它非本群组的权限』。
二、常用命令
1、目录相关操作
a、cd (变换目录)
b、pwd [-p] (显示当前目录)
参数:-P :显示出确实的路径,而非使用连结 (link) 路径。
c、mkdir (建立新目录)
参数:
-m :设定档案的权限喔!直接设定,不需要看预设权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录递归建立起来!
d、rmdir (删除『空』的目录)
参数:
-p :连同上层『空的』目录也一起删除
e、
f、cp (复制档案或目录)
g、rm (移除档案或目录)
h、mv (移动档案与目录,或更名)
三、档案查看
• cat 由第一行开始显示档案内容
• tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
• nl 显示的时候,顺道输出行号!
• more 一页一页的显示档案内容
• less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
• head 只看头几行
• tail 只看尾巴几行
• od 以二进制的方式读取档案内容!
1、cat
参数:
-A :相当于 -vET 的整合参数,可列出一些特殊字符~
-E :将结尾的断行字符 $ 显示出来;
-n :打印出行号;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
2、nl
参数:
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号;
-b t :如果有空行,空的那一行不要列出行号;
-n :列出行号表示的方法,主要有三种:
-n ln :行号在屏幕的最左方显示;
-n rn :行号在自己字段的最右方显示,且不加 0 ;
-n rz :行号在自己字段的最右方显示,且加 0 ;
-w :行号字段的占用的位数。
3、head
参数:
-n :后面接数字,代表显示几行的意思
4、tail (取出后面几行)
参数:
-n :后面接数字,代表显示几行的意思
5、非纯文字文件: od
参数:
-t :后面可以接各种『类型 (TYPE)』的输出,例如:
a :利用预设的字符来输出;
c :使用 ASCII 字符来输出
d[size] :利用十进制(decimal)来输出数据,每个整数占用 size bytes ;
f[size] :利用浮点数值(floating)来输出数据,每个数占用 size bytes ;
o[size] :利用八进位(octal)来输出数据,每个整数占用 size bytes ;
x[size] :利用十六进制(hexadecimal)来输出数据,每个整数占用 size bytes ;
6、修改档案时间与建置新档: touch
每个档案在 linux 底下都会记录三个主要的变动时间
• modification time (mtime):当该档案的『内容数据』变更时,就会更新这个时间! 内容数据指的是档案的内容,而不是档案的属性喔!
• status time (ctime):当该档案的『状态 (status)』改变时,就会更新这个时间,举例来说, 像是权限与属性被更改了,都会更新这个时间啊~
• access time (atime):当『该档案的内容被取用』时,就会更新这个读取时间 (access)。 举例来说,我们使用 cat 去读取 ~/.bashrc ,就会更新 atime 了。
参数:
-a :仅修订 access time;
-c :仅修改时间,而不建立档案;
-d :后面可以接日期,也可以使用 --date="日期或时间"
-m :仅修改 mtime ;
-t :后面可以接时间,格式为[YYMMDDhhmm]
touch -t 1401081523 testtouch //更改testtouch 档案的mtime以及atime
touch testtouch ///创建一个档
ll testtouch ;ll --time=atime testtouch;ll --time=ctime testtouch //显示mtime,atime,ctime, ll====ls -l
二、查找
1、find
参数:
1. 与时间有关的参数:
-atime n :n 为数字,意义为在 n 天之前的『一天之内』被 access 过的档案;
-ctime n :n 为数字,意义为在 n 天之前的『一天之内』被 change 过状态的档案;
-mtime n :n 为数字,意义为在 n 天之前的『一天之内』被 modification 过的档案;
-newer file :file 为一个存在的档案,意思是说,只要档案比 file 还要新,就会被列出来~
2. 与使用者或群组名称有关的参数:
-uid n :n 为数字,这个数字是使用者的账号 ID,亦即 UID ,这个 UID 是记录在/etc/passwd 里面与账号名称对应的数字。这方面我们会在第四篇介绍。
-gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID,这个 GID 记录在/etc/group,相关的介绍我们会第四篇说明~
-user name :name 为使用者账号名称喔!例如 dmtsai
-group name:name 为群组名称喔,例如 users ;
-nouser :寻找档案的拥有者不存在 /etc/passwd 的人!
-nogroup :寻找档案的拥有群组不存在于 /etc/group 的档案!
3. 与档案权限及名称有关的参数:
-name filename:搜寻文件名称为 filename 的档案;
-size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的档案。这个 SIZE 的规格有 c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB还要大的档案,就是『 -size +50k 』
-type TYPE :搜寻档案的类型为 TYPE 的,类型主要有:一般正规档案 (f),装置档案 (b, c), 目录 (d), 连结档 (l), socket (s),及 FIFO (p) 等属性。
-perm mode :搜寻档案属性『刚好等于』 mode 的档案,这个 mode 为类似 chmod的属性值,举例来说, -rwsr-xr-x 的属性为 4755 !
-perm -mode :搜寻档案属性『必须要全部囊括 mode 的属性』的档案,举例来说,我们要搜寻 -rwxr--r-- ,亦即 0744 的档案,使用 -perm -0744,当一个档案的属性为 rwsr-xr-x ,亦即 4755 时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。
-perm +mode :搜寻档案属性『包含任一 mode 的属性』的档案,举例来说,我们搜寻-rwxr-xr-x ,亦即 -perm +755 时,但一个档案属性为 -rw-------也会被列出来,因为他有 -rw.... 的属性存在!
4. 额外可进行的动作:
-exec command :command 为其它指令,-exec 后面可再接额外的指令来处理搜寻到的结果。
-print :将结果打印到屏幕上,这个动作是预设动作!
范例一:将过去系统上面 24 小时内有更动过内容 (mtime) 的档案列出
[root@linux ~]# find / -mtime 0
find / -mtime 3 ,意思是说今天之前的 3*24 ~ 4*24 小时之间
范例二:寻找 /etc 底下的档案,如果档案日期比 /etc/passwd 新就列出
[root@linux ~]# find /etc -newer /etc/passwd
# -
# 有变动过的档案都被列出的意思!同时 -atime 与 -ctime 的用法相同
范例三:搜寻 /home 底下属于 dmtsai 的档案
[root@linux ~]# find /home -user dmtsai
范例四:搜寻系统中不属于任何人的档案
[root@linux ~]# find / -nouser
# 透过这个指令,可以轻易的就找出那些不太正常的档案。
范例五:找出档名为 passwd 这个档案
[root@linux ~]# find / -name passwd
范例六:搜寻档案属性为 f (一般档案) 的档案
[root@linux ~]# find /home -type f