Linux之bash特性

什么是shell?
字面意思:壳,充当人机交互的翻译官,当用户输入一条命令,shell就会解析。shell位于操作系统外层,负责与用户交互。

shell类型:可以查看/etc/shells文件,bash shell作为系统的默认shell,比较流行,bash有众多特性。
查看系统当前shell:#echo $SHELL

  • 命令历史记录
  • 命令/目录补全功能
  • 命令行展开
  • 命令的执行结果
  • 快捷键
  • glob通配符
  • 多命令执行

  • 命令历史记录
    shell进程会将保存此前用户提交执行过的命令,保存在用户家目录:~/.bash_history
    查看:#history
    可以通过修改环境变量实现history的配置:
    HISTSIZE:shell进程保存的历史条数,默认1000
    HISTFILE:保存数据的文件

    • 用法:
      history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
      -c:清空历史
      -d offset:删除指定命令历史
      -r:从文件读取命令历史至历史列表中;
      -w:把历史列表中的命令追加至历史文件中
      n:显示历史的第几条命令
    • 调用命令历史列表中的命令:
      !#:再一次执行历史列表中的第#条命令;
      !!:再一次执行上一条命令;
      !STRING:再一次执行命令历史列表中最近一个以STRING开头的命令;
    • 调用上一条命令的最后一个参数
      快捷键:esc,. #先按ESC键再按.号键
      特殊字符: !$
  • 命令/目录补全功能
    在mini系统安装,参数不能补齐,需要安装一个包:bash-completion
    • 命令补齐:Tab键补齐
      命令查找机制: 查找内部命令--> 根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;
    • 路径补齐:
      在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件:
      tab:如果是唯一标识,则直接补全,否则,再按一次tab会给出列表供选择
  • 命令行展开
    ~:自动展开为用户的家目录,或指定的用户的家目录;
    {}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
  • 命令的执行结果
    判断命令的结果是否执行成功,通过返回状态码判断,命令执行完后,状态码保存在bash的特殊变量中:$?
    0:表示成功
    1~255:表示失败
  • 快捷键
    Ctrl+a:跳转至命令行行首  ==home键
    Ctrl+e:跳转至命令行行尾 ==end键
    Ctrl+u:删除行首至光标所在处之间的所有字符;
    Ctrl+k:删除光标所在处至行尾的所有字符;
    Ctrl+l:清屏,相当于clear
    Ctrl+w:在光标处起往前删除一个单词
    Ctrl+<-|->:Ctrl加左右键快速往前完后移动光标
  • glob通配符
匹配模式:元字符
            *:匹配任意长度的任意字符
                pa*, *pa*, *pa, *p*a*
                    pa, paa, passwd
            ?:匹配任意单个字符
                pa?, ??pa, p?a, p?a?
                    pa, paa, passwd
            []:匹配指定范围内的任意单个字符
                    有几种特殊格式:
                    [a-z], [A-Z], [0-9], [a-z0-9]
                    [[:upper:]]:所有大写字母
                    [[:lower:]]:所有小写字母
                    [[:alpha:]]:所有字母
                    [[:digit:]]:所有数字
                    [[:alnum:]]:所有的字母和数字
                    [[:space:]]:所有空白字符
                    [[:punct:]]:所有标点符号
                    例如:匹配pa##的文件,2开头的三位数
                    pa[0-9][0-9], 2[0-9][0-9]
            [^]:匹配指定范围外的任意单个字符
                [^[:upper:]]
                [^0-9]
                [^[:alnum:]]
  • 多命令执行
    COMMAND1; COMMAND2; COMMAND3; ...
    逻辑关系:
    与: &&
    或: ||
    非: !
COMMAND1 && COMMAND2
COMMAND1为“假”,则COMMAND2不会再执行;
否则,COMMAND1为“真”,则COMMAND2必须执行;

COMMAND1 || COMMAND2
COMMAND1为“真”,则COMMAND2不会再执行;
否则,COMMAND1为“假”,则COMMAND2必须执行;

! COMMAND:COMMAND为真则为假,反之亦然。

原文地址:http://blog.51cto.com/12580678/2337274

时间: 2024-11-13 08:21:04

Linux之bash特性的相关文章

linux下bash特性和基础管理类命令(一)

bash 的基础特性 1.glob 通配字符         *多个任意字符         ?一个任意字符        []匹配指定范围内的任意单个字符       [^]匹配范围外的任意单个字符      [:lower:]小写字母   #中括号为字符集的一部分,使用时还要加中括号      [:upper:]大写字母     [:alnum:]所有字母     [:digit:]数字     [:space:]空白字符     [:punct:]标点符号 2.组合键     Ctrl+a

