鸟哥的Linux私房菜笔记之二

第七章 Linux文件与目录管理

1 目录相关操作
     .     代表此层目录
     ..     代表上一层目录
     -     带博啊前一个工作目录
     ~     代表当前用户的主文件夹
     ~account 代表account 账户的主文件夹

     cd:change directory:切换目录
     pwd:print working directory:显示工作目录
          [-P]:显示物理路径
          [-L]:显示连接路径
     mkdir:新建一个新目录
          [-mp]
          -m:配置文件权限,不需要看默认权限(umask)
          -p:递归创建多层目录
     rmdir:删除一个空目录
          [-p] 连同上层中空目录一起删除
          如tes果要将目录下的东西都删除,必须使用 rm -r test
2 执行文件的环境变量 $PATH
     例如ls在任何目录下都能执行,是因为环境变量中有/bin目录;
     echo $PATH   查看环境变量
     PATH="$PATH":/root     将root加入环境变量
     在PATH里面,哪个目录被先查询到,那个目录下的命令就先被执行。

3 ls 查看目录与文件指令
     ls -al
     ls -alF --color=never ~
     ls -al --full-time ~
     ls -i

     -a 全部文件,连同隐藏文件一起列出
     -A  列出全部文件,不包括.  ..这两个目录
     -d   仅列出目录本身
     -l      列出长数据传,包含文件属性与权限

4 cp rm mb
     cp [-adfilprsu]  source  destination
     cp [options] source1 source2 ...  directory
          -a :相当于-pdr
          -d:若源文件是link file,则复制连接文件本身而非文件本身
          -f: force
          -i:若目标文件存在,则先询问操作在进行
          -l:进行硬连接(hard link)的连接文件创建
          -p:连同文件属性一起复制过去
          -r:递归持续复制,目录的复制行为
          -s:复制成符号链接文件,快捷方式
          -u:若destination比source旧才更新
     
     rm [-fir] 文件或目录
          -f:force
          -i: 删除前询问
          -r:递归删除
          删除带-开头的文件,如-aaa-    rm ./-aaa-
          否则,会误判-aaa为参数
          还有一种方法是: rm -- -aaa-

     mv [-fiu] source distination
     mv [options] source1 source2 ...  directory
          -f : force
          -i: 若destination存在,则询问
          -u:若destination存在,且source新则更新

         mv也可用来更改文件名,也可用rename命令来更改文件名。 

      basename /etc/sysconfig/network     取得最后的文件名
          network
      dirname /etc/sysconfig/network        取得目录名
          /etc/sysconfig


5 文件内容查阅
     cat  由第一行开始显示文件内容
          【-AbEnTv】
     tac  从最后一行开始显示,tac是cat的倒写形式
      nl:显示的时候,顺便输出行号
          【-bnw】
               -b a:不论有无空行,都加行号
               -b t:如果有空行,空行不加行号

               -n ln:行号在自己字段最左方显示,不加0
               -n rn:行号在自己字段最右方显示,不加0
               -n rz:行号在自己字段最右方显示,加0

               -w:行号字段占用位数
      more:一页页的显示
          空格键(space):代表向下翻页
          Enter:代表向下滚动一行
          /字符串:     代表在这个现实的内容中,向下查询 字符串 这个关键字
          :f:立刻显示出文件名以及当前显示的行数
          q:代表立刻离开more
          b or ctrl+b :代表往回翻页,只对文件有用,对管道误用。
      less:与more类似,比more更好的是可以向前翻页
           空格键     :向下翻页
          PageDown:向下翻页
          PageUp:向上翻页
          /字符串:向下查询
          ?字符串:向上查询
          n  :重复前一个查询
          N  :反向重复前一个查询
          q:  离开less程序
      head:只看投几行
          head [-n number]  file
          如果没有加-n参数,默认显示前10行
          若-n 加负数,代表列出前面所有行,但不包括后n行
      tail:只看结尾几行
          -n number:后面接数字,代表显示几行的意思
          -f:表示持续检测后面所接的文件,等到按下ctrl+c才结束tail检测。
     od:以二进制的方式读取文件内容
          od [-t type] file
               -t:后面跟类型的输出:
                    a:利用默认的字符来输出
                    c:利用ASCII字符输出
                    d[size]:利用十进制decimal来输出,每个整型占size bytes;
                    f[size]:利用float来输出,每个浮点型占size bytes
                    o[size ]:利用octal来输出,每个数占size bytes
                    z[size]:

