linux重定向符命令,linux重定向命令是哪3種

linux如何創(chuàng)建測試文本test.lot

linux如何創(chuàng)建測試文本test.lot如下

天水網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),天水網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為天水上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個(gè)售后服務(wù)好的天水做網(wǎng)站的公司定做!

1.在Linux上使用重定向符()創(chuàng)建一個(gè)文件

標(biāo)準(zhǔn)重定向符允許我們創(chuàng)建一個(gè)0KB的空文件。它通常用于重定向一個(gè)命令的輸出到一個(gè)新文件中。在沒有命令的情況下使用重定向符時(shí),它會創(chuàng)建一個(gè)文件。

2.在Linux上使用touch命令創(chuàng)建一個(gè)文件

touch命令常用于將每個(gè)文件的訪問和修改時(shí)間更新為當(dāng)前時(shí)間。

如果指定文件名不存在,就將新建一個(gè)文件。

如何使用Linux重定向符

1,標(biāo)準(zhǔn)輸入的控制

語法:命令 文件將文件做為命令的輸入。

例如:

mail -s “mail test” test@ahlinux.com file1

將文件file1 當(dāng)做信件的內(nèi)容,主題名稱為mail test,送給收信人。

2,標(biāo)準(zhǔn)輸出的控制

語法:命令 文件將命令的執(zhí)行結(jié)果送至指定的文件中。

例如:

ls -l list

將執(zhí)行“l(fā)s -l” 命令的結(jié)果寫入文件list 中。

語法:命令! 文件將命令的執(zhí)行結(jié)果送至指定的文件中,若文件已經(jīng)存在,則覆蓋。

例如:

ls -lg ! list

將執(zhí)行“l(fā)s - lg” 命令的結(jié)果覆蓋寫入文件list 中。

語法:命令 文件將命令執(zhí)行時(shí)屏幕上所產(chǎn)生的任何信息寫入指定的文件中。

例如:

cc file1.c error

將編譯file1.c 文件時(shí)所產(chǎn)生的任何信息寫入文件error 中。

語法:命令》 文件將命令執(zhí)行的結(jié)果附加到指定的文件中。

例如:

ls - lag 》 list

將執(zhí)行“l(fā)s - lag” 命令的結(jié)果附加到文件list 中。

語法:命令》 文件將命令執(zhí)行時(shí)屏幕上所產(chǎn)生的任何信息附加到指定的文件中。

例如:

cc file2.c 》 error

將編譯file2.c 文件時(shí)屏幕所產(chǎn)生的任何信息附加到文件error 中。

關(guān)于輸入、輸出和錯(cuò)誤輸出

在字符終端環(huán)境中,標(biāo)準(zhǔn)輸入/標(biāo)準(zhǔn)輸出的概念很好理解。輸入即指對一個(gè)應(yīng)用程序或命令的輸入,無論是從鍵盤輸入還是從別的文件輸入;輸出即指應(yīng)用程序或命令產(chǎn)生的一些信息;與 Windows 系統(tǒng)下不同的是,Linux 系統(tǒng)下還有一個(gè)標(biāo)準(zhǔn)錯(cuò)誤輸出的概念,這個(gè)概念主要是為程序調(diào)試和系統(tǒng)維護(hù)目的而設(shè)置的,錯(cuò)誤輸出于標(biāo)準(zhǔn)輸出分開可以讓一些高級的錯(cuò)誤信息不干擾正常的輸出信息,從而方便一般用戶的使用。

在 Linux 系統(tǒng)中:標(biāo)準(zhǔn)輸入(stdin)默認(rèn)為鍵盤輸入;標(biāo)準(zhǔn)輸出(stdout)默認(rèn)為屏幕輸出;標(biāo)準(zhǔn)錯(cuò)誤輸出(stderr)默認(rèn)也是輸出到屏幕(上面的 std 表示 standard)。在 BASH 中使用這些概念時(shí)一般將標(biāo)準(zhǔn)輸出表示為 1,將標(biāo)準(zhǔn)錯(cuò)誤輸出表示為 2。下面我們舉例來說明如何使用他們,特別是標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出。

