参考原文:http://linux.vbird.org/linux_basic/0220filemanager.php
目录与路径
相对路径与绝对路径
- 绝对路径:路径的写法『一定由根目录/写起』,例如: /usr/share/doc这个目录。
- 相对路径:路径的写法『不是由/写起』,例如由/usr/share/doc要到/usr/share/man底下时,可以写成: 『cd ../man』这就是相对路径的写法啦!相对路径意指『相对于目前工作目录的路径!』
特殊目录

$PATH

目录处理指令

- cd (change directory, 变换目录)
| [dmtsai@study ~]$ su - #先切换身份成为root看看!
[root@study ~]# cd [相对路径或绝对路径]
#最重要的就是目录的绝对路径与相对路径,还有一些特殊目录的符号啰!
[root@study ~]# cd ~dmtsai
#代表去到dmtsai这个使用者的家目录,亦即/home/dmtsai
[root@study dmtsai]# cd ~
#表示回到自己的家目录,亦即是/ root这个目录
[root@study ~]# cd
#没有加上任何路径,也还是代表回到自己家目录的意思喔!
[root@study ~]# cd ..
#表示去到目前的上层目录,亦即是/root的上层目录的意思;
[root@study /]# cd -
#表示回到刚刚的那个目录,也就是/root啰~
[root@study ~]# cd /var/spool/mail
#这个就是绝对路径的写法!直接指定要去的完整路径名称!
[root@study mail]# cd ../postfix
# 这个是相对路径的写法,我们由/var/spool/mail 去到/var/spool/postfix 就这样写! | | —- |
文件与目录的管理指令
列出文件与目录(ls)

| [root@study ~]# ls [-aAdfFhilnrRSt] 文件名或目录名称.. [root@study ~]# ls [—color={never,auto,always}] 文件名或目录名称.. [root@ study ~]# ls [—full-time] 文件名或目录名称.. (不加“文件名或目录名称”代表当前目录) 选项与参数: -a :全部的文件,连同隐藏档(开头为.的文件)一起列出来(常用) -A :全部的文件,连同隐藏档,但不包括. 与.. 这两个目录 -d :仅列出目录本身,而不是列出目录内的文件资料(常用) -f :直接列出结果,而不进行排序(ls 预设会以文件名排序!) -F :根据文件、目录等资讯,给予附加资料结构,例如: :代表可执行档; /:代表目录; =:代表socket 文件; |:代表FIFO 文件; -h :将文件容量以人类较易读的方式(例如GB, KB 等等)列出来; -i :列出inode 号码,inode 的意义下一章将会介绍; *-l :长资料串列出,包含文件的属性与权限等等资料;(常用) -n :列出UID 与GID 而非使用者与群组的名称(UID与GID会在帐号管理提到!) -r :将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小; -R :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来; -S :以文件容量大小排序,而不是用文件名排序; -t :依时间排序,而不是用文件名。 —color=never :不要依据文件特性给予颜色显示; —color=always :显示颜色 —color=auto :让系统自行依据设定来判断是否给予颜色 —full-time :以完整时间模式(包含年、月、日、时、分) 输出 —time={atime,ctime} :输出access 时间或改变权限属性时间(ctime) 而非内容变更时间(modification time) |
|---|
cp(复制)

| [root@study ~]# cp [-adfilprsu]来源档(source)目标档(destination) [root@study ~]# cp [options] source1 source2 source3 …. directory 选项与参数: -a :相当于-dr —preserve=all的意思,至于dr请参考下列说明;(常用) -d :若来源档为连结档的属性(link file),则复制连结档属性而非文件本身; -f :为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次; -i :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用) -l :进行硬式连结(hard link)的连结档建立,而非复制文件本身; -p :连同文件的属性(权限、用户、时间)一起复制过去,而非使用预设属性(备份常用); -r :递回持续复制,用于目录的复制行为;(常用) -s :复制成为符号连结档(symbolic link),亦即『捷径』文件; -u :destination 比source 旧才更新destination,或destination 不存在的情况下才复制。 —preserve=all :除了-p 的权限相关参数外,还加入SELinux 的属性, links, xattr 等也复制了。 最后需要注意的,如果来源档有两个以上,则最后一个目的档一定要是『目录』才行! |
|---|
复制(cp)这个指令是非常重要的,不同身份者执行这个指令会有不同的结果产生,尤其是那个-a, -p的选项, 对于不同身份来说,差异则非常的大。
rm (移除文件或目录)

| [root@study ~]# rm [-fir] 文件或目录 选项与参数: -f :就是force 的意思,忽略不存在的文件,不会出现警告讯息; -i :互动模式,在删除前会询问使用者是否动作 -r :递回删除啊!最常用在目录的删除了!这是非常危险的选项!!! |
|---|
mv (移动档案与目录,或更名)

文件内容查询
直接查询

