檔案描述符:核心(kernel)利用檔案描述符(file descriptor)來通路檔案。檔案描述符是非負整數。打開現存檔案或建立檔案時,核心會傳回一個檔案描述符。讀寫檔案也需要使用檔案描述符來指定待讀寫的檔案。
linux下一切皆檔案。
STDIN 标準輸入 如:鍵盤檔案 檔案描述符為:0
STDOUT 标準輸出 螢幕終端 檔案描述符為:1
STDERR 錯誤輸出 螢幕終端 檔案描述符為:2
[root@localhost ~]# echo 123456 | passwd --stdin rm &> /dev/null
/dev/null 代表空裝置檔案,就是Linux中的黑洞。放多少東西都填不滿。
輸出重定向
#輸出重定向到哪裡 1> #輸出重定向到哪裡 ,是以"> /dev/null"等同于"1> /dev/null" [root@localhost ~]# ls /home/ 1> a.txt [root@localhost ~]# cat a.txt rm
2> #表示标準錯誤輸出
[root@localhost ~]# ls /homee 2> a.txt
ls: cannot access /homee: No such file or directory
& & 表示等同于的意思
[root@localhost ~]# ls /home/ /homee 1> a.txt 2>&1
&> 混合輸出
[root@localhost ~]# ls /home/ /homee &> a.txt
輸出重定向 ,追加和覆寫
和>> 的差別 每次都産生新檔案。 > 是追加,不産生新的檔案。 [root@localhost ~]# echo xuegod > a.txt xuegod [root@localhost ~]# echo xuegod >> a.txt
輸入重定向
<
執行個體1:wc檢視檔案的位元組數、字數、行數
[root@localhost ~]# wc /etc/passwd
43 87 2261 /etc/passwd
行 字數(以空格為分隔符) 大小(位元組為機關)
[root@localhost ~]# wc < /etc/passwd
43 87 2261
[root@localhost ~]# cat > a.txt <<EOF
* Welcome to Heros Aliance ** EOF
管道 |
前一個程式的标準輸出,交給後一個程式做标準輸入。
[root@localhost ~]# ps -aux | grep vim
tee指令:
功能說明:讀取标準輸出的資料,并将其内容輸入成檔案。
[root@localhost ~]# ps -aux | grep vim | tee b.txt
root 3256 0.0 0.0 112644 956 pts/1 S+ 08:15 0:00 grep --color=auto vim
[root@localhost ~]# cat b.txt
檔案查找方法
which 檢視可執行檔案的位置
whereis 檢視可執行檔案的位置 及相關檔案
locate 配合資料庫緩存,快速檢視檔案位置
grep 過濾
find 實際搜尋硬碟查詢檔案名稱
[root@localhost ~]# rpm -qf <code>which useradd</code>
shadow-utils-4.1.5.1-18.el7.x86_64
[root@localhost ~]# whereis useradd
useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz
locate 配合資料庫緩存,快速檢視檔案位置
[root@localhost ~]# yum install mlocate -y
[root@localhost ~]# touch abc.txt
[root@localhost ~]# locate abc.txt #查找不到檔案
[root@localhost ~]# updatedb #更新資料庫
[root@localhost ~]# locate abc.txt
/root/abc.txt
[root@localhost ~]# grep bash /etc/passwd
root:x:0:0:root:/root:/bin/bash
rm:x:1000:1000:rm:/home/rm:/bin/bash
-v 反轉
-i 忽略大小寫
^# 以#開頭
#$ 以#結尾
^$ 空行
例:-v 取反,查找出檔案中不帶nologin 的行
[root@localhost ~]# grep -v "nologin" /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
例:-I 忽略大小寫進行查找
[root@localhost ~]# grep -i RM /etc/passwd
RM:x:1001:1001::/home/RM:/bin/bash
例:^ 過濾檔案中的所有以#号開頭的行
[root@localhost ~]# grep -v "^#" /etc/selinux/config
例:$ 過濾檔案中的所有以shutdown結尾的行
[root@localhost ~]# grep "shutdown$" /etc/passwd
例:^$ 過濾檔案中的空行
[root@localhost ~]# grep -v "^$" /etc/selinux/config
例:過濾檔案中的空行和以#号開頭的行,顯示檔案的真實有效資訊
[root@localhost ~]# grep -v "^$" /etc/selinux/config | grep -v "^#"
SELINUX=disabled
SELINUXTYPE=targeted
-n 對過濾的内容加上行号
本文轉自信自己belive51CTO部落格,原文連結:http://blog.51cto.com/11638205/2048815 ,如需轉載請自行聯系原作者