bash的特性总结

什么是bash
       shell作为用户与计算机内核交互的接口,是用户与计算机沟通的桥梁,而bash(borne again shell)是众多shell里面最为流行一种,bash作为众多shell里面的一种有着众多的特性,掌握bash的众多特性将会是我们今后学习linux必经之路。
       首先介绍一下bash的特性之一
       命令历史:这个特性是将用户之前执行过的命令保存到缓存当中,通过上下键以及history命令的特殊选项来方便用过顺利完成操作系统功能。键入不带任何选项的:history,bash会把你使用过的命令全部显示出来,那有人就问来,这些命令是存到哪里的,注销后这些命令还有吗?别着急,我们一一来回答,首次登陆系统后用户所键入的命令都是缓存到内存当中的,当该用户注销,这些命令会保存到家目录下的/.bash.history当中。
下面就让我们来看看history的用法:
history [n]:表示是要列出最近的 n 条命令行内容;
history   -c:清空所有命令历史;
history   -a:将目前新增的 history 命令新增入 histfiles 中,若没有加 histfiles ,则默认写入 ~/.bash_history
历史命令使用的窍门
!!:重复前一个命令
!char(字符): 重复前一个以“字符”开头的命令
!num :按照history命令输出中的序号来重复对应命令
!?abc :重复前一个包含abc的命令
!-n: 重复n个命令之前的那个命令
按键组合
1:使用up和down键来上下浏览之前执行的命令
2:键入ctr+r来在命令历史中搜索命令
3:要重新调用前一个命令中的参数:Esc + .(点击Esc键,然后点击.键)
      bash重要特性之二
      命令行补全以及路径补全:
首先看什么是命令行补全,根据内部命令或外部命令各自查找方式,查找以用户指定字符开头命令如果用户指定开头的字符串能唯一标识命令,则按TAB键可以直接补全此命令,否则,按两次TAB键可以显示所有以指定字符串开头的命令;看到这样的解释是不是头都蒙来,别着急,打个比方:就好比有一天老师没拿花名册点名字,突然忘记某个人的全名来,只知道姓什么,只点了一个姓,而刚刚班里就一个人是这个姓,那这个人就直接答到,如果班上有好几个都是这个姓的,那这几个人会同时站出来让你选择你要点的是那个。有个这个特性,再也不用担心某个英文单词记不住,这简直是我这种记忆力不好的人的福音啊,知道来命令行补全,还会担心路径补全吗;
       bash重要特性之三
命令执行状态返回值:该特性是指命令在执行过程中成功与否的状态,由bash自己追踪,如果命令失败bash变量$?会被置为非零值,所以这个特性在脚本编程中非常重要。
       bash重要特性之四
       命令行展开:所谓命令行展开就是“~”:自动展开当前用户的家目录;“~USERNAME”:自动展开指定用户的家目录;有图有真像:

bash重要特性之五
       命令别名和命令引用:
       所谓命令别名其实就是给某个命令取名,当命令别名与命令名称相同时,可以使用\COMMAND来调用命令本身,而非命令别名;
命令别名的方法:alias  ALIAS="COMMAND";对于一些较常用而且命令参数较长的命令,这无疑又是一大福音啊
命令引用可以分为1:强引用使用单引号‘’
                           2:弱引用使用双引号“”
                           3:命令引用使用反引号“     
       bash重要特性之六
       文件名通配:文件名中可以用的通配符
                                                              *   :能匹配任意长度的任意字符;
                                                              ?   :能匹配任意单个字符;
                                                              []  :字符范围匹配指定字符集中的任意单个字符;[a-z]、[0-9]、[a-z0-9]
                                                              [^]:匹配指定字符集合外的任意单个字符,也就是反向;
以下是字符集合表示方式:[:lower:]所以的小写字符;[:upper:]所有大写字母;[:digit:]所有数字;[:alnum:]所有字母和数字;[:punct:]所有标点符号;[:space:]所有空白字符;[:alpha:]所有字母;[^[:lower:]]除小写字母以外的所有字符
       bash重要特性之七
       输入输出重定向以及管道:
       要想弄明白什么是输入输出重定向,首先我们来看什么是程序,通常来说,为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合叫程序,程序是由指令加数据组成,也可以理解为具有一定结构的数据通过指定的算法来实现特定目的或者解决特定问题的,但是我们如何把数据输入进去,把结果呈现出来那,这里就需要提到计算机两个重要部件输入设备和输出设备,而标准的输入设备(stdin)通常是键盘,标准的输出设备(stdout)通常是监视器,而我们这里所说的输入输出重定向,就是要改变默认的输入设备或输出位置;
       首先来看如何使用输出重定向:>   or    >>
