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选项

猜你喜欢

转载自blog.51cto.com/12529218/2285383