bash的基础特性

bash的基本特性

1、命令历史
        history  查看以前所使用的命令
        HISTFILE(环境变量)  指定命令历史的存储文件

    [root@localhost tmp]# echo $HISTFILE --会读取存放历史命令的文件
    /root/.bash_history

        实例:修改环境变量 HISTFILE

    [root@localhost tmp]# export HISTFILE=/root/aa 
    [root@localhost tmp]# echo $HISTFILE
    /root/aa

        HISTSIZE 指定bash进程能显示的条目数 (最多存储多少条命令)
        HISTFILESIZE 存储文件最多能存储的条目数

        实例:设置存储文件最多能存储的条目数为1500,设置bash进程能显示的条目数为1200,如下

        

    [root@localhost tmp]# export HISTSIZE=1200
    [root@localhost tmp]# export HISTFILESIZE=1500
    [root@localhost tmp]# echo $HISTSIZE 
    1200
    [root@localhost tmp]# echo $HISTFILESIZE 
    1500

        HISTCONTROL  设定历史命令的记录模式

    [root@localhost tmp]# echo $HISTCONTROL 
    ignoredups (忽略重复的历史命令)

        注:ignoredups   忽略重复的历史命令
                ignorespace  忽略空白字符开头的历史命令

                ignoreboth   忽略前面两者
        history [选项]
                -d 删除指定的条目下的命令历史
                -c 清楚整个命令历史7等等入
                # (代表倒数多少行命令历史)
                -a 将内存中缓存的命令历史追加到命令的历史文件
                !+#  便捷使用 执行第#行的命令
                !! 双叹号 是执行上一条命令
                !clear(一定要是唯一的字符串,匹配最近一次历史命令)
                !$ 上条命令的最后一段

        注:bash的一个特性,只要不是exit退出,所有的命令缓存都会存储在内存当中,而并不是直接写入硬盘的文件中,使用-a既可将内存中缓存的命令历史追加到命令的历史文件。

2、命令补全
        PATH环境变量,记录应用程序所存放的目录
        两次tab键 补全命令是在PATH下面逐级寻找,如果找不到就会出现 command not found

3、路径补全
        cd /etc/syscon   两次tab补全(就是bash的特性,不是环境变量设置)
4、命令执行状态结果
        echo $?
        0 代表成功(正确) 状态码
        1-255 代表各种不成功(错误)的状态码

5、命令自身的输出结果

    [root@localhost tmp]# ttt
    -bash: ttt: command not found
    [root@localhost tmp]# echo $?
    127

6、bash的基础特性---文件名的通配
    作用:应对对文件名记忆的不够全面
    文件名通配  元字符
            * 匹配任意长度的任意字符(理解为所有字符)

    实例:有如下目录,使用不同的通配方式得出不同的结果。

                1、pad

                2、pd
                3、paad
                4、pa
    结果 (括号为能匹配到的目录编号)  
               *pa* (1,3,4)
                *pa  (4)
                p*a  (4)
                pa*  (1,3,4)         
             匹配任意单个字符
                p?d (1)
                p? (2,4)
           [ ] 匹配指定集合内的任意单个字符
                [0-9] 表示任意单个数值
                [a-z] 表示任意单个小写字母
                [A-Z] 表示任意单个大写字母
                [0-9a-zA-Z] 集合中的任意单个字符 (范围可自定义)
            [^] 匹配集合外的任意单个字符
                [^0-9] 除去0-9以外的任意单个字符
                [^a-z] 除去a-z以外的任意字符
                [^A-Z] 除去A-Z以外的任意字符    
    6个小练习(答案在本文博客的最后,请先思考):

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

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

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

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

    练习5:复制/etc目录下,所有以.d结尾的文件或目录至/tmp/jiuren2目录中;

    练习6:复制/etc目录下,所有以.conf结尾,以m,n,r,p开头的文件或目录至/tmp/jiuren3目录中;

