標準IO和管道

一.三種I/O設備

  1. 標準輸入(STDIN) -0?? 默認接受來自鍵盤的輸入
  2. 標準輸出(STDOUT) -1? 默認輸出到終端窗口
  3. 標準錯誤(STDERR) -2?? 默認輸出到終端窗口

程序:指令加數據

每個文件打開都有一個文件描述符(fd)

ll /proc/$$/fd????? //可以查看文件的描述符

exec 8<>/data/hosts?? //自己指定一個文件的描述符(數字)

I/O重定向:改變默認位置

ls? >? /dev/pts/5??? 重定向到其他窗口顯示

ls? >? /data/ls.out????? 重定向到指定文件

cmd? 2>? /data/err.log???? 重定向錯誤信息到指定文件

>??? 實現功能相當于覆蓋

>|????? 實現強行覆蓋

>>???? 相當于追加,保留文件原內容

set? -C?? 禁止覆蓋

set?? +C?? 允許覆蓋

ls?? /error? /data?? >f1?? 2>f2??? //實現標準輸出和錯誤各保存在一個文件中

ls?? /error? /data? >all.log?? 2>&1?? //將標準輸出和錯誤都放在同一個文件中

ls?? /error? /data? &>all.log???? 或(ls?? /error? /data?? 2>&1 )? >all.log

多條命令的輸出重定向:例如(ls;pwd)? >? all.log

/dev/null??? 用來吸收消化不想輸出的內容

>>??? 創建空文件(比touch更安全)

>??? 軟鏈接文件??? //清空原文件

<???? 標準輸入重定向

echo redhat |passwd –stdin user???? //實現修改用戶user的口令

cat <f1 >f1??? //將f1 文件清空

 

tr命令:?? 轉換和刪除字符

-c?? 取字符集的補集

-d?? 刪除所有屬于第一字符集的字符

-s???? 將連續重復的字符以單獨一個顯示

-t????? 將第一個字符集對應字符轉化為第二個字符集對應的字符

 

cat?? >f1??? //創建一個空文件

aaaa?? 后回車?? 實現單行重定向

 

使用<<EOF或<<END? 實現多行重定向 (指定結束詞后,文本結束必有結束詞)

 

dos2unix????? //將Windows文件格式轉換為Linux文件格式

unix2dos????? //將linux文件格式轉化為Windows文件格式

 

mail??? 命令:? 發/收郵件

mail? -s? ‘hello’? user???? //給用戶user發郵件標題為hello

mail? -s? ‘hello’? user? <<END??? //可手動輸入多行郵件內容(可引用變量和命令)

mail? -s? ‘hello’? user? <mail.txt?? //將文件內容作為郵件的內容來發送

mail??? 收郵件

 

二.管道:用于連接命令

命令1? |??? 命令2?????? 命令1的標準輸出作為命令2 的標準輸入

hostname | tr ‘a-z’ ‘A-Z’??? ?//輸出大寫的主機名

cat?? mail.txt?? |? mail? -s? ‘hello’? user????? //將文件內容作為郵件的內容來發送

|&???? 可實現將錯誤信息轉化為正確信息傳給下個命令(舊版本不支持)

echo {1..100} | tr ‘ ‘ ‘+’ |bc???? //實現1到100加和(或seq -s + 100 |bc)

 

tar 命令:打包文件

tar –cvf? –? /home? |? tar? -xvf? –???? //打包文件后解包該文件

 

tee?? 重定向到多個目標

-a??? 追加

三.命令補充

mktemp?? xxxx.log??? //創建臨時的文件或目錄(名字隨機)

touch?f$[RANDOM%20]???用這條就行

systemctl enable autofs???? //啟用autofs功能

systemctl? autofs????? //開啟autofs功能后才可以掛載光盤

lsb_release?? -a??? //?? 查看操作系統版本信息(centos6中)

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/94700

(0)
qljqlj
上一篇 2018-04-02 15:07
下一篇 2018-04-02 19:25

相關推薦

  • 正則表達式、linux文件處理三劍客:grep、sed、awk

    基本的正則表達式元字符:默認工作于貪婪模式; 字符匹配: .:匹配任意單個字符; []:匹配指定范圍內的任意單個字符; [^]:匹配范圍外的任意單個字符; [:digit:]數字、[:lower:]小寫字母、[:upper:]大寫字母、[:alpha:]所有字母、[:space:]空白符、[:alnum:]字母數字、[:punct:]標點符號 匹配次數: *…

    Linux筆記 2018-03-28
  • Linux的命令

    Linux的命令機制 命令格式 COMMAND [OPTIONS…] [ARGUMENTS…]選項:用于啟用或關閉命令的某個或某些功能短選項:-c 例如:-l, -h長選項:–word 例如:–all, –human-readable參數:命令的作用對象: 比如文件名和作用名 注意 1. *多個選項…

    Linux筆記 2018-04-01
  • Linux 用戶及權限管理(未完)

    1、查看(登錄)用戶名稱及所啟動的進程 A、使用w命令查看登錄用戶正在使用的進程信息 w命令用于顯示已經登錄系統的用戶的名稱,以及他們正在做的事。該命令所使用的信息來源于/var/run/utmp文件。w命令輸出的信息包括: 用戶名稱 用戶的機器名稱或tty號 遠程主機地址 用戶登錄系統的時間 空閑時間(作用不大) 附加到tty(終端)的進程所用的時間(JC…

    Linux筆記 2018-05-28
  • 運維自動化部署

    CentOS系統啟動流程:bootloader(引導模式)>kernel(內核)>rootfs(根文件系統)>/sbin/init(開機啟動服務) 安裝程序啟動過程:?MBR:isolinux/boot.cat ?stage2: isolinux/isolinux.bin ?配置文件:isolinux/isolinux.cfg每個對應的菜單…

    Linux筆記 2018-06-10
  • 文件查找命令

    文件查找 locate:非實時(并不能反應當前硬盤上是否有該文件,只是從數據庫中提取信息)模糊查找,查找是根據全系統文件數據庫進行的 ?–用的不多 # updatedb ?手動生成文件數據庫 格式:locate KEYWORD -i 不區分大小寫的搜索 -n #只列舉前#個匹配項目 locate conf:搜索名稱或路徑中包含“conf”的文件 …

    2018-07-09
  • fstab、init文件創建,內核啟動管理

    /etc/下的fstab文件和/sbin/下的init文件的創建,內核啟動列表管理簡述

    2018-05-15
欧美性久久久久