Linux之文件管理及范例

1、Linux上的文件管理命令

  目錄管理類命令:mkdir,rmdir

   mkdir [OPTION]… DIRECTORY…
     -p: 自動按需創建父目錄;
     -v: verbose,顯示詳細過程;
     -m MODE:直接給定權限;

     注意:路徑基名方為命令的作用對象;基名之前的路徑必須得存在;
   示例:
    mkdir -pv /tmp/test/x/{y1/{a,b},y2}
    ]# mkdir -pv /tmp/test/x/{y1/{a,b},y2}
    mkdir: created directory ‘/tmp/test/x’
    mkdir: created directory ‘/tmp/test/x/y1’
    mkdir: created directory ‘/tmp/test/x/y1/a’
    mkdir: created directory ‘/tmp/test/x/y1/b’
    mkdir: created directory ‘/tmp/test/x/y2’

  


 rmdir:remove empty directories

    rmdir [OPTION]… DIRECTORY…

     -p:刪除某目錄后,如果其父目錄為空,則一并刪除之;
     -v: 顯示過程;

 

  


文件查看類命令:cat,tac,head,tail,more,less
   分屏查看命令:more、less

   more命令:
    more File 
     特點:翻屏至文件尾部后自動退出

 

   


less命令:
    less File

  


 head命令:
    查看文件的前幾行,不加選項默認10
     head [options] FILE
      -n #
      #

 

   


tail命令:
    查看文件的后n行,n默認為10
     tail [options] FILE
     -n #
     -#
     -f:查看文件尾部內容結束后不退出,跟隨顯示新增的行

 

   


stat命令:
    diplay file or file system status

    stat FILE…

    ]# stat /etc/passwd
      File: ‘/etc/passwd’
      Size: 2974       Blocks: 8          IO Block: 4096   regular file
    Device: fd00h/64768d Inode: 137078816   Links: 1
    Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: system_u:object_r:passwd_file_t:s0
    Access: 2016-09-22 10:34:59.770860842 +0800
    Modify: 2016-09-22 10:34:58.291816313 +0800 數據修改時間
    Change: 2016-09-22 10:34:58.292816343 +0800 元數據改變時間
     Birth: –

 

   


touch命令:
    change file timestamps

    touch [Options]… FILE
     -c:指定的文件路徑不存在時不予創建;
     -a:僅修改access time
     -m:僅修改modify time
     -t STAMP
      [[CC]YY]MMDDhhmm[.ss]

    ]# touch a.txt
    ]# stat a.txt
      File: ‘a.txt’
      Size: 0          Blocks: 0          IO Block: 4096   regular empty file
    Device: fd00h/64768d Inode: 137086215   Links: 1
    Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2016-09-23 10:37:05.507940076 +0800
    Modify: 2016-09-23 10:37:05.507940076 +0800
    Change: 2016-09-23 10:37:05.507940076 +0800
     Birth: –

    ]# touch -m -t 201609240000 a.txt
    ]# stat a.txt
      File: ‘a.txt’
      Size: 0          Blocks: 0          IO Block: 4096   regular empty file
    Device: fd00h/64768d Inode: 137086215   Links: 1
    Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2016-09-23 10:37:05.507940076 +0800
    Modify: 2016-09-24 00:00:00.000000000 +0800 Modify時間已修改
    Change: 2016-09-23 10:39:16.183008667 +0800
     Birth: –

 

  


文件管理工具:cp,mv,rm
   cp命令:copy
    源文件;目標文件;
    單源復制:cp [OPTION]…[-T]SOURCE DEST
     如果DEST不存在:則事先創建此文件,并復制源文件的數據流至DEST中;
           如果DEST存在:
            如果DEST是非目錄文件:則覆蓋目標文件;
            如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流;

       多源復制:cp [OPTION]… SOURCE… DIRECTORY
             cp [OPTION]… -t DIRECTORY SOURCE…

           如果DEST不存在:錯誤;
           如果DEST存在:
            如果DEST是非目錄文件:錯誤;
            如果DEST是目錄文件:分別復制每個文件至目標目錄中,并保持原名; 

          常用選項:
           -i:交互式復制,即覆蓋之前提醒用戶確認
           -f:強制覆蓋目標文件
           -r:-R:遞歸復制目錄
           -d:復制符號鏈接文件本身,而非其指向的源文件
           -a:-dR –preserver=all
           archive,用于實現歸檔
           –preserve=
            mode:權限
            ownership:屬主和屬組
            timestamps:時間軸
            context:安全標簽
            xattr:擴展屬性
            links:符號鏈接
            all:上述所有

 

     


