linux之shell 輸入輸出

liqilin0429發表於2011-01-24

如果希望建立一個新檔案,並向其中輸入一些內容,只需使用cat命令把標準輸出重定向到該檔案中,這時cat命令的輸入是標準輸入—鍵盤,你輸入一些文字,輸入完畢後按< C T R L - D >結束輸入。這真是一個非常簡單的文字編輯器!
[root@oracle10g qilin]# cat sujuan.txt
falfkajlfkafkafjalfaklfa
fadklfalfafkaflakjfka
fadkfajflkafa[root@oracle10g qilin]#
顯示frist.sh funtest.sh grep.sh這三個檔案
[root@oracle10g qilin]# cat frist.sh funtest.sh grep.sh
#!/bin/bash
#this is test
name=admin
echo "${name}liqilin welcome"
#!/bin/bash
#a simple shell script. example
#a Function
function say Hello()
{
echo "Enter you name:"
read name
echo "Hello() $name"
}
如果希望建立一個名為b i g f i l e的檔案,該檔案包含上述三個檔案的內容,可以把上面命令的輸出重定向到新檔案中:
[root@oracle10g qilin]# cat frist.sh funtest.sh grep.sh >bigfile
使用c a t命令來顯示控制字元。這裡有一個對從 D O S機器上f t p過來的檔案進行檢察的例子,在這個例子中,所有的控制字元< C T R L - M >都在行末顯示了出來。

引號是一個特殊字元,所以必須要使用反斜槓 \來使s h e l l忽略它的特殊含義
[root@oracle10g qilin]# echo "\"/dev/rmt0"\"
"/dev/rmt0"
可以追加到一個檔案的末尾,這意味著不覆蓋原有的內容:
$ echo "$LOGNAME carried them out at `date`">>myfile
列出系統中所有的檔案系統,可以使用管道把df命令的輸出傳遞給awk命令,awk顯示出其中的第一列。你還可以再次使用管道把 awk的結果傳遞給grep命令,去掉最上面的題頭f i l e s y s t e m。
[root@oracle10g qilin]# df -k |awk '{print $1}' |grep -v "Filesystem"
/dev/sda1
tmpfs
[root@oracle10g qilin]# df -k |awk '{print $1}'
Filesystem
/dev/sda1
tmpfs
tee命令作用可以用字母 T來形象地表示。它把輸出的一個副本輸送到標準輸出,另一個副本拷貝到相應的檔案中。如果希望在看到輸出的同時,也將其存入一個檔案,那麼這個命令再合適不過了。它的一般形式為:tee -a files 其中,- a表示追加到檔案末尾
[root@oracle10g qilin]# who |tee who.out
root     pts/1        2010-08-11 10:52 (192.168.12.187)
command < filename >filename2 把c o m m a n d命令以f i l e n a m e檔案作為標準輸入,以 f i l e n a m e 2檔案作為標準輸出
[root@oracle10g qilin]# sort sujuan.out
command < filename 把c o m m a n d命令以f i l e n a m e檔案作為標準輸入
[root@oracle10g qilin]# sort #!/bin/bash
echo " PID is $$"
echo "this name 3 is $1"
echo "this name 4 is $2
echo "this name 5 is $3"
echo "this name 6 is $4"
echo "this name 7 is $5"
echo "this name  is $0"
[root@oracle10g qilin]# sort who.out
root     pts/1        2010-08-11 10:52 (192.168.12.187)
g r e p命令沒有找到該檔案,預設地向終端輸出了一個錯誤資訊。現在讓我們把錯誤重定向到檔案/ d e v / n u l l中(實際就上是系統的垃圾箱):
[root@oracle10g qilin]# grep "wang" qilin1 2>/dev/null 這樣所有的錯誤輸出都輸送到了/ d e v / n u l l,不再出現在螢幕上。
在對更重要的檔案進行操作,可能會希望儲存相應的錯誤。下面就是一個這樣的例子,這一次錯誤被儲存到g r e p . e r r檔案中:
[root@oracle10g qilin]# grep "wang" qilin1 2>juan.err

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20976446/viewspace-684541/,如需轉載,請註明出處,否則將追究法律責任。

相關文章