【Linux從零開始】:7.學習Bash與Shell Script(2)


   一.路徑與命令的的查找順序                    

  1.以相對/絕對路徑執行命令,例如"/binls"或"./ls";

  2.由alias重命名中內容來查找執行命令;

  3.由bash內置的命令來執行;

  4.通過$PATH變量中所定義的路徑順序找到第一個命令來執行。

   二.自定義自己的bash登陸歡迎界面信息:            

  /etc/issue(登陸界面), /etc/issue.net(telnet的登陸界面) , /etc/motd/(登陸路成功后用戶取得的信息)

  執行 cat /etc/issue命令顯示如當前的設置:

  issue內的各代碼意義
  \d   本地端時間的日期
  \l 顯示第幾個終端機借口
  \m 顯示硬件的等級(i386/i486/i686)
  \n 顯示主機的網絡名稱
  \o 顯示domain name
  \r 操作系統版本(相當於uname -r)
  \t 本地端時間
  \s 操作系統名稱
  \v 操作系統版本

   三.數據流重定向:                        

  1.標准輸入輸出的重定向:<輸入方   >輸出方
    cat命令 : cat filename表示讀取文件,也就是從文件輸出數據並輸出到屏幕上
          cat從鍵盤讀取數據,並且輸出到屏幕
            cat > filename從鍵盤輸入,並且輸出到文件中(會無條件的覆蓋已有的文件)
        以 ctrl + d 來結束輸入
      2.防止覆蓋已有的文件:
         啟用該設置:set -o noclobber
         禁用該設置:set +o noclobber
        使用追加標准輸出:可以向某個文件的末尾添加新的內容
          cat filename1 >> filename2
       3.使數據消失,同時不改變文件的權限:
        將數據重定向至 /dev/null
        eg: cat /dev/null > filename 將該文件內容清空

   4.代碼輸出:

    標准輸入(stdin):代碼為0,使用<或者<<

    標准輸出(stdout):代碼為1,使用>或者>>

    標准錯誤輸出(stderr):代碼為2,使用2>或者2>>  

   5.tee:雙向重定向命令

       -a 以累加的形式將數據輸入一個文件

   6.命令執行的判斷依據: ; , && || 

    ;不考慮相關性連續執行命令

    $?(命令回傳碼)與&&(邏輯與運算)或||(邏輯或運算)

 

   四.管道(Pipe)                        

  1.選取命令:

    cut:常用參數

    -d'分隔字符'  -f fields

    -c 字符范圍

  eg:  cut ' ; ' -f 5   顯示以;為分隔字符的第5個數據(分隔符必須是單個字符)

     cut ' ; ' -f 3,5

     cut -c 12- 若數據分行顯示,輸出第12個字符以后的數據

   2.字符轉換命令:
        tr: -d 刪除其中的某個字符串  
              eg:  tr '[a-z]' '[A-Z]' 將小寫替換成大寫
            tr -d ';' 刪除;符號
       3.文件粘貼連接命令paste:

      paste file1 file2
           直接將2個文件相同的行粘貼在一起(以TAB分隔)
       4.join: [-ti12] file1 file2 
           -t 如果相應行之前的文件內容相同以分隔符鏈接 Eg: join -t ':' file1 file2
           -i 忽略大小寫
         使用join前最好對文件進行sort

     5. split:切割文件命令
            -b 切割成的文件大小,可加單位b k m
            -l 以行數來進行切割
           eg: split -b 300k filename newfile前導名

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM