(8.15-8.21)第2周博客作業

1.linux文件管理命令

  1. cat

    功能:有從磁盤創建文件的功能(但不具備編輯功能),但主要功能還是2個或者以上文件的合并。

    常配合使用參數:

    -n 或–number 由1 開始對所有輸出的行數編號。
    -b 或–number-nonblank 和-n 相似,只不過對于空白行不編號。

    使用方法:

    Cat –n diannaob1>diannaob2,把diannaob1里的內容加上行號以后并入diannaob2。

    Cat –b diannaob1 diannaob2>>diannaob3,對diannaob1和diannaob2里的內容加上行號(空白行不加)并入diannaob3。

  2. chattr

    功能:給指定文件添加,去掉,賦予屬性。

    常配合使用參數:

    -R 遞歸處理,將指定目錄下的所有文件及子目錄一并處理。
    -v<版本編號> 設置文件或目錄版本。
    -V 顯示指令執行過程。
    +<屬性> 開啟文件或目錄的該項屬性。
    -<屬性> 關閉文件或目錄的該項屬性。
    =<屬性> 指定文件或目錄的該項屬性。

    a:讓文件或目錄僅供附加用途。
    b:不更新文件或目錄的最后存取時間。
    c:將文件或目錄壓縮后存放。
    d:將文件或目錄排除在傾倒操作之外。
    i:不得任意更動文件或目錄。
    s:保密性刪除文件或目錄。
    S:即時更新文件或目錄。
    u:預防以外刪除。

    使用方法:

    比如diannaob1這個文件為了方式被其他linux用戶刪除,可以給其添加預防以外刪除屬性。

    Chattr +u diannaob1

  3. chgrp

    功能:更改目錄或者文件所屬的群組。

    使用方法:

    比如把diannaob1文件移動到diannaob組里:

    Chgrp diannaob diannaob1

  4. cmp

    功能:用來比較文件之間的不同,如果相同不返回任何信息,不同的地方列出字符和列數編號。

    常配合使用參數:

    -c或–print-chars  除了標明差異處的十進制字碼之外,一并顯示該字符所對應字符。
    -i<字符數目>或–ignore-initial=<字符數目>  指定一個數目。
    -l或–verbose  標示出所有不一樣的地方。
    -s或–quiet或–silent  不顯示錯誤信息。
    -v或–version  顯示版本信息。
    –help  在線幫助。

    使用方法:

    比如比較文件diannaob1和diannaob2有什么同

    Cmp diannaob1 diannaob2

    配合使用的參數加在cmp和文件之間。

  5. file

    功能:辨識文件類型。

    常配合使用參數:

    -b  列出辨識結果時,不顯示文件名稱。
    -c  詳細顯示指令執行過程,便于排錯或分析程序執行的情形。
    -f<名稱文件>  指定名稱文件,其內容有一個或多個文件名稱呢感,讓file依序辨識這些文件,格式為每列一個文件名稱。
    -L  直接顯示符號連接所指向的文件的類別。
    -m<魔法數字文件>  指定魔法數字文件。
    -v  顯示版本信息。
    -z  嘗試去解讀壓縮文件的內容。

    使用方法:

    比如要辨別diannaob1的文件類型

    File diannaob1 文件位置

  6. find

    功能:根據各種需求(名稱、類別、時間、大小、權限等)在指定的目錄內尋找符合要求的文件。

    常配合使用參數:

    -mount, -xdev : 只檢查和指定目錄在同一個檔案系統下的檔案,避免列出其它檔案系統中的檔案
    -amin n : 在過去n 分鐘內被讀取過
    -anewer file : 比檔案file 更晚被讀取過的檔案
    -atime n : 在過去n 天過讀取過的檔案
    -cmin n : 在過去n 分鐘內被修改過
    -cnewer file :比檔案file 更新的檔案
    -ctime n : 在過去n 天過修改過的檔案
    -empty : 空的檔案-gid n or -group name : gid 是n 或是group 名稱是name
    -ipath p, -path p : 路徑名稱符合p 的檔案,ipath 會忽略大小寫
    -name name, -iname name : 檔案名稱符合name 的檔案。iname 會忽略大小寫
    -size n : 檔案大小是n 單位,b 代表512 位元組的區塊,c 表示字元數,k 表示kilo bytes,w 是二個位元組。-type c : 檔案類型是c 的檔案。
    d: 目錄
    c: 字型裝置檔案
    b: 區塊裝置檔案
    p: 具名貯列
    f: 一般檔案
    l: 符號連結

    使用方法:

    將目前目錄及其子目錄下所有延伸檔名是c 的檔案列出來。
    find . -name "*.c"
    將目前目錄其其下子目錄中所有一般檔案列出
    find . -ftype f
    將目前目錄及其子目錄下所有最近20 分鐘內更新過的檔案列出

    find . -ctime -20

  7. git

    功能:文字模式下的文件管理員,進入之后,可以進行各種文件的操作。

    常配合使用參數:

    F1 :執行info指令,查詢指令相關信息,會要求您輸入欲查詢的名稱。
    F2 :執行cat指令,列出文件內容。
    F3 :執行gitview指令,觀看文件內容。
    F4 :執行vi指令,編輯文件內容。
    F5 :執行cp指令,復制文件或目錄,會要求您輸入目標文件或目錄。
    F6 :執行mv指令,移動文件或目錄,或是更改其名稱,會要求您輸入目標文件或目錄。
    F7 :執行mkdir指令,建立目錄。
    F8 :執行rm指令,刪除文件或目錄。
    F9 :執行make指令,批處理執行指令或編譯程序時,會要求您輸入相關命令。
    F10 :離開git文件管理員。

  8. cut

    功能:用于從文件或者標準輸入中讀取內容并截取每一行的特定部分并送到標準輸出。

    配合使用參數:

    -b 字節(bytes)

    -c 字符(characters)

    -f 域(fields)

    使用方法:

    如日期:dc oct 10 21:15:54 PDT 2012

    Date |cut –b 1-4    輸出dc o,表示取前4個字節,其中空格也算一個字節。

    Date |cut –c 1-4    輸出dc o,看似跟-b沒有區別,但是如果日期換成漢字就有區別了,因為一個漢字算3個字節。

    多個定位之間用逗號隔開:

    Date |cut –b 1-4,6   輸出前4個字節和第6個字節:dc ot

    分割域:

    如:

    service1:pts/0:Oct 9 20:27: (211.95.114.235)
    service2:pts/1:Oct 9 21:06: (218.80.203.242)
    service3:pts/2:Oct 9 14:35: (218.80.203.242)
    service4:pts/3:Oct 9 21:07: (218.80.213.242)
    service5:pts/4:Oct 9 21:07: (218.80.213.242)
    service6:pts/5:Oct 9 21:45: (58.31.205.19)

    cut –d: -f1 f.txt 把f.txt這個文件按:分割成域,取域1

    輸出:

    service1
    service2
    service3
    service4
    service5
    service6

  9. ln
    使用權限:所有使用者
    使用方式:ln [options] source dist,其中option 的格式為:
      [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
      [–help] [–version] [–]

      說明:Linux/Unix 檔案系統中,有所謂的連結(link),我們可以將其視為檔案的別名,而連結又可分為兩種:硬連結(hard link)與軟連結(symbolic link),硬連結的意思是一個檔案可以有多個名稱,而軟連結的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬連結是存在同一個檔案系統中,而軟連結卻可以跨越不同的檔案系統。

      ln source dist 是產生一個連結(dist)到source,至于使用硬連結或軟鏈結則由參數決定。

      不論是硬連結或軟鏈結都不會將原本的檔案復制一份,只會占用非常少量的磁碟空間。

      -f:鏈結時先將與dist 同檔名的檔案刪除-d:允許系統管理者硬鏈結自己的目錄-i:在刪除與dist 同檔名的檔案時先進行詢問-n:在進行軟連結時,將dist 視為一般的檔案-s:進行軟鏈結(symbolic link)-v:在連結之前顯示其檔名-b:將在鏈結時會被覆寫或刪除的檔案進行備份-S SUFFIX:將備份的檔案都加上SUFFIX 的字尾-V METHOD:指定備份的方式–help:顯示輔助說明–version:顯示版本
    范例:
      將檔案yy 產生一個symbolic link:zz
      ln -s yy zz
      將檔案yy 產生一個hard link:zz
      ln yy xx

  10. less

    功能:查看文件

    使用方法:

    Less 文件名

    Less的作用和more差不多,不同的是less 允許使用者往回卷動,查看已經看過的部分。

  11. locate
    使用權限:所有使用者
    使用方式:

            locate [-q] [-d ] [–database=]
       locate [-r ] [–regexp=]
       locate [-qv] [-o ] [–output=]
       locate [-e ] [-f ] <[-l ] [-c]
      <[-U ] [-u]>
      locate [-Vh] [–version] [–help]
    說明:
      locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔案名稱及路徑的資料庫,之后當尋找時就只需查詢這個資料庫,而不必實際深入檔案系統之中了。在一般的distribution 之中,資料庫的建立都被放在contab 中自動執行。
      一般使用者在使用時只要用
      # locate your_file_name
      的型式就可以了。參數:
      -u
      -U
      建立資料庫,-u 會由根目錄開始,-U 則可以指定開始的位置。
      -e

      將排除在尋找的范圍之外。
      -l
      如果是1.則啟動安全模式。在安全模式下,使用者不會看到權限無法看到的檔案。這會始速度減慢,因為locate 必須至實際的檔案系統中取得檔案的權限資料。
      -f
      將特定的檔案系統排除在外,例如我們沒有到理要把proc 檔案系統中的檔案放在資料庫中。
      -q
      安靜模式,不會顯示任何錯誤訊息。
      -n
      至多顯示個輸出。
      -r
      使用正規運算式做尋找的條件。
      -o
      指定資料庫存的名稱。
      -d
      指定資料庫的路徑
      -h
      顯示輔助訊息
      -v
      顯示更多的訊息
      -V
      顯示程式的版本訊息范例:

      locate chdrv:尋找所有叫chdrv 的檔案
      locate -n 100 a.out:尋找所有叫a.out 的檔案,但最多只顯示100 個
      locate -u:建立資料庫

  12. more
    使用權限:所有使用者
    使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
    說明:類似cat ,不過會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能(與vi 相似),使用中的說明文件,請按h 。
    參數:

           -num 一次顯示的行數
      -d 提示使用者,在畫面下方顯示[Press space to continue, q to quit.] ,如果使用者按錯鍵,則會顯示[Press h for instructions.] 而不是嗶聲
      -l 取消遇見特殊字元^L(送紙字元)時會暫停的功能
      -f 計算行數時,以實際上的行數,而非自動換行過后的行數(有些單行字數太長的會被擴展為兩行或兩行以上)
      -p 不以卷動的方式顯示每一頁,而是先清除螢幕后再顯示內容
      -c 跟-p 相似,不同的是先顯示內容再清除其他舊資料
      -s 當遇到有連續兩行以上的空白行,就代換為一行的空白行
      -u 不顯示下引號(根據環境變數TERM 指定的terminal 而有所不同)
      +/ 在每個檔案顯示前搜尋該字串(pattern),然后從該字串之后開始顯示
      +num 從第num 行開始顯示
      fileNames 欲顯示內容的檔案,可為復數個數
    范例:
      more -s testfile 逐頁顯示testfile 之檔案內容,如有連續兩行以上空白行則以一行空白行顯示。
      more +20 testfile 從第20 行開始顯示testfile 之檔案內容。

  13. mv
    使用權限:所有使用者
    使用方式:
      mv [options] source dest
      mv [options] source… directory
    說明:將一個檔案移至另一檔案,或將數個檔案移至另一目錄。
    參數:-i 若目的地已有同名檔案,則先詢問是否覆蓋舊檔。
    范例:
      將檔案aaa 更名為bbb:
      mv aaa bbb
      將所有的C語言程式移至Finished 子目錄中:
      mv -i *.c

  14. rm 
    使用權限:所有使用者
    使用方式:rm [options] name…
    說明:刪除檔案及目錄。
    把計:
      -i 刪除前逐一詢問確認。
      -f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。
      -r 將目錄及以下之檔案亦逐一刪除。
      范例:
      刪除所有C語言程式檔;刪除前逐一詢問確認:
      rm -i *.c
      將Finished 子目錄及子目錄中所有檔案刪除:
      rm -r Finished

  15. split
    使用權限:所有使用者
    使用方式:split [OPTION] [INPUT [PREFIX]]
    說明:將一個檔案分割成數個。而從INPUT 分割輸出成固定大小的檔案,其檔名依序為PREFIXaa, PREFIXab…;PREFIX 預設值為`x。若沒有INPUT 檔或為`-,則從標準輸入讀進資料。

    匡兜:
      -b, –bytes=SIZE
      SIZE 值為每一輸出檔案的大小,單位為byte。
      -C, –line-bytes=SIZE
      每一輸出檔中,單行的最大byte 數。
      -l, –lines=NUMBER
      NUMBER 值為每一輸出檔的列數大小。
      -NUMBER
      與-l NUMBER 相同。
      –verbose
      于每個輸出檔被開啟前,列印出偵錯資訊到標準錯誤輸出。
      –help
      顯示輔助資訊然后離開。
      –version
      列出版本資訊然后離開。
      SIZE 可加入單位: b 代表512, k 代表1K, m 代表1 Meg。
      范例:
      PostgresSQL 大型資料庫備份與回存:
      因Postgres 允許表格大過你系統檔案的最大容量,所以要將表格dump 到單一的檔案可能會有問題,使用split進行檔案分割。
      % pg_dump dbname | split -b 1m – filename.dump.

      重新載入
      % createdb dbname
      % cat filename.dump.* | pgsql dbname

  16. touch
    使用權限:所有使用者
    使用方式:
       touch [-acfm]
      [-r reference-file] [–file=reference-file]
      [-t MMDDhhmm[[CC]YY][.ss]]
      [-d time] [–date=time] [–time={atime,access,use,mtime,modify}]
      [–no-create] [–help] [–version]
      file1 [file2 …]

    說明:
      touch 指令改變檔案的時間記錄。ls -l 可以顯示檔案的時間記錄。

    參數:
      a 改變檔案的讀取時間記錄。
      m 改變檔案的修改時間記錄。
      c 假如目的檔案不存在,不會建立新的檔案。與–no-create 的效果一樣。
      f 不使用,是為了與其他unix 系統的相容性而保留。
      r 使用參考檔的時間記錄,與–file 的效果一樣。
      d 設定時間與日期,可以使用各種不同的格式。
      t 設定檔案的時間記錄,格式與date 指令相同。
      –no-create 不會建立新檔案。
      –help 列出指令格式。
      –version 列出版本訊息。
    范例:
      最簡單的使用方式,將檔案的時候記錄改為現在的時間。若檔案不存在,系統會建立一個新的檔案。
      touch file
      touch file1 file2
      將file 的時間記錄改為5 月6 日18 點3 分,公元兩千年。時間的格式可以參考date 指令,至少需輸入MMDDHHmm ,就是月日時與分。
      touch -c -t 05061803 file
      touch -c -t 050618032000 file
      將file 的時間記錄改變成與referencefile 一樣。
      touch -r referencefile file

      將file 的時間記錄改成5 月6 日18 點3 分,公元兩千年。時間可以使用am, pm 或是24 小時的格式,日期可以使用其他格式如6 May 2000 。
      touch -d "6:03pm" file
      touch -d "05/06/2000" file
      touch -d "6:03pm 05/06/2000" file

  17. cp 
    使用權限:所有使用者
    使用方式:
      cp [options] source dest
      cp [options] source… directory
    說明:將一個檔案拷貝至另一檔案,或將數個檔案拷貝至另一目錄。

    把計:
      -a 盡可能將檔案狀態,權限等資料都照原狀予以復制。
      -r 若source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。
      -f 若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行復制。
    范例:
      將檔案aaa 復制(已存在),并命名為bbb:
      cp aaa bbb

    將所有的C語言程式拷貝至Finished 子目錄中:
      cp *.c Finished

2.bash的工作特性

一、命令歷史特性: history

shell進程會其會話中保存此前用戶提交執行過的命令

historyshell的內置命令

wKiom1Z2ZjWSJrjdAAA9gP4LoMo818.jpg

       1. 命令語法格式:

  history [-c] [-d OFFSET] [n]

  history -anrw [FILENAME]

  history -ps VALUE [VALUE…]

  -c: 清空命令歷史;

  -d offset(偏移量):刪除指定命令歷史,offsethistory顯示出來的命令數字

  -r: 從文件讀取命令歷史至歷史列表中;

 -w:把歷史列表中的命令追加至歷史文件中;

history #:顯示最近的#條命令;

      2. 相關環境參數,實現定制環境變量的功能

HISTSIZE:shell進程可保留的命令歷史的條數;

HISTFILE:持久保存命令歷史的文件,默認為.bash_history

HISTFILESIZE:命令歷史文件的存儲歷史命令數量條數;

HISTCONTROL控制命令歷史記錄的方式

ignoredups:忽略重復的命令;

ignorespace:忽略以空白字符開頭的命令;

ignoreboth:以上兩者同時生效;

       3. 調用命令歷史列表中的命令

    !#:再一次執行歷史列表中的第#條命令;

   !-#執行倒數第幾條命令;

    !!:再一次執行上一條命令;

    !STRING:再一次執行命令歷史列表中最近一個以STRING開頭的命令;

            注:命令的重復執行有時候需要依賴于冪等性;

       4. 調用上一條命令的最后一個參數:

       快捷鍵:ESC, .

ALT+.  遠程終端可能不支持該方法

       字符串:!$

 

 

 

二、BASH補全特性

    1. 命令查找和補全機制:

       (1) 查找內部命令;

       (2) 根據PATH環境變量中設定的目錄,自左而右逐個搜索目錄下的文件名;

       (3) 給定的部分字符串如果能惟一標識某命令程序文件,則直接補全;

      不能惟一標識某命令程序文件,再擊tab鍵一次,會給出列表;

    2.路徑補全

在給定起始路徑下,以對應路徑下的打頭字串逐一匹配起始路徑下每個文件:

        TAB按鍵;

如果能惟一標識,則直接補全;

否則,再一次tab,給出列表;

    3.命令行展開

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

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

 

 

 

三、命令執行狀態結果特性

    1.bash通過狀態返回值來輸出此結果:

成功:0

失?。?-255

注意:命令正常執行時,有的還有命令返回值:

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

    2.狀態返回值保存于bash的特殊變量:$?

    3.引用命令的執行結果:$(COMMAND)    或  `COMMAND`

 

 

 

四、命令行編輯特性(快捷鍵)

Ctrl+a:跳轉至命令行行首

Ctrl+e:跳轉至命令行行尾

Ctrl+u:刪除行首至光標所在處之間的所有字符;

Ctrl+k:刪除光標所在處至行尾的所有字符;

Ctrl+l:清屏,相當于clear

 

 

 

五、文件名通配(globbing)特性

    1.globbing:整體文件名匹配,而非匹配部分文件名

     [root@localhost ~]# whatis  glob

glob          (3)  – find pathnames matching a pattern, free memory from glob

glob          (3p)  – generate pathnames matching a pattern

glob          (7)  – Globbing pathnames

glob.h [glob]      (0p)  – pathname pattern-matching types

       [root@localhost ~]# man 7 glob

    2. 匹配模式:元字符(一組代替一個或多個字符的字符)

元字符:具有特殊意義的專用字符,可以用來規定其前導字符在目標對象的出現模式

      *:匹配任意長度的任意字符,包括空字符

      ?:匹配任意單個字符

     []:匹配指定范圍內的任意單個字符

      例如[abc]、[a-z][A-Z]、[a-zA-Z][A-Z]、[0-9][a-z0-9]

     特殊格式:

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

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

[[:alpha:]]:所有字母

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

[[:alnum:]]:所有的字母和數字

[[:space:]]:所有空白字符

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

            [^]:匹配指定范圍外的任意單個字符

例如:[^[:upper:]]、[^0-9]、[^[:alnum:]]

 

 

 

六、IO重定向及管道

    1. IO重定向:一切皆文件,包括設備都可以作為IO重定向文件

(1) 程序IO設備

     可用于輸入的設備:文件。鍵盤設備、文件系統上的常規文件、網卡等;

     可用于輸出的設備:文件顯示器、文件系統上的常規文件、網卡等;

(2) 數據流種類:         

         輸入的數據流;<– 標準輸入(stdin),鍵盤;

         輸出的數據流:–> 標準輸出(stdout),顯示器;

         錯誤輸出流:  –> 錯誤輸出(stderr),顯示器;

(3) 文件描述符, fd : file  descriptor

標準輸入:0

標準輸出:1

錯誤輸出:2

(4) 用法說明

         1) 覆蓋輸出重定向:>

         2) 追加輸出重定向:>>

         3) 錯誤輸出重定向:2>(錯誤覆蓋)  2>>(錯誤追加)

         4) 合并正常輸出流和錯誤輸出流:

     方法一:&>, &>>

     方法二:COMMAND > /path/to/somefile 2>&1

           COMMAND >> /path/to/somefile 2>&1

         5) 輸入重定向:<

         6) Here Document:<<      

      cat << EOF

      cat > /PATH/TO/SOMEFILE << EOF 

         7)  特殊設備:/dev/null    數據黑洞

 # set 命令:

       [root@localhost ~]# type set

         set is a shell builtin

       [root@localhost ~]# help set

        set: set  [–abefhkmnptuvxBCHP]  [-o option-name]  [arg …]

        Set or unset values of shell options and positional parameters.

        Change the value of shell attributes and positional parameters, or display the names and values of shell variables.

 # set -C     禁止覆蓋輸出重定向至已存在的文件;

                   此時可使用強制覆蓋輸出:>|

