bash基础特性(二)之命令别名,IO重定向,管道

命令别名alias

别名通俗地说,叫花名,当我们常用的命令,要是输入太长,或经常要进入的目录,可以用一个别名来定义它们,定义别名时尽量不要和已有命令名相同。这样可以提高输入速度和工作效率。
定义别名格式:alias 别名=’原命令 参数’ (要是没空格,可以不用引号)
例如 :

我把一个很长的网卡文件路径起个名为eth,下次我要对它编辑直接输入eth回车,就可以打开了。
这样的定义方法之对当前shell进程有效,要是退出系统再登入就没有,要让定义的别名永久生效可以这样做。更改配置文件~/.bashrc或/etc/bashrc,把定义好的别名追加进入文件里面即可。两者的区别,前者是针对单用户,后者针对全局用户
撤销别名:~]# unalias NAME

globbing文件名通配(整体文件名匹配,而非部分)

1.星号 “*”匹配任意长度的任意字符

例如

2. ?:匹配任意单个字符

例如

3. 中括号 []:匹配指定范围内的任意单个字符

4. [^]:匹配指定范围外的任意单个字符

综合实例

IO重定向及管道

我们都知道在计算机领域里面程序由 指令+数据 组成,一个程序不会从头到尾运行了一次就结束,它会产生IO。什么是IO呢?它在计算机领域指的是信息输入Input和输出Output。
IO重定向的意思:就是将系统原本默认的输入输出的路径重新定向到其他文件。
在linux中可用于输入的设备:文件(linux一切皆文件)
键盘设备、文件系统上的常规文件、网卡等;
可用于输出的设备:文件(linux一切皆文件)
显示器、文件系统上的常规文件、网卡等;

程序的数据流有三种
1.输入的数据流;<– 标准输入(stdin),键盘;
2.输出的数据流:–> 标准输出(stdout),显示器;
3.错误输出流: –> 错误输出(stderr),显示器;
什么是数据流呢?通俗地说就是动态的信息,我们常说的信息本质就是数据。
输入流可从键盘或文件中获得数据,输出流可向显示器、打印机或文件中传输数据。
对应的标准输入设备,标准输出设备,错误输出设备都有其对应的fd: file descriptor,文件描述符
标准输入:0
标准输出:1
错误输出:2

IO重定向:

合并正常输出流和错误输出流:
(1) &>, &>> 不管命令对错都想记录那么可以使用这格式实现。

不管前面是追加还是覆盖后面均为2>&1。
(2) COMMAND > /path/to/somefile 2>&1
COMMAND >> /path/to/somefile 2>&1

特殊设备:/dev/null 也叫空设备,通常用于丢弃不需要的输出流。用于丢弃一切写入其中的数据。
输出重定向的对象可以是各种文件,但不能将其定向至命令的输入

输入重定向:<

tr命令: 转换字符。tr 命令从标准输入删除或替换字符,并将结果写到标准输出。

tr [OPTION]… SET1 [SET2]
把输入的数据当中的字符,凡是在SET1定义范围内出现的,通通对位转换为SET2出现的字符

1:
tr SET1 SET2 < /PATH/FROM/SOMEFILE

2:
tr -d SET1 < /PATH/FROM/SOMEFILE

注意:不修改原文件
3:
Here Document:<<
cat << EOF

cat > /PATH/TO/SOMEFILE << EOF

管道:连接程序,实现将前一个命令的输出直接定向后一个程序当作输入数据流,数据经过几道命令加工后得到我们想要的输出格式。
COMMAND1 | COMMAND2 | COMMAND3 | …
例如:

tee命令:tee的功能通常是用管道,让它不但能在屏幕输出,而且也能够将它储存在档案中。简单的说就是把数据重定向到给定文件和屏幕上。
选项
-a:追加到目标文件,不覆盖
-i:忽略中断

COMMAND | tee /PATH/TO/SOMEFILE
例如

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87548

发表评论

登录后才能评论

评论列表(1条)

  • 马哥教育
    马哥教育 2017-10-12 19:18

    思路清晰,继续加油。

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班