文件管理相關

 rename:對文件重命名
    rename [options] expression replacement file
      
  • 示例:         
# rename -v cut.exe cut.exe3 cut.exe
            `cut.exe’ -> `cut.exe3′
                注:rename 源文件名 改后名  源文件名
  •      option
         
           -V:顯示版本信息并退出            
      # rename -V
       rename from util-linux 2.23.2


tree:顯示目錄樹
   按樹狀結構顯示某一目錄下的文件列表
      tree [options]
      
      options:
        -d:只顯示目錄    
     tree -d
         .
          └── mode
        -L:設定顯示的層次       
   tree -L 2 lianxi/
                lianxi/
                ├── 8yu
                ├── a123
                ├── a123.bak
                ├── a123.bak.bak
                ├── access_log
                ├── acl2.txt
                ├── k\ 67
                ├── mode
                │   ├── a123
                │   ├── access_log
                │   └── cut2.txt
                ├── m.z
                ├── passw
                └── sort
                1 directory, 13 file

mkdir: 創建目錄
   mkdir [OPTION]… DIRECTORY..
    

         -p:自動創建父目錄 

     mkdir -p haha/hehe
 
         -v:顯示詳細信息
     # mkdir -pv 666/888
mkdir: created directory ‘666’
mkdir: created directory ‘666/888’
          -m:直接指定權限
     mkdir  -m 640 mc

rmdir:刪除目錄(非空目錄不能刪除)
  -p:自動刪除空的父目錄
rmdir -p testdir/dir2/

索引節點
  inode:表中包含文件系統的所有列表
  一個節點(索引節點)是在一個表項,包含有關文件的信息(元數據),包括:
    文件類型,權限,UID,GID
    鏈接數(指向這個文件名路徑名稱個數)
    該文件大小和不同的時間戳
    有關文件的其他數據

inode在特定范圍內是唯一的

cent6.8 根分區inode默認從2開始;centos7默認64開始

lost+found :相當于收容所,系統突然斷電等非正常關機所找不到存放地的文件都在此。

目錄
  文件引用一個inode號(系統自動分配)
  人是通過文件名來引用一個文件
  一個目錄是目錄下的文件名和文件inode號之間的映射。
對于目錄:目錄里存放的是子目錄或文件對應的節點編號,文件名存放在目錄里

df 參看磁盤空間使用狀況
  # df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/sda2       52403200 4029708  48373492   8% /
    devtmpfs          918976       0    918976   0% /dev
    tmpfs             933644      84    933560   1% /dev/shm
    tmpfs             933644    9172    924472   1% /run
    tmpfs             933644       0    933644   0% /sys/fs/cgroup
    /dev/sda5       10475520   32944  10442576   1% /app
    /dev/sda1        1038336  172112    866224  17% /boot
    tmpfs             186732      16    186716   1% /run/user/42
    tmpfs             186732       0    186732   0% /run/user/0
   -i:查看節點使用情況,而不是空間
     # df -i
    Filesystem       Inodes  IUsed    IFree IUse% Mounted on
    /dev/sda2      26214400 119707 26094693    1% /
    devtmpfs         229744    401   229343    1% /dev
    tmpfs            233411      6   233405    1% /dev/shm
    tmpfs            233411    556   232855    1% /run
    tmpfs            233411     16   233395    1% /sys/fs/cgroup
    /dev/sda5       5242880      3  5242877    1% /app
    /dev/sda1        524288    330   523958    1% /boot
    tmpfs            233411     17   233394    1% /run/user/42
    tmpfs            233411      1   233410    1% /run/user/0

watch  -n 1 `command`
  每隔1秒就執行一次后面的命令

cp命令(復制):
  分配一個空閑的inode號,在inode表中生成新條目在目錄中創建一個目錄項,將名稱與inode編號關聯拷貝數據生成新的文件
    語法格式:
        cp [OPTION]… [-T] SOURCE DEST
        cp [OPTION]… SOURCE… DIRECTORY
        cp [OPTION]… -t DIRECTORY SOURCE..
          options:        
-a :same as -dR –preserve=all
           -i : 交互式操作
           -f : 強制操作
           -r :遞歸
           -v :顯示過程信息
           …              
    # cp -v sort haha/
    ‘sort’ -> ‘haha/sort’

