linuxstdin
A. linux中echo $password| passwd $username ––stdin什麼意
stdin,標准輸入,通過前一個管道的數據,作為口令輸入,一般用在 shell script 中。
B. 在linux下,是不是只要某個文件的文件描述符時0,這個文件就可以作為stdin
Linux的本質就是一切皆文件,輸入輸出設備也是以文件形式存在和管理的。
內核啟動的時候默認打開這三個I/O設備文件:標准輸入文件stdin,標准輸出文件stdout,標准錯誤輸出文件stderr,分別得到文件描述符 0, 1, 2。
你只是以自定義的文件代替了系統默認的設備文件,實現了輸入輸出的重定向。
C. Linux中,標准輸入輸出設備文件有個,文件名分別是
Linux中有以下三個標准設備:
標准輸入(stdin)、標准輸出(stdout)、標准錯誤輸出(stderr)
對應的文件描述符分別為:0、1、2
D. linux裡面標准輸入輸出是什麼
linux shell下常用輸入輸出操作符是:
1. 標准輸入 (stdin) :代碼為 0 ,使用 < 或 << ; /dev/stdin -> /proc/self/fd/0 0代表:/dev/stdin
2. 標准輸出 (stdout):代碼為 1 ,使用 > 或 >> ; /dev/stdout -> /proc/self/fd/1 1代表:/dev/stdout
3. 標准錯誤輸出(stderr):代碼為 2 ,使用 2> 或 2>> ; /dev/stderr -> /proc/self/fd/2 2代表:/dev/stderr
E. linux標准輸入輸出流有什麼用
Unix/Linux/BSD 都有三個特別文件,分別
1)標准輸入 即 STDIN , 在 /dev/stdin ,
一般指鍵盤輸入, shell里代號是 0
2) 標准輸出 STDOUT, 在 /dev/stdout,
一般指終端(terminal), 就是顯示器, shell里代號是 1
3) 標准錯誤 STDERR, 在 /dev/stderr
也是指終端(terminal), 不同的是, 錯誤信息送到這里
shell里代號是 2
2, 3用些例子再表達一下
User@User-PC ~
$ ls /dev/stdin
/dev/stdin@
User@User-PC ~
$ ls -l /dev/std*
lrwxrwxrwx 1 User Users 15 Mar 1 2008 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 User Users 15 Mar 1 2008 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 User Users 15 Mar 1 2008 /dev/stdout -> /proc/self/fd/1
就是這些東西了,呵呵
User@User-PC ~
$ ls 1> log1.txt
User@User-PC ~
$ cat log1.txt
Mail/
News/
a.txt
aa*
awkscr
b.txt
bb*
bin/
cc
cgitest.rex*
dd*
irc-sh*
junk
lib/
log1.txt
lynx.cfg
matrix/
perlscr*
pp*
rexx_script/
rrr
testawk
tmp/
trash
將標准輸出導向到文件, 縮寫就是 ls > log1.txt
User@User-PC ~
$ ls llll 1> log2.txt
ls: 無法存取 llll: No such file or directory
再次執行,但這次沒有這個文件llll, 出現錯誤訊息
User@User-PC ~
$ cat log2.txt
User@User-PC ~
$ file log2.txt
log2.txt: empty
輸出沒有導向到文件,文件是空文件
User@User-PC ~
$ ls llll 2> log2.txt
User@User-PC ~
$ cat log2.txt
ls: 無法存取 llll: No such file or directory
User@User-PC ~
$
再次執行剛才的命令,只是將 1> log2.txt 改為 2> log2.txt
這次就成功把錯誤訊息導向至文件了,呵呵,
就是這樣
所以,將標准輸出和標准錯誤 一同導向到一個文件里,就得這樣表達
命令 2>&1 > 檔案, 如
User@User-PC ~
$ echo 123 | if grep -E '[0-9]+' 2>&1 > /dev/null ; then echo "This is number."; fi
This is number.
grep 標准輸出和標准錯誤 都導向到系統『黑洞』,不會再屏幕上顯示什麼
, 明白了吧? 呵呵
F. linux操作系統的標准輸入/出文件有哪些
Linux中有以下三個標准設備: 標准輸入(stdin)、標准輸出(stdout)、標准錯誤輸出(stderr) 對應的文件描述符分別為:0、1、2
G. Linux標准輸入輸出與重定向詳解|果斷收藏
linux中的>、>>、<、<<、2>、2>>、2>&1、&>、&<,總歸要面對的
為了更好的理解這個問題,我們需要追本溯源。
執行一個shell命令行時通常會自動打開三個標准文件
(1) 、標准輸入文件(stdin)
通常對應終端的鍵盤。
(2)、標准輸出文件(stdout)。
(3)、標准錯誤輸出文件(stderr)。
(2)和(3)這兩個文件都對應終端的屏幕。
進程將從標准輸入文件中得到輸入數據。
將正常輸出數據輸出到標准輸出文件[顯示器]。
將錯誤信息送到標准錯誤文件中[顯示器]。
下圖所示:
0、1、2表示一個文件描述符
但是,有時候我們不想把一些進程處理後信息輸出到顯示器。
這時我們就引出了重定向。
改變標准輸入/輸出的方向
三種重定向:
1、重定向標准輸出,包括兩種。
(1)、>(覆蓋),等價1>
將命令執行的結果輸出到指定文件,非顯示器。
(2) 、>>(追加),等價1>>
將命令執行的結果追加到指定文件,非顯示器。
2、 重定向標准輸入,包括兩種。
(1) 、<
將命令中接收的輸入途徑,由鍵盤改為指定文件。
(2) 、<<[Here Document]
命令序列傳遞到一個交互程序或者命令中。
3、 重定向標准錯誤,包括兩種。
(1) 、2>(覆蓋)
將命令執行的結果輸出到指定文件。
(2) 、2>>(追加)
將命令執行的結果追加到指定文件。
1、重定向標准輸出和重定向標准錯誤到同一個文件中
有以下的幾種方式
(1) 、2>&1
(2) 、>&
(3) 、&>
2、 兩個特殊文件
(1) 、/dev/nul
過濾標准錯誤信息
意思就是不想顯示結果就輸出到這裡面。
(2) 、/dev/zero
創建指定長度的文件
案例1:
測試> and >>
案例2:
測試< and <<
測試<
測試<<
案例3:
測試2> and 2>>
案例4:
測試重定向標准輸出和重定向標准錯誤到同一個文件中
(1)、>&
(2)、&>
與上面的案例類似,不做解釋
(3) 、2>&1
案例5:
使用/dev/nul文件
有時候我們使用命令,不想將輸出的信息顯示到界面
這時我們可以使用 &> /dev/nul[常用]
簡單測試修改demo 用戶密碼
H. Linux 的 stdin stdout 怎樣實現,我用 Node 怎樣模擬
Abstract:
1) Linux Shell 命令的標准輸入、標准輸出、標准錯誤,及其重定位;2)Linux Shell 操作自定義文件描述符;
文件描述符是與文件相關聯的一些整數,他們保持與已打開文件的關聯。眾所周知的文件描述符是標准輸入stdin、標准輸出stdout、標准錯誤stderr,我們可以重定位這些文件描述符關聯文件的內容到另外一個文件文件描述符。
1. Linux Shell 命令的標准輸入、標准輸出、標准錯誤
當我們在編寫 shell 腳本時,我們會非常頻繁地操作執行命令的標准輸入stdin、標准輸出stdout、標准錯誤stderr。過濾 shell 腳本或者執行命令的輸出信息並且把它們重定位到特定的地方,成了我們分析腳本執行情況的必要工作。當我們執行腳本文件或者執行一個 shell 命令的時候,單從終端輸出我們很難區分哪些是標准輸出,哪些是標准錯誤。然而,我們把這些信息重定向特定的地方,以便於我們分析腳本文件及 shell 命令的執行情況。
文件描述符是與打開文件或者數據流相關聯的整數,0、1、2 是系統保留的三個文件描述符,分別對應標准輸入、標准輸出、標准錯誤。
Linux Shell 使用 " > " ">>" 進行對文件描述符進行重定位。
">" 與 ">>" 的作用是不一樣的,前者使用本次輸出內容替換原有文件的內容,後者則是把本次輸出追加到原文件的後面。
在對文件描述符進行詳細分析之前,先執行以下命令,為後面的實驗操作準備一些必要的文件:
echo -e "\e[42;31m --- Prepare resource file ---\e[0m";
echo "This is example text 1." > temp.txt;
echo "This is example text 2." >> temp.txt;
cat temp.txt;
echo "a1" > a1;
echo "a2" > a2;
echo "a3" > a3;
sudo chmod 000 a3;
ls -alF a*;
I. Linux安裝Stdin:not a typewriter.
你是不是用U盤安裝的,換個U盤試試,我以前遇到過,當時是卡在系統啟動畫面的地方,切換到文本界面顯示的信息跟你一樣。我找到問題是因為U盤本身的配置不一樣導致BIOS識別不同,我兩個U盤,一個插上後,啟動項的地方顯示的是USB HDD,但另一個卻是USB Flash Driver,用前一個就總是卡在那,後一個就沒問題。不知道你的是不是也是這個原因。
J. linux下編程函數實參為stdin什麼意思啊
stdin 是標准輸入 ,編程函數實參為stdin表示參數里的內容為鍵盤輸入內容