zoukankan      html  css  js  c++  java
  • bash的基础特性

    一 、命令别名(alias)

    别名的创建

    ①不带参数时显示当前shell的所有可用的别名,如:

    [root@Centos6-1 ~]# alias
    alias cp='cp -i'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    
    

    ②自定义别名的方法,格式如下:

     alias [-p] [name[=value] ... ]

        -p:Print all defined aliases in a reusable format

    自定义一个命令别名:

    [root@Centos6-1 ~]# alias cdnet='cd /etc/sysconfig/network-scripts'
    [root@Centos6-1 ~]# cdnet
    [root@Centos6-1 network-scripts]# pwd
    /etc/sysconfig/network-scripts
    [root@Centos6-1 network-scripts]# 

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

    1、仅对当前用户有效的: ~/.bashrc

    [root@Centos6-1 ~]# vim ~/.bashrc
    # .bashrc
    
    # User specific aliases and functions
    
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    alias cdnet='cd /etc/sysconfig/network-scripts'
    # Source global definitions
    if [ -f /etc/bashrc ]; then
            . /etc/bashrc
    fi
    [root@Centos6-1 ~]# source .bashrc //想要立即生效需要重读配置文件或者重新ssh,另外 source还可以写成. 如:
    [root@Centos6-1 ~]# . .bashrc

    2、对所有用户有效:/etc/bashrc

      修改方式和上面一样

    别名的撤销

    撤销别名使用 unalias命令

    用法:

      unalias: unalias [-a] name [name ...]

      Options:
        -a remove all alias definitions.

    二、 glob

    bash中用于实现文件名通配的机制,通过通配符实现,通配符有以下几种:

      (1) *  表示任意长度任意字符

        a*b 符合条件的文件名有:aab a123b ab abab....以a开头以b结尾的

     (2)?  表示任意单个字符

        a?b 符合条件的有:a1b abb acb....以a开头中间只能有一个字符以b结尾

        a??b 符合条件的有:a11b a12b ....以a开头中间只能有两个字符以b结尾

     (3)[]  匹配指定范围内的任意单个字符

        a[0-9]b 符合条件的有:a1b,a2b,a3b.....

        a[a-z]b 符合条件的有:aab,acb,adb....注意:这里不区分大小写

        a[A-Z]b 仅匹配中间是大写的字符

     (4)[^] 表示取反

        a[^0-9]b 表示匹配数字以外的字符

        a[^A-Z]b 表示匹配小写字母和数字

        a[^0-9a-z] 表示只匹配特殊字符

    专用字符集合表示法

      注意:下面出现的[]并非上面提到的[],如果要使用下面的专用字符集合还需要再加上一层[],如 [[:digit:]]

      [:digit:]:任意数字,相当于0-9 

      [:lower:]:任意小写字母,例如  ls a[[:lower:]]b

      [:upper:]:任意大写字母

      [:alpha:]:任意大小写字母

      [:alnum:]:任意数字或字母

      [:space:]:所有的空格

      [:punct:]:标点符号

    练习题:

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

    [root@Centos6-1 ~]# ls -d /var/l*[0-9]*[[:lower:]]

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

    [root@Centos6-1 ~]# ls /etc/[0-9]*[^0-9]

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

    [root@Centos6-1 ~]# ls /etc/[^[:alpha:]][[:alpha:]]*

    (4)复制/etc目录下所有以m开头以非数字结尾的文件或目录至/tmp/magedu目录中

    [root@Centos6-1 ~]# ls -d /etc/m*[^0-9]
    /etc/magic  /etc/makedev.d  /etc/mke2fs.conf  /etc/modprobe.d  /etc/motd  /etc/mtab  /etc/my.cnf
    [root@Centos6-1 ~]# cp -a /etc/m*[^0-9] /tmp/magedu

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

    [root@Centos6-1 ~]# ls -d /etc/*.d
    /etc/bash_completion.d  /etc/depmod.d       /etc/ld.so.conf.d  /etc/modprobe.d  /etc/profile.d  /etc/rc2.d  /etc/rc5.d  /etc/rsyslog.d   /etc/sudoers.d
    /etc/chkconfig.d        /etc/dracut.conf.d  /etc/logrotate.d   /etc/pam.d       /etc/rc0.d      /etc/rc3.d  /etc/rc6.d  /etc/rwtab.d     /etc/xinetd.d
    /etc/cron.d             /etc/init.d         /etc/makedev.d     /etc/popt.d      /etc/rc1.d      /etc/rc4.d  /etc/rc.d   /etc/statetab.d  /etc/yum.repos.d
    [root@Centos6-1 ~]# cp -a /etc/*.d /tmp/magedu.com

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

    [root@Centos6-1 ~]# ls /etc/[mnrp]*.conf
    /etc/mke2fs.conf  /etc/nsswitch.conf  /etc/resolv.conf  /etc/rsyslog.conf
    [root@Centos6-1 ~]# cp -a /etc/[mnrp]*.conf /tmp/magedu.com

    三、bash快捷键

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

    Ctrl+a:跳转至命令首部(开始处)

    Ctrl+e:跳转至命令结尾处

    Ctrl+c:取消命令执行

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

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

  • 相关阅读:
    消息中间件(一)MQ详解及四大MQ比较
    SIP协议
    PAT (Basic Level) Practice 1008 数组元素循环右移问题
    LeetCode-Algorithms 1. 两数之和
    PAT (Basic Level) Practice 1040 有几个PAT
    PAT (Basic Level) Practice 1023 组个最小数
    PAT (Basic Level) Practice 1021 个位数统计
    PAT (Basic Level) Practice 1007 素数对猜想
    PAT (Basic Level) Practice 1006 换个格式输出整数
    PAT (Basic Level) Practice 1004 成绩排名
  • 原文地址:https://www.cnblogs.com/sun292393989/p/8997977.html
Copyright © 2011-2022 走看看