rm 命令(刪除文件或目錄):
  
  連接數遞減,從而釋放的inode號可以被重用
  把數據塊放在空閑列表中
  刪除目錄項
  數據實際不會被馬上刪除,但當另一個文件使用數據塊時將被覆蓋。
   語法格式
      rm [OPTION]… FILE…
      
   -i : 交互式操作,需要用戶確認(例如:輸入y)
         -f : 強制操作
         -r :遞歸操作
         -v :顯示過程信息
         …
 # rm -i k\ 67
          rm: remove regular empty file ‘k 67’? y

mv命令:
 
 如果mv命令的目標和源在相同的文件系統,作為mv命令用新的文件名創建對應新的目錄項,刪除舊目錄條目對應的舊的文件名,不影響inode表 (除時間戳)或磁盤上的數據位置;沒有數據被移動!
  如果目標和源在一個不同的文件系統,mv相當于cp和rm
  語法格式
   
     mv [OPTION]… [-T] SOURCE DEST
     mv [OPTION]… SOURCE… DIRECTORY
     mv [OPTION]… -t DIRECTORY SOURCE…
       options:
         -i: 交互式操作
         -f: 強制操作
         -v: 顯示過程信息
  
 示例:
       # mv -v fule bufu
      ‘fule’ -> ‘bufu’


shred  :碎紙機k,覆蓋文件內容,并刪除該文件內容
  語法格式
     shred [OPTION]… FILE…
     options:
       -z 清零
       -v 顯示過程信息
       -n 操作次數
    
 示例:
           # shred -zvn5 bufu
    shred: bufu: pass 1/6 (random)…
    shred: bufu: pass 2/6 (ffffff)…
    shred: bufu: pass 3/6 (random)…
    shred: bufu: pass 4/6 (000000)…
    shred: bufu: pass 5/6 (random)…
    shred: bufu: pass 6/6 (000000)…

hexdump:以不同的格式顯示文件內容
  語法格式:
     hexdump [options] file […]
     options:
  •          -b: 以八進制格式顯示
  •          -C:以十六進制+ascII顯示
  •          -d: 以十進制顯示

ln filename linkname 創建硬鏈接
  •   硬鏈接:不同的路徑名指向同一個文件
  •   硬鏈接不支持目錄,只支持文件
  •   硬鏈接不能跨文件系統
  •   創建硬鏈接會增加鏈接計數
  •   每個目錄引用相同的inode號
  

ln -s filename linkname:創建軟連接,符號鏈接
  •   一個符號鏈接指向另一文件
  •   符號鏈接可以跨文件系統
  •   不會增加inode引用計數
  •   可以跨文件系統
  •   可以跨目錄
  •   符號鏈接指向的是另一個文件路徑,大小為指定路徑的大小。


file 顯示文件類型
   語法格式:
     file [options] filename
     示例:
           
   # file 666
    666: setgid directory
       options:
          -b:列出文件辨識結果時,不顯示文件名
               
     # file -b 666
        setgid directory
          -f:列出文件中文件名的文件類型(前提是文件內保存的文件名是真實存在)
      
        # file -f file.txt
            /etc/passwd: ASCII text
            /usr/share/: directory
          -F:使用指定分隔符替換輸出文件名后默認的”:”分隔符
          -L:查看軟連接對應的文件的文件類型    
     file -L /etc/localtime
     /etc/localtime: timezone data, version 2, 2 gmt time flags, 2 std time flags, no leap seconds, 16 transition times, 2 abbreviation chars

reset:重置當前的工作環境

Linux給程序提供三種IO設備
  •   標準輸入(STDIN) -0 默認接受來自鍵盤的輸入
  •   標準輸出 stdout -1 默認輸出到當前終端窗口
  •   標準錯誤 stderr -2 默認輸出到終端窗口