- cat (con cat enate)
| [root@study ~]# cat [-AbEnTv]
选项与参数:
-A :相当于-vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字元$ 显示出来;
-n :列印出行号,连同空白行也会有行号,与-b 的选项不同;
-T :将[tab] 按键以^I 显示出来;
-v :列出一些看不出来的特殊字符 | | —- |
tac (倒序列出)
nl (添加行号打印) | [root@study ~]# nl [-bnw]档案
选项与参数:
-b :指定行号指定的方式,主要有两种:
-ba :表示不论是否为空行,也同样列出行号(类似cat -n);
-bt :如果有空行,空的那一行不要列出行号(预设值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加0 ;
-n rz :行号在自己栏位的最右方显示,且加0 ;
-w :行号栏位的占用的字元数。 | | —- |
可翻页查看

- more (一页一页翻动)
无法向前翻
在more 这个程序的运作过程中,你有几个按键可以按的:
空白键(space):代表向下翻一页;Enter:代表向下翻『一行』;/字串:代表在这个显示的内容当中,向下搜寻『字串』这个关键字;:f:立刻显示出档名以及目前显示的行数;q:代表立刻离开more ,不再显示该档案内容。b 或[ctrl]-b:代表往回翻页,不过这动作只对文件有用,对管线无用。
- less (一页一页翻动)
在less 里头可以拥有更多的『搜寻』功能喔:
空白键:向下翻动一页;[pagedown]:向下翻动一页;[pageup]:向上翻动一页;/字串:向下搜寻『字串』的功能;?字串:向上搜寻『字串』的功能;n:重复前一个搜寻(与/ 或? 有关!)N:反向的重复前一个搜寻(与/ 或? 有关!)g:前进到这个资料的第一行去;G:前进到这个资料的最后一行去(注意大小写);q:离开less 这个程式;
数据截取

- head (取出前面几行)
| [root@study ~]# head [-n number] 文件
选项与参数:
-n :后面接数字,代表显示几行的意思 | | —- |
- tail (取出后面几行)
| [root@study ~]# tail [-n number] 文件
选项与参数:
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的文件名,要等到按下[ctrl]-c才会结束tail的侦测 | | —- |
非纯文本文件
我们上面提到的,都是在查阅纯文本文件的内容。那么万一我们想要查阅非文本文件,举例来说,例如 /usr/bin/passwd 这个可执行文件的内容时, 又该如何去读出信息呢?事实上,由于可执行文件通常是 binary file ,使用上头提到的指令来读取他的内容时, 确实会产生类似乱码的数据啊!那怎么办?没关系,我们可以利用 od 这个指令来读取喔! 
| [root@study ~]# 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 ; |
|---|
touch (修改文件时间/创建新文件)

- 时间参数
- modification time (mtime):当该档案的『内容资料』变更时,就会更新这个时间!内容资料指的是档案的内容,而不是档案的属性或权限喔!
- status time (ctime):当该档案的『状态(status)』改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。
- access time (atime):当『该档案的内容被取用』时,就会更新这个读取时间(access)。举例来说,我们使用cat去读取/etc/man_db.conf ,就会更新该档案的atime了。
例子:
| [root@study ~]# date; ls -l /etc/man_db.conf ; ls -l —time=atime /etc/man_db.conf ; \ > ls -l —time=ctime /etc/man_db.conf #这两行其实是同一行喔!用分号隔开 Tue Jun 16 00:43:17 CST 2015 #目前的时间啊! -rw-r—r—. 1 root root 5171 Jun 10 2014 /etc/man_db.conf #在2014/06/10建立的内容(mtime) -rw-r—r—. 1 root root 5171 Jun 15 23:46 /etc/man_db.conf #在2015/06/15读取过内容(atime) -rw-r—r—. 1 root root 5171 May 4 17:54 /etc/man_db.conf #在2015/05/04更新过状态(ctime) #为了要让资料输出比较好看,所以鸟哥将三个指令同时依序执行,三个指令中间用分号(;)隔开即可。 |
|---|
- touch(用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。)
touch指令最常被使用的情况:
- 建立一个空的档案;
- 将某个档案日期修订为目前(mtime 与atime)
**
档案的时间是很重要的,因为,如果档案的时间误判的话,可能会造成某些程式无法顺利的运作。OK!那么万一我发现了一个档案来自未来,该如何让该档案的时间变成『现在』的时刻呢?很简单啊!就用『touch』这个指令即可!
嘿嘿!不要怀疑系统时间会『来自未来』喔!很多时候会有这个问题的!举例来说在安装过后系统时间可能会被改变!因为台湾时区在国际标准时间『格林威治时间, GMT』的右边,所以会比较早看到阳光,也就是说,台湾时间比GMT时间快了八小时!如果安装行为不当,我们的系统可能会有八小时快转,你的档案就有可能来自八小时后了。
至于某些情况下,由于BIOS的设定错误,导致系统时间跑到未来时间,并且你又建立了某些档案。等你将时间改回正确的时间时,该档案不就变成来自未来了?^_^
| [root@study ~]# touch [-acdmt] 文件 选项与参数: -a :仅修订access time; -c :仅修改档案的时间,若该档案不存在则不建立新档案; -d :后面可以接欲修订的日期而不用目前的日期,也可以使用—date=”日期或时间” -m :仅修改mtime ; -t :后面可以接欲修订的时间而不用目前的时间,格式为[YYYYMMDDhhmm] |
|---|
指令与文件的搜索
指令的文件名的搜索(which)

文件文件名的搜索
whereis

| [root@study ~]# whereis [-bmsu]档案或目录名 选项与参数: -l :可以列出whereis 会去查询的几个主要目录而已 -b :只找binary 格式的档案 -m :只找在说明档manual 路径下的档案 -s :只找source 来源档案 -u :搜寻不在上述三个项目当中的其他特殊档案 | | —- |
locate / updatedb

| [root@study ~]# locate [-ir] keyword 选项与参数: -i :忽略大小写的差异; -c :不输出档名,仅计算找到的档案数量 -l :仅输出几行的意思,例如输出五行则是-l 5 -S :输出locate 所使用的资料库档案的相关资讯,包括该资料库纪录的档案/目录数量等 -r :后面可接正规表示法的显示方式 |
|---|
- updatedb:根据/etc/updatedb.conf 的设定去搜寻系统硬碟内的档名,并更新/var/lib/mlocate 内的资料库档案;
- locate:依据/var/lib/mlocate 内的资料库记载,找出使用者输入的关键字档名。
find
- 与时间相关

| [root@study ~]# 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 还要新的档案档名 |
|---|
- 与user/group/others相关

**
- 与文件权限和名称相关
额外动作


