資料流重導向
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 72019 bin -> usr/bin
dr-xr-xr-x. 6 root root 4096 dec 3119:36 boot
drwxr-xr-x 2 root root 4096 mar 122019 data
drwxr-xr-x 19 root root 3000 oct 1308:27 dev
drwxr-xr-x. 107 root root 12288 dec 3119:37 etc
drwxr-xr-x. 4 root root 4096 dec 123:54 home
lrwxrwxrwx. 1 root root 7 mar 72019 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 mar 72019 lib64 -> usr/lib64
drwx------. 2 root root 16384 mar 72019 lost+found
drwxr-xr-x. 2 root root 4096 apr 112018 media
drwxr-xr-x. 2 root root 4096 apr 112018 mnt
drwxr-xr-x. 11 root root 4096 dec 3021:16 opt
dr-xr-xr-x 103 root root 0 oct 1308:27 proc
dr-xr-x---. 10 root root 4096 jan 112:05 root
drwxr-xr-x 34 root root 1160 dec 3119:37 run
lrwxrwxrwx. 1 root root 8 mar 72019 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 apr 112018 srv
dr-xr-xr-x 13 root root 0 jan 120:01 sys
drwxrwxrwt. 16 root root 12288 jan 112:53 tmp
drwxr-xr-x. 13 root root 4096 mar 72019 usr
drwxr-xr-x. 19 root root 4096 mar 72019 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組織...