I/O 改變默認位置
  輸出重定向
  •     > file: 覆蓋輸出重定向
  •     >> file:追加輸出重定向
  錯誤輸出重定向
  •     2> file 錯誤覆蓋輸出重定向
  •     2>> file 錯誤追加輸出重定向
  聯合重定向,正確和錯誤的都輸出到同一個文件:
  •   ls /err /boot > /app/all 2>&1
  •   ls /err /boot &> /app/all
  •   ls /err /boot >& /app/all
 
  set -C :禁止覆蓋已有文件
  set +C: 取消上述功能
  ls /boot >| /app/ls.log 強行覆蓋
  (echo err 1>&2) > /app/f1把正確輸出轉為錯誤輸出
  (cmd1;cmd2) > f1 把兩個命令的結果輸出到f1
  多行重定向
    cat > filename << EOF(結束符)(此處生成文檔)
      >ddd
      >skdfjlsd
      >EOF
     mail -s ‘sanqueyi’ username@hostname <<EOF 
       mail 郵件發送程序 -s 指定標題 username@hostname 郵件接收者地址,執行上述命令,則開始輸入正文,輸入EOF則結束輸入,郵件發送
  輸入重定向操作(tr命令請看下面內容):
  tr ‘a-z’ ‘A-Z’ > f2 < /etc/issue
  cat > f1單行重定向
wall  xxxx ;發送廣播信息


tr:轉換或刪除字符
  語法格式:
  tr [options] set1 [set2]
  options:
  •       -c:取補集
  •       -d:把set1中定義的內容刪除
  •       -s:把set1中重復的字符壓縮為一個
  •       -t:將set1中的字符轉換為set2,對位替換


管道   
  cmd1 | cmd2  :把命令1的標準輸出當作命令2的標準輸入,一般情況前面的成功才能正確執行
  •     ls /boot /err 2>&1 | tr ‘a-z’ ‘A-Z’
  •     ls /boot /err |& tr ‘a-z’ ‘A-Z’\
  stderr默認不能通過管道轉發,不過可以利用2>&1或者|& 實現
  最后一個命令會在當前shell進程的子shell進程執行、
  一頁一頁地查看輸入:
    ls -l /etc | less
  mail:通過電子郵件發送輸入:
    echo “test” | mail \ -s “test” user@hostname.com
  lpr:把輸入發送給打印機
    echo “test print” | lpr -P printer_name
  – 符號:
       -是取前一個命令的stdout
 
     tar -zcf – /home | tar -zxf –
  ls /etc | tee file3: tee命令可以把前一個命令的輸出同時保存到指定文件又輸出到屏幕

 tee:重定向到多個目標
        command1 | tee 文件名 | command2
        把命令1的stdout保存到文件名中,然后管道輸入給命令2
           tee -a :附加,原文件的內容不進行覆蓋操作,保留原有內容。
 作用:
  •         保存不同階段的輸出
  •         復雜管道的故障排除
  •         同時查看和記錄輸出

readlink linkname 查看鏈接文件對應的原始文件

 chown 設置的屬主屬組(普通用戶不可以執行,無權限)
  •       chown onwer: file 默認把文件的屬主改為onwer屬組改為onwer的屬組
  •       chown :grp file 默認修改file的屬組為grp,屬主不改變
  •       chown owner:grp file
  •       chown [options] –reference=RFILE FILE..



chgrp 設置文件的屬組信息 (普通用戶屬于的組可以執行)
  •       chgrp [options]..group file..
  •       chgrp [options] ..–reference=RFILE FILE..
                options: 
                   -R 遞歸修改

文件的權限主要針對三類對象進行定義:
      owner:屬主,u
      group:屬組,g
      other:其它,o

每個文件針對對每類訪問者都定義了三種權限:
      r:readable
      w:writeable
      x:eXcutable

對目錄
  •        r讀:可以使用ls查看文件列表,使用ls等
  •        w寫:可以對目錄內創建刪除目錄內的文件
  •        x執行:cd到目錄內或者ls -l
  對文件
  •        r讀:可以使用文件查看類工具獲取其內容
  •        w寫:可以修改文件內部內容
  •        x執行:可以將可執行文件提請為一個進程
  •        X:大x,給目錄設定x權限,不給文件x權限
                    X只設定目錄執行權限,而不給文件執行權限(但是,當文件本身任何一權限擁有執行權限的時候,大X將賦予該文件執行權限)
                    例: aa文件權限為-r–rw—x+
                    執行chmod a+X 后,權限為-r-xrwx–x+
                    bb文件權限為-r–rw—-+
                    執行chmod a+X 后,權限為-r–rw—-+
                   X一般配合-R對目錄使用;對目錄下的子目錄加x權限,但對無執行權限的文件不會加x
                   目錄的執行權限是一個基本權限,通常會有該權限;
