8.1-用戶和組(命令篇)

1、標準輸入輸出

我們知道,執行一個shell命令行時通常會自動打開三個標準文件,
    即標準輸入文件(stdin),通常對應終端的鍵盤;
    標準輸出文件(stdout)
    標準錯誤輸出文件(stderr),這兩個文件都對應終端的屏幕。
進程將從標準輸入文件中得到輸入數據,將正常輸出數據輸出到標準輸出文件,而將錯誤信息送到標準錯誤文件中。
    
>默認為標準輸出重定向,與 1>相同
2>&1意思是把 標準錯誤輸出 重定向到 標準輸出.
&>file意思是把 標準輸出 和 標準錯誤輸出 都重定向到文件file中
2>&1 > file 把錯誤輸出定向到標準輸出(此時標準輸出為終端,所以輸出到終端), 標準輸出定位到文件
> file 2>&1 把標準輸出定位到文件,錯誤輸出到標準輸出(此時標準輸出指向文件,所以輸出到文件)

():合并多個程序的STDOUT
( cal 2007 ; cal 2008 ) > all.txt

2、tr命令

tr  轉換和刪除字符
? tr [OPTION]... SET1 [SET2]
? 選項:
        [root@localhost ~]# tr ‘a-z’ ‘A-Z’< /etc/issue
        CENTOS RELEASE 6.8 (FINAL)
        KERNEL \R ON AN \M

-c或--complerment:取字符集的補集
-d或--delete:刪除所有屬于第一字符集的字符
        [root@localhost ~]# echo "0123asdf..**-" |tr -cd '[0-9]'
        0123
-s或--squeeze-repeats:把連續重復的字符以單獨一個字符表示
-t或--truncate-set1:將第一個字符集對應字符轉化為第二字符集對應的字符

3、此處文檔(Here documents)

用法:1、多行傳遞文本
[root@localhost ~]# cat << EOF
> nihao
> hello
> EOF
nihao
hello
EOF為標識符字符,可隨意寫。
用法:2、傳遞參數給需要參數的腳本或程序
vi $1 <<CLOUD
 i                  #    進入vim編輯模式
 This is line 1
 This is line 2
^[                  #    ^[ 一個特殊轉義符用于返回命令行模式。寫腳本時按ctrl+v再按<Esc>就能自動打出這個字符。
ZZ                  #    保存退出vim
CLOUD               #    結束標識符

 

4、管道

管道命令 操作符是:| ,它只能處理經由前面一個指令傳出的正確輸出信息,對錯誤信息信息沒有直接處理能力。然后,傳遞給下一個命令,作為標準的輸入。

“錯誤輸出”默認不能通過管道轉發,可利用2>&1 或 |& 實現
[root@localhost ~]# cat /e |& tr 'a-z' 'A-Z'
CAT: /E: 沒有那個文件或目錄

#set -C :禁止覆蓋輸出重定向至已存在文件,僅對當前shell有效
      >|:強制覆蓋輸出
#set +C:關閉上述特性

5、重定向到多個目標:tee命令

[root@localhost ~]# ls /root/ |tee a.txt|tr 'a-z' 'A-Z'
ANACONDA-KS.CFG
INSTALL.LOG
INSTALL.LOG.SYSLOG
公共的
模板
視頻
圖片
[root@localhost ~]# cat a.txt
anaconda-ks.cfg
install.log
install.log.syslog
公共的
模板
視頻
圖片

把命令1的STDOUT保存在文件名中,然后管道輸入給命令2使用

-a:追加至文件而非覆蓋



用戶和組

用戶和組.png





原創文章,作者:M20-1--孔祥文,如若轉載,請注明出處:http://www.www58058.com/27275

(0)
M20-1--孔祥文M20-1--孔祥文
上一篇 2016-08-04 14:41
下一篇 2016-08-04 14:42

相關推薦

  • 新鮮出爐的一篇好PPT,MySQL Optimizer團隊力作

    新鮮出爐的一篇好PPT,MySQL Optimizer團隊Senior Principal Software Engineer ?ystein同學親自操刀完成的《How to Analyze and Tune MySQL Queries for Better Performance》內容值得期待,有實現分析,有實戰用例。有需要的朋友可以點擊下載! 下載地址:…

    Linux干貨 2015-02-27
  • 0809linux基礎小記(sed和vim用法)

    sed  [options] ‘scripts’ inputfile -n: 不輸出模式空間內容的自動打印 -e: 多點編輯 -f:從指定文件中讀取編輯腳本 -i:原處編輯 scripts: ’地址命令’ 地址定界: (1)  不給地址:對全文進行處理 (2)  單地址: #:  指定的行 例: sed '2…

    Linux干貨 2016-08-11
  • Linux文件及目錄管理

    Linux 文件管理 1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示 目錄管理類命令:mkdir,rmdir mkdir [OPTION]… DIRECTORY… -p:自動按需創建父目錄; -v顯示詳細過程; -m MODE直接給定權限; rmdir 移除空目錄 rmdir&nbs…

    Linux干貨 2016-10-09
  • 馬哥linux 0728作業

    1,軟鏈接和硬鏈接的區別 硬鏈接有以下特性 1)文件有相同的 inode 及 data block; 2)只能對已存在的文件進行創建; 3)不能交叉文件系統進行硬鏈接的創建; 4)不能對目錄進行創建,只可對文件創建; 5)刪除一個硬鏈接文件并不影響其他有相同 inode 號的文件。 而軟鏈接有一下特性 1)軟鏈接有自己的文件屬性及權限等; 2)可對不存在的文…

    Linux干貨 2016-08-04
  • 計算機組成及Linux基礎

    第1題:描述計算機的組成及功能 1.1計算機的組成       計算機是有 運算器,控制器,存儲器,輸入設備和輸出設備組成計算機 1.2計算機各部件功能 運算器 對數據進行算術運算,邏輯運算和對數據進行加工處理 存儲器 存儲程序,數據和各種信號,命令等信息,并在需要時提供這些信息 控制器 是整個計算機的中樞神…

    Linux干貨 2017-07-02
  • 分區工具fdisk和gdisk、同步分區表(到內存)

    fdisk  創建MBR分區 gdisk  創建GPT分區 parted  高級分區操作(創建、復制、調整大小等)  centos7:手動創建分區20g,30g,40g(易區分) lsblk cat  /proc/partitions ls  -l  /dev/sd* 以上三個命令是查看內…

    2017-06-15
欧美性久久久久