本次發這篇博客比較晚,晚上快12點才發的,到今天一直沒有,所以又發了一遍,這個篇文章主要有重定向和管道 | tee find 等實戰操作,還有一些命令參數詳解等。
重定向及管道
linux下一切皆文件。文件又可分爲:普通文件、目錄文件、鏈接文件和設備文件
Linux系統中使用文件來描述各種硬件,設備資源等
例如:硬盤和分區,光盤等設備文件
brw-rw----+ 1 root cdrom 11, 0 6月 24 16:53 sr0
重定向的含義
文件描述符定義:
是內核爲了高效管理已被打開的文件所創建的索引,用於指向被打開的文件,所有執行I/O操作的系統調用都通過文件描述符;文件描述符是一個簡單的非負整數,用以標明每一個被進程所打開的文件,程序剛剛啓動的時候,第一個打開的文件是0,第二個是1,依此類推。也可以理解爲是一個文件的身份ID
用戶通過操作系統處理信息的過程中,使用的交互設備文件(鍵盤,鼠標)
number Channel namedescripton default connectionusage
0stdinstandard inputkeyboardread only
1stdoutstandard output terminalwrite only
2stderrstandard errorterminalwrite only
3+filenameother filesnoneread and /or write
0表示的是標準輸入 鍵盤
1表示的是標準輸出 相當於終端或顯示器
2表示的是標準錯誤 通過鍵盤和終端組合顯示
1.查看某個進程信息
打開兩個終端界面 pts1代表終端1.pts2代表終端2
pts1
[root@CentOS6-node1 ~]# passwd
更改用戶 root 的密碼 。
新的 密碼:
pts2
[root@CentOS6-node1 fd]# ps aux | grep passwd
root 3606 0.0 0.4 168080 1992 pts/0 S+ 19:48 0:00 passwd
root 3832 0.0 0.1 103256 848 pts/1 S+ 20:45 0:00 grep passwd
[root@CentOS6-node1 ~]# cd /proc/3606
[root@CentOS6-node1 3606]# ls #此目錄下是有關此進程的所有信息
attr coredump_filter io mountstats pagemap stack
autogroup cpuset limits net personality stat
auxv cwd loginuid ns root statm
cgroup environ maps numa_maps sched status
clear_refs exe mem oom_adj schedstat syscall
cmdline fd mountinfo oom_score sessionid task
comm fdinfo mounts oom_score_adj smaps wchan
[root@CentOS6-node1 3606]#
[root@CentOS6-node1 3606]# ll
總用量 0
dr-xr-xr-x. 2 root root 0 6月 24 19:49 attr #屬性
-rw-r--r--. 1 root root 0 6月 24 19:50 autogroup
-r--------. 1 root root 0 6月 24 19:50 auxv
-r--r--r--. 1 root root 0 6月 24 19:50 cgroup
--w-------. 1 root root 0 6月 24 19:50 clear_refs
-r--r--r--. 1 root root 0 6月 24 19:49 cmdline#此進程執行的命令
-rw-r--r--. 1 root root 0 6月 24 19:50 comm
-rw-r--r--. 1 root root 0 6月 24 19:50 coredump_filter
-r--r--r--. 1 root root 0 6月 24 19:50 cpuset
lrwxrwxrwx. 1 root root 0 6月 24 19:50 cwd -> /root
-r--------. 1 root root 0 6月 24 19:50 environ#環境變量
lrwxrwxrwx. 1 root root 0 6月 24 19:50 exe -> /usr/bin/passwd
dr-x------. 2 root root 0 6月 24 19:49 fd#文件描述符相關信息
dr-x------. 2 root root 0 6月 24 19:50 fdinfo
-r--------. 1 root root 0 6月 24 19:50 io
-rw-------. 1 root root 0 6月 24 19:50 limits
-rw-r--r--. 1 root root 0 6月 24 19:50 loginuid
-r--r--r--. 1 root root 0 6月 24 19:50 maps
-rw-------. 1 root root 0 6月 24 19:50 mem
-r--r--r--. 1 root root 0 6月 24 19:50 mountinfo
-r--r--r--. 1 root root 0 6月 24 19:50 mounts
-r--------. 1 root root 0 6月 24 19:50 mountstats
dr-xr-xr-x. 6 root root 0 6月 24 19:50 net
dr-x--x--x. 2 root root 0 6月 24 19:50 ns
-r--r--r--. 1 root root 0 6月 24 19:50 numa_maps
-rw-r--r--. 1 root root 0 6月 24 19:50 oom_adj
-r--r--r--. 1 root root 0 6月 24 19:50 oom_score
-rw-r--r--. 1 root root 0 6月 24 19:50 oom_score_adj
-r--r--r--. 1 root root 0 6月 24 19:50 pagemap
-r--r--r--. 1 root root 0 6月 24 19:50 personality
lrwxrwxrwx. 1 root root 0 6月 24 19:50 root -> /
-rw-r--r--. 1 root root 0 6月 24 19:50 sched
-r--r--r--. 1 root root 0 6月 24 19:50 schedstat
-r--r--r--. 1 root root 0 6月 24 19:50 sessionid
-r--r--r--. 1 root root 0 6月 24 19:50 smaps
-r--r--r--. 1 root root 0 6月 24 19:50 stack
-r--r--r--. 1 root root 0 6月 24 19:48 stat
-r--r--r--. 1 root root 0 6月 24 19:50 statm
-r--r--r--. 1 root root 0 6月 24 19:48 status
-r--r--r--. 1 root root 0 6月 24 19:50 syscall
dr-xr-xr-x. 3 root root 0 6月 24 19:50 task
-r--r--r--. 1 root root 0 6月 24 19:50 wchan
[root@CentOS6-node1 3606]#
[root@CentOS6-node1 fd]# ll
總用量 0
lrwx------. 1 root root 64 6月 24 19:49 0 -> /dev/pts/0 #輸出到第一個終端
lrwx------. 1 root root 64 6月 24 19:49 1 -> /dev/pts/0
lrwx------. 1 root root 64 6月 24 19:49 2 -> /dev/pts/0
lrwx------. 1 root root 64 6月 24 19:49 3 -> socket:[34114] #調用的api
[root@CentOS6-node1 fd]#
文件描述符限制:
因爲文件描述符是系統的一個重要資源,一般來說系統有多少內存就可以打開多少的文件描述符,但是實際系統內核還是會做一些限制的,正常情況下一個系統最大打開文件數是內存的10%左右,我們也叫系統級限制,可以通過以下命令查看
同時,系統內核爲了不讓某一個單獨進程消耗掉所有的文件資源,它對單個的進程可以打開的最大文件數也做了限制,我們叫它用戶級限制
[root@CentOS6-node1 fd]# sysctl -a |grep fs.file-max#最大可以佔用46396,相當於總內存的%10
fs.file-max = 46396
[root@CentOS6-node1 fd]# free
total used free shared buffers
Mem: 494224 486948 7276 0 100636
-/+ buffers/cache: 327680 166544
Swap: 2031608 3672 2027936
[root@CentOS6-node1 fd]#
輸入輸出標準說明
STDIN 標準輸入 默認的設備是鍵盤 文件編號爲:0
命令將從標準輸入文件中讀取在執行過程中需要輸入的數據,數據來源於文件,
STDOUT 標準輸出 默認的設備是顯示器 文件編號爲:1
命令執行後的輸出結果,發送到標準輸出文件,結果輸出到文件
STDERR 標準錯誤 默認的設備是顯示器 文件編號爲:2
命令將執行期間的各種錯誤信息發送到標準錯誤文件,錯誤信息發送到文件
標準輸入,標準輸出和標準錯誤默認使用鍵盤和顯示器作爲關聯設備與操作系統進行交互完成最基本的輸入,輸出操作.
重定向輸出
定義:將命令的正常輸出結果保存到指定的文件中,而不是直接顯示在顯示器的屏幕上
重定向輸出使用”>” “>>” 操作符號
屏幕顯示的內容(123) >> 新的文件 (a.txt)
1> 覆蓋文件內容
>> 追加內容
若重定向的輸出的文件不存在,則會新建該文件
標準輸入
1.查看當前主機的CPU的類型保存到kernel.txt文件中(而不是直接顯示到屏幕上)
[root@CentOS6-node1 ~]# cat /proc/cpuinfo > kernel.txt
[root@CentOS6-node1 ~]# ls
anaconda-ks.cfg install.log.syslog 公共的 文檔
apache-tomcat-7.0.77 jdk-7u80-linux-x64.tar.gz 模板 下載
apache-tomcat-7.0.77.tar.gz kernel.txt 視頻 音樂
install.log vmware-tools-distrib 圖片 桌面
[root@CentOS6-node1 ~]# cat kernel.txt #查看cpu信息
processor: 0
vendor_id: GenuineIntel
cpu family: 6
model: 78
model name: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
stepping: 3
cpu MHz: 2592.002
cache size: 4096 KB
fpu: yes
fpu_exception: yes
cpuid level: 22
wp: yes
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm 3dnowprefetch ida arat pln pts dts fsgsbase smep
bogomips: 5184.00
clflush size: 64
cache_alignment: 64
address sizes: 40 bits physical, 48 bits virtual
power management:
[root@CentOS6-node1 ~]#
注:如果是錯誤信息他會直接顯示出來,只有正確信息纔會保存的文件中
[root@CentOS6-node1 ~]# cat /proc/123 > a.txt #默認>的左邊是1
cat: /proc/123: 沒有那個文件或目錄 #錯誤信息,沒有這個文件或目錄
[root@CentOS6-node1 ~]# ls
anaconda-ks.cfg install.log.syslog 模板 音樂
apache-tomcat-7.0.77 jdk-7u80-linux-x64.tar.gz 視頻 桌面
apache-tomcat-7.0.77.tar.gz kernel.txt 圖片
a.txt vmware-tools-distrib 文檔
install.log 公共的 下載
[root@CentOS6-node1 ~]# cat a.txt
[root@CentOS6-node1 ~]#
2.將內核的版本信息追加到kernel.txt
[root@CentOS6-node1 ~]# uname -r #查看內核版本信息
2.6.32-431.el6.x86_64
[root@CentOS6-node1 ~]# uname -r >> kernel.txt #將內核版本信息追加到kernel.txt文件中
[root@CentOS6-node1 ~]# cat !$ #查看kernel.txt文件
cat kernel.txt
processor: 0
vendor_id: GenuineIntel
cpu family: 6
model: 78
model name: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
stepping: 3
cpu MHz: 2592.002
cache size: 4096 KB
fpu: yes
fpu_exception: yes
cpuid level: 22
wp: yes
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm 3dnowprefetch ida arat pln pts dts fsgsbase smep
bogomips: 5184.00
clflush size: 64
cache_alignment: 64
address sizes: 40 bits physical, 48 bits virtual
power management:
2.6.32-431.el6.x86_64
[root@CentOS6-node1 ~]#
重定向輸入
將命令中接收輸入的途徑由默認的鍵盤改爲其他文件.而不是等待從鍵盤輸入
從文件讀取數據 操作符: “ < ” 等價於 0<
<< 表示結束輸入的內容,常用來配合eof使用
好處:通過重定向輸入可以使一些交互式操作過程能夠通過讀取文件來完成
1.過濾出/etc/passwd中所有有關root的相關信息
[root@CentOS6-node1 ~]# grep root < /etc/passwd #將/etc/passwd中所有信息導入,前者是過濾root信息,後者即爲輸入
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@CentOS6-node1 ~]# grep root /etc/passwd #過濾出/etc/passwd中所有有關root的相關信息
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@CentOS6-node1 ~]#
2.在腳本中我們可以通過重定向來打印消息菜單
[root@CentOS6-node1 ~]# cat a.sh
#!/bin/bash
cat <<eof
________________________________________
1.mysql
2.php
3.puppet
________________________________________
eof
[root@CentOS6-node1 ~]# sh a.sh
________________________________________
1.mysql
2.php
3.puppet
________________________________________
[root@CentOS6-node1 ~]#
3.mysql的數據導入
[root@panda ~]# mysql –uroot –p123456 < worepree.sql
錯誤重定向
將命令執行過程中出現的錯誤信息 (選項或參數錯誤) 保存到指定的文件,而不是直接顯示到顯示器
作用:錯誤信息保存到文件
操作符: 使用2>
2指的是錯誤文件的編號 (在使用標準的輸入和輸出省略了1、0 編號)
在實際應用中,錯誤重定向可以用來收集執行的錯誤信息.爲排錯提供依據;對於shell腳本還可以將無關緊要的錯誤信息重定向到空文件/dev/null中,以保持腳本輸出的簡潔
1.查找adfasdf 文件,如果報錯,不顯示在終端界面上,而是寫入b.txt文件
[root@CentOS6-node1 ~]# grep root adfasdf 2>b.txt
[root@CentOS6-node1 ~]# echo $?
2
[root@CentOS6-node1 ~]# cat b.txt
grep: adfasdf: 沒有那個文件或目錄
[root@CentOS6-node1 ~]#
注:使用 2> 操作符時,會像使用 > 一樣覆蓋目標文件的內容,若追加而不覆蓋文件的內容即可使用 2>> 操作符
=======================================
從哪輸出信息 (通過命令等) > 輸出到哪個地方 (文件等)
輸出到哪個地方grep root < 從哪輸出信息 /etc/passwd
========================================
輸入一個 > 會造成文件內容覆蓋
輸入二個 >> 是屬於追加,不會覆蓋原有文件內容
========================================
null黑洞
把/dev/null看作"黑洞". 它等價於一個只寫文件。所有寫入它的內容都會永遠丟失. 而嘗試從它那兒讀取內容則什麼也讀不到. 然而 /dev/null對命令行和腳本都非常的有用.
1.查看當前目錄下是否有asdfasdfwer文件,如果沒有把錯誤信息移到/dev/null
[root@CentOS6-node1 ~]# ls asdfasdfwer 2> /dev/null
[root@CentOS6-node1 ~]# echo $?
2
[root@CentOS6-node1 ~]# ls asdfasdfwer
ls: 無法訪問asdfasdfwer: 沒有那個文件或目錄
[root@CentOS6-node1 ~]#
2.將/etc/hosts文件內容複製到當前目錄下的a.txt文件中
[root@CentOS6-node1 ~]# dd if=/etc/host
host.conf hosts hosts.allow hosts.deny
[root@CentOS6-node1 ~]# dd if=/etc/hosts of=a.txt #或者dd < /etc/host > a.txt
記錄了0+1 的讀入
記錄了0+1 的寫出
158字節(158 B)已複製,0.000265443 秒,595 kB/秒
[root@CentOS6-node1 ~]# du -sh a.txt
4.0Ka.txt
[root@CentOS6-node1 ~]# cat !$
cat a.txt
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@CentOS6-node1 ~]#
[root@CentOS6-node1 ~]# diff /etc/hosts ./a.txt #對比兩個文件的差別
[root@CentOS6-node1 ~]#
[root@CentOS6-node1 ~]#
3.新建一個10M的文件,命名爲file.txt
[root@CentOS6-node1 ~]#
[root@CentOS6-node1 ~]# dd if=/dev/zero of=file.txt bs=1M count=10 #從/dev/zero 中複製10M到file.txt文件
記錄了10+0 的讀入
記錄了10+0 的寫出
10485760字節(10 MB)已複製,0.061904 秒,169 MB/秒
[root@CentOS6-node1 ~]# echo $? #查看上一條命令的返回值,如果爲0則爲真,如果爲1等數字則爲假
0
[root@CentOS6-node1 ~]# ls #查看是否生成file.txt文件
anaconda-ks.cfg a.txt install.log.syslog 公共的 文檔
apache-tomcat-7.0.77 b.txt jdk-7u80-linux-x64.tar.gz 模板 下載
apache-tomcat-7.0.77.tar.gz file.txt kernel.txt 視頻 音樂
a.sh install.log vmware-tools-distrib 圖片 桌面
[root@CentOS6-node1 ~]# du -sh file.txt #查看file.txt文件的大小
10Mfile.txt
[root@CentOS6-node1 ~]#
特殊符號
輸出到不同文件
正確的寫到一個文件,錯誤的再寫到一個文件
1.查找當前目錄是否有asdfasdfqwer文件,如果有將正確的寫到abc.txt 文件裏,如果出現錯誤信息請輸入到def.txt文件中
[root@CentOS6-node1 ~]# ls sadfasdfasdf > abc.txt 2>def.txt
[root@CentOS6-node1 ~]# ls
abc.txt a.txt install.log.syslog 模板 音樂
anaconda-ks.cfg b.txt jdk-7u80-linux-x64.tar.gz 視頻 桌面
apache-tomcat-7.0.77 def.txt kernel.txt 圖片
apache-tomcat-7.0.77.tar.gz file.txt vmware-tools-distrib 文檔
a.sh install.log 公共的 下載
[root@CentOS6-node1 ~]# cat abc.txt
[root@CentOS6-node1 ~]# cat def.txt
ls: 無法訪問sadfasdfasdf: 沒有那個文件或目錄
[root@CentOS6-node1 ~]#
&>符號
&> 混合輸出 & :表示等同於的意思
個人描述:
1>&2 將正確的輸出和錯誤的輸出,一起輸出到一個文件
2>&1 將錯誤的輸出和正確的輸出,一起輸出到一個文件
官方描述:
1>&2 意思是把標準輸出重定向到標準錯誤
2>&1 意思是把標準錯誤輸出重定向到標準輸出
把正確和錯誤的信息都輸入到相同的位置
&> filename 意思是把標準輸出和標準錯誤輸出都重定向到文件filename中
1.將正確的輸出和錯誤的輸出,一起輸出到一個文件abc.txt文件
[root@CentOS6-node1 ~]# ls asdfasdf /root > abc.txt 2>&1
[root@CentOS6-node1 ~]# cat abc.txt
ls: 無法訪問asdfasdf: 沒有那個文件或目錄
/root:
abc.txt
anaconda-ks.cfg
apache-tomcat-7.0.77
apache-tomcat-7.0.77.tar.gz
a.sh
a.txt
b.txt
def.txt
file.txt
install.log
install.log.syslog
jdk-7u80-linux-x64.tar.gz
kernel.txt
vmware-tools-distrib
公共的
模板
視頻
圖片
文檔
下載
音樂
桌面
[root@CentOS6-node1 ~]#
2.將錯誤的輸出和正確的輸出,一起輸出到一個文件abcd.txt文件
[root@CentOS6-node1 ~]# ls asdfasdfasd /root/ 2> abcd.txt 1>&2
[root@CentOS6-node1 ~]# cat abcd.txt
ls: 無法訪問asdfasdfasd: 沒有那個文件或目錄
/root/:
abcd.txt
abc.txt
anaconda-ks.cfg
apache-tomcat-7.0.77
apache-tomcat-7.0.77.tar.gz
a.sh
install.log
install.log.syslog
jdk-7u80-linux-x64.tar.gz
vmware-tools-distrib
公共的
模板
視頻
圖片
文檔
下載
音樂
桌面
[root@CentOS6-node1 ~]#
3.將正確和錯誤輸出都輸出到qwer.txt文件裏
[root@CentOS6-node1 ~]# ls asdfasdfasd /root/ &> qwer.txt
[root@CentOS6-node1 ~]# cat !$
cat qwer.txt
ls: 無法訪問asdfasdfasd: 沒有那個文件或目錄
/root/:
abcd.txt
abc.txt
anaconda-ks.cfg
apache-tomcat-7.0.77
apache-tomcat-7.0.77.tar.gz
a.sh
install.log
install.log.syslog
jdk-7u80-linux-x64.tar.gz
qwer.txt
vmware-tools-distrib
公共的
模板
視頻
圖片
文檔
下載
音樂
桌面
[root@CentOS6-node1 ~]#
管道 |
語法:command-a | command-b | command-c | ......
注意:
1、管道命令只處理前一個命令正確輸出,不處理錯誤輸出
2、管道命令右邊命令,必須能夠接收標準輸入的數據流命令才行
3、管道符可以把兩條命令連起來,它可以鏈接多個命令使用
1.查看root用戶一共佔用多少進程
[root@CentOS6-node1 ~]# ps aux | grep root | wc -l
148
[root@CentOS6-node1 ~]#
2.查看/etc/passwd 文件中的每一行
加上xargs,它表示把前面的內容的數據流轉換爲一個個命令參數,然後傳給ls使用
[root@CentOS6-node1 ~]# cat /etc/passwd | xargs ls
ls: 無法訪問root:x:0:0:root:/root:/bin/bash: 沒有那個文件或目錄
ls: 無法訪問bin:x:1:1:bin:/bin:/sbin/nologin: 沒有那個文件或目錄
ls: 無法訪問daemon:x:2:2:daemon:/sbin:/sbin/nologin: 沒有那個文件或目錄
ls: 無法訪問adm:x:3:4:adm:/var/adm:/sbin/nologin: 沒有那個文件或目錄
ls: 無法訪問lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin: 沒有那個文件或目錄
ls: 無法訪問sync:x:5:0:sync:/sbin:/bin/sync: 沒有那個文件或目錄
ls: 無法訪問shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown: 沒有那個文件或目錄
ls: 無法訪問halt:x:7:0:halt:/sbin:/sbin/halt: 沒有那個文件或目錄
ls: 無法訪問mail:x:8:12:mail:/var/spool/mail:/sbin/nologin: 沒有那個文件或目錄
ls: 無法訪問uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin: 沒有那個文件或目錄
ls: 無法訪問operator:x:11:0:operator:/root:/sbin/nologin: 沒有那個文件或目錄
ls: 無法訪問games:x:12:100:games:/usr/games:/sbin/nologin: 沒有那個文件或目錄
ls: 無法訪問gopher:x:13:30:gopher:/var/gopher:/sbin/nologin: 沒有那個文件或目錄
ls: 無法訪問ftp:x:14:50:FTP: 沒有那個文件或目錄
ls: 無法訪問User:/var/ftp:/sbin/nologin: 沒有那個文件或目錄
ls: 無法訪問nobody:x:99:99:Nobody:/:/sbin/nologin: 沒有那個文件或目錄
ls: 無法訪問dbus:x:81:81:System: 沒有那個文件或目錄
.....................
3.查找當前目錄下所有以txt爲後綴的文件全部刪除
[root@CentOS6-node1 ~]# find ./ -name "*.txt" | xargs rm -rf
[root@CentOS6-node1 ~]# echo $?
0
[root@CentOS6-node1 ~]# ls
anaconda-ks.cfg install.log.syslog 模板 音樂
apache-tomcat-7.0.77 jdk-7u80-linux-x64.tar.gz 視頻 桌面
apache-tomcat-7.0.77.tar.gz nohup.out 圖片
a.sh vmware-tools-distrib 文檔
install.log 公共的 下載
[root@CentOS6-node1 ~]#
管道與重定向的區別
管道
左邊的命令應該有標準輸出 | 右邊的命令應該接受標準輸入
管道觸發兩個子進程執行"|"兩邊的程序;而重定向是在一個進程內執行
管道兩邊都必須是shell命令
重定向
左邊的命令應該有標準輸出 > 右邊只能是文件(可以是普通文件、文件描述符、設備文件)
左邊的命令應該需要標準輸入 < 右邊只能是文件
tee命令
功能:讀取標準輸入的數據,並將其內容輸出成文件。
語法:tee [-a][--help][--version][文件...]
參數:
-a或 --append 追加
--help 在線幫助
--version 顯示版本信息
tee指令會從標準輸入設備讀取數據,將其內容輸出到標準輸出設備,同時保存成文件
1.查看當前目錄下權限爲644(rw-,r--,r--的文件或目錄信息寫入到abc文件中並最終輸出前10行文件或目錄信息
[root@CentOS6-node1 ~]# find ./ -depth -perm 644 | tee abc | head -10
./apache-tomcat-7.0.77.tar.gz
./.local/share/gvfs-metadata/home-092f4bd9.log
./.local/share/.converted-launchers
./.local/share/applications/preferred-web-browser.desktop
./.local/share/applications/preferred-mail-reader.desktop
./install.log
./.imsettings.log
./.bashrc
./jdk-7u80-linux-x64.tar.gz
./.bash_profile
[root@CentOS6-node1 ~]# cat abc | wc -l
69
[root@CentOS6-node1 ~]#