加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 23:26:06 所属栏目:安全 来源:网络整理
导读:1 、bash的基本特性 bash的特性是不是都在.bash里面呢? 通过alias 显示当前shell中所有的命令别名 设置别名 直接alias 名称=名称就行 此设置的别名只在此shell中管用,如果想全局生效的话 需要修改配置文件 本用户的配置文件在 ~bashrc 全局用户的在/etc/ba
1 、bash的基本特性 bash的特性是不是都在.bash里面呢? 通过alias 显示当前shell中所有的命令别名 设置别名 直接alias 名称=名称就行 此设置的别名只在此shell中管用,如果想全局生效的话 需要修改配置文件 本用户的配置文件在 ~bashrc 全局用户的在/etc/bashrc里面 修改后不会立即生效的 需要重新进去shell或者是 ./etc/shellrc/ 2 、unalias撤销别名 unalias 别名 unalias -a 会撤销所有的别名 3 如果定义了一个命令的别名后 使用COMMAND(定义的别名)

二 glob
bash中用于实现文件名“通配”
通配符有 ? [ ] 三个
代表任意任何个字符
?代表任意一个字符


3 [ ]
匹配指定范围内的任意字符 中括号表示一个范围内的字符
这些以前都学过 但是都忘了 一定要做一次LFS
[[email?protected] glob]# touch aVb
[[email?protected] glob]# ls a[a-z]b
aab abb aVb
[[email?protected] glob]# ls a[A-Z]b
abb aVb
[[email?protected] 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 具体用法看下图
            [[email?protected] ~]# tr abc 123
         abwer
        12wer
        cccccccc
        33333333
        ni hao
        ni h1o
自动替换  以空格区分前后(只要输入中有abc三个字母任意个,则会相对应的替换为123)
输入重定向,如下图,可以把/etc/passwd中的小写abc替换成大写ABC

此处生成文档  << 两个小于号
    它好像是只能和cat链接使用


也可以重定向到别的文件 例如:
cat >> /tmp/rc.log << EFO

hao a you
EFO
[[email?protected] ~]# cat /tmp/rc.log
hao a you
以上值得注意的是 << EFO是关键的 结尾的时候也要输入EFO
当然也可以输出重定向到其他文件 但是重定向要写到后面 例如:我想把/etc/passwd文件里面的abc都替换成123 另存为到其它的文件


但是怎样能让tr把所有的输出看成一个整体的单词呢????然后替换文件内的单词行不行啊?

后期查下???,现在反过头来看下,要把它看成一个整个的单词,可以使用前后锚定,利用正则表达式应该可以的...

tee命令,分两路输出  显示屏上输出一份  还可以在文档中保存一份
    例如:
    [[email?protected] ~]# echo $PATH | tr ‘a-z‘ ‘A-Z‘ | tee /tmp/tee.txt
    /USR/LOCAL/SBIN:/USR/LOCAL/BIN:/USR/SBIN:/USR/BIN:/ROOT/BIN
    [[email?protected] ~]# cat /tmp/tee.txt
    /USR/LOCAL/SBIN:/USR/LOCAL/BIN:/USR/SBIN:/USR/BIN:/ROOT/BIN
    这个用的也挺好的,把tr放在了管道符后面 接受前面的输出....
    当然  tr还有一个-d选项

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读