Linux文件管理及bash特性詳解

1.Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。

 文件管理工具:cp,mv,rm

      cp命令:copy

      源文件:目標文件

 單源復制:cp [OPTION]… [-T] SOURCE DEST

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

        cp [OPTION]… -t DIRECTORY SOURCE…

 單源復制:如果DEST不存在,則事先創建此文件,并復制源文件的數據流至DEST中

          如果DEST存在:

              如果DEST是非目錄文件,則覆蓋目標文件

              如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流至目標文件;

 多源目錄:如果DEST不存在,錯誤

          如果DEST存在:

              如果DEST是非目錄文件,錯誤

              如果DEST是目錄文件;分別復制每個文件至目標目錄中,并保存原名;

 常用選項:

     -i:交互式復制,即覆蓋之前提醒用戶確認;

     -f:強制覆蓋目標文件;

     -r:遞歸復制目錄

     -d:復制符號鏈接文件本身,而非其指向的源文件;

     -a:-dR –preserve=all,archive,用于實現歸檔

     –preserv=

        mode:權限

        ownership:屬主和屬組

        timestamp:時間戳

        context:安全標簽

        xattr:擴展屬性

        links:符號鏈接

        all:上述所有屬性

 mv命令:跟cp差不多,只不過是mv把源文件刪除了

        -f:force,強制刪除

        -i:交互式

 rm命令:remove,刪除文件,還可以刪除目錄

        -i:interacive

        -f:force,強制刪除

        -r:遞歸刪除

        刪除目錄:rm -rf /PATH/TO/DIR

        危險操作:rm -rf /

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

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

 bash的基礎特性之:命令行展開

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

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

       例如:/tmp/{a,b}相當于/tmp/a /tmp/b

tree命令:

  tree [options] [direcrory]

      -L level:指定要顯示的層級

bash的基礎特性:命令的執行狀態結果

  命令執行的狀態結果:

      bash通過狀態返回值來輸出此結果;

          成功:0

          失敗:1-255

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

  命令正常執行時,有的還會有命令返回值;

      根據命令及其功能不同,結構各不相同;

 

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

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

# mkdir {a,b}_{c,d}

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

# mkdir -p /tmp/mylinux1/{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}}

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

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

  文件:兩類數據

        元數據:metadate,用stat查看出來的信息,就是元數據

        數據:data,用cat命令查看出來的信息,稱為數據

    

    時間戳:每一個文件都有三個時間戳

    Access: 2016-10-27 20:22:43.389000014 +0800——–atime

    Modify: 2016-10-27 20:22:36.544000003 +0800——–mtime

    Change: 2016-10-27 20:22:42.078000012 +0800——–ctime

    touch命令:改變文件的時間戳,也可以創建空文件(不推薦此方法)

    -c:指定的文件路徑不存在時不予創建;

    -a:僅修改access time

    -m:僅修改modify time

    -t STAMP:自定義時間戳

       use [[CC]YY]MMDDhhmm[.ss] instead of current time

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

 命令別名:獲取所有可用別名的定義:alias

     定義別名:alias NAME=‘COMMAND’,注意:僅對當前shell進程有效

     撤銷別名:unalias NAME

 引用命令的執行結果:

          $(COMMAND)

          或者‘COMMAND’

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

# ls -d /var/l?[[:lower:]]

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

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

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

 #ls -d /etc/[^a-z][a-z]*

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

 #touch "tfile-$(date +%Y-%m-%d-%H-%M-%S)"

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

 #cp -d /etc/p*[^0-9] /tmp/mytest1

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

 #cp -d /etc/*.d /tmp/mytest2

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

  #cp -d /etc/[lmn]*.conf /tmp/mytest3

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

(0)
evergreen1989evergreen1989
上一篇 2016-11-06 20:19
下一篇 2016-11-06 20:58

相關推薦

  • N21-兔鍋-第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。     cp -a /etc/skel /home/tuser1     chmod g-x /home/tuser1/     chmod o-x /home/t…

    Linux干貨 2016-07-26
  • 第十七周 作業–結合圖形描述lvs原理

        LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。   Lvs有三種模式分別是lvs-nat、lvs-dr、lvs-tun。下面分別介紹lvs-nat、lvs-dr…

    Linux干貨 2016-12-07
  • 馬哥教育網絡班22期+第5周課程練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell; [root@rhel677850 ~]# grep "^\(root\|fedora\|user1\)" /etc/passwd|awk -F: '{print $1,$7}&#039…

    Linux干貨 2016-09-26
  • rsyslog應用舉例

    rsyslog+mysql+loganalyzer 1、yum install mariadb-server php-gd rsyslog-mysql ##連接到mysql需要的驅動程序,用來保存信息 2、登錄數據庫并給rsyslog賦權,設置密碼,重讀授權表 3、以rsyslog用戶身份登錄數據庫,此時創建Syslog庫,注意此處數據庫名稱要與rsyslo…

    Linux干貨 2016-10-23
  • H3C 設備監測命令大全 (v3)

    H3C 設備監測命令大全  display aaa unsent-h323-call-record  display acl      display alarm   urgent   display…

    Linux干貨 2016-06-01
  • LAMP的編譯安裝

    一、編譯安裝amp: (1)系統環境:centos6,7 httpd依賴于apr和apr-util appache protable runtime (2)開發環境: Development Tools,Server Platform Development (3)各程序的版本: httpd:2.2,2.4 php:5.x mysql:5.1,5.5,5.6…

    Linux干貨 2016-10-17

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-11-10 18:57

    總結的不錯,贊~~可以多想幾種方法來實現~繼續加油~

欧美性久久久久