mv命令:move
         mv [OPTION]… [-T] SOURCE DEST
         mv [OPTION]… SOURCE… DIRECTORY
         mv [OPTION]… -t DIRECTORY SOURCE..      

         常用選項:
           -i:交互式;
           -f:force

 

     


rm命令:remove
       rm [OPTION]… FILE…

       常用選項:
        -i:interactive
        -f:force
        -r: recursive

        刪除目錄:rm -rf /PATH/TO/DIR
         危險操作:rm -rf /*

       注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站)

 


2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。

        命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中

                成功:0;失?。?-255

                        [root@localhost ~]# ls -d /etc
                        /etc
                        [root@localhost ~]# echo $?
                        0
                        [root@localhost ~]# lss -d /etc
                        bash: lss: command not found…
                        Similar command is: 'ls'
                        [root@localhost ~]# echo $?
                        127

         命令行展開

         ~:自動展開為用戶的家目錄,或指定的用戶的家目錄

                        [root@localhost ~]# cd ~
                        [root@localhost ~]# pwd
                        /root
                        [root@localhost ~]# cd ~void
                        [root@localhost void]# pwd
                        /home/void

           {}:可承載一個以逗號分隔的路徑列表,斌能夠將其展開為多個路徑:

                        [root@localhost void]# mkdir -v /tmp/{a,b}
                        mkdir: created directory ‘/tmp/a’
                        mkdir: created directory ‘/tmp/b’       


3、請使用命令行展開功能來完成以下練習:

        (1)、創建/tmp目錄下的:a_c,a_d,b_c,b_d

~]# mkdir -v /tmp/{a,b}_{c,d}
mkdir: created directory ‘/tmp/a_c’
mkdir: created directory ‘/tmp/a_d’
mkdir: created directory ‘/tmp/b_c’
mkdir: created directory ‘/tmp/b_d’

        (2)、創建/tmp/mylinux目錄下的:

~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/netw
ork-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}mkdir: created directory ‘/tmp/mylinux’
mkdir: created directory ‘/tmp/mylinux/bin’
mkdir: created directory ‘/tmp/mylinux/boot’
mkdir: created directory ‘/tmp/mylinux/boot/grub’
mkdir: created directory ‘/tmp/mylinux/dev’
mkdir: created directory ‘/tmp/mylinux/etc’
mkdir: created directory ‘/tmp/mylinux/etc/rc.d’
mkdir: created directory ‘/tmp/mylinux/etc/rc.d/init.d’
mkdir: created directory ‘/tmp/mylinux/etc/sysconfig’
mkdir: created directory ‘/tmp/mylinux/etc/sysconfig/network-scripts’
mkdir: created directory ‘/tmp/mylinux/lib’
mkdir: created directory ‘/tmp/mylinux/lib/modules’
mkdir: created directory ‘/tmp/mylinux/lib64’
mkdir: created directory ‘/tmp/mylinux/proc’
mkdir: created directory ‘/tmp/mylinux/sbin’
mkdir: created directory ‘/tmp/mylinux/sys’
mkdir: created directory ‘/tmp/mylinux/tmp’
mkdir: created directory ‘/tmp/mylinux/usr’
mkdir: created directory ‘/tmp/mylinux/usr/local’
mkdir: created directory ‘/tmp/mylinux/usr/local/bin’
mkdir: created directory ‘/tmp/mylinux/usr/local/sbin’
mkdir: created directory ‘/tmp/mylinux/var’
mkdir: created directory ‘/tmp/mylinux/var/lock’
mkdir: created directory ‘/tmp/mylinux/var/log’
mkdir: created directory ‘/tmp/mylinux/var/run’
[root@localhost tmp]# tree /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run

24 directories, 0 files


4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。

           

        元數據:metadata

        通過stat命令可以查看元數據信息:文件名、文件大小、文件最后一次訪問時間、文件數據修改時間、文件元數據修改時間等。

~]# stat /etc/passwd
  File: ‘/etc/passwd’
  Size: 2974       Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d Inode: 137078816   Links: 1
Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2016-09-26 08:09:59.525035520 +0800
Modify: 2016-09-22 10:34:58.291816313 +0800
Change: 2016-09-22 10:34:58.292816343 +0800
 Birth: –

        

        如何修改文件的時間戳信息

touch命令:
       touch – change file timestamps

       touch [OPTION]… FILE…
            -c: 指定的文件路徑不存在時不予創建;
            -a: 僅修改access time;
            -m:僅修改modify time;
            -t STAMP
             [[CC]YY]MMDDhhmm[.ss]


5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?

        定義別名:~]#alias NAME='COMMAND'

            注意:僅對當前shell進程有效

        在命令中引用另外一個命令的執行結果:

        通過管道的方式:COMMAND 1 | COMMAND 2 |COMMAND 3 | …


6、顯示/var目錄下所有以1開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄

        ~]# ls -d /var/l*[0-9]*[[:lower:]]


7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。

        ~]# ls -d /etc/[0-9]*[^0-9]


8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。

        ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*


9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名例如:tfile-2016-05-27-09-32-22。

        ~]# touch /tmp/tfile-`date +%F-%H-%M-%S`

         “命令引用


10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

       ~]# mkdir /tmp/mytest1
       ~]# cp -rf /etc/p*[^0-9] /tmp/mytest1


11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。

        ~]# mkdir /tmp/mytest2

        ~]# cp -rf /etc/*.d /tmp/mytest2/


12、復制/etc/目錄下所有以1或m或n開頭的,以.conf結尾的文件至/tmp/mytest3目錄中。

        ~]# mkdir /tmp/mytest3
        ~]# cp -rf /etc/[1mn]*.conf /tmp/mytest3/

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

(0)
dzhdn33dzhdn33
上一篇 2016-09-27
下一篇 2016-09-27

相關推薦

  • N26-博客作業-week11

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 加密過程 1、先用單向加密算法計算出數據的特征碼 2、私鑰加密特征碼,并將結果附加在數據之后 3、生成一個臨時的對稱密鑰,并使用對稱密鑰加密整段數據 4、獲取對方的公鑰,使用該公鑰加密之前生成的臨時對稱密鑰,并附加在數據之后 5、將所有數據發送給對方解密過程 1、先使用私鑰解密加密的對稱密鑰 2、用對稱密鑰解密…

    2017-04-18
  • Python函數式編程指南(二):函數

    這是此系列的第二篇,試圖說明在Python中如何更好地使用函數并引導諸位使用函數式的思維進行思考。掌握并應用這些內容,就已經是至少形似的函數式風格的代碼了,至于思維么,這個真靠自己。 作者水平有限,如有錯漏之處還請指出;轉載請注明原作者和原地址:) 2. 從函數開始 2.1. 定義一個函數 如下定義了一個求和函數: def add(x, y): return…

    Linux干貨 2015-03-11
  • Linux基礎與命令解釋

    Linux基礎與命令 Linux起源     ? 1984 年:Richard Stallman 發起GNU 項目和自由軟件基金會 創建開源的UNIX 實用工具版本 創建通用公共許可證(GPL) ) 開源軟件許可實施原則 ? 1991 年:Linus Torvalds 發布Linux 創建開放源碼,類Unix 的內核,在GPL 下發布 下…

    Linux干貨 2017-03-17
  • linux網絡管理(基礎-IP、MAC、TCP)

    linux網絡管理 計算機網絡 MACMAC(Media Access Control或者Medium Access Control)地址,意譯為媒體訪問控制、介質訪問控制,或稱為物理地址、硬件地址,用來定義網絡設備的位置。在OSI模型中,第三層網絡層負責IP地址,第二層數據鏈路層則負責MAC地址。因此一個主機會有一個MAC地址,而每個網絡位置會有一個專屬于…

    Linux干貨 2016-09-09
  • shell腳本之 select 循環菜單及 函數

    select 循環與菜單 select variable in list    do      循環體命令   done select 循環主要用于創建菜單,按數字順序排列的菜單項將顯示在標準錯誤上,并顯示PS3 提示符,等待用戶輸入 用戶輸入菜單列表中的某個數字,執行相應的命令…

    Linux干貨 2016-08-22
  • Linux文本處理工具grep,egrep

    簡介:     grep即(Global search REgular expression and Print out the line)全局的搜索正則表達式并且打印顯示出來。     通俗點講:根據用戶指定的文本模式(搜索條件)對目標文件進行逐行搜索,顯示能匹配到的行。 &n…

    Linux干貨 2015-05-11
欧美性久久久久