linux中的輸入與輸出管理(重定向輸入,輸出,管道符)
linux中的輸入與輸出管理
1 理解什麼輸入輸出的定義
1)字元裝置
字元裝置就是顯示字元到螢幕上的裝置檔案
/proc/pid/fd/
2)stdin:標準輸入
編號為0
鍵盤 滑鼠 打字機
3)stdout:標準正確輸出
標號為1
4)stderr:標準錯誤輸出
標號為2
2 如何管理輸入
外界傳遞到程式中的資訊
1)< #輸入重定向
tr 'a-z' 'A-Z' < test
##把test檔案中的內容定向到tr程式中 單行錄入
只是在輸出的時候顯示,但檔案裡面的內容並沒有改變
tr 'a-z' 'A-Z' < test ###單行錄入 : 把test的內容重定向輸入到tr環境中
把原本test的預設環境shell改為指定環境 tr (程式定向到指定環境)
tr 程式 shell 程式
==清空檔案 == >test
[westos@lzy Desktop]$ cat test
hello lzy
[westos@lzy Desktop]$ > test
[westos@lzy Desktop]$ cat test
[westos@lzy Desktop]$
2)<< 多行錄入
修改westos使用者的密碼為lzy
passwd westos<<EOF(字元任意)
lzy##此處的lzy不能表示為檔名稱只表示lzy字元
lzy
EOF (當首字母再次出現表示錄入結束)
3 如何管理系統輸出
1)輸出重定向
> | =1> 預設重定向輸出正確的 |
---|---|
2> | 重定向輸出錯誤的 |
&> | 所有 |
2>&1 | 將錯誤輸出定向到錯誤中,在管道符處理的時候可以將錯誤的一起處理 |
find /etc -name passwd > westos.out
##重定向正確輸出 到指定檔案
find /etc -name passwd 2> westos.out
##重定向錯誤輸出到 指定檔案
find /etc -name passwd &> westos.out
##重定向所有輸出到指定檔案
注意:重定向管理輸出後會覆蓋原檔案內容
2> /dev/null
遮蔽錯誤輸出
[westos@lzy Desktop]$ find /etc -name passwd 2> /dev/null 遮蔽錯誤輸出 /dev/null 相當於垃圾桶
/etc/pam.d/passwd
/etc/passwd
2)追加
>> | 追加正確的輸出 |
---|---|
2>> | 追加錯誤的輸出 |
&>> | 追加所有 |
find /etc -name passwd >> westos.out
##追加正確輸出
find /etc -name passwd 2>> westos.out
##追加錯誤輸出
find /etc -name passwd &>> westos.out
##追加所有輸出
注意:追加和重定向功能類似,但是不會覆蓋原檔案內容
3)管道 “|”
把前一條命令的輸出變成輸入傳遞到下一條命令進行操作
注意:
1.管道只處理正確輸出
2.2>&1
把編號為2的輸入轉換到編號為1的輸出中
[westos@lzy Desktop]$ find /etc -name passwd 2>&1 | wc -l
16
3.tee
複製輸出到指定位置
4.管道在一條命令中可以使用多次
test
在普通使用者下執行命令完成以下操作:
1.查詢/etc/下的passwd檔案遮蔽錯誤輸出
find /etc -name passwd 2> /dev/null
2.查詢/etc/下的passwd檔案正確輸出儲存到/tmp目錄中的westos.out中,錯誤輸出儲存到/tmp/目錄中的westos.err中
find /etc -name passwd > /tmp/westos.out 2> /tmp/westos.err
3.查詢/etc/下的passwd檔案儲存所有輸出到/tmp目錄中的westos.all中並統計輸入的行數
find /etc -name passwd 2>&1 | tee /tmp/westos.all | wc -l
4.查詢/etc/下的passwd檔案統計輸出行數並顯示輸出內容
[westos@lzy Desktop]$ ps
PID TTY TIME CMD
6162pts/2
00:00:00 bash
6291 pts/2 00:00:00 ps
find /etc -name passwd 2>&1 | tee /dev/pts/2 | wc -l
儲存在字元裝置中,直接在shell中顯示
5.轉換/etc/目錄中passwd檔案中的所有字母為大寫並統計檔案行數
tr 'a-z' 'A-Z' < /etc/passwd | cat -b
tr 'a-z' 'A-Z' < /etc/passwd | tee /dev/pts/2 | wc -l
7.請用指令碼非互動模式編寫檔案westos.file內容為:
hello linux
hello westos
hello linux
westos linux is very nice !!
[root@lzy ~]# vim westos.sh
[root@lzy ~]# sh westos.sh
[root@lzy ~]# cat westos.sh
cat > westos.file << EOF
hello linux
hello westos
hello linux
westos linux is very nice !!
EOF
[root@lzy ~]# cat westos.file
hello linux
hello westos
hello linux
westos linux is very nice !!
echo "hello linux
hello westos
hello linux
westos linux is very nice !!" > westos.file
相關文章
- Shell輸入\輸出重定向
- 輸入輸出
- Linux 下的檔案管理&管理系統中的輸出輸入Linux
- 輸入輸出流
- Python資料的輸入與輸出Python
- AUTOCAD——圖形的輸入與輸出
- python:檔案的輸入與輸出Python
- 06Numpy輸入與輸出
- 資料的輸入輸出
- Java 輸入輸出流Java
- 1.輸入輸出
- 【C++】輸入輸出C++
- 輸入輸出系統
- shell——shell輸入輸出
- 重學java中的輸入輸出流Java
- 專案整合管理主要輸入、工具、輸出
- ACM的Python版輸入輸出ACMPython
- Java —— 標準輸入輸出Java
- python ----輸入輸出 變數Python變數
- Java基礎輸入輸出Java
- C語言輸入輸出C語言
- 03 資料輸入-輸出
- 格式化輸入輸出
- Python輸入和輸出(IO)Python
- C語言之輸入輸出C語言
- python 標準輸入輸出Python
- 常用輸入輸出函式函式
- 排序,檔案輸入輸出排序
- converter設計模式擴充套件,多種輸入輸出與標準輸入輸出的轉化方案設計模式套件
- 詳解Java中的IO輸入輸出流!Java
- 015 Linux 標準輸入輸出、重定向、管道和後臺啟動程式命令Linux
- Java------簡單的輸入/輸出Java
- 1.變數and輸入輸出變數
- 格式化輸入和輸出
- 輸出輸入函式彙總函式
- 瞭解下C# 檔案的輸入與輸出C#
- [轉]重定向輸出
- 輸出重定向 管道