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 16:47
下一篇 2016-09-25 19:58

相關推薦

  • mysql5.5.32多實例配置

    操作系統:CentOS release 6.7 (Final) 內核版本:2.6.32-573.el6.x86_64 mysql版本號:mysql-5.5.32 1)安裝mysql所需的依賴包 # adduser mysql -s /sbin/nologin -M # mkdir -p&n…

    Linux干貨 2016-12-05
  • linux時間

    linux有兩個時間:     系統時間和硬件時間 系統時間: 最簡單的使用date命令顯示當前系統的時間,命令行輸入date。 # date Thu Jun  2 17:11:48 CST 2016 date的具體使用方式:     1. date格式顯示:date …

    Linux干貨 2016-06-03
  • 用戶創建及權限管理

    1.列出當前系統上所有已經登錄的用戶的用戶名,注:同一個用戶登錄多次,則只顯示一次即可。 who | cut -d ‘ ‘ -f1 | sort -u [root@localhost ~]# who danry :0 2017-07-16 23:20 (:0) danry pts/0 2017-07-16 23:23 (192.168…

    Linux干貨 2017-07-17
  • 刪除并恢復

    1.刪除/lib64/libc.so.6 ,并恢復之。 centos7.3:重啟→進入救援模式→cd  lib64→cp libc.so.6  /mnt/sysimage/lib64 →exit,選擇第二個白條(救援),即可恢復; centos6.9:重啟→進入救援模式→cd  lib64→cp libc.so.6  …

    2017-06-11
  • centos啟動流程

    1、加電自檢(power on system test POST) 加電,就是按下電源鍵使電腦主機通電,在諸多硬件設備中有一個被稱為CMOS設備在計算機啟動的過程中起到了至關重要的作用,CMOS在加電之后會啟動保存在它上面的BIOS程序,即基本輸入輸出系統(Basic Input Output System)。自檢,主要是檢測各…

    Linux干貨 2016-09-11
  • 馬哥教育網絡班20期+第2周課程練習

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。  文件管理類命令有ls,cat,touch,stat,cp,mv,rm等  ls:查看文件,其使用方法以及常用選項有: Usage: ls [OPTION]… [FILE]… 常用選項:   -a:列出所有內容,包括.和.. &…

    Linux干貨 2016-06-23

評論列表(1條)

  • luoweiro
    luoweiro 2016-10-10 23:03

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

欧美性久久久久