5  修改文件的时间或创建文件touch
     每个文件在Linux中都会记录多个时间参数,主要有三个变动时间:
          modification time(mtime):当文件内容数据被修改时就会更新这个时间
          status time(ctime):当文件状态更改时,就会更新这个时间
          access time(atime):当文件内容被取用时就会更新这个时间
          ls --time=atime 
          默认ls显示的是mtime
     可以用touch来修改时间
          touch [-acdmt] 文件
               -a:修改访问时间
               -c:修改文件时间,文件不存在则不创建新文件
               -d:后面跟欲修改的日期,而不用当前的日期,--date=“日期或者时间”
               -m:仅修改mtime
               -t:后面接欲修改时间,格式[YYMMDDhhmm]

6 文件目录默认权限与隐藏权限
          文件包括  r w x等基本权限和  d - l等属性,修改属性的方法有 chgrp、chmod 、chown
          在Linux的Ex2/Ex3文件系统下,还可以设置其他的隐藏属性,可以用chattr 来设置,用lsattr来查看。
     
     文件默认权限:umask 
          两种查看方式: umask :以数字形态查看
                                   umask -S :(Symbolic)以符号类型方式查看。
          umask的分数指的是 该默认权限值需要减去的权限。
          默认umask设置在/etc/bashrc这个文件内容中,不过不建议修改改文件,可以在bashshell提到的环境参数配置文件(~/.bashrc)的说明。
          在Ubuntu中,默认umask设置 在/etc/login.defs文件中。
                    mask一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置,由于profile的读取有一定的顺序: 
          /etc/profile->$HOME/.profile->$HOME/.bash_profile,所以在.profile里面设置的umask会被后面的profile覆盖了,推荐设置在$HOME/.bash_profile
          
           文件吟唱属性chattr  lsattr
          chattr [+-=] [ASacdistu]   file or dictory
           常用  a:这个文件将只能增加数据,不能删除也不能修改数据,只有root才能设置
                    i:让一个文件不能删除、改名,设置连接也无法写入或添加数据

7 文件的特殊权限: SUID、SGID、SBIT
      SetUID:仅对二进制程序有效:
               执行者对该程序具有x的可执行权限;
               本权限在执行程序的过程中有效;
               执行者具有该程序owner的权限。
     
      SetGID:对二进制程序有用:
                    程序执行者对于该程序具有x权限
                    执行者在执行过程中将获得程序用户组的支持;
                    

                  对于目录设置GID时;
                    用户对此目录具有r x权限时能进入该目录;
                    在此目录下有效用户组将变成该目录的用户组;
                    用户具有w时创建文件的用户组与该目录的用户组相同;

      Sticky Bit(SBIT):
          目前 只针对目录有效
               当用户对于此目录具有w、x权限时,该用户在该目录下创建的文件或者目录,仅有自己与root才有权利删除。

      对SUID SGID SBIT的设置:
          在普通权限钱加一个数字,最前面的数字代表特殊权限: 4代表SUID   2代表SGID  1代表SBIT
               如 chmod 4755 filename:设置具有SUID权限。
               如果设置s 或 t权限,发现没有x执行权限,则以S 或者 T呈现。
          也 可以用 u+s方式设置SUID,g+s设置SGID, o+t设置 SBIT;
               如  chmod u+s,o+t  test

8 查看文件类型  file:

9 命令与文件的查询:
     脚本文件的查询:通过which 或者 type命令:
           which [-a] comand
          type  command;
          which 是根据PATH这个环境变量所规范的路径去查询 执行文件的文件名。

     文件名的查找:
          whereis 
               whereis [-bmsu]  文件或目录
               -b 只查找二进制文件
               -m:只找说明文件manual路径下的文件
               -s:只找source源文件
               -u:只找不在上述三个选项中的其他特殊文件
     
               whereis命令查找速度比find块,是由于Linux会将系统所有文件记录在一个数据库文件里面,当使用whereis或者下面的locate查询是,会以此数据库中的内容为准。


          locate
               [-ir]  keyword
               -i  忽略大小写
               -r     后面可接正则表达式

                    locate查找数据是由已创建的数据库/var/lib/mlocate里面的数据所查找到的,不直接访问硬盘数据,所以快。
               数据库默认一天更新一次,所有有时候新创建的文件查找不到,或者查找到的文件已删除,   需要手动更新数据库,使用updatedb命令 ,去读取/etc/updatedb.conf配置文件中的设置,然后
               对硬盘数据进行查找文件名操作,最后更新数据库文件/var/lib/mlocate。


          find
                    find [PATH] [options] [action]
          

     


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值