一、
cd:变换目录
pwd:显示目前的目录
mkdir:建立一个新的目录
rmdir:删除一个空的目录
二、复制、删除与移动: cp, rm, mv
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination) [root@www ~]# cp [options] source1 source2 source3 .... directory 选项与参数: -a :相当于 -pdr 的意思,至于 pdr 请参考下列说明;(常用) -d :若来源档为连结档的属性(link file),则复制连结档属性而非档案本身; -f :为强制(force)的意思,若目标档案已经存在且无法开启,则移除后再尝试一次; -i :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用) -l :进行硬式连结(hard link)的连结档建立,而非复制档案本身; -p :连同档案的属性一起复制过去,而非使用预设属性(备份常用); -r :递回持续复制,用于目录的复制行为;(常用) -s :复制成为符号连结档 (symbolic link),亦即‘捷径’档案; -u :若 destination 比 source 旧才更新 destination ! 最后需要注意的,如果来源档有两个以上,则最后一个目的档一定要是‘目录’才行!
[root@www tmp]# cp -u ~/.bashrc /tmp/bashrc # 这个 -u 的特性,是在目标档案与来源档案有差异时,才会复制的。
[root@www ~]# rm [-fir] 档案或目录 选项与参数: -f :就是 force 的意思,忽略不存在的档案,不会出现警告讯息; -i :互动模式,在删除前会询问使用者是否动作 -r :递回删除啊!最常用在目录的删除了!这是非常危险的选项!!!
[root@www ~]# mv [-fiu] source destination [root@www ~]# mv [options] source1 source2 source3 .... directory 选项与参数: -f :force 强制的意思,如果目标档案已经存在,不会询问而直接覆盖; -i :若目标档案 (destination) 已经存在时,就会询问是否覆盖! -u :若目标档案已经存在,且 source 比较新,才会更新 (update)
三、查看档案内容
[root@www ~]# cat [-AbEnTv] 选项与参数: -A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已; -b :列出行号,仅针对非空白行做行号显示,空白行不标行号! -E :将结尾的断行字元 $ 显示出来; -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同; -T :将 [tab] 按键以 ^I 显示出来; -v :列出一些看不出来的特殊字符
[root@www ~]# head [-n number] 档案 选项与参数: -n :后面接数字,代表显示几行的意思
[root@www ~]# tail [-n number] 档案 选项与参数: -n :后面接数字,代表显示几行的意思 -f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
[root@www ~]# od [-t TYPE] 档案 选项或参数: -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 ;
[root@www ~]# touch [-acdmt] 档案 选项与参数: -a :仅修订 access time; -c :仅修改档案的时间,若该档案不存在则不建立新档案; -d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间" -m :仅修改 mtime ; -t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm] 范例一:新建一个空的档案并观察时间 [root@www ~]# cd /tmp [root@www tmp]# touch testtouch [root@www tmp]# ls -l testtouch -rw-r--r-- 1 root root 0 Sep 25 21:09 testtouch # 注意到,这个档案的大小是 0 呢!在预设的状态下,如果 touch 后面有接档案, # 则该档案的三个时间 (atime/ctime/mtime) 都会更新为目前的时间。若该档案不存在, # 则会主动的建立一个新的空的档案喔!例如上面这个例子!
四、档案的隐藏属性
[root@www ~]# chattr [+-=][ASacdistu] 档案或目录名称 选项与参数: + :增加某一个特殊参数,其他原本存在参数则不动。 - :移除某一个特殊参数,其他原本存在参数则不动。 = :设定一定,且仅有后面接的参数 A :当设定了 A 这个属性时,若你有存取此档案(或目录)时,他的存取时间 atime 将不会被修改,可避免I/O较慢的机器过度的存取磁碟。这对速度较慢的电脑有帮助 S :一般档案是非同步写入磁碟的(原理请参考第五章sync的说明),如果加上 S 这个 属性时,当你进行任何档案的修改,该更动会‘同步’写入磁碟中。 a :当设定 a 之后,这个档案将只能增加资料,而不能删除也不能修改资料,只有root 才能设定这个属性。 c :这个属性设定之后,将会自动的将此档案‘压缩’,在读取的时候将会自动解压缩, 但是在储存的时候,将会先进行压缩后再储存(看来对于大档案似乎蛮有用的!) d :当 dump 程序被执行的时候,设定 d 属性将可使该档案(或目录)不会被 dump 备份 i :这个 i 可就很厉害了!他可以让一个档案‘不能被删除、改名、设定连结也无法 写入或新增资料!’对于系统安全性有相当大的助益!只有 root 能设定此属性 s :当档案设定了 s 属性时,如果这个档案被删除,他将会被完全的移除出这个硬碟 空间,所以如果误删了,完全无法救回来了喔! u :与 s 相反的,当使用 u 来设定档案时,如果该档案被删除了,则资料内容其实还 存在磁碟中,可以使用来救援该档案喔! 注意:属性设定常见的是 a 与 i 的设定值,而且很多设定值必须要身为 root 才能设定 范例:请尝试到/tmp底下建立档案,并加入 i 的参数,尝试删除看看。 [root@www ~]# cd /tmp [root@www tmp]# touch attrtest <==建立一个空档案 [root@www tmp]# chattr +i attrtest <==给予 i 的属性 [root@www tmp]# rm attrtest <==尝试删除看看
[root@www ~]# lsattr [-adR] 档案或目录 选项与参数: -a :将隐藏档的属性也秀出来; -d :如果接的是目录,仅列出目录本身的属性而非目录内的档名; -R :连同子目录的资料也一并列出来! [root@www tmp]# chattr +aij attrtest五、find
[root@www ~]# find [PATH] [option] [action] 选项与参数: 1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明 -mtime n :n 为数字,意义为在 n 天之前的‘一天之内’被更动过内容的档案; -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的档案档名; -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的档案档名。 -newer file :file 为一个存在的档案,列出比 file 还要新的档案档名 范例一:将过去系统上面 24 小时内有更动过内容 (mtime) 的档案列出 [root@www ~]# find / -mtime 0 # 那个 0 是重点!0 代表目前的时间,所以,从现在开始到 24 小时前, # 有变动过内容的档案都会被列出来!那如果是三天前的 24 小时内? # find / -mtime 3 有变动过的档案都被列出的意思! 范例二:寻找 /etc 底下的档案,如果档案日期比 /etc/passwd 新就列出 [root@www ~]# find /etc -newer /etc/passwd # -newer 用在分辨两个档案之间的新旧关系是很有用的!
选项与参数: 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 的档案! 当你自行安装软体时,很可能该软体的属性当中并没有档案拥有者, 这是可能的!在这个时候,就可以使用 -nouser 与 -nogroup 搜寻。 范例三:搜寻 /home 底下属于 vbird 的档案 [root@www ~]# find /home -user vbird # 这个东西也很有用的~当我们要找出任何一个使用者在系统当中的所有档案时, # 就可以利用这个指令将属于某个使用者的所有档案都找出来喔! 范例四:搜寻系统中不属于任何人的档案 [root@www ~]# find / -nouser # 透过这个指令,可以轻易的就找出那些不太正常的档案。 # 如果有找到不属于系统任何人的档案时,不要太紧张, # 那有时候是正常的~尤其是你曾经以原始码自行编译软体时。
选项与参数: 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.... 的属性存在! 范例五:找出档名为 passwd 这个档案 [root@www ~]# find / -name passwd # 利用这个 -name 可以搜寻档名啊! 范例六:找出 /var 目录下,档案类型为 Socket 的档名有哪些? [root@www ~]# find /var -type s # 这个 -type 的属性也很有帮助喔!尤其是要找出那些怪异的档案, # 例如 socket 与 FIFO 档案,可以用 find /var -type p 或 -type s 来找! 范例七:搜寻档案当中含有 SGID 或 SUID 或 SBIT 的属性 [root@www ~]# find / -perm +7000 # 所谓的 7000 就是 ---s--s--t ,那么只要含有 s 或 t 的就列出, # 所以当然要使用 +7000 ,使用 -7000 表示要含有 ---s--s--t 的所有三个权限, # 因此,就是 +7000 ~了乎?
选项与参数: 4. 额外可进行的动作: -exec command :command 为其他指令,-exec 后面可再接额外的指令来处理搜寻到 的结果。 -print :将结果列印到荧幕上,这个动作是预设动作! 范例八:将上个范例找到的档案使用 ls -l 列出来~ [root@www ~]# find / -perm +7000 -exec ls -l {} \; # 注意到,那个 -exec 后面的 ls -l 就是额外的指令,指令不支援命令别名, # 所以仅能使用 ls -l 不可以使用 ll 喔!注意注意! 范例九:找出系统中,大于 1MB 的档案 [root@www ~]# find / -size +1000k # 虽然在 man page 提到可以使用 M 与 G 分别代表 MB 与 GB, # 不过,俺却试不出来这个功能~所以,目前应该是仅支援到 c 与 k 吧!