Linux下基礎命令(三)


本次發這篇博客比較晚,晚上快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 ~]# 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章