《鸟哥的Linux私房菜》学习笔记(三)

来源:互联网 发布:淘宝店铺没有实名认证 编辑:程序博客网 时间:2024/05/09 07:16

第七章  Linux文件与目录管理

7.1  目录与路径

绝对路径与相对路径、目录的相关操作:
.   代表次层目录
..  代表上层目录
-   代表前一个工作目录
~  代表“目前用户省份”缩在的主文件夹
~用户名     代表该用户的主文件夹

sh-3.2#  cd   [绝对路径或者相对路径]  
切换到指定目录
sh-3.2# pwd  [-P] 
显示当前所在目录。-P: 显示出当前路径,而非链接路径
sh-3.2# mkdir  [-mp]  目录名称
-m:配置文件的权限,不需要看默认权限(umask)。
-p:直接将所需的目录(包含上层目录)递归的创建起来
sh-3.2# rmdir  [-p]  目录名称
删除空目录,-p:联通上层空的目录一起删除

关于执行文件路径的变量:$PATH
由于环境变量的缘故,我们得以执行一些无视当前目录的命令和可执行文件。·而且,不同身份用户的PATH并不一样。可以用echo $PATH 查看。为了安全,不建议将"."也就是当前目录加入PATH。


7.2  文件与目录管理

sh-3.2# ls [-aAdfFhilnrRSt]  目录名称sh-3.2# ls [--color={never,auto,always}]  目录名称sh-3.2# ls [--full-time]  目录名称
参数:
-a:全部的文件,连同隐藏文件(开头为.的文件)一起列出来
-A:列出全部的文件,连同隐藏文件,但不包括.和..两个目录
-d:列出目录本身,而不是目录内的文件数据
-f:直接列出结果、而不进行排序(ls默认以文件名进行排序)
-F:根据文件、目录等信息给予附加数据结构。例如:*:代表可执行文件;=:代表socket文件;|:代表FIFO文件
-h:将文件容量以人类较易读的方式列出来
-i:列出inode号码
-l:列出长数据,包含文件的属性与权限等数据
-n:列出UID与GID
-r:将排序结果反向输出
-R:连同子目录内容一起列出来,等同该目录下所有的文件都会显示出来
-S:以文件容量大小排序,而不是文件名排序。
-t:依时间排序,而不是文件名。
--color=never:不要依据文件特性给予颜色显示
--color=always:显示颜色
--color=auto:让系统自行依据设置来盘算是否给予颜色
--full-time:以完整时间模式输出
--time{atime,ctime}:输出访问时间或者改变权限属性时间(ctime),而非内容更改时间(modification time)

cp(复制文件或目录)
sh-3.2# cp  [-adfilprsu]  源文件(可以多个)  目标文件
参数:
-a:相当于-pdr的意思
-d:若源文件为连接文件的属性,则复制连接文件属性而非文件本身
-f:为强制的意思,若目标文件已经存在且无法开启,则删除后再尝试一次
-i:若目标文件已经存在时,在覆盖时会先询问操作的进行
-l:进行硬链接的链接文件创建,而非复制文件本身
-p:连同文件的属性一起复制过去,而非使用默认属性
-r:递归持续复制,用于目录的复制行为
-s:复制成为符号链接文件
-u:只有目标比源文件旧才进行更新
注意:若源文件有两个以上,那么最后一个目的文件则是目录!

rm(移除文件或目录)
sh-3.2#  rm  [-fir]  文件或目录
参数:
-f:force强制的意思,忽略不存在的文件,不出现警告信息
-i:互动模式,在删除前会询问用户是否操作
-r:递归删除。

mv(移动文件与目录,或更名)
sh-3.2# mv [-fiu] source  destinationsh-3.2# mv [-fiu] source1 source2 ....  directory
参数:
-f:强制的意思,若目标文件已存在,不会询问直接覆盖
-i:若目标文件已存在,就会询问是否覆盖
-u:若目标文件已存在,只有source比较新的时候才会更新

sh-3.2  #basename 文件名取得最后文件名sh-3.2  #dirname 文件名取得目录名

7.3  文件内容查阅

