bash的基礎特性 tr tee alias 通配符 輸入輸出重定向

1 、bash的基本特性
        bash的特性是不是都在.bash裏面呢?
        通過alias 顯示當前shell中所有的命令別名
        設置別名 直接alias 名稱=名稱就行
        此設置的別名只在此shell中管用,如果想全局生效的話 需要修改配置文件  本用戶的配置文件在 ~bashrc
        全局用戶的在/etc/bashrc裏面
        修改後不會立即生效的  需要重新進去shell或者是 ./etc/shellrc/
 2 、unalias撤銷別名
    unalias 別名
    unalias -a  會撤銷所有的別名
    3 如果定義了一個命令的別名後  使用COMMAND(定義的別名)

bash的基礎特性 tr tee alias 通配符 輸入輸出重定向

二 glob
bash中用於實現文件名“通配”
通配符有 ? [ ] 三個
代表任意任何個字符
?代表任意一個字符
bash的基礎特性 tr tee alias 通配符 輸入輸出重定向
3 [ ]
匹配指定範圍內的任意字符 中括號表示一個範圍內的字符
這些以前都學過 但是都忘了 一定要做一次LFS
[root@localhost glob]# touch aVb
[root@localhost glob]# ls a[a-z]b
aab abb aVb
[root@localhost glob]# ls a[A-Z]b
abb aVb
[root@localhost glob]#
[0-9]
[a-z]:不區分大小寫 所有的字母都匹配 所以難道就沒法只匹配小寫字母嗎?
[A-Z]:只會匹配大寫字母,
如果:只要特殊字符的?怎樣配匹配呢?
有一個取反的選項^

有一個專用字符表示法:
man glob  我這個centos7 沒有
    3、bash的快捷鍵
            Ctrl +l 清屏  相當於clear
            Ctrl+a  光標移動到最前面
            Ctrl+e  光標移動到坐後面
            Ctrl+u  剪切光標前的所有命令
            Ctrl+k 撿錢光標後面的所有命令
            Ctrl+p  粘貼所剪切的命令
四。。。
        輸入輸入I/O重定向及管道符
        I:讀入數據:input
        O:輸出數據:output
        I/O重定向就是輸入輸出重定向改變輸入輸出位置
        標準輸入:keyborad,  系統默認使用 數字 0 表示
        標準輸出:monitor, 系統默認使用數字 1 表示 
      標準錯誤輸入:monitro 系統默認使用數字2表示
        把本來的標準輸入(鍵盤或者是系統信息)
        輸出重定向:
        >: 覆蓋重定向,會把目標位置文件內容清除掉,如果沒有目標文件會自動創建
        >>:追加重定向:在目標文件已經存在的內容後面追加內容
        覆蓋重定向很危險  所有有set -c :禁止將已有文件的內容覆蓋掉
        這樣只對當前bash生效  想要永久生效需要修改配置文件
        但是:如果非要覆蓋的話 有兩個方法 1、 強制覆蓋 >|      2、關閉 set +c

        以上都是正確的標準 輸出  其實可以使用 1>來重定向的  但是數字1  在此忽略了
        那麼錯誤的標準輸出就是 2>了  這裏的2  不能省略。。
        以上真確的  錯誤的 只能轉職專用 不能用混了 所以很麻煩
        有沒有一種 不管她是正確還是錯誤輸出 都可以使用的?      &>
            cat /etc/passwd > /tmp/zhencque 2> /tmp/err
            這樣還是麻煩 還是兩個文件
            &>  這個是最終的  合併兩個數據流爲一個
                cat /etc/passwd &> /tmp/zhengqueorcuowu

        COMMANO > /tmp/file 2> &1  這樣也行其中的&1是引用了前面第一個文件,也能&2 &3 &4

        **  輸入重定向**    < 小於號
        以前總聽說輸出重定向 第一次聽說輸入重定向,看來還是系統的學習下比較好啊!!
        首先說一個命令 以前沒見過的  tr 具體用法看下圖
            [root@localhost ~]# tr abc 123
         abwer
        12wer
        cccccccc
        33333333
        ni hao
        ni h1o
自動替換  以空格區分前後(只要輸入中有abc三個字母任意個,則會相對應的替換爲123)
輸入重定向,如下圖,可以把/etc/passwd中的小寫abc替換成大寫ABC

bash的基礎特性 tr tee alias 通配符 輸入輸出重定向

    此處生成文檔  << 兩個小於號
    它好像是隻能和cat鏈接使用

bash的基礎特性 tr tee alias 通配符 輸入輸出重定向
也可以重定向到別的文件 例如:
cat >> /tmp/rc.log << EFO

hao a you
EFO
[root@localhost ~]# cat /tmp/rc.log
hao a you
以上值得注意的是 << EFO是關鍵的 結尾的時候也要輸入EFO
當然也可以輸出重定向到其他文件 但是重定向要寫到後面 例如:我想把/etc/passwd文件裏面的abc都替換成123 另存爲到其它的文件
bash的基礎特性 tr tee alias 通配符 輸入輸出重定向
但是怎樣能讓tr把所有的輸出看成一個整體的單詞呢????然後替換文件內的單詞行不行啊?

後期查下???,現在反過頭來看下,要把它看成一個整個的單詞,可以使用前後錨定,利用正則表達式應該可以的...

    tee命令,分兩路輸出  顯示屏上輸出一份  還可以在文檔中保存一份
    例如:
    [root@localhost ~]# echo $PATH | tr 'a-z' 'A-Z' | tee /tmp/tee.txt
    /USR/LOCAL/SBIN:/USR/LOCAL/BIN:/USR/SBIN:/USR/BIN:/ROOT/BIN
    [root@localhost ~]# cat /tmp/tee.txt
    /USR/LOCAL/SBIN:/USR/LOCAL/BIN:/USR/SBIN:/USR/BIN:/ROOT/BIN
    這個用的也挺好的,把tr放在了管道符後面 接受前面的輸出....
    當然  tr還有一個-d選項
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章