# set +C    關閉上述特性

    2.管道:組合小程序完成重要任務

連接程序,實現將前一個命令的輸出直接定向后一個程序當作輸入數據流

格式:COMMAND1 | COMMAND2 | COMMAND3 | …

 

 

 

七、命令hash特性

    1.hash命令定義:緩存此前命令的查找結果(命令位置,不包括內置命令)

hash緩存—->發起新的額請求

    2.命令的緩存結果和命令的參數無關

    3.hash不是外部命令,所以記錄不了自己的位置

         確定并記住每一個給定NAME名稱的命令的完整路徑

hash:查看hash

-d :忘記每一個已經記住的命令位置,刪除指明的命令

       不用給定完整路徑,只要給定命令名稱即可

-r :忘記所有的位置

         注意:當把命令程序位置改變之后,再次調用該命令程序,系統會先調用現在hash緩存中前一次已經記錄下來的命令位置,此時出錯。需要清空hash -r

       緩存此命令此前的查找結果:key-value鍵值格式數據

    4.bash查詢命令順序

命令行模式直接輸入、history命令(記錄過去所輸入過的命令)調用輸入

—->hash緩存命令路徑(加速、一切皆緩存思想)

—->若未找到,從左向右遍歷PATH環境變量所定義的各路徑下文件

 

 

 

