Linux基礎知識(二)

 本文的主要內容是:

 1.Linux上的基本文件管理命令

 2bash的特性及其命令狀態返回值

 3.bash的花括號展開機制

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

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

 6.bash特性之globbing文件名匹配以及示例詳解:

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

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

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

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

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

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

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

 1.Linux上的基本文件管理命令

  Linux的哲學思想之一就是一切皆文件,幾乎所有的配置文件都已純文本的形式存在,甚至連物理設備的訪問入口也是文件,因此,對文件的管理尤為中重要,是玩轉Linux的基本技能。常見的文件管理命令有:

    (1) ls : 列出指定目錄下文件

    語法: ls [options] [file]

     常用選項:

        -a : 列出指定目錄下的所有文件,包括隱藏文件

        -l : 以長格式列出文件信息

        -d:查看目錄自身而非其內部的文件列表;

        -R: recursive,遞歸顯示;

        -h : 默認情況下,列出的文件的信息是以字節為單位,-h選項能使列出的文件大小以 KB,MB等為單位列出,通常與-l一起組合使用

 示例:

       表示列出/etc目錄下的所有文件 :  ls -a /etc/

       以人容易讀懂的長格式顯示/etc下的文件:ls -lah /etc/

       只查看指定的文件信息:ls -lah /etc/fstab

   (2) cp:復制文件和目錄,默認情況下不能復制目錄。

   語法:cp [options] source dest

   常用選項:

        -f : 強行復制文件或目錄, 不論目的文件或目錄是否已經存在

        -p :保留源文件或目錄的屬性,包括所有者、所屬組、權限與時間

        -d:復制鏈接屬性

      -R: 遞歸處理,將指定目錄下的文件及子目錄一并處理

  示例:

       將file1 復制到  /tmp/  :  cp file1 /tmp/file1

        將dir1下的文件復制到/tmp/下:cp -R dir1 /tmp/

        復制時保留文件的屬性: cp -p fiel1 /tmp/

  (3)pwd:顯示工作目錄

  (4)cd:改變工作目錄

  語法:cd [options] dest_dir

  常用選項:

   cd: 切換回家目錄;

   cd ~ username:切換到指定用戶的家目錄

   cd – :在上一次所在的目錄與當前目錄之間進行切換

 (5) cat : 查看指定文件的內容

    語法:cat [options] file

    常用選項:

     -n :顯示文件內容的時候添加行號

   示例:

       查看file的內容: cat -n file

   (6).tac:查看文件的內容,是從后往前查看

   語法: tac [options] file

   常用選項:

     -n:顯示時添加行號

  示例

    tac -n file1

   (7)file:查看文件類型

    語法:file file_name

   (8).mv:移動或者重命名文件

    語法:mv [options] source dest

    常用選項: 

    -b :若需覆蓋文件,則覆蓋前先行備份。

    -f :強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋 

    -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!

   示例:

        將當前目錄下的文件file重命名為file1:mv file file1

       將當前目錄下的file移動到/tmp/file,而且要做個備份:mv -b file /tmp/file

    (9).rm:刪除文件或者目錄,默認情況下,當文件不為空的時會詢問是否要刪除,此命令及其危險,操作之前請三思而后行。

   語法:rm [options] file

   常用選項:

     -r:遞歸刪除

     -f :強行刪除

     -i:刪除文件之前會詢問是否刪除

   示例:

       刪除文件file: rm file

       強制刪除文件file:rm -f file

        刪除/tmp/下的test目錄: rm -r /tmp/test/

        強制刪除/tmp/test/目錄:rm -rf /tmp/test

   (10).wc:統計文件中單詞個數和文件的行數

    語法:wc [options] file

    常用選項:

      -l:文件的行數

      -w:統計單詞的個數

   示例:

       統計file的行數:wc -l file

       統計file的單詞個數:wc -w file

  (11)sort:對文本文件進行排序

  語法:sort [options] file

  常用選項:

      -d : 按字典順序進行排序

      -n :按數字進行排序

      -r:逆序排序

   示例:

      對file進行逆序排序:sort -r file

      對fi按字典順序進行排序:sort -d file

      對file按數字順序進行排序:sort -n file

  

  (12).tr:轉換或刪除字符

  語法 : tr [options] set1 set2

  常用選項:

      -d : 刪除指定的字符集合

      -s : 刪除重復的字符集合

   常用的字符串集合:

     [a-z]:全部小寫字符集合

     [A-Z]:全部大寫字符的集合

     [0-9]:全部數字的集合

   示例:

       將file中的全部小寫轉換為大寫:tr [a-z] [A-Z] < file

       將file中的數字全部刪除: tr -d [0-9] < file

       刪除file中的空行:tr -s "\n" < file

   (13).mkdir:創建目錄

   語法:mkdir [options] dir_name

   常用選項:

        -p:當父目錄不存在時先創建父目錄

        -v:顯示詳細的創建過程

        -m MODE:創建目錄時直接指定權限

   示例:

     在/tmp目錄下創建test1/test2/目錄,test1事先不存在:mkdir -p /tmp/test1/test2

 2.bash特性之命令狀態返回值

 bash中每個命令執行之后只會有兩種狀態,成功或者失敗,而成功執行返回的指是0,若返回值為其他的則說明上一條命令執行失敗了。

  查看方法:echo $?

 3.bash特性之展開機制

 (1).命令行展開:

  ~:自動展開為用戶的家目錄

  {}:將逗號分隔的路徑列表展開為多個路徑

  例如:

    在/tmp/下創建a_c, a_d, b_c, b_d : touch {a,b}_{c,d}

    

             創建有如下結構的文件目錄/tmp/mysysroot/

    |– bin

    |– etc

    |     — sysconfig

    |         — network-scripts

    |– sbin

    |– usr

    |     |– bin

    |     |– lib

    |     |– lib64

    |     |– local

    |     |   |– bin

    |     |   |– etc

    |     |   |– lib

    |     |   |– sbin

    |     |– sbin

     — var

           |– cache

           |– log

           |– run

 mkdir -p /tmp/mysysroot/{bin,etc/sysconfig/network-script,sbin,usr/{bin,lib,lib64,local/{bin,etc,lib,sbin}sbin}var/{cache,log,run}}

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

 (1).文件的元數據有:

    文件類型:常見的類型有普通文件(f),目錄(d),塊設備文件(b),字符設備(c),管道文件(p),套接字文件(s),連接文件(l)。

    屬主和屬組信息:創建文件的用戶以及該用戶所屬的用戶組

    屬主和屬組和其他用戶對文件的權限:三位為一組,分別是r(讀)w(寫)x(執行),對應位沒有則顯示為-

    文件的大?。猴@示了文件的大小,通常以字節為單位

    文件的時間戳:包括文件的創建時間,修改時間和改變時間

    文件名稱:即為文件的名字

  (2)修改文件的時間戳

  touch:修改文件的時間戳

  語法: touch [options]  file

  常用選項:

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

      -a: 僅修改access time;

      -m:僅修改modify time;

      -t STAMP

   示例:

       創建不存在的文件file:touch file

       更新文件的時間戳 file:touch -r file

       設定文件的時間戳:touch -t 201211142234.50 file

    

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

 (1).定義命令別名:

  alias name=command : 只對當前進程有效,下次重新啟動時就會失效,要想永久有效,要將其寫入配置文件中。

 (2).引用另一個命令的執行結果的方法:管道(|),同時也體現了Linux的重要哲學思想之一,組合小程序完成復雜的任務。

 例如:

    想分屏顯示查看你ls得到的結果 ls -lah | less

 

 

 6.bash的特性之globbing文件名通配

 bash的特性之一,支持globbing文件名通配,即支持元字符匹配模式,常用的有

    \*:匹配任意長度任意字符

    ? :任意的單個字符

    [ ]:范圍內的任意單個字符

    [^ ] :范圍外的任意單個字符

  常見用于匹配的字符集合有:

   [[:upper:]]:所有大寫的字母

   [[:lower:]] : 所有小寫字母

   [[:alpha:]]:所遇的字母

   [[:digit:]]:所有數字集合

   [[:space:]:空格

   [[:alnum:]]]:字母和數字

   [[:punct:]]:標點符號

   

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

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

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

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

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

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

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

  touch /tmp/ file-`date +%Y-%m-%d-%H-%M-%S`

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

  cp -r /etc/p[^0-9] /tmp/mytest1

  

 (6).復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄

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

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

 cp /etc/[lmn]*.conf /tmp/mytest3

  

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

