系统相关
首页 > 系统相关> > Linux文件与目录管理(学习笔记)

Linux文件与目录管理(学习笔记)

作者:互联网

本笔记为《鸟哥linux私房菜》第六章学习笔记 一、目录与路径 相对路径与绝对路径 绝对路径:一定由根目录 / 写起              正确度比较好 相对路径:不是由 / 写起             方便   目录相关操作 特殊目录 .         代表此层目录 ..        代表上一层目录 -        代表前一个工作目录    ~       代表“目前用户身份”所在的家目录 ~acc          代表 acc 这个用户的家目录 常见的处理目录的指令 cd          变换目录      change directory pwd       显示当前目录      print working directory mkdir     建立一个新的目录       rmdir      删除一个空的目录   pwd [-P] -P:显示出确实的路径,而非使用链接(link)路径。   mkdir [-mp] 目录名称 -m:配置文件的权限,直接设定    例子:mkdir -m 711 test2 -p:直接将需要的目录递归建立起来   rmdir [-p] 目录名称 -p:连同 上册 空的 目录也一起删除   关于执行文件路径的变量:$PATH 在执行一个指令时,系统会按照PATH的设定去每个PATH定义的目录下搜寻文件名为ls的可执行文件,先搜到的同名指令先被执行。 echo $PATH    显示哪些目录被定义出来,用冒号隔开 将/root加入PATH:PATH="${PATH}:/root"   可使用绝对路径或相对路径直接指定某个指令的文件名来执行,会比PATH正确。 本目录(.)最好不要放到PATH中。   二、文件与目录管理 显示属性、拷贝、删除文件、移动文件或目录等 文件与目录的检视  ls ls [-aAdfFhilnrRSt] 文件名或目录名称 ls [--color={never,auto,always}] 文件名或目录名称 ls [--full-time] 文件名或目录名称 选项与参数: -a:全部的文件,连同隐藏档一起列出                                  常用 -A:全部的文件,连同隐藏档,但不包括.和..这两个目录 -d:仅列出目录本身,而不是列出目录内的文件数据              常用 -f:直接列出结果,而不进行排序 -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}:输出access时间或改变权限属性时间(ctime),而非内容变更时间   蓝色显示目录,白色显示一般文件   复制、删除与移动:cp,rm,mv 1、cp(复制文件或目录) cp [-adfilprsu] 来源文件 目标文件 cp [options] source1 source2 source3 ..... directory 选项与参数: -a :相当于 -dr --preserve=all的意思                                                                常用 -d :若来源文件为链接文件的属性,则复制链接文件属性而非文件本身 -f : 为强制的意思,若目标文件已经存在且无法开启,则移除后再尝试一次 -i : 若目标文件已经存在时,在覆盖时会先询问动作的进行                                 常用 -l : 进行硬式连结的连结档建立,而非复制文件本身 -p : 连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用) -r : 递归持续复制,用于目录的复制行为                                                           常用 -s : 复制成为符号链接文件(symbolic link),亦即“快捷方式”文件 -u : destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制。 --preserve=all : 除了 -p 的权限相关参数外,还加入 SELinux 的属性,links,xattr等也复制了。   注:如果来源档有两个以上,则最后一个目的文件一定要是 目录   复制时注意: 是否需要完整保留来源文件信息?           -a    -p 来源文件是否为连结档         -d     来源文件是否为目录        -r 来源文件是否为特殊文件   2、rm(移除文件或目录) rm [-fir] 文件或目录 选项与参数: -f : force模式,忽略不存在的文件,不会出现警告讯息 -i : 互动模式,删除前会询问使用者是否动作 -r :递归删除,最常用在目录的删除           危险选项   touch 建立空文件   3、mv(移动文件与目录,或更名) mv [-fiu] 源文件 目标文件 mv [options] source1 source2 source3 ....  directory 选项与参数: -f : force强制模式,若目标文件已存在,不会询问而是直接覆盖 -i : 若目标文件已经存在,会询问是否覆盖 -u: 若目标文件已存在,且source比较新,才会更名   更名:mv 原文件名 更改文件名   取得路径的文件名与目录名称 basename   取得档名 dirname       取得档的目录名   三、文件内容查阅 cat     由第一行开始显示文件内容 tac     从最后一行开始显示 nl       显示时顺便输出行号 more   一页一页显示文件内容 less     比more多了往前翻页 head    只看头几行 tail       只看尾巴几行 od        以二进制方式读取文件内容   直接检视文件内容 cat/tac/nl cat(concatenate) cat [-AbEnTv] 选项与参数 -A:相当于 -vET 的整合选项,可列出一些特殊字符 -b:列出行号,仅针对非空白行作行号显示 -E:将结尾的断行字符 $ 显示出来 -n:打印出行号,连同空白行也会有行号 -T:将[tab]按键以 ^I 显示出来 -v:列出一些看不出来的特殊字符   tac(反向列示) 由最后一行到第一行反向在屏幕上显示出来   nl(添加行号打印) nl [-bnw] 文件 选项与参数: -b:指定行号指定的方式         -b a:表示不论是否为空行,也同样列出行号         -b t:如果有空行,空的一行不要列出行号(默认值) -n:列出行号表示的方法        -n ln:行号在屏幕的最左方显示        -n rn:行号在自己字段的最右方显示,且不加0        -n rz:行号在自己字段的最右方显示,且加0 -w:行号字段的占用的字符数   可翻页检视 more(一页一页翻动) 空格:下翻一页 Enter:下翻一行 /字符串:在这个显示的内容当中,向下搜寻字符串关键词            ?????????? :f:立刻显示出文件名及目前显示的行数 q:立刻离开more,不再显示该文件内容 b:往回翻页,只对文件有用   less(一页一页翻动) 空格:下翻一页 [pagedown]:下翻一页 [pageup]:上翻一页 /字符串:向下搜寻 字符串 ?字符串:向上搜寻 字符串 n:重复前一个搜寻                ???? N:反向重复前一个搜寻        ???? g:前进到资料第一行 G:前进到资料最后一行 q:离开   资料撷取 head(取出前面几行) head [-n number] 文件 -n后面接数字,代表显示几行   tail(取出后面几行) tail [-n number] 文件 选项与参数: -n:后面接数字,代表显示几行的意思 -f:表示持续侦测后面接的档名,要等到按下[ctrl]-c才会结束tail的侦测 -n +number:显示number行及之后的内容   非纯文本档:od od [-t TYPE] 文件 -t:后面可接各种类型的输出       a         :利用默认的字符输出       c         :使用ASCII字符输出       d[size]:利用十进制输出       f[size] :利用浮点数输出       o[size] :  利用八进制输出       x[size]:利用十六进制输出   echo password|od -t oCc     得到password这几个字的ASCII对照   修改文件时间或建置新档:touch modification time(mtime): 记录文件内容数据变更时间 status time(ctime):文件状态更新时间(权限、属性.....) access time(atime):文件内容被取用时,会更新该时间 ls -l --time=ctime 文件名   touch touch [-acdmt] 文件 -a:仅修订access time -c:仅修改文件的时间,若该文件不存在则不建立新文件 -d:后面可以接欲修订的日期而不用目前的日期 -m:仅修改mtime -t:后面可接欲修订的时间,格式[YYYYMMDDhhmm] 建立一个空文件 将某个文件日期修订为目前(mtime与atime)   四、文件与目录的默认权限与隐藏权限 文件预设权限:umask umask -S   查看当前目录 符号类型方式的权限   文件默认 666 目录 777 文件隐藏属性 1、配置文件隐藏属性 chattr【只能在Ext2/Ext3/Ext4的Linux传统文件系统上完整生效,xfs文件系统只支持AadiS】   chattr [+-=][ASacdistu] 文件或目录名称 + :增加某一个特殊参数,其他原本存在参数不动 -  :移动某个特定参数,其他原本参数不动 = :设定一定,且仅有后面接的参数   A:设定该属性,若有存取文件(或目录)操作时,访问世界atime不会被修改,可避免I/O较慢的机器过度存取磁盘 S:一般文件是异步写入磁盘,加S后,对文件的任何修改,会同步写入磁盘 a:设定a之后,该文件只能增加数据,不能删改, 本属性只有root才能设定 c:自动将此文件压缩,读取时自动解压缩,但在储存时,先压缩再储存 d:dump程序被执行时,设定d属性可使该文件(或目录)不被dump备份 i :可让一个文件不能被删除、改名、设定连结也无法写入或新增数据,对系统安全性有很大帮助,只有root能设定 s:若该文件被删,则会完全被移除出硬盘空间,若误删则无法恢复 u:与s相反,文件被删,但数据内容还存在磁盘中,可用于救援该文件   2、显示文件隐藏属性      lsattr lsattr [-adR] 文件或目录 -a:将隐藏文件的属性也列出来 -d:若接目录,仅列出目录本身的属性而非目录内的文件名 -R:连同子目录数据也列出   文件特殊权限:SUID,SGID,SBIT Set UID 当s出现在文件拥有者的x权限上时,称为Set UID,简称SUID的特殊权限 SUID的限制与功能——仅对二进制程序有效,不能用于shell script上,对目录无效                                     执行者对于该程序需要具有x的可执行权限                                     本权限仅在执行该程序的过程中有效                                     执行者将具有该程序拥有者的权限   Set GID 当s出现在群组的x权限上时,称为Set GID,SGID SGID限制与功能——可针对文件或目录来设定                       对文件:对二进制程序有用                                     程序执行者对于该程序来说,需具备x的权限                                     执行者在执行过程中会获得该程序群组的支持                        对目录:用户对于此目录具有r与x的权限时,该用户能够进入此目录                                      用户在此目录下的有效群组将会变成该目录的群组                                      用途:若用户在此目录下具有w的权限(可建立新文件),则使用者所建立的新文件,该文件的群组与此目录的群组相同   Sticky Bit(SBIT) 只针对目录有效:当用户对于此目录具有w,x权限,亦即具有写入的权限时;                            当用户在该目录下建立文件或目录时,仅有自己与root才有权利删除该文件   SUID/SGID/SBIT 权限设定 4:SUID 2:SGID 1:SBIT chmod 4755 filename              -rwsr-xr-x   观察文件类型:file   五、指令与文件的搜寻 脚本文件名的搜寻 which(寻找“执行档”)/type(第十章讲) which [-a] command -a:将所有由PATH目录中可找到的指令均列出 文件档名的搜寻 whereis(由一些特定的目录中寻找文件文件名) whereis [-bmsu] 文件或目录名 -l    可列出whereis会去查询的几个主要目录而已 -b   只找binary格式的文件 -m  只找在说明文件manual路径下的文件 -s   只找source来源文件 -u   搜寻不在上述三个项目当中的其他特殊文件   locate:依据 /var/lib/mlocate内的数据库记载,找出用户输入的关键词文件名 locate [-ir] keyword -i   忽略大小写 -c   不输出档名,仅计算找到文件数量 -l   仅输出几行的意思,输出5行:-l 5 -S  输出locate所使用的数据库文件相关信息,包括该数据库记录的文件/目录数量等 -r   后面可接正规表示法的显示方式   updatedb:根据  /etc/updatedb.conf的设定去搜寻系统硬盘内的文件名,并更新 /var/lib/mlocate内的数据库文件   find find [PATH] [option] [action] 1、时间相关选项与参数 -mtime n:在n天之前的“一天之内”被更新过内容的文件 -mtime +n:列出在n天之内(不含n天本身)被改过内容的文件名 -mtime -n:列出在n天之内(含n天本身)被改过内容的文件档名 -newer file:file为一个存在的文件,列出比file还要新的文件档名 2、与使用者或组名有关参数 -uid n   : n(数字)是用户的账号ID【UID:记录在/etc/passwd 里的账号名称对应的数字】 -gid n   : n(数字)是组名ID【GID:记录在/etc/group】 -user name  : name为使用者账号名称 -group name:name为组名 -nouser:寻找文件的拥有者不存在 /etc/passwd的人 -nogroup:寻找文件拥有群组不存在 /etc/group的文件 3、与文件权限及名称相关的参数 -name filename:搜寻文件名为filename的文件 -size [+-]SIZE:搜寻比SIZE还大(+)或小(-)的文件                          SIZE规格:c代表bytes,k代表1024bytes             -type TYPE:搜寻文件类型为 TYPE 的                      一般正规文件(f),装置文件(b,c),目录(d),连结档(l),socket(s),FIFO(p)等 -perm mode:搜寻文件权限刚好等于mode的文件    4755 -perm -mode:搜寻文件权限必须全部囊括mode的权限 的文件 -perm /mode:搜寻文件权限包含任一mode的权限的文件 4、额外可进行的动作 -exec command:command为其他指令,-exec后可再接额外指令来处理搜寻到的结果 -print:将结果打印到屏幕上,这个动作是预设动作   例题 找出 /etc底下,文件大小介于50K-100K之间的文件,且将权限完整列出 find /etc -size +50k -a -size -60k -exec ls -l {} \;   找出 /etc下文件容量大于50K且文件所属人不是root的档名,且将权限完整列出 find /etc -size +50k -a ! -user root -exec ls -ld {} \;   找出/etc下,容量大于1500K或容量等于0的文件 find /etc -size +1500k -o -size 0   -a   and -o   or

标签:文件,文件名,搜寻,笔记,目录,Linux,权限,列出
来源: https://www.cnblogs.com/minjia/p/10365077.html