權限檢查順序
      所有者,組,其他人
     先檢查當前用戶與當前文件的屬主是否相同,相同則只運用文件的屬主權限,而不管其他用戶權限;如果用戶屬主不是文件的屬主,則檢查用戶屬組和文件屬組是否相同,同,則運用屬組權限,而不管其他權限;以上兩者都不是,則只運用其他權限

chmod :改變文件的各執行權限
  語法格式:
  •     chmod [OPTION]… MODE[,MODE]… FILE…
  •     chmod [OPTION]… OCTAL-MODE FILE…
  •     chmod [OPTION]… –reference=RFILE FILE…(復制RFILE到FILE中)
      options:
        -R 遞歸修改
  mode表示法      
  賦權表示法,直接操作某一類用戶的所有權限
  •             屬主u=
  •             屬組g=
  •             其他o=
  •             所有a=
授權表示法:直接操作一個用戶的一個權限
  •             u+,u-
  •             g+,g-
  •             o+,o-
  •             a+,a-
數字法:
  •        chmod 640 file

umask本質意義:
    對位最大權限的unamsk相應位的權限去除,得出默認權限
  •       目錄的默認權限:777-umask
  •       文件的默認權限:666-umask
                   結果中,有奇數加一,偶數不
  •       umask -S 模式方式顯示
  •       umask -p 輸出方式可調用
  •       umask -p >> /etc/bashrc
    非特權用戶umask是002
    root的umask 是022·

文件的特殊權限:
  SUID,SGID,Sticky
  SUID:
    只能作用在可執行的二進制程序,作用在目錄上無意義,執行該程序時,繼承的是該程序的屬主身份,訪問文件時,則以程序屬主去訪問文件
    設置SUID(顯示占用u的執行權限位):
          chmod u[+|-]s file
      如果文件本身有執行權限,則u的執行權限位為s,否則,為S。
   SGID:可以作用在文件和目錄上,對于目錄,有SGID,在內部創建文件,默認繼承目錄的屬組,對文件,如某程序,執行該程序時,繼承了該程序的屬組,訪問某文件,就是以程序的屬組身份去訪問文件。
       chmod g[+|-]s file
  sticky:只作用在目錄上有意義,用戶只能在此目錄內刪除自己創建的文件,但可以看其他人的文件。
     chmod o[+|-]t file
隱藏屬性
  chattr +i 不能刪除,修改,更改
  chattr +a 只能增加、追加,(編輯文件算修改),新建用戶也不行,
  lsattr 查看隱藏屬性
  chattr +A 鎖定文件訪問時間

