Bash基础

今天来学习一个Bash命令,关于Bash是什么就不多说了,可以百科,这里主要是就其使用进行学习:

通配符:

下面对其不同的通配符进行一一学习:

  这个比较简单,跟SQL中的通配符的意义一样:

  

  

 

   

 

  

 

  

说明:以上两种匹配方式有一定区别:前者是匹配的连续范围,而后者是指定的字符【可以不连续】

 

  

 

   

输入输出重定向:

输出重定向:对于ls命令,我们知道会将其内容输出到屏幕上,而输出重定向的意义就在于可以将ls的内容输出到文件中:

    

 

    

如果继续向已有的test文件中重定向呢,那test的内容是否会被新重定向的内容给覆盖呢?

    

接下来,就是追加的方式重定向同一文件:

    

    

接下来学习一个错误重定向,啥叫错误重定向呢,直接看下面的例子就明白了:

    

而如果直接用>重定向呢?这种情况下还会重定向文件么?答案是否,如下:

    

要想要标准输出内容和错语输出内容同时重定到一个文件中,怎么办呢?采用&既可,这个就不详术了:

    

输入重定向:对于wc(单词统记命令,对于这个命令,http://www.cnblogs.com/webor2006/p/3404741.html有介绍),标准统计的是屏幕输入的内容,而如果想统计某个文件呢,则就会用到输入重定向了:

    

 

下面来区分一下这种情况:

    

管道:

先简单看一下定义:

将一个程序的标准输出写到一个文件中去,再将这个文件作为另一个程序的输入。管道要解决的就是不需要临时文件就能将两条命令结合在一起。如:ls /usr/bin | wc -w

下面具体看下例子:

 

实际上一条命令上可以有多个管道,关于这个,之后会再仔细学习,先用一个例子说明下:

这时从里面进行筛选:

这时,还想从中筛选出grep相关的进程,这时就又得再加上一根管道了,这就是多管道了:

体会一下既可!!

后台作业:

要想理解它的概念,先看一下与它对应的前台作业流程

先不解释这个图的流程,举一个前台作业的命令的现象,就是wc

当用户输入内容完毕时,才能唤醒shell以便输入下一个命令:

再说明一下上面的流程图,也就是前台作业的命令是需要完成一个命令之后,才能进行下一个命令的输入,有点类似于线程中同步机制

接下来,怎么让wc变为后台作业呢?如下:

 

以上是将前台作业的命令变为后台作业,也可以将后台作业的变为前台作业,如下:

如果相终止该前台作业的命令,可以按ctrl+z取消:

 

后台作业的流程图如下,类似于线程中的异步机制:

历史记录:

 

bash在送入命令时,会将这些命令保存在历史表里,可以用history命令查看历史表。
对于历史记录列表,它是存在哪呢?
每个历史记录都有一个ID,可以直接通过这个ID来执行这些历史命令,如下:
当然,通常情况下想执行最近执行过的命令,通过上下方向键就可以了,但如果想执行很久的历史命令的话,上面的方式还是可以派得上用场的。

 

 

别名:

 

如果命令太长或者不符合用户的习惯,那么为它指定一个别名是不错的办法。
如果我们想将clear命令简写为cls,那么如何使用别名来做呢,请看下面:
 
这时再敲cls,就生效了:
查看当前环境中的别名:alias
 
但是,如果我再开一个终端,这时这个命令还有效么?
如果需要一直在当前用户多个终端下使用别名,,可以在.bashrc文件中配置别名,查看一下这个文件:
 
重新加载一个这个文件,让配置生效:
这时候,再新开终端中执行,就可以生效了。
现在解决当前用户别名生效的问题了,但是在多用户情况下,也能生效么?这时用另外一用户登录,这用户是root用户,切换为文本登录方式:
那怎么解决多用户的问题呢?这时需要将命令加入到全局配置文件中-----/etc/profile
这时保存,重启一下,这时再登录root用户时,就可以生效了:
 
好了,今天学习内容到这为止,下回继续!!

 

posted on 2013-11-10 09:12  cexo  阅读(218)  评论(0)    收藏  举报

导航