bash的常见用法

Shell俗称壳(用来区别于核),是指提供使用者使用界面的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

由于早年的Unix年代,发展者众,所以由于shell依据发展者的不同就有许多的版本,例如常听到的Bourne  SHellsh)、在Sun 里头默认的C SHell、商业上常用的K   SHell , 还有TCSH等等,每一种Shell都各有其特点。至于Linux使用的这一种版本就称为“Bourne  Again  SHell(简称 bash,这个ShellBourne Shell 的增强版本,也是基准于 GNU的架构下发展出来的。

一、bash基本介绍

1.1 bash 的优点:

  1. 命令编修能力history):只要在命令行按“上下键”就可以找到前/后一个输入的指令,默认的指令记忆功能可以到达 1000 个。
  2. 命令与文件补全功能:使用 [tab] 按键的时机依据 [tab]接在指令后或参数后而有所不同。主要有以下几种情形:[Tab] 接在一串指令的第一个字的后面,则为命令补全;[Tab] 接在一串指令的第二个字以后时,则为“文件补齐”!若安装 bash-completion 软件,则在某些指令后面使用 [tab] 按键时,可以进行“选项/参数的补齐”功能!例如,想要知道我的环境当中所有以c为开头的指令,则可以按下“c[tab][tab] ”即可。
  3. 命令别名设置功能:使用 alias 即可!你可以在命令行输入 alias 就可以知道目前的命令别名有哪些;也可以直接下达命令来设置别名:alias lm = ‘ls -al’
  4. 工作控制、前景背景控制
  5. 程序化脚本
  6. 万用字符, 除了完整的字串之外, bash 还支持许多的万用字符来帮助使用者查询与指令下达。例如,想要知道 /usr/bin下面有多少以X为开头的文件吗?使用:“ ls -l /usr/bin/X* ”就能够知道。此外,还有其他可供利用的万用字符,这些都能够加快使用者的操作呢!

1.2 指令的下达与快速编辑按钮

指令的下达:

快速编辑按钮:

二、bash中的变量

变量就是以一组文字或符号等,来取代一些设置或者是一串保留的数据!其优点有:可变性与方便性、且能影响 bash 环境操作,脚本程序设计shell script中不可或缺的元素

2.1变量的取用

利用 echo 这个指令来取用变量, 但是,变量在被取用时, 前面必须要加上钱字号“ $ ”,或者是以 ${ 变量 } 的方式来取用都可以,例如,取用变量 PATH 的值时,执行命令: echo $PATH echo ${PATH}

2.2变量设置规则

  • 变量与变量内容以一个等号“=”来链接,如下所示:myname=VBird
  • 等号两边不能直接接空白字符,如下所示为错误:myname = VBird”或“myname=VBird Tsai
  • 变量名称只能是英文字母与数字,但是开头字符不能是数字,如下为错误:2myname=VBird
  • 变量内容若有空白字符可使用双引号“"”或单引号“'”将变量内容结合起来,但双引号内的特殊字符如$等,可以保有原本的特性,如下所示:var="lang is $LANG"”则“echo$var”可得“lang is zh_TW.UTF-8”单引号内的特殊字符则仅为一般字符(纯文本),如下所示:var='lang is $LANG'”则“echo $var”可得“lang is $LANG
  • 可用跳脱字符“\”将特殊符号(如 [Enter], $, \, 空白字符, '等)变成一般字符,如:myname=VBird\Tsai
  • 在一串指令的执行中,还需要借由其他额外的指令所提供的信息时,可以使用反单引号“指令”或“$(指令)。特别注意,那个`是键盘上方的数字键 1左边那个按键,而不是单引号!
  • 若该变量为扩增变量内容时,则可用"$变量名称"${变量}累加内容,如下所示:PATH="$PATH":/home/bin”或“PATH=${PATH}:/home/bin
  • 若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量:export PATH
  • 通常大写字符为系统默认变量,自行设置变量可以使用小写字符,方便判断(纯粹依照使用者兴趣与嗜好)
  • 取消变量的方法为使用 unset :“unset 变量名称”例如取消 myname 的设置:unset myname

三、常见的bash组合键及字符

3.1 组合键汇总

3.2 万用字符

3.3 特殊字符



猜你喜欢

转载自blog.csdn.net/LZH_12345/article/details/80787845