码迷,mamicode.com
首页 > 其他好文 > 详细

bash的基础特性

时间:2016-07-07 22:42:25      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:bash

bash的基础特性

1、命令别名(alias)
        通过alias命令实现:
            (1) alias
                显示当前shell进程所有可用的命令别名;
            (2) alias NAME=‘VALUE‘
                定义别名NAME,其相当于执行命令VALUE;

            注意:在命令行中定义的别名,仅对当前shell进程有效;如果想永久有效,要定义在配置文件中;

            [root@master ~]# alias  ssssssss=‘ls /‘
            [root@master ~]# ssssssss 
            bin   data  etc   lib    lost+found  mnt  proc  sbin     srv  tmp  var
            boot  dev   home  lib64  media       opt  root  selinux  sys  usr

仅对当前用户:~/.bashrc

                [root@master ~]# vim .bashrc 
                # .bashrc
                # User specific aliases and functions
                alias rm=‘rm -i‘
                alias cp=‘cp -i‘
                alias mv=‘mv -i‘
                # Source global definitions
                if [ -f /etc/bashrc ]; then
                        . /etc/bashrc
                fi

                
                
 对所有用户有效:/etc/bashrc
 Note: 编辑配置给出的新配置不会立即生效;
                bash进程重新读取配置文件:
                    source /path/to/config_file
                    .  /path/to/config_file          

                source .bashrc

        撤消别名:unalias
            unalias [-a] name [name ...]

        Note: 如果别名同原命令的名称,则如果要执行原命令,可使用"\COMMAND";

2、glob (globbing)
        bash中用于实现文件名“通配”

            通配符:*, ?, []

            (1) *
                任意长度的任意字符
                    a*b:
                        aab, ab, a123b,
                        abc

     [root@master ~]# touch aaaa abc asddsc   acccc
     [root@master ~]# cp a*c test
[root@master ~]# ll test/
total 48
 -rw-r--r-- 1 root root     0 Jul  5 07:24 abc
 -rw-r--r-- 1 root root     0 Jul  5 07:24 acccc
-rw-r--r-- 1 root root     0 Jul  5 07:24 asddsc
-rw-r--r-- 1 root root 41433 May 21  2015 install.log
-rw-r--r-- 1 root root  3422 May 24  2015 WorldCount.jar

            (2) ?
                任意单个字符
                    a?b:
                        aab
                        ab, a12b, abc

                [root@master ~]# ll a*c
                -rw-r--r-- 1 root root 0 Jul  5 07:24 abc
                -rw-r--r-- 1 root root 0 Jul  5 07:24 acccc
                -rw-r--r-- 1 root root 0 Jul  5 07:24 asddsc
                [root@master ~]# cp a?c Music/
                [root@master ~]# ll Music/
                total 0
                -rw-r--r-- 1 root root 0 Jul  5 07:26 abc

                
            (3) []
                匹配指定范围内的任意单个字符
                    [0-9]
                    [a-z]:不区分字符大小写

                    [root@master ~]# ll a*c
                    -rw-r--r-- 1 root root 0 Jul  5 07:28 a2c
                    -rw-r--r-- 1 root root 0 Jul  5 07:24 abc
                    -rw-r--r-- 1 root root 0 Jul  5 07:24 acccc
                    -rw-r--r-- 1 root root 0 Jul  5 07:24 asddsc

                    

                    [root@master ~]# ll a[0-9]c
                    -rw-r--r-- 1 root root 0 Jul  5 07:28 a2c

                    

                    [root@master ~]# ll a[a-z]c
                    -rw-r--r-- 1 root root 0 Jul  5 07:24 abc

                    

                    [root@master ~]# ll a[A-Z]c
                    -rw-r--r-- 1 root root 0 Jul  5 07:24 abc

            (4) [^]
                匹配指定范围外的任意单个字符
                    [^0-9] 除了数字

                    [root@master ~]# ll a*c
                    -rw-r--r-- 1 root root 0 Jul  5 07:28 a2c
                    -rw-r--r-- 1 root root 0 Jul  5 07:24 abc
                    -rw-r--r-- 1 root root 0 Jul  5 07:33 a%c
                    -rw-r--r-- 1 root root 0 Jul  5 07:24 acccc
                    -rw-r--r-- 1 root root 0 Jul  5 07:24 asddsc

                    

                    [root@master ~]# ll a[^0-9]c
                    -rw-r--r-- 1 root root 0 Jul  5 07:24 abc
                    -rw-r--r-- 1 root root 0 Jul  5 07:33 a%c
                    [root@master ~]# ll a[^a-z0-9]c
                    -rw-r--r-- 1 root root 0 Jul  5 07:33 a%c

            专用字符集合:
                [:digit:]:任意数字,相当于0-9
                [:lower:]:任意小写字母

                [root@master ~]# ll a*c
                -rw-r--r-- 1 root root 0 Jul  5 07:28 a2c
                -rw-r--r-- 1 root root 0 Jul  5 07:37 aAc
                -rw-r--r-- 1 root root 0 Jul  5 07:24 abc
                -rw-r--r-- 1 root root 0 Jul  5 07:33 a%c
                -rw-r--r-- 1 root root 0 Jul  5 07:24 acccc
                -rw-r--r-- 1 root root 0 Jul  5 07:24 asddsc

                

                [root@master ~]# ll a[[:lower:]]c
                -rw-r--r-- 1 root root 0 Jul  5 07:24 abc

                
                [:upper:]: 任意大写字母
                [:alpha:]: 任意大小写字母
                [:alnum:]:任意数字或字母
                [:space:]:
                [:punct:]:标点符号

                
                
        练习:
            1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录;

                ls -d /var/l*[0-9]*[[:lower:]]


            2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;

                ls -d /etc/[0-9]*[^0-9]


            3、显示/etc/目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录;

                ls /etc/[^[:alpha:]][[:alpha:]]*

            4、复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/mageedu目录中;

                 cp -a /etc/m*[^0-9] /tmp/mageedu

            5、复制/etc目录下,所有以.d结尾的文件或目录至/tmp/magedu.com目录中;

      cp -a /etc/*.d /tmp/magedu.com

            6、复制/etc目录下,所以有.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/mageedu.com目录中;

                 cp -a /etc/[mnrp]*.conf  /tmp/mageedu.com


    3、bash的快捷键

        Ctrl+l: 清屏,相当于clear命令;

        Ctrl+a:跳转至命令开始处;
        Ctrl+e:跳转至命令结尾处;

        Ctrl+c:取消命令的执行;

        Ctrl+u: 删除命令行首至光村所在处的所有内容;
        Ctrl+k: 删除光标所在处至命令行尾部的所有内容;

总结:写得不好,有错误请指出!谢谢!

本文出自 “梁小明的博客” 博客,请务必保留此出处http://7038006.blog.51cto.com/7028006/1812426

bash的基础特性

标签:bash

原文地址:http://7038006.blog.51cto.com/7028006/1812426

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!