八、多命令執行控制

    1.并行控制:~]# COMMAND1; COMMAND2; COMMAND3; …

執行次序從左到右,

命令間沒有邏輯關系,完成一個之后再進行下一個

    2.邏輯控制執行:與&& 、或||、非!

      ==========狀態結果做邏輯運算,給多個命令之間建立執行時的邏輯關系==========

      ==========控制語句的執行的邏輯能減少語句的運行==========

        (1)邏輯運算

    1)運算數:真(true, yes, on, 1)

    假(false, no, off, 0)

               2)與:只有兩者為真結果才為真,否則都為假

1 && 1 = 1

1 && 0 = 0

0 && 1 = 0

0 && 0 = 0

               3)或:一個為真就為真

1 || 1 = 1

1 || 0 = 1

0 || 1 = 1

0 || 0 = 0

               4)非:取反

! 1 = 0

! 0 = 1

         (2)短路法則:

      1)~]# COMMAND1 && COMMAND2

COMMAND1為“假”,則COMMAND2不會再執行;

否則,COMMAND1為“真”,則COMMAND2必須執行;

      2)~]# COMMAND1 || COMMAND2

COMMAND1為“真”,則COMMAND2不會再執行;

否則,COMMAND1為“假”,則COMMAND2必須執行;

 示例:~]# id $username || useradd $username

 

 

 