COMMAND > NEW_FILE   覆盖输出重定向,会清空NEW_FILE文件上所有的数据然后把刚刚命令的执行结果写入到该文件中;
COMMAND >> NEW_FILE  追加输出重定向,会把命令的执行结果追加写入NEW_FILE这个文件中;
注意:由于命令的执行结果既可能成功,也可能是失败的,而正常输出流和错误输出流是两个不同的输出流,所以还需要知道错误输出重定向
COMMAND  2>  NEW_FILE   覆盖输出重定向,会清空NEW_FILE文件上所有的数据然后把刚刚命令的执行结果写入到该文件中;
COMMAND  2>>  NEW_FILE  追加输出重定向,会把命令的执行结果追加写入NEW_FILE这个文件中;
有人就问了,可不可以把正确输出和错误输出到同一个文件当中那,答案是可以的
COMMAND   &>   NEW_FILE覆盖输出重定向,会清空NEW_FILE文件上所有的数据然后把刚刚命令的执行结果写入到该文件中;
COMMAND   &>>  NEW_FILE  追加输出重定向,会把命令的执行结果追加写入NEW_FILE这个文件中;
输入重定向的方法类似,在这里不再赘述;
会不会还有这样一种情况,我们既想把结果输出到文件当中,有想输出到监视器上哪,这就需要多到输出的命令:tee
使用方法也比较简单:COMMAND   |    tee   /PATH/SOMEFILE
接下来看一下什么是管道,其实从字面意思我们大概也能猜到,就是将上一个命令的执行结果给下一个命令再去执行,具体使用方法:
COMMAND1  |   COMMAND2   |    COMMAND 3   |    …….
         了解和掌握bash的这些特性,将会让我们对使用bash有更深入的认识,同时也会大大提高我们工作的效率。

时间: 2024-10-05 23:19:51

bash的特性总结的相关文章

Linux之bash shell特性

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

bash的特性(一)

一.Shell 说到bash,首先就必须先提一下shell.Shell是什么呢?Shell是一个C语言编写的给用户提供交互的接口程序.用户的大部分操作都是通过shell完成的. 广义上Shell主要分为两类: 1.GUI图形用户界面:主要有KDE.GNOME.XFCE等 2.CLI命令行界面:bash.zsh.fish.sh.csh.tcsh等.各个发行版主要使用bash. 二.bash的特性 (一)命令别名 在linux的使用和管理过程中,将会用到大量的命令,我们可以通过命令别名来避免一些常用

权限管理2 以及bash的特性 快捷键,补全功能以及变量的类型,登录类型,脚本

权限管理: owner          group         other 属主              属组            其它 权限:read   write     execute r           w            x 文件: -r:可以使用文件查看类的命令来显示相关内容 -w:可以使用编辑器修改内容 -x:可以将其发起一个进程 目录: -r:可以使用ls命令查看目录内容的的文件信息 -w:可以创建 删除文件 -x:可以使用ls -l命令查看内容的文件信息,

linux学习之路之bash及其特性

我们知道当我们用鼠标点击,或输入一个命令,系统就玩帮我们完成一个任务,那么当我们点击一个链接时,系统由是如何知道要去完成相应的操作呢?这是因为通过shell来完成的. 那么什么是shell呢? shell就是用户和操作系统之间的一个接口,通过这个接口shell接受来自用户的命令,并调用相应的应用程序来呼叫kernel来处理相应的工作. 在linux系统上面存放着多种类型的shell,这些shell存放在/etc/shells文件里,默认RedHat使用的shell为bash 下面介绍一些bash

谢烟客---------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

5、自学——Linux的学习进度与任务【shell中bash的特性】

shell中bash的特性 shell中bash的特性 bash特性之一:命令行展开   把命令行的给定的一个特殊符号自动替换为别的字符串的机制 目录: 命令:cd [内置命令] 工作目录:当前所处的目录 cd:change directory(切换目录) cd 目标路径(不能是一个文件必须是一个目录) 所有从根起始的都是绝对路径:/文件名 基名:路径最后一个文件的名字  /x/y/z/m/n: 目标路径  /x/y/z/m: 是目录名或者路径名   两个命令: 获取路径的基名:   # bas

bash的特性

bash的特性 Bash (GNU Bourne-Again Shell) 是许多Linux发行版的默认Shell.事实上,还有许多传统UNIX上用的Shell,例如tcsh.csh.ash.bsh.ksh等等,Shell Script大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个Shell Script通常可以在很多种Shell上使用 bash是大多数Linux系统以及Mac OS X默认的shell,它能运行于大多数类Unix风格的操作系统之上,甚至

bash及其特性笔记

bash及其特性 shell: 外壳 GUI: Gnome,KDE,Xfce CLI: sh, csh, ksb, bash, tcsh, ksh, zch 程序: 进程 允许同一个用户登陆多次,互不相干,进程独立 进程: 在每个进程看来,当前主机上只存在内核和当前进程 进程是程序的副本,进程是程序执行的实例 用户工作环境: # $ shell, 子shell bash: 1. 命令历史 2. 管道.重定向 3. 命令别名 4. 命令行编辑 5. 命令行展开 6. 文件名通配 7. 变量 8.