echo
使用echo命令可以顯示文字行或變數,或者把字串輸入到檔案。它的一般形式為:
echo string
echo命令有很多功能,其中最常用的是下面幾個:
\c 不換行。
\f 進紙。
\t 跳格。
\n 換行。
linux中使用轉義符時,需要使用-e引數,否則轉義符不生效
# echo -e 「aaa \n bbb」
aaabbb
# echo 「aaa \n bbb」
aaa \n bbb
可以用echo輸出系統變數,或者系統命令的結果
# echo 「my home is : $home」
my home is : /root
# echo 「the time is : `date`」
the time is : sun jun 13 13:03:47 cst 2010
注意date命令兩邊的符號不是單引號!
引號是乙個特殊字元,所以必須要使用反斜槓\來使shell忽略它的特殊含義
# echo 「\」/dev/rmt0″\」
「/dev/rmt0″
read
使用r e a d語句從鍵盤或檔案的某一行文字中讀入資訊,並將其賦給乙個變數。如果只指定了乙個變數,那麼r e a d
將會把所有的輸入賦給該變數,直至遇到第乙個檔案結束符或回車。
read varible1 varible2 …
例如:# read firstname lastname
arthur mr liu
# echo $firstname
arthur
# echo $lastname
mr liu
cat
cat是乙個簡單而通用的命令,可以用它來顯示檔案內容,建立檔案,還可以用它來顯示控制字元。
cat命令的一般形式為:
cat [options] filename1 … filename2 …
cat命令最有用的選項就是:
-v 顯示控制字元
顯示檔案
$ cat myfile
建立檔案
$ cat > myfile
結束按< c t r l – d >
合併檔案
$ cat myfile1 myfile2 myfile3 > bigfile
管道
可以通過管道把乙個命令的輸出傳遞給另乙個命令作為輸入。管道用豎槓|表示。
命令1 |命令2
其中|是管道符號。
sed、awk和grep都很適合用管道,特別是在簡單的一行命令中。在下面的例子中, who命令的輸出通過管道傳遞給awk命令,以便只顯示使用者名稱和所在的終端。
# who | awk 『』
root pts/1
標準輸入輸出
輸入檔案—標準輸入0
輸出檔案—標準輸出1
錯誤輸出檔案—標準錯誤2
為什麼會有乙個專門針對錯誤的特殊檔案?這是由於很多人喜歡把錯誤單獨儲存到
乙個檔案中,特別是在處理大的資料檔案時,可能會產生很多錯誤。
command > filename 把把標準輸出重定向到乙個新檔案中
command >> filename 把把標準輸出重定向到乙個檔案中(追加)
command 1 > fielname 把把標準輸出重定向到乙個檔案中
command > filename 2>&1 把把標準輸出和標準錯誤一起重定向到乙個檔案中
command 2 > filename 把把標準錯誤重定向到乙個檔案中
command 2 >> filename 把把標準輸出重定向到乙個檔案中(追加)
command >> filename 2>&1 把把標準輸出和標準錯誤一起重定向到乙個檔案中(追加)
command < filename >filename2 把command命令以f i l e n a m e檔案作為標準輸入,以f i l e n a m e 2檔案為標準輸出
command < filename 把command命令以f i l e n a m e檔案作為標準輸入
command << delimiter 把從標準輸入中讀入,直至遇到d e l i m i t e r分界符
command <&m 把把檔案描述符m作為標準輸入
command >&m 把把標準輸出重定向到檔案描述符m中
command <&- 把關閉標準輸入
cat passwd | awk -f: 『』 | sort >sort.out
root將收到乙個郵件,其中含有檔案contents.txt中的內容:
#mail root < contents.txt
重定向操作符command << delimiter是一種非常有用的命令,通常都被稱為「此處」文擋。
shell將分界符d e l i m i t e r之後直至下乙個同樣的分界符之前的所有內容都作為輸入,遇到下乙個分界符,
shell就知道輸入結束了# cat >> myfile1 << eof
> aaa
> bbb
> ccc
> eof
> eof
# cat myfile1
aaabbb
ccceof
# grep 「standard」 > grep.out 2>&1
在上面的例子中, grep命令的標準輸出和標準錯誤都被重定向到grep.out檔案中
exec
exec命令可以用來替代當前shell
exec命令的乙個常見用法就是在使用者的.profile最後執行時,用它來執行一些用於增強安全性的指令碼。
檔案描述符
可以理解為檔案的代號
# vi readtest
exec 4<&0 0# cat myfile1
aaabbb
ccceof
# chmod 744 readtest
# ./readtest
aaabbb
Linux shell的輸入輸出
echo echo命令可以顯示文字行或變數,或者把字串輸入到檔案 echo option string e 解析轉義字元 例如 echo e nimenhao nasfdsaf 列印發生換行 read語句可以從鍵盤或檔案的某一行文字中讀取資訊,並將其賦值給乙個變數 read var1 var2.若只...
Linux shell 輸入 輸出重定向
在linux shell中,可以通過輸入 輸出重定向的方式將標準輸入stdin 標準輸出stdout 標準錯誤輸出stderr重定向到檔案。下表總結了常用符號 符號釋義 0標準輸入 1標準輸出 2標準錯誤輸出 輸入重定向 輸出重定向 輸入追加重定向 輸出追加重定向 輸入重定向到字串 僅限bash 輸...
Linux shell標準輸入,標準輸出,錯誤輸出
shell中可能經常能看到 1 dev null 2 1 eg sudo kill 9ps elf grep v grep grep 1 awk 1 dev null 2 dev null 命令的結果可以通過 的形式來定義輸出 dev null 代表空裝置檔案 代表重定向到 例如 echo 123 ...