Chinaunix首页 | 论坛 | 博客
  • 博客访问: 79015
  • 博文数量: 41
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 434
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-23 09:31
个人简介

天行健,君子以自强不息;地势坤,君子以厚德载物

文章分类
文章存档

2018年(11)

2017年(30)

我的朋友

分类: LINUX

2017-03-30 16:13:28

一、bash及其特性
    1、shell:外壳
    广义shell包含:1、GUI:Gnome、KDE、Xfce
                   2、CLI:sh,csh,ksh,bash
    进程:在每个进程看来,当前主机上只存在内核和当前进程,进程是程序的副本,进程是程序执行实例。
    2、bash:
        1、支持命令历史、命令补全
        2、支持管道、重定向
        3、支持命令别名
        4、支持命令行编辑
        5、支持命令行展开
        6、支持文件名通配
        7、支持变量
        8、支持编程
    3、命令历史:
        history:
            查看命令历史:history
            -c:清空命令历史
            -d OFFSET[n]:删除指定位置的命令
                例1:history -d 500  #删除第500个历史命令
                例2:history -d 500 3 #删除第500个命令起3个历史命令
            -w:保存命令历史至历史文件(家目录下.bash_history)中
    4、命令历史使用技巧:
        !n:执行命令历史中的第N条命令
            例:root@localhost /]# !44

        !-n:执行命令历史中倒数第N条命令
            例:[root@localhost /]# !-44
        !!:重新执行上一次命令
        !string:执行命令历史中最近一个已指定字符(string)串开头的命令
        !$:引用前一个命令的最后一个参数
        ESC,.:引用前一个命令的最后一个参数
        Alt+.:引用前一个命令的最后一个参数
        
    5、命令别名:
        alias CMDALIAS=‘COMMAND [options] [arguments]’
            例:[root@localhost /]# alias cls=clear
        在shell中定义的别名仅在当前shell生命周期中有效:别名有效范围为当前shell进程
        unalias:撤销别名
            例:[root@localhost /]# unalias cls
        \COMMAND:使用命令本身
    
    6、命令替换:
        $(COMMAND)
        `COMMAND`:(反引号)
        把命令中某个子命令替换为其执行结果的过程
        例1:[root@localhost ~]# echo "The current directory is $(pwd)."
            The current directory is /root.
        例2:[root@localhost ~]# touch ./file-$(date +%F-%H-%M-%S).txt
            [root@localhost ~]# ls
            anaconda-ks.cfg  file-2017-03-30-15-10-30.txt  install.log         sort.test
            Desktop          hello                         install.log.syslog
    7、bash支持的引号:
        ``:命令替换
        "":弱引用,可以实现变量替换
        ‘’:强引用,不完成变量替换
        
    8、文件名通配:globbing
        *:匹配任意长度的任意字符
            例:[root@localhost test]# ls a*
                a  a123  ab123  abc
        ?:匹配任意单个字符
            例:[root@localhost test]# ls ?y*
                xyz  xyz123
        []:匹配指定范围内的任意单个字符
            #man 7 glob  #查看通配符
            [a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-zA-Z]
            [:space:]:空白字符
            [:punct:]:标点符号
            [:lower:]:小写字母
            [:upper:]:大写字母
            [:alpha:]:大小写字母
            [:digit:]:数字
            [:alnum:]:数字和大小写字母
            例:[root@localhost test]# ls [a-zA-Z]*[0-9]
                a123  ab123  x12  xyz123
        [^]:匹配指定范围外的任意单个字符
            例:[root@localhost test]# ls [^0-9]*
                a  a123  ab123  abc  Helloy  x12  xyz  xyz123
        
    9、环境变量:
        PATH:命令搜索路径
        HISTSIZE:命令历史缓冲区大小(默认1000条):
            例:[root@localhost ~]# echo $HISTSIZE
                1000
    
二、命令行编辑:
    光标跳转:
    Ctrl+a:跳到命令行首部
    Ctrl+e:跳到命令行尾
    Ctrl+u:删除光标至命令行首的内容
    Ctrl+k:删除光标至命令行尾的内容
    Ctrl+l:清屏
阅读(1218) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~