Linux系統將執行程式或者檔案輸出到指定檔案中

2021-09-29 22:43:18 字數 2561 閱讀 9565

1、使用標準輸出以及重定向

例如:echo 「123」 > /home/123.txt

1 表示stdout標準輸出,系統預設值是1,所以">/dev/null"等同於"1>/dev/null"

2 表示stderr標準錯誤

& 表示等同於的意思,2>&1,表示2的輸出重定向等同於1

1>/dev/null 首先表示標準輸出重定向到空裝置檔案,也就是不輸出任何資訊到終端,說白了就是不顯示任何資訊。

2>&1 接著,標準錯誤輸出重定向等同於標準輸出,因為之前標準輸出已經重定向到了空裝置檔案,所以標準錯誤輸出也重定向到空裝置檔案.*

find / -name 123.log > file 2>&1

###將執行結果標準輸出與錯誤輸出同時記錄到檔案「file」中

2、使用命令tee追加檔案

從標準輸入讀取內容並將其寫到標準輸出和檔案中

列如: ls /root |tee file

使用 tee 時,如果想保留目標檔案原有的內容,可以使用 -a 引數,附加至給出的檔案,而不是覆蓋它。

如果同時輸出到多個檔案直接跟檔案名字即可

-i引數能夠讓tee忽略中斷事件(sigint)

3、script 命令

[storage@hxbank2 service]$ script

script started, file is typescript

[storage@hxbank2 service]$ ll

總用量 68

-rw-r–r--. 1 storage storage 256 9月 10 14:53 startsrmdb.sh

-rw-r–r--. 1 storage storage 140 9月 10 14:53 startsupervisord.sh

-rw-r–r--. 1 storage storage 401 9月 10 14:53 starttomcat.sh

-rw-r–r--. 1 storage storage 139 9月 10 14:53 stopsupervisord.sh

-rw-rw-r–. 1 storage storage 0 11月 25 16:21 typescript

[storage@hxbank2 service]$ exit

exit

script done, file is typescript

[storage@hxbank2 service]$ cat typescript

指令碼啟動於 2023年11月25日 星期一 16時21分57秒

[storage@hxbank2 service]$ ll

總用量 68

-rw-r–r--. 1 storage storage 256 9月 10 14:53 startsrmdb.sh

-rw-r–r--. 1 storage storage 140 9月 10 14:53 startsupervisord.sh

-rw-r–r--. 1 storage storage 401 9月 10 14:53 starttomcat.sh

-rw-r–r--. 1 storage storage 139 9月 10 14:53 stopsupervisord.sh

-rw-rw-r–. 1 storage storage 0 11月 25 16:21 typescript

[storage@hxbank2 service]$ exit

exit

script done on 2023年11月25日 星期一 16時22分05秒

-a引數 指定檔名;若不指定則使用預設的輸出檔名typescript

4、linux中nohup的用法

nohup 後跟命令 ,會將此命令的標準輸出指定到noput.out檔案中,此檔案就在當前目錄中產生。

因此此命令多用於對指令碼或者程式後台執行的時,將啟動指令碼的「標準輸出「記錄到相應的檔案中。

使用了解到此命令不可實現錯誤輸出,只能識別標準輸出

[root@hxbank2 service]# nohup pwd

nohup: 忽略輸入並把輸出追加到"nohup.out"

[root@hxbank2 service]# cat nohup.out

nohup: 忽略輸入並把輸出追加到"nohup.out"

[root@hxbank2 service]# cat nohup.out

如果使用nohup命令提交作業,那麼在預設情況下該作業的所有輸出都被重定向到乙個名為nohup.out的檔案中,除非另外指定了輸出檔案:

nohup command > myout.file 2>&1 &

執行程式 Linux系統下執行c 程式

引言 為什麼要在linux下寫程式?分享資料報括 c c linux,nginx,zeromq,mysql,redis,fastdfs,mongodb,zk,流 cdn,p2p,k8s,docker,tcp ip,協程,dpdk等等。首先要問一下自己,為什麼要寫這個程式。如果我們寫乙個執行在wind...

linux自動執行程式

linux 的啟動指令碼位於 etc init.d rcs 注rcs中 s是大寫字母 vi etc init.d rcs 進入vi後,按i 編輯.移動上下左右鍵到,你想插入的位置,然後打字。這時跟記事本是一樣的。打完字後,按esc 然後輸入 wq 注,第乙個字元是冒號 也要輸入 就儲存退出了。若想自...

Linux後台執行程式

shell command dev null 2 1 最後乙個符號 意思是讓程式在後台執行。dev null 的作用是將標準輸入轉向null,這樣就忽略當前的指令碼標準輸出。2 1 的作用是將標準錯誤連線至標準輸出,也將被忽略。一直不明白1 2的作用。原來!作業系統預設指定3個檔案 0標準輸入 1標...