ACL訪問控制列表
  •    Access Control List:實現靈活的權限管理,除了文件的所有者,所屬組和其他人,可以對更多的用戶設置權限。
  •    centos7 默認創建的xfs和ext4文件系統有ACL功能。
  •    centos7之前的版本,默認手工創建的ext4文件系統無ACL功能,需要手動增加:
  •    tune2fs -o acl /dev/sdb1 調整文件系統的屬性、增加acl功能
  •    mount -o acl /dev/sdb1 /mnt/test     掛載文件系統,支持acl
  •    文件屬性上末尾有+代表設置了acl,一旦有了acl,中間原來文件屬組位權限所代表的不是原來的含義了,即為facl的umask。
  •    getfacl file|directory:獲取文件或目錄的訪問控制列表
  •    setfacl -m u:wang:r file 設定用戶facl
  •    setfacl -Rm u:wang:r f2 遞歸設置facl權限
  •    setfacl -M file.acl file|directory
  •      file.acl為facl模版文件,通??蓤绦術etfacl f1.txt > file.acl 獲取某文件facl來充當模版
  •    setfacl -m g:admin:rw f2 設定指定組的facl權限
  •    setfacl -m d:u:wang:rx directory:設定指定目錄下文件的facl權限,但目錄不設置,默認acl
  •    setfacl -x u:wang f2 刪除后續用戶的facl權限
  •    setfacl -X file.acl directory 以前一個文件內部的facl模版刪除后續文件的facl權限
  •    base ACL不能刪除
  •    setfacl -d dir 設置默認的facl權限 ( setfacl -m d:u:wang:rx directory )
  •    setfacl -k dir 刪除默認的facl權限(僅限于目錄)
  •    setfacl -b file 刪除全部的擴展facl權限
  •    setfacl -m mask::r file 設定facl的mask值
    注意:后續設置的facl權限會影響到mask,mask會自動調整以使后續設置的facl生效,達到目的。
       mask: 限高線,所有facl列表擴展用戶的最高權限不能超過mask
        acl mask只影響所有者和other以外的所有人:所屬組,自定義用戶,自定義組
          setfacl -m mask::rx file:設定mask值
    批量設置facl權限(備份和恢復acl):
    1、getfacl file1 > file.acl
    2、setfacl –set-file=file.acl file2
    備份和恢復ACL
       getfacl -R /tmp/dir > acl.txt :遞歸備份該文件和文件下的子文件acl
       setfacl -R -b /tmp/dir 遞歸刪除acl
       setfacl -R –set-file=acl.txt /tmp/dir 遞歸恢復acl
       setfacl –restore acl.txt :–restore=file:從文件恢復備份的acl規則(這些文件可由getfacl -R產生)。通過這種機制可以恢復整個目錄樹的acl規則。此參數不能和除–test以外的任何參數一同執行。
       –set選項會把原有的ACL項都刪除,用新的代替,需要注意是一定要包含UGO的設置,不能像-m一樣只是添加ACL
          setfacl –set u::rw,u:wang:r,g::r,o::- file
    執行時,遍歷facl列表,如果某個用戶存在于多個acl設定,可進行權限累加 ,最終權限是多個acl的權限和。
    ACL生效順序:所有者,所屬組,自定義用戶,自定義組,其他人 
     tune2fs -l /dev/ 查看文件系統的屬性
    mkfs.ext4 /dev/ 創建文件系統
    blkid /dev/查看磁盤文件系統格式,UUID
    mount -o loop  /xx/file mountpoint 掛載本地文件,模擬成掛載磁盤
字典:  /usr/share/dict/linux.words
netstat -nt 顯示訪問當前ip的鏈接信息

原創文章,作者:switch,如若轉載,請注明出處:http://www.www58058.com/70027

(0)
switchswitch
上一篇 2017-02-25
下一篇 2017-02-25

相關推薦

  • N25 _WSH 第二周

    2、bash 命令執行的狀態結果:        * bash通過狀態返回值來輸出此結果:            * 成功:0            失?。?-255     &n…

    系統運維 2016-12-12
  • shell腳本編程2

    shell腳本編程2   今天繼續學習了shell腳本編程,續之前寫的腳本編程1。上次主要學了編程的基礎,腳本格式,變量類型及變量的使用,條件測試,數字運算并且進行了部分練習,因為這部分邏輯思維能力要求不是很高,因此記憶起來難度不是特別大。   從今天開始便進入了流程控制以及函數、數組、高級字符串操作、高級變量等內容的學習,總體來說難度和…

    Linux干貨 2016-08-16
  • 阿里云修改hostname主機名的一點小技巧

    CentOS 7以后修改主機名一般使用: hostnamectl set-hostname newhostname 如果仍然無效,使用vim打開/etc/cloud/cloud.cfg,將 preserve_hostname=fale 改為 preserve_hostname=true 即可。 以上在阿里云ECS上親測有效,使用了網上查閱…

    Linux干貨 2017-01-09
  • IP SAN實驗

    實驗環境 centos7 serverx2 IP:192.168.0.206??? 192.168.0.207 iscsi-server端的配置 準備磁盤設備 安裝程序包 創建target 創建lun 授權   首先添加兩塊硬盤 sdb sdc 然后安裝軟件包 yum -y install epel-release yum -y install s…

    2017-12-16
  • Linux入門知識之計算機基礎

    計算機基礎、linux發行版、命令幫助獲取

    2018-01-11
  • 網卡別名與多網卡綁定

    網卡別名 一塊網卡可以配置多個ip地址,叫做網卡別名   對虛擬主機有用 格式形如:eth0:1  eth0:2 …… 實現方法:   在命令行中臨時設置: ifconfig 命令: ifconfig eth0:0 192.168.1.100/24 演示:   修改配置文件 在/etc/sysconfig/networ…

    Linux干貨 2016-09-05
欧美性久久久久