資料流導向

2022-06-13 17:42:10 字數 4059 閱讀 5589

資料流重導向

1、standard output與standard error output

標準輸入        (stdin): **為0, 使用《或者<<

標準輸出        (stdout) **為 1 ,使用 > 或 >> 

標準錯誤輸出      (stderr )  **為 2 ,使用 2> 或 2>> ;

# 例子標準輸出,匯出到檔案

[dai@workpc ~]$ ll / > ~/rootfile

[dai@workpc ~]$ cat rootfile

total 80

lrwxrwxrwx.   1 root root     7 mar  7

2019 bin -> usr/bin

dr-xr-xr-x.   6 root root  4096 dec 31

19:36 boot

drwxr-xr-x    2 root root  4096 mar 12

2019 data

drwxr-xr-x   19 root root  3000 oct 13

08:27 dev

drwxr-xr-x. 107 root root 12288 dec 31

19:37 etc

drwxr-xr-x.   4 root root  4096 dec  1

23:54 home

lrwxrwxrwx.   1 root root     7 mar  7

2019 lib -> usr/lib

lrwxrwxrwx.   1 root root     9 mar  7

2019 lib64 -> usr/lib64

drwx------.   2 root root 16384 mar  7

2019 lost+found

drwxr-xr-x.   2 root root  4096 apr 11

2018 media

drwxr-xr-x.   2 root root  4096 apr 11

2018 mnt

drwxr-xr-x.  11 root root  4096 dec 30

21:16 opt

dr-xr-xr-x  103 root root     0 oct 13

08:27 proc

dr-xr-x---.  10 root root  4096 jan  1

12:05 root

drwxr-xr-x   34 root root  1160 dec 31

19:37 run

lrwxrwxrwx.   1 root root     8 mar  7

2019 sbin -> usr/sbin

drwxr-xr-x.   2 root root  4096 apr 11

2018 srv

dr-xr-xr-x   13 root root     0 jan  1

20:01 sys

drwxrwxrwt.  16 root root 12288 jan  1

12:53 tmp

drwxr-xr-x.  13 root root  4096 mar  7

2019 usr

drwxr-xr-x.  19 root root  4096 mar  7

2019 var

# 標準錯誤輸入,匯出到黑洞

# /dev/null  垃圾桶黑洞裝置與特殊寫法

[dai@workpc /]$ cd root/

-bash: cd: root/: permission denied

[dai@workpc home]$ cd root/ 2> /home/dai/error1.log

[dai@workpc ~]$ cat error1.log

-bash: cd: root/: no such file or directory

# /dev/null 垃圾桶黑洞裝置與特殊寫法

[dai@workpc /]$ cd root/ 2> /dev/null

[dai@workpc /]$

# 將錯誤和正確資訊一起匯出檔案中, 比如下面的這個例子,如果許可權不夠的時候,螢幕會輸出錯誤資訊

# 這個時候將正確和錯誤資訊都輸出到 file_name 這個檔案

find /home -name .bashrc > file_name 2>&1

2、standard input:< 和<<

# 引子

[dai@workpc ~]$ cat > rootfile

wqe

we2

^c

[dai@workpc ~]$ cat rootfile

wqe

we2

[dai@workpc ~]$

# 下面就是input的用法

# 將乙個檔案作為另乙個檔案的輸入

[dai@workpc ~]$ cat > rootfile  < ~/.bashrc   # 將.bashrc 檔案中的內容匯入 rootfile

# 使用關鍵字給檔案插入文字

[dai@workpc ~]$ cat > rootfile << eof

> this is a test

> ok now stop

> eof

[dai@workpc ~]$ cat rootfile

this is a test

ok now stop

3、命令執行的判斷依據

[dai@workpc ~]$ echo hello world;echo dai;echo haolong

# 不考慮指令是否執行成功

cmd1&&cmd2

# 如果cmd1 正確執行,再執行cmd2;如果cmd1執行失敗,則不再執行cmd2

cmd1||cmd2

# 如果cmd1 正確執行,不再執行cmd2;如果cmd1執行失敗,再執行cmd2

Linux資料流重導向

當我們使用linux的時候,每下達1個命令,通常都會有對應的資訊輸出在螢幕上,這些輸出的資料就是資料流,而linux資料流重導向,就是把這些資料輸出到不同的地方了。而資料流通常分為正確的資料跟錯誤的資料,如果我們要把正確的資料導向到我們要的檔案裡面去,可以使 覆蓋 新增 來處理。malt malt ...

BASH 資料流重導向

資料流重導向 即將本應在標準輸入輸出 std input output error output 的資料傳到別的地方去。例如將除錯資訊存入文件中,而非直接輸出到螢幕上。也可以用 tee 命令,即輸出到標準輸出,又寫入指定文件 也叫雙向導向。傳送字元如下所示 1.標準輸入 stdin 為0,使用 或 ...

Linux之資料流重導向

其實一開始繞進檔案描述符這個大坑裡去了,越挖越深,什麼系統檔案表,記憶體索引節點,vfs等等都一下子冒了出來,而我暫時還沒那麼多精力搞定所有,於是只能遮蔽底層的一些細節,暫且當作黑盒子,來日再挖。1 linux系統中,一切資源都被視為檔案,包括放在磁碟上的各種文件,甚至各種裝置。檔案是linux組織...