linux指令(二、目录与文档常用指令)

1.对目录的相关操作

在所有目录底下都会存在的两个目录,分别是『.』与『..』 分别代表此层与上层目录的意思

. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表『目前使用者身份』所在的家目录
~account 代表account 这个使用者的家目录(account是个帐号名称)
  • cd:变换目录
  • pwd:显示目前的目录
  • mkdir:建立一个新的目录
  • rmdir:删除一个空的目录
  • pwd -P:不以连结档的资料显示,而是显示正确的完整路径
  • mkdir -p:帮助你直接将所需要的目录(包含上层目录)递回建立起来,例如:mkdir -p test1/test2/test3,会建立test1及其下的子文件夹test2和test2下的子文件夹test3
  • mkdir -m:设定档案的权限,例如:mkdir -m 711 test2,建立一个权限为711的文件夹test2
  • rmdir -p:删除空目录及上层目录,例如:rmdir -p test1/test2/test3,rmdir只删除空目录,如果test1下只有test2,test2下只有test3,test3为空目录,则test1,test2,test3一起删除   

 2.对档案的相关操作

ls [-aAdfFhilnrRSt]档名或目录名称..
ls [--color={never,auto,always}]档名或目录名称..
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 [-adfilprsu]来源档(source)目标档(destination) :复制文档
-a :相当于-dr --preserve=all的意思;(常用)
-d :若来源档为连结档的属性(link file),则复制连结档属性而非档案本身;
-f :为强制(force)的意思,若目标档案已经存在且无法开启,则移除后再尝试一次;
-i :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l :进行硬式连结(hard link)的连结档建立,而非复制档案本身;
-p :连同档案的属性(权限、用户、时间)一起复制过去,而非使用预设属性(备份常用);
-r :递回持续复制,用于目录的复制行为;(常用)
-s :复制成为符号连结档(symbolic link),亦即『捷径』档案;
-u :destination 比source 旧才更新destination,或destination 不存在的情况下才复制。
rm [-fir]档案或目录
选项与参数:
-f :就是force 的意思,忽略不存在的档案,不会出现警告讯息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递回删除啊!最常用在目录的删除了!这是非常危险的选项!!!
mv [-fiu] source destination 
选项与参数:
-f :force 强制的意思,如果目标档案已经存在,不会询问而直接覆盖;
-i :若目标档案(destination) 已经存在时,就会询问是否覆盖!
-u :若目标档案已经存在,且source 比较新,才会更新(update)

3.档案内容查询

  • cat 由第一行开始显示档案内容
  • tac 从最后一行开始显示,可以看出tac 是cat 的倒着写!
  • nl 显示的时候,顺带输出行号!
  • more 一页一页的显示档案内容
  • less 与more 类似,但是比more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行 
  • od 以二进位的方式读取档案内容!
cat [-AbEnTv] 
选项与参数:
-A :相当于-vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字元$ 显示出来;
-n :列印出行号,连同空白行也会有行号,与-b 的选项不同;
-T :将[tab] 按键以^I 显示出来;
-v :列出一些看不出来的特殊字符
nl [-bnw]档案
选项与参数:
-b :指定行号指定的方式,主要有两种:
      -ba :表示不论是否为空行,也同样列出行号(类似cat -n);
      -bt :如果有空行,空的那一行不要列出行号(预设值);
-n :列出行号表示的方法,主要有三种:
      -n ln :行号在萤幕的最左方显示;
      -n rn :行号在自己栏位的最右方显示,且不加0 ;
      -n rz :行号在自己栏位的最右方显示,且加0 ;
-w :行号栏位的占用的字元数

more (一页一页翻动)

  • 空白键(space):代表向下翻一页;
  • Enter :代表向下翻『一行』;
  • /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  • :f :立刻显示出档名以及目前显示的行数;
  • q :代表立刻离开more ,不再显示该档案内容。
  • b 或[ctrl]-b :代表往回翻页,不过这动作只对档案有用,对管线无用。