輸入、輸出及標(biāo)準(zhǔn)錯(cuò)誤輸出主要用于 I/O 的重定向,就是說需要改變他們的默認(rèn)設(shè)置。

先看這個(gè)例子:

$ ls ls_result

$ ls -l 》 ls_result

上面這兩個(gè)命令分別將 ls 命令的結(jié)果輸出重定向到 ls_result 文件中和追加到 ls_result 文件中,而不是輸出到屏幕上。""就是輸出(標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出)重定向的代表符號,連續(xù)兩個(gè) "" 符號,即 "》" 則表示不清除原來的而追加輸出。

再來看一個(gè)稍微復(fù)雜的例子:

$ find /home -name lost* 2 err_result

這個(gè)命令在 "" 符號之前多了一個(gè) "2","2" 表示將標(biāo)準(zhǔn)錯(cuò)誤輸出重定向。由于 /home 目錄下有些目錄由于權(quán)限限制不能訪問,因此會產(chǎn)生一些標(biāo)準(zhǔn)錯(cuò)誤輸出被存放在 err_result 文件中。大家可以設(shè)想一下 find /home -name lost* 2》err_result 命令會產(chǎn)生什么結(jié)果?

如果直接執(zhí)行 find /home -name lost* all_result ,其結(jié)果是只有標(biāo)準(zhǔn)輸出被存入 all_result 文件中,要想讓標(biāo)準(zhǔn)錯(cuò)誤輸出和標(biāo)準(zhǔn)輸入一樣都被存入到文件中,那該怎么辦呢?看下面這個(gè)例子:

$ find /home -name lost* all_result 2 1

上面這個(gè)例子中將首先將標(biāo)準(zhǔn)錯(cuò)誤輸出也重定向到標(biāo)準(zhǔn)輸出中,再將標(biāo)準(zhǔn)輸出重定向到 all_result 這個(gè)文件中。這樣我們就可以將所有的輸出都存儲到文件中了。為實(shí)現(xiàn)上述功能,還有一種簡便的寫法如下:

$ find /home -name lost* all_result

如果那些出錯(cuò)信息并不重要,下面這個(gè)命令可以讓你避開眾多無用出錯(cuò)信息的干擾:

$ find /home -name lost* 2 /dev/null

有興趣的朋友,可以試驗(yàn)下如下的幾種重定向方式,看看結(jié)果是什么?

$ find /home -name lost* all_result 1 2

$ find /home -name lost* 2 all_result 1 2

$ find /home -name lost* 2 1 all_result

另外一個(gè)非常有用的重定向操作符是 "-",請看下面這個(gè)例子:

$ (cd /source/directory tar cf - . ) | (cd /dest/directory tar xvfp -)

該命令表示把 /source/directory 目錄下的所有文件通過壓縮和解壓,快速的全部移動(dòng)到 /dest/directory 目錄下去,這個(gè)命令在 /source/directory 和 /dest/directory 不處在同一個(gè)文件系統(tǒng)下時(shí)將顯示出特別的優(yōu)勢。

另外,幾種不常見的用法:

n- 表示將 n 號輸入關(guān)閉

- 表示關(guān)閉標(biāo)準(zhǔn)輸入(鍵盤)

n- 表示將 n 號輸出關(guān)閉

- 表示將標(biāo)準(zhǔn)輸出關(guān)閉

Linux_022_重定向符號

重定向

重定向符號:將數(shù)據(jù)傳到其他地方

(1) : 輸出覆蓋重定向

(2) : 輸出追加重定向

(3) 或 :標(biāo)準(zhǔn)輸入重定向

案例

