第30周-鸟哥的Linux私房菜基础篇第三版-第七章、Linux 档案与目录管理

1、".":此层目录;
   "..":上一层目录;
   "-":前一个工作目录;
   "~":目前用户身份的家目录;
   "~account":account的家目录。
   ls -la /  可知根目录也有存在.和..。
2、处理目录指令:
      cd:变换目录;
      pwd:显示当前目录;
      mkdir:建立一个新的目录;
      rmdir:删除一个空目录;
3、pwd -P 显示完整路径,而不仅是连接档
      例:pwd -P
          ls -ld /var/mail
   mkdir -p test1/test2/test3   可直接建立一连串各个目录
   mkidr -m 755 test4        预设权限
   ls -l
   rmdir test     只能删空目录
   rmdir -p test1/test2/test3  连同上层空目录一起删除
   rm -r 所有目录全删
4、echo $PATH:显示被定义的目录(echo为显示,$后面接变量),目录间用":"隔开
   根据上面结果可知,/bin/ls:所以哪里都可以执行ls。
   /sbin/ifconfig eth0 ,不能仅仅用ifconfig,理由同上。
5、mv bin/ls /root 将ls移动/root目录下
   /root/ls  绝对路径指定文件名
   ./ls   在/root目录下可用
   PATH="$PATH":/root 将/root加入到执行文件搜寻路径PATH中。
   注意:不建议将"."加入PATH的搜寻目录中。
6、例:ls -al ~ 家目录下列出所有档案;
       ls -alF --color=never ~   家目录不显示颜色

       ls -al --full-time ~ 完整呈现档案修改时间


7、cp ~/.bashrc /tmp/bashrc 家目录的.bashrc复制到/tmp
   cp -i ~/.bashrc /tmp/bashrc  多一个-i,会询问是否覆盖;
   例1:cd /tmp 移到/tmp目录
       cp /var/log/wtmp . 将/var/log/wtmp复制到/tmp 。"."是当前目录。
       ls -l /var/log/wtmp wtmp    复制结果时间不同,权限不同
   例2:cp -a /var/log/wtmp wtmp_2  多了一个-a 复制的结果一样
        ls -l /var/log/wtmp wtmp_2    

   例3:cp -r /etc/tmp 复制配置文件需加-r,但档案与目录可能被改变;
        cp -a /etc/tmp 备份时可用
   例4:建立连接档:symbolic link
        ls -l bashrc 显示要连接的目录
        cp -s bashrc bashrc_slink   符号链接
        cp -l bashrc bashrc_hlink   实体链接
        ls -l bashr* 
   例5:cp bashrc bashrc_slink_1    复制实体链接
        cp -d bashrc bashrc_slink_2  复制连接档
        ls -l bashrc bashrc_slink*
   例6:cp ~/.bashrc ~/.bashrc_history /tmp 将前两个家目录复制到/tmp下
   例7:cp -u ~/.bashrc /tmp/bashrc 有差异时才复制 
   例8:$ cp -a /var/log/wtmp /tmp/lshkinger1987_wtmp
          ls -l /varlog/wtmp /tmp/lshkinger1987_wtmp 可见一般用户不能修改档案拥有者与群组
