一、檔案描述符
linux 的shell命令,可以通過檔案描述符來引用一些檔案,通常使用到的檔案描述符為0,1,2。linux系統實際上有12個檔案描述符,通常使用的檔案描述符如下圖
檔案檔案描述符
輸入檔案—標準輸入
0(預設是鍵盤,為0時是檔案或者其他命令的輸出)
輸出檔案—標準輸出
1(預設是螢幕,為1時是檔案)
錯誤輸出檔案—標準錯誤
2(預設是螢幕,為2時是檔案)
二、檔案重定向:改變程式執行的輸入和輸出,也就是輸入源和輸出地點,具體釋義如下
輸出重定向:
command > filename
把標準輸出重定向到乙個新檔案中,當filename不存在時
command >> filename
把標準輸出重定向到乙個檔案中(追加)
command > filename
把標準輸出重定向到乙個檔案中
command > filename 2>&1
把標準輸出和錯誤一起重定向到乙個檔案中
command 2 > filename
把標準錯誤重定向到乙個檔案中
command 2 >> filename
把標準輸出重定向到乙個檔案中(追加)
command >> filename2>&1
把標準輸出和錯誤一起重定向到乙個檔案(追加)
輸入重定向:
command < filename > filename2
command命令以filename檔案作為標準輸入,以filename2檔案作為標準輸出
command < filename
command命令以filename檔案作為標準輸入
command << delimiter
從標準輸入中讀入,知道遇到delimiter分界符
繫結重定向:
command >&m
把標準輸出重定向到檔案描述符m中
command < &-
關閉標準輸入
command 0>&-
同上三、shell中的一些高階用法
1:把所有的標準錯誤輸出出到linux的 黑洞中,有稱為空裝置(/dev/null)
[root@localhost ~]# ls /home/ins 2> /dev/null
[root@localhost ~]#
2:把執行的標準輸出和標準錯誤重定向到out.put
[root@localhost ~]# ls /home/ind >out.put 2>&1
[root@localhost ~]# cat out.put
ls: cannot access /home/ind: no such file or directory
[root@localhost ~]#
3:使用標準輸入,在a.txt檔案中寫入 "hello world"
[root@localhost ~]# cat >a.txt< hello world !
> eof
[root@localhost ~]# cat a.txt
hello world !
4:新建使用者awk ,使用標準輸入設定密碼123456
[root@localhost ~]# useradd awk
[root@localhost ~]#
[root@localhost ~]# echo 123456 | passwd --stdin awk
changing password for user awk.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# su - inds
四、grep命令
grep是linux中乙個強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。
[options]主要引數:
-c:只輸出匹配行的計數。
-i:不區分大 小寫(只適用於單字元)。
-h:查詢多檔案時不顯示檔名。
-l:查詢多檔案時只輸出包含匹配字元的檔名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文字的錯誤資訊。
-v:顯示不包含匹配文字的所有行。
pattern正規表示式主要引數:
\: 忽略正規表示式中特殊字元的原有含義。
^:匹配正規表示式的開始行。
$: 匹配正規表示式的結束行。
\<:從匹配正則表達 式的行開始。
\>:到匹配正規表示式的行結束。
[ ]:單個字元,如[a]即a符合要求 。
[ - ]:範圍,如[a-z],即a、b、c一直到z都符合要求 。
。:所有的單個字元。
* :有字元,長度可以為0。
簡單舉例說明
1、過濾/etc/passwd 檔案裡所有已shutdown結尾的行
[root@localhost ~]# grep shutdown$ /etc/passwd
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
2、awk所在的行,並給awk標顏色,同時顯示行號
[root@localhost ~]# grep -n awk --color=auto /etc/passwd
45:awk:x:1158:1001::/home/awk:/bin/bash
[root@localhost ~]#
grep使用簡明及正規表示式
linux下shell程式設計——grep命令的基本運用
grep 命令詳解及相關事例
linux基礎命令之grep詳解
設定grep高亮顯示匹配項
linux grep命令學習與總結
14 個 grep 命令的例子
本文永久更新鏈結位址:
Linux重定向(輸入輸出重定向)
我們知道,linux 中標準的輸入裝置預設指的是鍵盤,標準的輸出裝置預設指的是顯示器。而本節所要介紹的輸入 輸出重定向,完全可以從字面意思去理解,也就是 通常是用檔案或命令的執行結果來代替鍵盤作為新的輸入裝置,而新的輸出裝置通常指的就是檔案。對於輸入重定向來說,其需要用到的符號以及作用如表 1 所示...
linux輸入輸出重定向
基本概念 這是理解後面的知識的前提,請務必理解 a i o重定向通常與 fd有關,shell的fd通常為10個,即 0 9 b 常用fd有3個,為0 stdin,標準輸入 1 stdout,標準輸出 2 stderr,標準錯誤輸出 預設與keyboard monitor有關 c 用 來改變讀進的資料...
Linux輸入輸出重定向
標準輸入輸出 裝置 裝置檔名 檔案描述符 型別鍵盤 dev stdin 0標準輸入 顯示器 dev stdout 1標準輸出 顯示器 dev stderr 2標準錯誤輸出 輸出重定向 輸出重定向符號 1 標準輸出重定向 命令 檔案 以覆蓋方式把命令的正確輸出重定向到檔案或裝置 命令 檔案 以追加的方...