cat(concatenate)
sh-3.2# cat  [-AbEnTv]  文件名
参数:
-A:相当于-vET的整合参数,可列出一些特殊字符,而不是空白而已
-b:列出行号,仅针对非空白行做行号显示,空白行不标行号
-E:将结尾的断行字符$显示出来
-n:打印出行号,连同空白行也会有行号。
-T:将[TAB]按键以^I显示出来
-v:列出一些看不出来的特殊字符
相对的tac命令就是反向显示

nl(添加行号打印)
sh-3.2#  nl  [-bnw] 文件名
参数:
-b:指定行号制定的方式,主要有两种:-b a 表示不论是否为空行也同样列出行号,-b t如果有空行,空的那一行不要列出行号
-n:列出行号表示的方法,主要分为三种:-n ln行号在屏幕的最左方显示;-n  rn:行号在自己字段的最右方显示,且不加0;-n rz:行号在自己字段最右号显示,且加0
-w:行号字段占用的位数

more(一页一页翻动)
sh-3.2#  more  文件名
空格键(space)代表向下翻一页ENTER代表向下滚动一行/字符串代表在这个显示的内容当中,向下查询“字符串”这个关键字:f立刻显示出文件名以及目前显示的行数q代表离开more,不再显示该内容b或[ctrl]-b代表往回翻页,不过这操作只对文件游泳,对管道无用

less(一页一页的翻动)
sh-3.2#  less  文件名
空格键向下翻动一页[PAGE DOWN]向下翻动一页[PAGE UP]向上翻动一页/字符串向下查询“字符串”功能?字符串向上查询“字符串”功能n重复前一个查询N反向重复前一个查询q离开less这个程序

head(取出前几行数据)
sh-3.2# head [-n number]  文件
-n:后面接数字,代表显示几行的意思。默认是10行,无符号数为正数行,负数为不显示倒数的负数的绝对值的行数

tail(取出后面几行)
sh-3.2# tail  [-n  number] 文件
-n:后面接数字,代表显示几行的意思。默认最后十行,无符号数则为倒数正数行,正数则为 第几行以后
-f:表示持续监测后面所接的文件名,直到按下[ctrl] -c才会结束tail的检测

od(非纯文本文件)
sh-3.2# od[-t TYPE]  文件
参数:
-t:后面可以接各种“类型[type]”的输出。a:;利用默认的字符来输出;c:使用ASCⅡ字符输出;d[size]:利用十进制来输出数据,每个整数占用size bytes;-f[size]:利用浮点数输出数据;c[size]:利用八进制输出数据;x[size]:利用十六进制输出数据

touch:修改文件时间或创建新文件
modification time(mtime):文件内容数据更改的时间;status time(ctime):文件状态改变的时间;access time(atime):文件内容被取用的时候会改变时间。
sh-3.2# touch [-acdmt]  文件
参数:
-a:仅修改访问时间;-c:仅修改文件的时间,若该文件存在则不创建新文件;-d:后面可以接欲修改的日期而不用目前的日期,也可以用--date=“时间或日期”;-m:仅修改mtime;-t:后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm]。

7.4  文件与目录的默认权限与隐藏权限

sh-3.2# umask   (-S)
显示目前用户在新建文件或者目录时候的权限默认值,默认是以四位数字0022;-S是以符号类型,u=rwx,g=rx,o=rx。值得注意的是umask的分数是显示该默认值需要减掉的权限,umask后面接数字,改变默认权限

chattr(设置文件的隐藏属性)
sh-3.2#  chattr [+-=] [ASaccdistu] 文件或目录
参数:
+:增加某一个特殊参数,其他原本存在的参数不动
-:删除一个特殊参数
=:仅有后面接的参数
A:当设置了A这个属性,若你有访问此文件或目录时,他的访问时间atime将不会被修改,可避免I/O较慢的机器过度访问磁盘。
S:一般文件是异步写入磁盘,加上S后进行任何文件修改时,会同步写入磁盘中
a:当设置a之后,这个文件将只能增加数据,不能删除也不能修改数据,只有root才能设置该属性。
c:这个属性设置之后,将会自动将此文件压缩,在读取的时候将会自动压缩,存储的时候则会先压缩再存储
d:当dump程序,设置d属性将可使该文件或目录不会被dump备份
i:可以让一个文件不能被删除、改名,设置连接也无法写入或添加数据,人只有root才能设置此属性。
s:当文件设置了s属性,如果这个文件被删除,他将会完全从这个硬盘中删除
u:如果文件被删除,数据内容还在磁盘里,可以找回。

