Linux中的重定向和管道

2021-10-03 08:42:15 字數 1859 閱讀 3870

file descriptors ,fd,檔案描述符

程序使用檔案描述符來管理開啟的檔案

fd是訪問檔案的標識,即鏈結檔案

0是鍵盤唯讀,

1,2是終端可以理解是螢幕,

3+是檔案,可讀可寫

例項:

ps aux| grep vim(檢視程序號)

[root@localhost ~]# ll /proc/5606/fd(查詢文字程式的fd)

lrwx------. 1 root root 64 10月 10 07:37 0 -> /dev/pts/2(0是指的輸入的)

lrwx------. 1 root root 64 10月 10 07:37 1 -> /dev/pts/2(1是指的正確的輸出)

lrwx------. 1 root root 64 10月 10 07:37 2 -> /dev/pts/2(2指的錯誤的輸出)

lrwx------. 1 root root 64 10月 10 07:37 3 -> /root/.1.txt.swp(3或3+是指的其他的輸出重定向)

輸出重定向:

[root@cyb ~]# date > date.txt(乙個》覆蓋)

[root@cyb ~]# date >> date.txt (兩個》是新增)

錯誤輸出重定向

[root@cyb ~]# ls /aaaaaaaaa 2> list.txt (因為沒有建立aaaaaaaa所以2>才可以輸出到list.txt)

[root@cyb ~]#cat list.txt

ls: 無法訪問/aaaaaaaaa: 沒有那個檔案或目錄

vim xujingyuan.txt(準備乙個文字,在裡面編寫一些內容)

[root@cyb~]# mail -s 「test01」 alice < xujingyuan.txt(把xujingyuan.txt的內容傳送給alice使用者)

[root@cyb~]# su - alice

[alice@cyb~]$ mali

就可以檢視郵件

簡介

管道命令可以將多條命令組合起來,一次性完成複雜的處理任務。

語法:

command1 | command2 |command3 |…

例項:

[root@cyb ~]# cat /etc/passwd | tail -3 (檢視passwd中的最後三行內容)

簡述:

三通管道,即交給另乙個程式處理。又儲存乙份副本

例項:

[root@localhost ~]# cat /etc/passwd |tee 88.txt | tail -1(檢視passwd的最後一行,並將passwd的內容儲存到88.txt中)

qianfeng:x :1001:1001::/home/qianfeng:/bin/bash

簡述:

有時候有些命令在用管道的時候他不會聽話的去執行,所以就會用到xargs,他可以看做是一種翻譯或者溝通的橋梁。

例項:[root@localhost ~]# cat files.txt |xargs rm -rvf (v是視覺化的意思)

removed 『/home/file1』

removed 『/home/file3』

removed 『/home/file5』

Linux命令中的管道和重定向

在linux中有很多標準的命令例如find sort du等,可以滿足我們完成文件管理 系統管理等諸多需求,但是大多時候一些複雜的需求都需要多個命令搭配起來使用,對於linux來說乙個命令對應於乙個程序,因此多個命令協同工作,就涉及到多個程序的通訊,linux提供一種管道的方式來完成程序間通訊。li...

Linux命令中的管道和重定向

在linux中有很多標準的命令例如find sort du等,可以滿足我們完成文件管理 系統管理等諸多需求,但是大多時候一些複雜的需求都需要多個命令搭配起來使用,對於linux來說乙個命令對應於乙個程序,因此多個命令協同工作,就涉及到多個程序的通訊,linux提供一種管道的方式來完成程序間通訊。li...

linux重定向 管道

1 這條命令是什麼意思?cat file1 file2 grep name tee file3 file4 file5 wc l 該命令表示 將 file1 file2 中的包含 name 的行重定向輸出。使用 tee 命令表示 將該輸出有兩個去向。乙個是定向到檔案 file3,file4,flie...