U11认识与学习bash

来源:互联网 发布:c 编程分解质因数 编辑:程序博客网 时间:2024/04/30 04:39

1.使用命令clear来清除界面.

2.命令别名设置alias和unalias:

      例如:  alias lm='ls -l | more'

           查看当前的别名设置有哪些:  alias

           unalias lm  取消这个lm的别名设置

3.历史命令:history

    例如:  history  查看所有的执行过的历史命令

         history 5  查看最新执行的5条历史命令

         !66  执行历史命令中第66条命令

         !!  执行上一条命令

         !al  执行最近一次以al开头的历史命令

4.  命令1;命令2;命令3    顺序执行这些命令

5.要做到前一个命令是否成功执行与后一个命令是否要执行有关,就要使用  && 和 || 

  例如: 使用ls查阅目录/tmp/abc是否存在,若存在则用touch创建/tmp/abc/hehe:  ls /tmp/abc && touch /tmp/abc/hehe

      测试/tmp/abc是否存在,若不存在则予以创建,若存在就不做任何事情:  ls /tmp/abc || mkdir /tmp/abc

      我不清楚/tmp/abc是否存在,但就是要创建/tmp/abc/hehe文件:  ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe

      如果存在就显示"存在",否则显示:不存在":  ls /tmp/vbirding && echo "exist" || echo "not exist"

6.管道命令 | 仅能处理经由前面一个命令传来的正确信息,也就是standard output的信息,对于standard error并没有直接处理能力.这个命令必须能够接收standard input的数据才行,例如less,more,head,tail等都是可以接收standard input的管道命令.而ls,cp,mv等就不是管道命令.对于standard error output会直接忽略.

7.  将last当中有出现root的那一行取出来:  last | grep 'root'

   只要没有'root'就取出来:  last | grep -v 'root'

   用last在显示的登录者信息中仅留下大名:  last | cut -d ' ' -f 1      注明:-d之后跟分隔符,-f之后跟取出第几段之意

   个人帐号都记录在/etc/passwd下,请将帐号进行排序:  cat /etc/passwd | sort

   统计/etc/man.config中有多少字,行,字符数:  cat /etc/man.config | wc

   将last的输出存一份到last.list中,并将第一列的用户名显示在屏幕上:  last | tee last.list | cut -d " " -f 1

   tar -cvf - /home | tar -xvf -      第一个-表示:打包数据传送到stdout中,第二个-表示:取用前一个命令的stdout

8.我们怎么知道某个命令是来自外部命令还是内置在bash中的呢或是alias定的呢?利用type这个命令就可以查看:

        type 命令名

9.用env查看目前shell环境下所有环境变量与其内容.    用set查看所有变量(包含环境变量和自定义变量)  locale查看支持的语系

10.bash的欢迎信息的修改在/etc/issue,具体看P320有点意思.看p321的例题很清楚.

11.让用户有键盘输入内容,将该内容变成名为atest的变量:  read atest  接下来用户自己输入  echo $atest看一下结果

            看这里:var[0]="hello"

                var[2]="big"

                var[3]="dog"

                echo "${var[0]},${var[2]},${var[3]}"

    对变量的操作在第三部分的:  11.2,请详见P304~.

0 0