linux 系统管理相关的常用命令(补充)

    ①关机命令
        halt
        init 0
        shutdown -h
    ②重启相关命令
        init 6
        reboot
        shutdown -r
    ③日期相关的命令
        date [选项]
           +%F 显示完整日期    full date; same as %Y-%m-%d
           2015-04-02
           +%D 短格式的日期    date; same as %m/%d/%y
           04/02/15
           +%Y 只显示长格式的年 如2015
           +%y 只显示短格式的年 如15
           +%T 显示时间 时/分/秒
           +%H 只显示小时
           +%M 只显示分钟
           +%S 只显示秒
           +%s 时间戳

            注:时间戳:从unix元年(1970年1月0点0时0分0秒)到现在经历了多少秒
           +%m 月份
           +%d 天
           [root@localhost etc]# date +%s
            1427961551
        cal 日历软件(显示日历命令)

            -1  查看一个月内的日历
            -3  查看三个月内的日历
            -h  关闭高亮显示
            -j   查看罗马日历
            -m 已星期一开头,显示日历
            -s  已星期日开头,显示日历
            -y  查看12个月的日历

答案1:(6个小练习的答案)

[root@localhost tmp]# ls -d /var/l*[0-9]*[a-z]
ls: cannot access /var/l*[0-9]*[a-z]: No such file or directory
[root@localhost tmp]# mkdir -vp /var/like001like
mkdir: created directory `/var/like001like'
[root@localhost tmp]# ls -d /var/l*[0-9]*[a-z]
/var/like001like

答案2:

[root@localhost ~]# ls -d /etc/[0-9]*[^0-9]
ls: cannot access /etc/[0-9]*[^0-9]: No such file or directory
[root@localhost ~]# mkdir -v /etc/123qwerty456asdfg
mkdir: created directory `/etc/123qwerty456asdfg'
[root@localhost ~]# ls -d /etc/[0-9]*[^0-9]
/etc/123qwerty456asdfg

答案3:注:1-3小题中默认没有题中所需目录或文件,自己创建测试既可。

[root@localhost tmp]# ls -d /etc/[^a-zA-Z][a-zA-Z]*
ls: cannot access /etc/[^a-zA-Z][a-zA-Z]*: No such file or directory
[root@localhost tmp]# mkdir -v /etc/8aconf5345wrwer
mkdir: created directory `/etc/8aconf5345wrwer'
[root@localhost tmp]# ls -d /etc/[^a-zA-Z][a-zA-Z]*
/etc/8aconf5345wrwer

答案4:

[root@localhost tmp]# mkdir -v /tmp/jiuren
mkdir: created directory `/tmp/jiuren'
[root@localhost tmp]# cp -r /etc/m*[^0-9] /tmp/jiuren/
[root@localhost tmp]# ls /tmp/jiuren/
magic    mail.rc    man.config  mcelog      mke2fs.conf  motd  my.cnf
mailcap  makedev.d  maven       mime.types  modprobe.d   mtab

答案5:

[root@localhost tmp]# mkdir -v /tmp/jiuren2
mkdir: created directory `/tmp/jiuren2'
[root@localhost tmp]# cp -r /etc/*.d /tmp/jiuren2/
[root@localhost tmp]# ls /tmp/jiuren2/
bash_completion.d  ld.so.conf.d    profile.d  request-key.d
cgconfig.d         logrotate.d     rc0.d      rsyslog.d
chkconfig.d        lsb-release.d   rc1.d      rwtab.d
cron.d             makedev.d       rc2.d      setuptool.d
depmod.d           modprobe.d      rc3.d      statetab.d
dracut.conf.d      oddjobd.conf.d  rc4.d      sudoers.d
event.d            pam.d           rc5.d      xinetd.d
init.d             popt.d          rc6.d      yum.repos.d
latrace.d          prelink.conf.d  rc.d

答案6:

[root@localhost tmp]# mkdir -v /tmp/jiuren3
mkdir: created directory `/tmp/jiuren3'
[root@localhost tmp]# cp -r /etc/[m,n,r,p]*.conf /tmp/jiuren3/
[root@localhost tmp]# ls /tmp/jiuren3/
mke2fs.conf    numad.conf                    request-key.conf
nfsmount.conf  pm-utils-hd-apm-restore.conf  resolv.conf
nsswitch.conf  prelink.conf                  rsyslog.conf
ntp.conf       readahead.conf



你可能感兴趣的:(命令,history,环境变量,bash特性)