4 Linux之bash特性

命令别名和命令调用: alias ALIAS='COMMAND' 引用带选项的时候需要加引号 只对当前bash有效 unalias ALIAS 取消别名 \COMMAND:使用自身的命令,而非别名中定义的命令 '':强引用 即使内部有变量也看作字符串或其他 "":弱引用 在脚本中可使用$VARIABLE ``:反引号,在脚本中可添加其他命令返回执行结果 通配符: *:任意字符出现任意多次 ?:匹配任意单个字符 []:匹配指定字符集合中的任意单个字符或字符集 ^:取符合字符集合的反向 [

LINUX的bash的一些特性

1.bash的特性 在LINUX进行SHELL编程是很常见的一项任务,熟悉BASH的特性,是十分必要的. 昨天花了一天时间,对BASH的特性进行了学习总结,发现过去的自己,对LINUX的BASH特性认识的很少,收获很多. 2.BASH支持命令行编辑 一直以来,和LINUX的COMMAND LINE打交道,只知道clear清屏,用退格键进行删除.其实,BASH支持命令行进行高效,快速的编辑.一些常用的,总结如下: 序号 命令快捷键 说明 1 ctrl+a 表示跳到命令行首 2 ctrl+e 表示跳

Linux之bash shell特性

一.shell是什么? Shell 本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 如图shell是一个应用程序,是用户管理应用程序的一个接口. 二.广义上shell的分类 GUI:图形用户界面 KDE,GNOME,XFCE CLI:

Linux总结之Bash特性

Linux总结之Bash特性 命令历史: 使用命令:history 环境变量: HISTSIZE:命令历史缓冲区中记录的条数,默认为1000: HISTFILE:记录当前登录用户在logout时历史命令存放文件: HISTFILESIZE:命令历史文件记录历史的条数,默认为1000: 操作命令历史: history d OFFSET删除指定行的命令历史: history c 清空命令历史缓冲区中的命令: history # 显示历史中最近的#条命令: history a 手动追加当前会话缓冲区中

谢烟客---------Linux之Bash基础特性条件测试&&自定义退出状态码(6)

条件测试 判断某需求是否满足,需要由测试机制来实现. 根据命令的执行状态结果,表达不同的测试条件 1.根据id命令的执行状态结果,判断用户是否存在 [[email protected] ~]# id root uid=0(root) gid=0(root) groups=0(root) [[email protected] ~]# echo $? 0 [[email protected] ~]# id help id: help: no such user [[email protected] 

Linux之bash的特性

bash的特性(1)常用组合快捷键:,ctrl+d Ctrl+a: 跳转至命令行首 Ctrl+e: 跳转至命令行尾 Ctrl+u: 删除命令行首至当前光标所在处之前的所有内容 Ctrl+k: 删除当前光标所在处至命令行尾的所有内容 Ctrl+l: 清屏 Ctrl+c: 中止或取消 Ctrl+z: 把当命令送至后台 Ctrl+d:回到登陆用户登陆界面 (2)命令补全:命令的补齐,参数中目录或文件的补齐 当输入命令的部分是唯一的时候按TAB键就可以不全剩下的部分 当输入命令的部分不是唯一的,按两次T

Linux中bash中的几种基础特性汇总!

首先需要知道什么是shell?如果将Linux内核当作一个地球的核心,那么shell就是地壳.shell本身也是一个应用程序,为我们提供了使用系统的接口.shell程序有很多种,目前主流发行版大多数默认使用bash,其次还有sh,tcsh,csh,fish等,其程序存储在/etc/shells目录下. 由于目前最常用的bash,所以就以bash为例来说一说bash的基础特性,偷偷说一句,其实我也是个新手,其他的shell并未接触,不敢轻易去说,当然本文中难免有错误,还请各位不吝赐教,让大家共同进

《鸟哥的Linux私房菜》学习笔记(2)——Bash特性

bash及其特性: 离用户最近的程序是shell,shell 是外壳的意思,本身也是一种可执行程序.广义上的shell包含两类GUI和CLI. GUI:Gnome,KDE,Xface CLI:sh,csh,ksh,bash,tcsh,zsh 当有多个用户登陆的时候,会有多个进程,进程之间彼此互不相干,因为对于每个进程来说,它只认为当前主机上只有自己和内核存在.但是只有一个shell程序.linux允许一个用户账号登陆多次 . 进程是程序的副本,进程是程序执行的实例,是有生命周期的,由内核进行管理