less (一页一页翻动)

  • 空白键 :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup] :向上翻动一页;
  • /字串 :向下搜寻『字串』的功能;
  • ?字串 :向上搜寻『字串』的功能;
  • n :重复前一个搜寻(与/ 或? 有关!)
  • N :反向的重复前一个搜寻(与/ 或? 有关!)
  • g :前进到这个资料的第一行去;
  • G :前进到这个资料的最后一行去(注意大小写);
  • q :离开less 这个程式;
head [-n number]档案:取出前面几行
选项与参数:
-n :后面接数字,代表显示几行的意思
tail [-n number]档案:取出后面几行
选项与参数:
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
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 [-acdmt]档案:修改档案时间
atime:内容被查看时间,mtime:内容变更时间,ctime:权限与属性变更时间
选项与参数:
-a :仅修订access time;
-c :仅修改档案的时间,若该档案不存在则不建立新档案;
-d :后面可以接欲修订的日期而不用目前的日期,也可以使用--date="日期或时间"
-m :仅修改mtime ;
-t :后面可以接欲修订的时间而不用目前的时间,格式为[YYYYMMDDhhmm]
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 来设定档案时,如果该档案被删除了,则资料内容其实还存在磁碟中,
     可以使用来救援该档案喔!
注意1:属性设定常见的是a 与i 的设定值,而且很多设定值必须要身为root 才能设定
注意2:xfs 档案系统仅支援AadiS 而已
lsattr [-adR]档案或目录:显示档案隐藏属性
选项与参数:
-a :将隐藏档的属性也秀出来;
-d :如果接的是目录,仅列出目录本身的属性而非目录内的档名;
-R :连同子目录的资料也一并列出来!

目录和档案的特殊权限:SUID, SGID, SBIT

SUID对档案有效,SGID对目录和档案有效,SBIT对目录有效

SUID对档案:

SGID对档案: 

SGID:对目录 

SBIT:对目录

  • SUID 权限仅对二进位程式(binary program)有效;
  • 执行者对于该程式需要具有x 的可执行权限;
  • 本权限仅在执行该程式的过程中有效(run-time);
  • 执行者将具有该程式拥有者(owner) 的权限。
  • SGID 对二进位程式有用;
  • 程式执行者对于该程式来说,需具备x 的权限;
  • 执行者在执行的过程中将会获得该程式群组的支援!
  • 使用者若对于此目录具有r 与x 的权限时,该使用者能够进入此目录;
  • 使用者在此目录下的有效群组(effective group)将会变成该目录的群组;
  • 用途:若使用者在此目录下具有w 的权限(可以新建档案),则使用者所建立的新档案,该新档案的群组与此目录的群组相同。
  • 当使用者对于此目录具有w, x 权限,亦即具有写入的权限时;
  • 当使用者在该目录下建立档案或目录时,仅有自己与root 才有权力删除该档案

观察档案类型:file

which [-a] command :寻找指令
选项或参数:
-a :将所有由PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称
whereis [-bmsu]档案或目录名:搜寻档案
选项与参数:
-l :可以列出whereis 会去查询的几个主要目录而已
-b :只找binary 格式的档案
-m :只找在说明档manual 路径下的档案
-s :只找source 来源档案
-u :搜寻不在上述三个项目当中的其他特殊档案
locate [-ir] keyword :搜寻档案
选项与参数:
-i :忽略大小写的差异;
-c :不输出档名,仅计算找到的档案数量
-l :仅输出几行的意思,例如输出五行则是-l 5
-S :输出locate 所使用的资料库档案的相关资讯,包括该资料库纪录的档案/目录数量等
-r :后面可接正规表示法的显示方式
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 还要新的档案档名                                                   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 搜寻。                                                  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.... 的属性存在!

猜你喜欢

转载自blog.csdn.net/qq_33283652/article/details/84281251