lsattr(显示文件隐藏属性)
sh-3.2# lsattr  [-adR] 文件或目录
参数:
-a:将隐藏文件属性也显示出来
-d:如果接目录,仅列出文件本身的属性而非目录内的文件名
-R:连同子目录的数据也一并列出来

   
SetUID:SUID   数字 4,u+s
仅对二进制程序有效;执行者对于改程序需要具有X的可执行权限;本权限仅在执行改程序的过程中有效;执行者将具有该程序所有者的权限。
SerGID:SGID   数字2, g+s
仅对二进制程序有效;执行者对于改程序需要具有X的可执行权限;本权限仅在执行改程序的过程中有效;执行者剪获得该程序用户组的支持。用户若对于此目录具有r与x权限,该用户能进入此目录;用户在次目录下的有效用户组会变成该目录的用户组;若用户在此目录下具有w的权限(可以新建文件),则用户所创建的新文件的用户组与此目录的用户组相同。
Sticky Bit:SBIT  数字1,o+t
当用户对于此目录具有w、x权限,即是写入权限的时候;当用户在该目录下创建文件或目录时,仅有自己与root才有权利删除该文件。

7.5  命令与文件的查询

which(寻找“执行文件”)
sh-3.2#  which [-a]  command
-a:将所有由PATH,目录中可以找到的命令均列出,而不是第一个被找到的命令名称。

whereis(寻找特定文件)
sh-3.2# whereis  [-bmsu]文件或目录名
-b:只找二进制格式的文件
-m:只找在说明文件mannual路径下的文件
-s:只找source源文件
-u:查找不在上述三个选项中的其他特殊文件

locate(数据库内查询)
sh-3.2# locate  [-ir]  keyword
-i:忽略大小写差异
-r:后面可接正则表达式的显示方式

find
sh-3.2# find [PATH]  [option]  [action]
与之有关的时间参数有-atime、-mtime和-ctime,下面以-mtime说明: -mtime  n:n天之前的一天之内更改过的文件。 -mtime +n:n天之前(不含n天本身)被更改的文件;-time  -n:n天之内(不含n天)更改过的文件;-newer file:file是已存在的文件,列出比file还要新的文件名。

与之有关的用户或用户组名有关的参数:
-uid n:n为数字,是用户的帐号ID
-gid n:用户组名 的ID
-user name:用户账户的名称
-group name:用户组的名车个
-nouser:寻找文件的所有者不存在于/etx/passwd的人
-nogroup:寻找文件的所有用户组不存在于/etc/group的人

与文件权限及名称有关的参数:
-name filename:查找文件名为filename的文件
-size [+-] SIZE:查找比SIZE大或小的文件,比如+20c代表比20bytes大,-30k代表比30kbytes小。
-type  TYPE:查找文件的类型,正规文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socker(s)以及FIFO(p)。
-perm mode:查找文件权限刚好等于mode的文件。
-perm -mode:查找文件权限必须包括mode的文件
-perm +mode:查找文件权限只要含mode其中一个权限的文件

其他操作:
-exec command:后面接其他命令同时处理,比如 find / -perm +700 -exec ls -l {} \;  {}是由find找到的内容, -exec一直到“\;”一直是关键字;由于“;”在bash环境下有热数意义,因此利用反斜杠来转义。
-print:结果打印到屏幕


7.6  权限与命令的关系

1.让用户能进入某目录成为工作目录的基本权限是x;如果还要执行ls查阅文件名,则还需要r权限
2.用户读取某一目录内的文件的基本权限:对于目录是x,对于文件是r;
3.用户可以修改一个文件的基本权限:对于目录是x,对于文件是r,w;
4.用户可以创建文件的基本权限是w,x,重点是w;
5.让用户进入某目录并执行其下的某个命令的基本权限:目录文件均至少需要x权限










0 0
原创粉丝点击