九、bash的配置文件

    1.登錄類型

       (1)交互式登錄shell進程:

   直接通過某終端輸入賬號和密碼后登錄打開的shell進程;

  使用su命令:su – USERNAME, 或者使用 su -l USERNAME執行的登錄切換;

       (2)非交互式登錄shell進程:

   su USERNAME執行的登錄切換;

   圖形界面下打開的終端;

  運行腳本

    2.配置文件類型:僅管理員可修改全局配置文件

       (1)profile類:為交互式登錄的shell進程提供配置

   功用:用于定義環境變量;運行命令或腳本;

  全局/etc/profile 、/etc/profile.d/*.sh

 用戶個人~/.bash_profile

       (2)bashrc類:為非交互式登錄的shell進程提供配置

功用:定義本地變量;定義命令別名;

  全局/etc/bashrc

  用戶個人~/.bashrc

    3.bash路徑搜索

交互式登錄shell進程:

/etc/profile –> /etc/profile.d/* –> ~/.bash_profile –> ~/.bashrc –> /etc/bashrc

非交互式登錄shell進程:

~/.bashrc –> /etc/bashrc –> /etc/profile.d/*

    4.定義生效方法

       (1)命令行中定義的特性,例如變量和別名作用域為當前shell進程的生命周期;

       (2)配置文件定義的特性,只對隨后新啟動的shell進程有效;

讓通過配置文件定義的特性立即生效:

1) 通過命令行重復定義一次;

2) 讓shell進程重讀配置文件;

~]# source /PATH/FROM/CONF_FILE

~]# .  /PATH/FROM/CONF_FILE

3.修改文件的時間戳


linux中touch命令參數不常用,一般在使用make的時候可能會用到,用來修改文件時間戳,或者新建一個不存在的文件,以下是linux中touch命令參數的使用方法:

touch [-acm][-r ref_file(參照文件)|-t time(時間值)] file(文件名)

example:

touch file1.txt 更新file1.txt的存取和修改時間

touch -c file1.txt 如果file1.txt不存在,不創建文件

touch -r ref_file file1.txt 更新file1.txt的時間戳和ref+file相同

touch -t 0811142234.50 file1.txt 設定文件的時間錯為08年11月14日22點34分40秒

-a

修改文件 file 的存取時間.

-c

不創建文件 file.

-m

修改文件 file 的修改時間

-r ref_file

將參照文件 ref_file 相應的時間戳記的數值作為指定文件 file 時間戳記的新值.

-t time

使用指定的時間值 time 作為指定文件 file 相應時間戳記的新值.此處的 time 規定為如下形式的十進制數∶

[[CC]YY]MMDDhhmm[.SS]

這里,CC為年數中的前兩位,即”世紀數”;YY為年數的后兩位,即某世紀中的年數.如果不給出CC的值,則linux中touch命令參數將把年 數CCYY限定在1969–2068之內.MM為月數,DD為天將把年數CCYY限定在1969–2068之內.MM為月數,DD為天數,hh 為小時數(幾點),mm為分鐘數,SS為秒數.此處秒的設定范圍是0–61,這樣可以處理閏秒.這些數字組成的時間是環境變量TZ指定的時區中的一個時 間.由于系統的限制,早于1970年1月1日的時間是錯誤的.

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

(0)
xiaocuixiaocui
上一篇 2016-08-22
下一篇 2016-08-22

相關推薦

  • 三問:linux操作系統安全加固

    三問:linux操作系統安全加固 1.為什么要進行安全加固?     安全加固的重要性不言而喻。我這里把操作系統同馬斯洛需求層次做了個類比,如有不恰當之處,還請指教。同人一樣,操作系統也有自己的生理需求,對于人來說生理需求無非吃喝拉撒等,而對于操作系統來說它的生理需求又是什么了?我個人認為應該是底層硬件的配置,內核的驅…

    Linux干貨 2017-03-30
  • 上海2016全球運維大會 美女辣妹吸引眼球!

    國內第一個運維行業大會 GOPS 2016全球運維大會(上海站)在2016年9月23-24日在上海雅悅新天地大酒店舉辦,面向IT及傳統行業、廣大運維技術人員,傳播先進技術思想和理念,分享業內最佳實踐。 參會兩日,雖然大會主角是運維技術交流學習,不過卻意料之外的邂逅了另一道靚麗的風景,瞬間燃了… 在會場,站立著一群高挑美女,我的…

    2016-12-05
  • linux終端變量設置,文件系統,man使用說明,文件類型

    一、定義終端提示符的變量 export PS1=’\e[32m[\e[33m\u\e[31m@\e[35m\h\e[36m\t\e[34m\#\e[31m\s\e[37m\W\e[32m]\$ ‘  `]# export 是個命令      PS1指終端提示符變量    &n…

    Linux干貨 2016-11-02
  • 誤刪除libc.so.6時,該怎么恢復

           一周一周光陰似流水,轉瞬即逝,又到了該說點什么的時候了。這周老師給我們出了一道實驗題,內容是當你不小心誤刪除了libc.so.6這個庫文件時,怎么恢復。意不意外?驚不驚喜?那下面就來簡單說說(呃……為什么不是詳細說說呢,因為這個這個水平有限,也只能是理解多少,給…

    2017-08-11
  • btrfs文件系統介紹

    btrfs文件系統介紹 簡介        Btrfs(B-tree,ButterFS ,Better FS通常念成Butter FS),由Oracle于2007年宣布并進行中的COW(copy-on-write式)文件系統。繼ext3/4文件系統之后linux又有了比較強大的文件系統(btrfs文件系統),btrfs…

    系統運維 2016-04-27
  • linux 磁盤管理

    磁盤管理 Linux思想一切皆文件: open(),read(),write(),close() I/O 設備地址 設備類型: 塊設備:block,存取單位“塊”,磁盤 (隨機訪問) 字符設備:char,存取單位“字符”,鍵盤 (邏輯訪問) 設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通訊。 設備編號: ll /dev/sda* root…

    Linux干貨 2016-08-29
欧美性久久久久