shell的一些學習筆記

今天開始學習Shell腳本,以儘量短的時間內把《shell 腳本學習指南》給啃完。

 下面的就是一些關於學習時的一些記錄了。

who          可以告訴你係統中有哪些人登錄。

who | wc -l   可以統計有多少人登錄了。  wc -l 是統計行數, | 是管道的意思,是把who 的輸出作爲wc 的輸入。

wc -l /home/cl/test.c   統計test.c文件中的內容行數。

下面就是把上面的管道變成一個獨立的命令

 

cat > nusers    //建立文件,使用cat複製終端的輸入

who | wc -l 程序的內容

^D              Ctrl+d 表示end-of-file

chmod 777 nusers 讓文件擁有執行的權限

./nusers      執行測試

 

 

cat nusers 顯示文件內容。

 

Shell變量名稱的開頭是一個字母或下劃線符號,後面可以接任意長度的字母、數字或下劃線符號,變量賦值的方式爲:先寫變量名稱,緊接着=字符,最後是新值,中間沒有任何空格。當你想取出Shell變量的值時,需在變量名稱前面加上$字符。當所賦予的值內含空格時,請加上引號:

所以如果要輸出now     is test   (now 與 is 中間有多個空格)

如果直接用echo now     is test    則輸出now is test,空格取消了,只剩下一個了,所以要加引號。

echo -n "now     is test"   -n 表示省略結尾的換行符。

 

printf "hello world /n" 要顯示的輸出換行符

printf "%s %s " hello world

 

I/O重定向就是你通過與終端交互,或是在Shell腳本里設置,重新安排從哪裏輸入或輸出到哪裏。

 

以< 改變標準輸入

以>改變標準輸出

以>>附加到文件

以 | 建立管道

 

tr 命令:

一:去除重複出現的字符

tr -s "[a-z][A-Z]"

二:刪除空行

tr -s '/n'

三:大寫到小寫

tr "[a-z]" "[A-Z]"

四:刪除指定字符

tr -cs "[a-z][A-Z]" '/n'    把非a-z和A-Z的字符轉化爲'/n'

tr詳細用法見我的博客tr命令詳細用法

 

兩個特殊文件:

/dev/null與/dev/tty

/dev/null,傳送到此文件的數據都會被系統丟掉。

/dev/tty,當程序打開此文件時,unix會自動將它重定向一個終端。

stty(set tty)命令來控制終端的各種設置。

stty -echo 關閉自動打印輸入字符的功能

stty echo  打開自動打印輸入字符的功能

grep -r 'test' /home/cl  查找/home/cl目錄下所有文件中是否包含test字符串。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章