鸟哥的Linux私房菜学习笔记(二)

鸟哥的Linux私房菜学习笔记(二)

档案与目录管理

目录与路径

  • cd,改变目录

    $ cd ~ # 返回家目录
    
  • pwd,查询当前路径

    $ pwd [-P]
    # -P:显示出准确的路径,而非使用链接(link)路径
    

    例子:
    在这里插入图片描述

  • mkdir,建立目录

    $ mkdir [-mp] 目录名称
    #	-m:设定档案的权限
    #	-p:顺便建立所需要的上层目录
    
    # 例子
    $ mkdir -p test1/test2/test3/test4 # 当没有上层文件夹时需要添加-p
    $ mkdir -m 711 test2 # 直接设定权限为rwx--x--x
    
  • rmdir,删除空目录

    $ rmdir [-p] 目录名称
    # -p 连同上层的空目录一起删掉
    
  • $PATH,关于执行档路径的变量

    $ echo $PATH # 查询当前默认搜索路径
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    
    $ PATH="${PATH}:/root" #将路径添加到默认搜索路径中
    

档案与目录管理

  • ls

    $ ls [-adl] 档名或者目录名称
    # 选项及参数
    -a	全部的档案,连同隐藏档一起列出来
    -d	仅列出目录本身,而不是列出目录内的档案资料
    -l	长资料串列出,包括档案的属性与权限等等资料
    # $ ll 相当于 ls -l
    
    --color=never	不要依据档案特性基于颜色显示
    --color=always	显示颜色
    --color=auto	让系统自行判断是否给予颜色
    --full=time		以完整的时间模式输出
    --time={atime,ctime}	输出access时间或者改变权限属性时间,而非内容变更时间
    
  • cp

    $ cp [-adfilprsu] 来源(source) 目的地(destination)
    $ cp [options] source1 source2 source3 .... directory
    
    # 选项及参数:
    -a  :相当于 -dr --preserve=all (常用)
    -d  :若source为链接档(link file),则复制链接档的属性而非档案本身
    -f  :为强制(force)的意思,若目标档案已经存在且无法开启,则移除后在尝试一次
    -i  :若destination已经存在,在覆盖时先询问是否覆盖(常用)
    -p  :连同档案的属性一起复制过去,而非使用预设属性(备份常用);
    -r  :循环复制,用于复制目录 (常用)
    
    --preserve=all :除了 -p 的权限相关参数意外,还加入 SELinux 的属性, links, xattr 等也进行复制
    
    # 最后需要注意的,如果source有两个以上,則最后一个destination一定要是『目录』才行!
    
  • rm

    $ rm [-fir] 档案或目录
    
    # 选项与参数
    -f	force,忽略不存在的啊档案,不会出现警告信息
    -i	互动模式,删除前会询问使用者是否动作
    -r	循环删除,用于删除目录
    
  • mv,移动档案或目录,或更名

    $ mv [-fiu] source destination
    $ mv [options] source1 source2 source3 .... directory
    
    # 选项与参数:
    -f  :force,如果目标档案已经存在,不会询问而直接覆盖;
    -i  :若destination存在时,会询问是否覆盖
    -u  :若destination已经存在,只有在source更新时才会覆盖
    

档案内容查阅

  • cat——从第一行开始显示内容

    $ cat [-nb] 文件名
    
    # 选项及参数
    -b	列出非空白行的行号
    -n	列出行号,包括空白行
    
  • tac——从最后一行开始显示内容

  • nl——打印的时候顺便添加行号

  • more——一页一页翻动

    ​ more会在最后一行显示目前显示出的百分比,有以下快捷键

    • 空格:下一页
    • Enter:下一行
    • /字串:查询该字串
    • :f:立即显示出档名及目前显示的行数
    • q:退出
    • b:往回翻页
  • less——比more更好用

    ​ less可以方便的往前往后翻看文件

    • 空格、pagedown:向下翻一页
    • pageup:向上翻一页
    • /字串:向下搜索
    • ?字串:向上搜索
    • n:重复前一个搜索
    • N:反向重复前一个搜索
    • g:到资料的第一行
    • G:到资料的最后一行
    • q:退出
  • head——取出前面几行

    $ head [-n number] 档案
    
    -n	取出几行
    
  • tail——取出后面几行

  • od——查看非纯文字档案

    $ od [-t TYPE] 檔案
    
    # 选项或参数:
    -t  :后面可以接各种『类型 (TYPE)』的输出,例如:
          a       :利用预设的字来输出;
          c       :使用 ASCII 字元来输出
          d[size] :利用十进制(decimal)来输出
          f[size] :利用浮点数(floating)来输出
          o[size] :利用八进制(octal)来输出
          x[size] :利用十六进制(hexadecimal)来输出
    
  • touch——修改档案时间或新建档案

    $ touch [-acdmt] 档案
    
    # 选项与参数:
    -a  :只改 access time;
    -c  :只改档案的时间,如果不存在文件也不新建
    -d  :后面可以接想改为的日期而不用目前的日期,也可以使用 --date="日期或时间"
    -m  :只改 mtime ;
    -t  :后面可以接想改为的时间而不用目前的時間,格式为[YYYYMMDDhhmm]
    

档案与目录的预设权限与隐藏权限

  • umask——目前使用者在建立档案或目录时候的权限预设值。

    当查询此时系统的默认值时,可以使用

    $ umask
    0022		#后三个数字与一般权限有关
    $ umask -S	# -S可以以符号方式显示权限
    u=rwx,g=rx,o=rx
    

    在系统的初始设置上,当创建文档时,默认拥有的权限为666,即都没有执行权限;在创建目录时,默认的权限为777。umask中设置的数值为要从系统默认的数值中减去的权限,例如

    $ umask
    0022
    $ touch test1
    $ mkdir test2
    $ ll -d test*
    -rw-r--r--. 1 root root 0  6月 16 01:11 test1
    drwxr-xr-x. 2 root root 6  6月 16 01:11 test2
    

    设置umask的值的方法为

    $ umask 002
    
  • chattr——设定档案的隐藏属性

    $ chattr [+-=][ASacdistu] 文档或目录名称
    
    +   :增加某一个特殊参数
    -   :移除某一个特殊参数
    =   :设定参数,最终该档案只具有=后的参数
    
    A  :若有存取此文档(或目录)时,他的 atime 將=不会被修改,
    a  :只能增加资料,而不能刪除也不能修改资料,只有root 才能设定这个属性
    i  :不能被刪除、改名、设定链接也无法写入或新增资料,只有root 才能设定这个属性
    
  • lsattr——显示文档的隐藏属性

  • file——查看文档类型

指令与档案的搜索

  • which——搜索执行档(可使用的指令)

    $ which [-a] command
    
    -a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称
    
  • whereis

    ​ whereis 主要是查找 /bin /sbin 底下的执行档,以及 /usr/share/man 底下的 man page 档案

    whereis [-bmsu] 档案或目录
    
    -b    :只找 binary 格式的
    -m    :只找 man 下的
    -s    :只找 source 来源的
    -u    :搜索不在上述三个之中的特殊项
    
  • local/updatedb

    ​ 在已建立的资料库 /var/lib/mlocate/ 中进行搜索,这样会很快,但是当资料库还没有更新时会出现查不到的问题,此时可以使用updatedb来更新资料库

    $ locate [-ir] keyword
    :
    -i  :忽略大小写
    -c  :不输出文档名,仅计算找到的文档数量
    -l  :仅输出几行,例如输出五行则是 -l 5
    -S  :输出 locate 所使用的资料库档案的相关资讯,包括该资料库的档案/目录数量等
    -r  :后面可接正则表示法的显示方式
    
  • find(已经放弃改成简体了)

    $ 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.... 的屬性存在!
    
    4. 額外可進行的動作:
       -exec command :command 為其他指令,-exec 後面可再接額外的指令來處理搜尋到的結果。
       -print        :將結果列印到螢幕上,這個動作是預設動作!
    

    一个例子是

    在这里插入图片描述

    • {} 代表的是『由 find 找到的內容』,find 的结果会被放置到 {} 位置中
    • -exec 一直到 ; 是关键字,代表 find 额外动作的开始 (-exec) 到结束[ \; ]
    • 因為『 ; 』在 bash 环境下是有特殊意义的,因此利用反斜线來跳脱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值