最簡單的你 a.out 1.txt
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站制作、烏蘭察布網(wǎng)絡(luò)推廣、小程序開發(fā)、烏蘭察布網(wǎng)絡(luò)營銷、烏蘭察布企業(yè)策劃、烏蘭察布品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供烏蘭察布建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
或者用dup2,重定向。
你首先要搞清楚控制臺(tái)上的輸出是怎么輸出的,比如說是程序里面printf出來的, 腳本里面echo出來的等等。
然后做一個(gè)寫日志的函數(shù)代碼那個(gè)輸出。也可以把標(biāo)準(zhǔn)輸出的文件描述符dup到你要寫的文件上面。
最簡單的你 a.out 1.txt
或者用dup2,重定向。
函數(shù)執(zhí)行,產(chǎn)生的標(biāo)準(zhǔn)輸出,已經(jīng)再控制臺(tái)了,我再把它重定向。
你首先要搞清楚控制臺(tái)上的輸出是怎么輸出的,比如說是程序里面printf出來的, 腳本里面echo出來的等等。
然后做一個(gè)寫日志的函數(shù)代碼那個(gè)輸出。也可以把標(biāo)準(zhǔn)輸出的文件描述符dup到你要寫的文件上面。
execvp(args[0], args) 這個(gè)函數(shù)運(yùn)行產(chǎn)生的結(jié)果。
使用命令重定向操作符可以使用重定向操作符將命令輸入和輸出數(shù)據(jù)流從默認(rèn)位置重定
向到不同的位置。輸入或輸出數(shù)據(jù)流的位置即為句柄。
下表將列出可用的句柄。
句柄 句柄的數(shù)字代號(hào) 描述
STDIN 0 鍵盤輸入
STDOUT 1 輸出到命令提示符窗口
STDERR 2 錯(cuò)誤輸出到命令提示符窗口
UNDEFINED 3-9 這些句柄由應(yīng)用程序單獨(dú)定義,并且是各個(gè)工具特定的。
數(shù)字 0 到 9 代表前 10 個(gè)句柄??梢允褂妹?Cmd.exe 運(yùn)行程序并將該程序前 10 個(gè)
句柄中的任何一個(gè)重定向。要指定想使用的句柄,可在重定向操作符前面鍵入該句柄的
數(shù)字。如果未定義句柄,則默認(rèn)的 重定向輸入操作符是 0,而默認(rèn)的 重定向輸出
操作符是 1。鍵入 或 操作符之后,必須指定要讀取或?qū)懭霐?shù)據(jù)的位置??梢灾付?/p>
文件名或另一個(gè)現(xiàn)有的句柄。
要指定重定向到現(xiàn)有句柄,請(qǐng)使用與 () 字符,后面接要重定向的句柄號(hào)
(例如 句柄#)。例如,下面的命令可以將句柄 2(即 STDERR)重定向到
句柄 1(即 STDOUT):
21
下表列出了可用于將輸入和輸出數(shù)據(jù)流進(jìn)行重定向的操作符。
重定向操作符 描述
將命令輸出寫入到文件或設(shè)備(例如打印機(jī))中,而不是寫在命令提示符窗口或句柄中。
從文件中而不是從鍵盤或句柄中讀入命令輸入。
將命令輸出添加到文件末尾而不刪除文件中的信息。
將一個(gè)句柄的輸出寫入到另一個(gè)句柄的輸入中。
從一個(gè)句柄讀取輸入并將其寫入到另一個(gè)句柄輸出中。
| 從一個(gè)命令中讀取輸出并將其寫入另一個(gè)命令的輸入中。也稱作管道。
默認(rèn)情況下,可以從鍵盤將命令輸入(即 STDIN 句柄)發(fā)送到 Cmd.exe,然后由
Cmd.exe 將命令輸出(即 STDOUT 句柄)發(fā)送到命令提示符窗口。
重定向輸入 ()
要將鍵盤輸入重定向到文件或設(shè)備,請(qǐng)使用 操作符。例如,要從 File.txt 獲取
sort 命令的輸入,請(qǐng)鍵入:
sortfile.txt
File.txt 的內(nèi)容將以字母順序列表的方式顯示在命令提示符窗口中。
操作符可以打開具有只讀訪問的指定文件名。所以,不能使用該操作符向文件中寫入
信息。例如,如果以 2 啟動(dòng)程序,則所有試圖讀取句柄 0 的操作都將失敗,因?yàn)榫?/p>
柄 2 最初是以只寫訪問打開的。
注意
0 是 重定向輸入操作符的默認(rèn)句柄。
重定向輸出 ()
幾乎所有的命令都將輸出發(fā)送到命令提示符窗口。即使將輸出發(fā)送到驅(qū)動(dòng)器或打印機(jī)的
命令也會(huì)在命令提示符窗口顯示消息和提示。
要將輸出從命令提示符窗口重定向到文件或設(shè)備,請(qǐng)使用 操作符??梢栽谠S多命令中
使用該操作符。例如,要將 dir 輸出重定向到 Dirlist.txt,請(qǐng)鍵入:
dirdirlist.txt
如果 Dirlist.txt 不存在,Cmd.exe 將創(chuàng)建該文件。如果 Dirlist.txt 存在,Cmd.exe
將使用 dir 命令的輸出替換文件中的信息。
要運(yùn)行 netsh routing dump 命令,然后將輸出發(fā)送到 Route.cfg,請(qǐng)鍵入:
netsh routing dumpc:\route.cfg
操作符可以打開具有只寫訪問屬性的指定文件。所以,不能使用該操作符讀取文件。
例如,如果使用重定向 0 啟動(dòng)程序,則所有試圖寫入句柄 1 的操作都將失敗,因?yàn)?/p>
句柄 0 最初是以只讀訪問打開的。
注意
1 是 重定向輸出操作符的默認(rèn)句柄。
復(fù)制句柄
重定向操作符 可以將輸出或輸入從一個(gè)指定句柄復(fù)制到另一個(gè)指定的句柄。例如,
要將 dir 輸出發(fā)送到 File.txt 并將錯(cuò)誤輸出發(fā)送到 File.txt,請(qǐng)鍵入:
dirc:\file.txt 21
復(fù)制句柄時(shí),可以復(fù)制該句柄原狀態(tài)的所有特性。例如,如果一個(gè)句柄具有只寫訪問的
屬性,則該句柄的所有副本都具有只寫訪問屬性。不能將一個(gè)具有只讀訪問屬性的句柄
復(fù)制到另一個(gè)具有只寫訪問屬性的句柄。
使用 操作符重定向輸入和副本
要將重定向輸入操作符 () 與復(fù)制操作符 () 一起使用,指定的文件必須已經(jīng)存在。
如果輸入文件存在,Cmd.exe 將以只讀方式打開該文件,然后將文件中包含的字符作為
輸入發(fā)送到此命令(如同從鍵盤輸入一樣)。如果指定了句柄,Cmd.exe 將指定的句柄
復(fù)制到系統(tǒng)現(xiàn)有的句柄中。
例如,要以句柄 0 輸入讀?。?STDIN)的方式打開 File.txt,請(qǐng)鍵入:
file.txt
要打開 File.txt,并在內(nèi)容排序后將輸出發(fā)送到命令提示符窗口(即 STDOUT),請(qǐng)鍵入:
sortfile.txt
要查找 File.txt,然后將句柄 1(即 STDOUT)和句柄 2(即 STDERR)重定向到
Search.txt,請(qǐng)鍵入:
findfile file.txtsearch.txt 21
要以句柄 0 輸入讀?。?STDIN)的方式復(fù)制用戶定義句柄 3,請(qǐng)鍵入:
3
使用 操作符重定向輸出和復(fù)制
如果將輸出重定向到文件且指定了現(xiàn)有的文件名,Cmd.exe 將以只寫方式打開文件并覆
蓋該文件內(nèi)容。如果指定了句柄,Cmd.exe 將文件復(fù)制到現(xiàn)有句柄中。
要將用戶定義句柄 3 復(fù)制到句柄 1,請(qǐng)鍵入:
3
要將包括句柄 2(即 STDERR)的所有輸出從 ipconfig 命令重定向到
句柄 1(即 STDOUT),然后將輸出重定向到 Output.log,請(qǐng)鍵入:
ipconfig.exeoutput.log 21
使用 重定向操作符追加輸出
要從命令中將輸出添加到文件末尾而不丟失文件中已存在的任何信息,請(qǐng)使用兩個(gè)連續(xù)
的大于號(hào)(即 )。例如,下面的命令可以將由 dir 命令生成的目錄列表追加到
Dirlist.txt 文件:
dirdirlist.txt
要將 netstat 命令的輸出追加到 Tcpinfo.txt 的末尾,請(qǐng)鍵入:
netstattcpinfo.txt
使用管道操作符 (|)
管道操作符 (|) 可以提取一個(gè)命令的輸出(默認(rèn)情況下是 STDOUT),然后將其導(dǎo)入另
一個(gè)命令的輸入中(默認(rèn)情況下是 STDIN)。例如,下面的命令將對(duì)目錄分類:
dir | sort
在本例中,將同時(shí)啟動(dòng)兩個(gè)命令,但隨后 sort 命令會(huì)暫停,直到它接收到 dir 命令
的輸出為止。sort 命令使用 dir 命令的輸出作為輸入,然后將輸出發(fā)送到
句柄 1(即 STDOUT)。
合并帶重定向操作符的命令
可以通過合并帶有其他命令和文件名的篩選器命令創(chuàng)建自定義命令。例如,可以使用以
下命令存儲(chǔ)包含“LOG”字符串的文件名:
dir /b | find "LOG" loglist.txt
dir 命令的輸出通過 find 篩選器命令發(fā)送。包含字符串 "LOG" 的文件名作為文件名
列表(例如,NetshConfig.log、Logdat.svd 和 Mylog.bat)存儲(chǔ)在文件
Loglist.txt 中。
要在相同命令中使用多個(gè)篩選器,請(qǐng)使用管道 (|) 分隔篩選器。例如,下面的命令將
搜索 C 盤上的每個(gè)目錄以查找包含 "LOG" 字符串的文件名,并且在命令提示符窗口中
每次顯示一屏:
dir c:\ /s /b | find "LOG" | more
利用管道 (|) 可以將 Cmd.exe 導(dǎo)向?yàn)橥ㄟ^ find 篩選器命令發(fā)送 dir 命令輸出。
find 命令只選擇包含字符串 "LOG" 的文件名。more 命令可以顯示由 find 命令選擇
的文件名(在命令提示符窗口中每次顯示一屏)。有關(guān)篩選器命令的詳細(xì)信息,請(qǐng)參閱
使用篩選器。
1、連接上相應(yīng)的linux主機(jī),進(jìn)入到等待輸入shell指令的linux命令行狀態(tài)下。
2、其次,在linux命令行中輸入:tail /var/log/messages。
3、最后,按下回車鍵執(zhí)行shell指令,此時(shí)會(huì)看到linux的錯(cuò)誤日志被打印出。
第一種:這個(gè)問題是普遍存在的,當(dāng)你啟動(dòng)Linux后(默認(rèn)進(jìn)入圖形界面)的那種,然后你按轉(zhuǎn)換鍵轉(zhuǎn)到終端狀態(tài),運(yùn)行StartX這個(gè)時(shí)候圖形界面應(yīng)該是運(yùn)行的,肯定會(huì)提示錯(cuò)誤的,你想一下這個(gè)邏輯關(guān)系就好了。
不出錯(cuò)的方法,init
3,轉(zhuǎn)到字符界面,然后StartX
一定沒有錯(cuò)誤提示的!
第二種可能:它提示你找不到這個(gè)命令,那是因?yàn)槟銢]把命令加入環(huán)境變量,所以命令用不起,你可以使用命令的絕對(duì)路徑
:
/usr/bin/startx
不過為了你下次登陸,你還是應(yīng)該把它加到環(huán)境變量中,命令如下:
vi
/root/.bash_profile
然后再打開的文件中加入
PATH=$PATH:/usr/bin
export
保存退出
現(xiàn)在可以激活它輸入
source
/root/.bash_profile
不出意外就可以使用startx了個(gè)
Linux系統(tǒng)日志文件存放在/var/log下
/var/log/cron 記錄了系統(tǒng)定時(shí)任務(wù)相關(guān)的日志;
/var/log/cups 記錄打印信息的日志;
/var/log/dmesg 記錄了系統(tǒng)在開機(jī)時(shí)內(nèi)核自檢的信息,也可以使用dmesg命令直接查看內(nèi)核自檢信息。
/var/log/btmp 記錄錯(cuò)誤登錄的日志,這個(gè)文件是二進(jìn)制文件,不能直接vi查看,而要使用lastb命令查看;
/var/log/lastlog 記錄系統(tǒng)中所有用戶最后一次的登錄時(shí)間的日志。這個(gè)文件也是二進(jìn)制文件,不能直接vi,而要使用lastlog命令查看。
/var/log/mailog 記錄郵件信息;
/var/log/message 記錄系統(tǒng)重要信息的日志,記錄Linux系統(tǒng)的絕大多數(shù)重要信息,如果系統(tǒng)出現(xiàn)問題,首先要檢查的就是應(yīng)該是這個(gè)日志文件;
/var/log/secure 記錄驗(yàn)證和授權(quán)方面的信息,只要涉及賬戶和密碼的程序都會(huì)記錄。比如說系統(tǒng)的登錄,ssh的登錄,su切換用戶,sudo授權(quán),甚至添加用戶和修改用戶密碼;
/var/log/wtmp 永久記錄所有用戶的登錄、注銷信息,同時(shí)記錄系統(tǒng)的啟動(dòng)、重啟、關(guān)機(jī)事件。同樣這個(gè)文件也是一個(gè)二進(jìn)制文件不能直接vi而需要使用last命令來查看;
/var/run/utmp 記錄當(dāng)前已經(jīng)登錄的用戶的信息。這個(gè)文件會(huì)隨著用戶的登錄和注銷而不斷變化,只記錄當(dāng)前登錄用戶的信息,同樣這個(gè)文件不能直接vi,要使用w,who,users等命令;
1、如果是圖形化環(huán)境下,那么點(diǎn)擊右上角的終端的【x】,即可把終端退出了的。
2、或者是直接按【alt+d】,那么終端也可以以快捷鍵方式退出了。
3、如果以命令的方式,那么輸入命令【exit】,那么此刻終端也會(huì)自動(dòng)退出的。
4、如你的電腦是處在圖一的類型tty終端,那么按【alt+f7】,此刻就會(huì)退出了終端。
5、退出后,如果有圖形界面,那么就會(huì)看到下面所示的。這個(gè)方法不適合服務(wù)器系統(tǒng)的。