8、rm -i bashrc  有-i会主动询问是否删除,当不想y时按[ctrl]+[c]结束。
   rmdir /tmp/etc 不空不可删
   rm -r /tmp/etc  可删  带了"-r",是超级严重指令下达
   \rm -r tmp/etc 可忽略alias指定选项(这里多了"\");
   touch -aa-
   rm -aa-  无法执行,会误判
   rm -- -aa- 或 rm ./-aa-  均可执行
9、cp ~/.bashrc bashrc 复制一个档案
   mkdir mvtest
   mv bashrc mvtest
   mv mvtest mvtest2 更名为mvtest2
   rename 可对多个档案同时更名
   
   cp ~/.bashrc bashrc1
   cp ~/.bashrc bashrc2
   mv bashrc1 bashrc 2 mvtest2 移动多个文档或目录,但最后一个需是目录


10、档案内容查阅:
     cat:第一个开始显示
     tac:最后一行开始
     nl:显示,并输出行号
     more:一页一页显示
     less:可往前翻,一页一页
     head:头几行
     tail:尾巴几行
     od:二进制读取档案

11、cat /etc/issue
    tac /etc/issue
    $:断行字符,windows的断行字符为M$。注意:如果是DOS档案时,断行与[tab]需要加入-A选项。
    例:nl -b a -n rn -w 3 /etc/issue


    例:more /etc/man.config
        more运行中的几个按键:
             space 下一页;
             Enter 下一行;
             /string 搜索字符串;
             :f 显示文件名和行数;
             q 离开;
             b或[ctrl]-b 往前翻(只对档案有用,管线无用);
        less可用的按键:
             空格 下一页;
             PageUp 上翻;
             PageDown 下翻;
             /string 向下搜索字符串;
             ?string 向上…;
             n 重复前一个搜寻;
             N 反向重复前一个搜寻;
             q 离开
             
12、head -n 20 /etc/man.config 显示前面20行
    head -n -100 /etc/man.config 后100行不显示,如140行,只显示前40。
    tail -n 20  显示最后20行
    tail -n +100 只显出100行后的数据
    tail -f /var/log/messages 持续侦测,直到按[ctrl]-c离开侦测 
             
13、od 查阅非文本档   
    例:od -t c /usr/bin/passwd    
        od -t oCc /etc/issue


14、touch:修改档案时间与建立新档: [-acdmt] d日期 t时间

      三个时间意义:
         mtime:内容数据改变,则更新;
         ctime:状态改变,则更新;
         atime:被取用时,更新。
    单词:access 读取时间、bashrc 系统变量
    例1:cp -a ~/.bashrc bashrc
        ll bashrc;ll --time=atime bashrc;ll bashrc --time=ctime bashrc
    例2:touch -d "two days ago" bashrc
         touch -t 1610182030 bashrc 将上步得到的时间更改
15、档案与目录的默认权限与隐藏权限:
      chattr:设定;
      lsattr:查看。
    例1:cp ~/.bashrc ~dmtsai/bashrc  复制档案
         chown dmtsai:users ~dmtsai/bashrc  修改属性
    例2:mkdir /tmpchaper7_1 建立
         chown -R dmtsai:users /tmp/chapter7_1 修改属性
         chown -R 755 /tmp/chapter7_1 修改权限
16、档案预设权限:umask [该默认值需要减掉的权限]
      默认022(own没有少,group和other少了w) 
      档案:rw 666    -rw-r--r--   例:touch test1
      目录:rwx 777   drwxr-xr-x   例:mkdir test2 
      更改直接 umask 002   
      umask 可以参考 /etc/bashrc 档案内容
17、档案隐藏属性:chattr [a与i最重要] +a能增加数据,但不可删和改,+i则都不能做。


    显示档案隐藏属性:lsattr [-adR] 显示隐藏/列出目录属性而非文件名/子目录一起列出
    档案特殊权限:SUID(只对二进制程序有效,4) SGID(获得群组支持,档案与目录,2) SBIT(目录,1) 
                 [chmod 4755 filename]
                 [chmod 7666 test] -rwSrwSrwT 具有空的SUID/SGID权限
                 另[chmod u+s,g+s,o+t test]

18、观察文件类型:file 如[file ~/.bashrc] 了解档案的格式
    寻找【执行档】:which ifconfig  得用root身份
                   which which
                   which cd 找不到 可用type来找
    档案档名的搜寻:whereis(找特定档案)-[bmsu二进制/说明/资源/其它]与locate -[ir] keyword,
                   直接搜寻数据库,find会搜硬盘较慢。 
                   updatedb:根据/etc/updatedb.conf搜寻文件名,更新/var/lib/mlocate档案;
                   locate:根据/var/lib/mlocate记录,找出关键词文件名。
                   find -mtime n n天前的一天内;+n n天前;-n n天内  
                   find -name testing/-type [fdcblsp]/-perm +-mode (mode如7555)/-print/-size
                   额外可进行动作:
                             -exec command
                             例:find -perm 7000 -exec ls -l{} \; (\;表示跳脱结束)
                   找檔名包含 httpd的档案:find /etc -name '*httpd*'
                   备注:find操硬盘,所以应少用。
19、非常非常非常的重要!权限与指令间的关系:

一、[可工作目录]基本权限:
     1、可用cd等指令;
     2、用户有x权限;
     3、想用ls查阅,需r权限。
二、[读档案]基本权限:
     1、可用cat、more等指令;
     2、用户有x权限;
     3、用户对档案有r权限。
三、[修改档案]权限:
     1、可用nano或vi;
     2、目录需有x权限;
     3、有档案权限r、w。
四、[使用者建立档案]权限:
     1、用户在该目录需有w、x权限,重点是w。
五、[进入目录且执行指令]基本权限:
     1、用户在该目录有x权限;
     2、使用者在该档案有x权限;

例:建立群组,使里面的账号可彼此共享档案。
groupadd project 增加新群组
useradd -G project alex   建立alex账号,支持群组
useradd -G project arod
id alex 查阅alex账号属性
id arod
mkdir /srv/ahome 建立开发的项目目录
ll -d /srv/ahome 显示结果表明其他人不能建立档案(因需wx)
chgrp project /srv/ahome
chmod 2770 /srv/ahome 修改权限(需用SGID)
ll -d srv/ahome
su - alex
cd /srv/ahome
touch 1234
ll 1234 结果显示alex为project的群组,这样alex与arod才能彼此进入对方的档案。
例:找出/etc 容量大于1500及0的文档
      find /etc -size +1500 -o -size 0  注意-o是or的意思
    找出 /etc 底下,档案容量大于50k,档名非root,权限完整列出 (ls -l);
      find /etc -size +50k -a ! -user root -exec ls -l {} \;   -a是and的意思
      find /etc -size +50k -a ! -user root type f -exec ls -l {} \;
    find 找出目前 linux 系统中,所有具有 SUID 的档案有哪些?
      find / -perm +4000 -print
    查询 /usr/bin/passwd 传统权限/文件类型/隐藏档案
      ls -l 
      file
      lsattr

SUID与SGID的讨论延伸阅读:http://phorum.vbird.org/viewtopic.php?t=20256

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值