標準輸入和標準輸出: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