1、讀取文件內(nèi)容,且寫入到另一個(gè)文件中,覆蓋寫入文件內(nèi)容

如果執(zhí)行多次,也每次只會將之前的內(nèi)容給清空掉

cat yu.txt ./yu1.txt

Linux 標(biāo)準(zhǔn)輸入輸出、重定向、管道、文件權(quán)限、后臺啟動(dòng)進(jìn)程命令-

IO 重定向是為了改變默認(rèn)輸入、輸出的位置,如默認(rèn)情況下標(biāo)準(zhǔn)輸出(STDOUT),標(biāo)準(zhǔn)錯(cuò)誤輸出(STDERR)都是輸出到顯示終端,如對標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤輸出改變其默認(rèn)輸出位置,可重定向輸出到指定的文件中(實(shí)際工作中經(jīng)常這么使用),要重定向就要配合一些語法符號。

文件或目錄的訪問權(quán)限分為只讀、只寫、可執(zhí)行三種。

修改文件權(quán)限命令:chmod、chgrp、chown。

搞懂「文件所屬者更改及權(quán)限的賦予」,涉及關(guān)于 chown、chmod、chgrp 命令,結(jié)合用例零基礎(chǔ)理解和掌握使用。

&1'>Linux 重定向符號以及2>&1

一個(gè)進(jìn)程默認(rèn)會打開標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、錯(cuò)誤輸出三個(gè)文件描述符

文件描述符為0,小于號表示數(shù)據(jù)由文件流入命令

usage:

命令 file

#加入輸入重定向,對輸入文件進(jìn)行計(jì)數(shù)

wc -l /etc/passwd

文件描述符為1,大于號表述數(shù)據(jù)由命令流入文件

所以: echo "hello" t.log 也可以寫成 echo "hello" 1 t.log

會把文件的內(nèi)容清空,再輸入到新的文件

會把當(dāng)前內(nèi)容保持不變,然后在下一行進(jìn)行追加

2 錯(cuò)誤重定向,如果當(dāng)前命令產(chǎn)生了錯(cuò)誤,會把錯(cuò)誤重定向到文件中,而不會打印到屏幕

無論內(nèi)容正確還是錯(cuò)誤都會把文件輸出到文件中。

stderr的文件描述符為2,Unix程序會向stderr流中寫入錯(cuò)誤信息。

默認(rèn)情況下, command file 將stdout 重定向到 file, command file 將stdin 重定向到 file。

如果希望 stderr 重定向到 file,可以這樣寫:

$ command 2file

如果希望 stderr 追加到 file 文件末尾,可以這樣寫:

$ command 2file 2 表示標(biāo)準(zhǔn)錯(cuò)誤文件(stderr)

如果希望將 stdout 和 stderr 合并后重定向到 file,可以這樣寫:

$ command file 21 或者 $ command file 21

如果希望對 stdin 和 stdout 都重定向,可以這樣寫:

$ command file1 file2

command 命令將 stdin 重定向到 file1,將 stdout 重定向到 file2。

含義:將標(biāo)準(zhǔn)錯(cuò)誤輸出 重定向到 標(biāo)準(zhǔn)輸出。

符號是一個(gè)整體,不可分開,分開后就不是上述含義了。

比如有些人可能會這么想:2是標(biāo)準(zhǔn)錯(cuò)誤輸入,1是標(biāo)準(zhǔn)輸出,是重定向符號,那么"將標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到標(biāo)準(zhǔn)輸出"是不是就應(yīng)該寫成"21"就行了?是這樣嗎? 如果是嘗試過,你就知道21的寫法其實(shí)是將標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到名為"1"的文件里去了

網(wǎng)站標(biāo)題:linux重定向符命令,linux重定向命令是哪3種
瀏覽路徑:http://muchs.cn/article40/hcihho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、Google、App設(shè)計(jì)網(wǎng)站導(dǎo)航、企業(yè)網(wǎng)站制作網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司