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 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
后期查下???,现在反过头来看下,要把它看成一个整个的单词,可以使用前后锚定,利用正则表达式应该可以的...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选项 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |