標準輸入輸出、重定向及tr命令

標準輸入和標準輸出:shell

類型            設備文件            文件描述編號            默認設備centos

標準輸入       /dev/stdin                0                    鍵盤bash

標準輸出       /dev/stdout               1                   顯示器ide

標準錯誤輸出   /dev/stderr               2                   顯示器翻譯


> file  :標準輸出到文件字符串

2>  file:標準錯誤輸出到文件it

&>  file:正確和錯誤的都輸出到文件io

>>  file:標準輸出追加到文件,不覆蓋文件原內容class

2>/dev/null :將錯誤輸出到「黑洞」
登錄

 

set -C  :禁止將內容覆蓋已有文件,但能夠追加

set +C  :開啓將內容覆蓋已有文件



(cal2007;cal2008)> all.txt

合併多個程序用小括號括起來,中間用分號隔開


tr命令:


     tr命令主要起到「翻譯」的做用。例如:tr [a-z] [A-Z] 就是將全部的小寫字母換成大寫字母。

     tr命令經常使用的參數:

         -d  :刪除全部使用第一個字符集的字符

[root@localhost ~]# tr -d 'abd' 

abcd

c

         -c  :取字符集的補集

[root@localhost ~]# tr -c 'n' 'c'<2.sh

cccccncccccccccccccccccccccccccccccccc


         -s  :把連續重複的字符以單獨一個字符表示

[root@localhost ~]# tr -s 'xab'

xxxxxaaaaabbbbbcccc

xabcccc









相關練習:

一、file1文件的內容爲:」1 2 3 4 5 6 7 8 9 10」 計算出全部數字的總和

    cat file1 | tr ' ' '+' | bc

    echo $[1+2+3+4+5+6+7+8+9+10]

    echo "1+2+3+4+5+6+7+8+9+10" | bc


二、處理字符串「xt.,l 1 jr#!$mn2 c*/fe3 uz4」,只保留其中的數字和空格

     echo "xt.,l 1 jr#!$mn2 c*/fe3 uz4" | tr -d "xt.,ljr#!$mnc*/feuz"


三、將PATH變量每一個目錄顯示在獨立的一行

     echo $PATH | tr ":" "\n"


四、刪除指定文件的空行

     cat /root/1.sh | tr -s "\n"


五、將文件中每一個單詞(字母)顯示在獨立的一行,並沒有空行

     cat /root/1.sh | tr " " "\n" | tr -s "\n"


六、建立用戶gentoo,附加組爲bin和root,默認shell爲/bin/csh,註釋信息爲"Gentoo Distribution"

     useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo


七、建立下面的用戶、組和組成員關係

名字爲admins 的組

用戶natasha,使用admins 做爲附屬組

用戶harry,也使用admins 做爲附屬組

用戶sarah,不可交互登陸系統,且不是admins 的成員,natasha,harry,sarah密碼都是centos

  

  1 #!/bin/bash

  2 groupadd admins

  3 useradd -G admins natasha

  4 useradd -G admins harry

  5 useradd -s /sbin/nologoin sarah

  6 echo "centos" | passwd --stdin natasha

  7 echo "centos" | passwd --stdin harry

  8 echo "centos" | passwd --stdin sarah

相關文章
相關標籤/搜索