(0)
zhangbaozhangbao
上一篇 2016-09-25
下一篇 2016-09-25

相關推薦

  • 26期全程班-第三周博客作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。     # who | cut -d” ” -f 1 | sort -u   2、取出最后登錄到當前系統的用戶的相關信息。     # id `last …

    Linux干貨 2017-02-18
  • 探索這個“男人”

    一、前言 正所謂了解一個命令就得了解他的用法,正好是要了解一個人就得了解他的興趣愛好,處事態度以及為人是怎么樣的。 二、man是什么 man – an interface to the on-line reference manuals Man是manual(手冊)的縮寫,使用權限是所有用戶,man命令提供為linux系統在線提供了很好的幫助手冊…

    Linux干貨 2016-05-03
  • Linux 發展史

    摘要:     Linux是一款基于Unix的服務端操作系統,目前已廣泛應用于國內外的服務器端操作系統領域,其開源性是其獲得及其快速的發展,目前至少已有數百種發行版本。 本文主要講述了linux的系統簡介、發展歷程和Linux的發行版;     1、Linux的哲學思想:    &nbsp…

    Linux干貨 2016-10-19
  • 初識文件系統和軟硬鏈接

    什么是文件系統?         磁盤分區以后必須設置磁盤的文件系統才可以正式使用,文件系統定義了文件存儲的類型,也就是這個文件要按照怎樣的方式存入磁盤分區。         linux中文件系統的類…

    2017-07-20
  • 馬哥linux0726課程內容

    課堂內容筆記   使用幾個符號可以使用原始命令 \,’’,絕對路徑運行 這三種方法都可以使用到原始命令,不使用別名   別名-內部命令-緩存-外部命令 使用命令的優先級   man幫助具體用法 makewhatis老版本安裝whatis mandb新版本安裝whatis man的具體路徑在/usr/share/man whati…

    Linux干貨 2016-08-04
  • centos 7 修改sshd服務默認端口號

    由于最近sshd服務默認端口號22被匿名進行試探性的進行登入,為防止匿名用戶再次進行試探性的登入,將sshd服務的默認端口號進行修改。 環境:centos 7.3  xshell 思路:先將sshd的被指文件進行修改,把sshd服務的默認端口號修改為所需要的端口號,然后重啟sshd服務,發現重啟報錯。找其原因是應為selinux不允許自定義sshd…

    Linux干貨 2017-04-06

評論列表(1條)

  • luoweiro
    luoweiro 2016-10-10 23:03

    在總結知識點的時候能多一些實驗環節能加深印象,想得越多,實踐的越多越記憶深刻。

欧美性久久久久