Linux shell概念,变量及命令别名与历史命令

1.bash shell基础概念

目录

1.bash shell基础概念

1.1 硬件,核心与shell

1.2 bash的功能

1.3 查询命令是否是bash的内建命令 : type

1.4 快速编辑按钮

2 shell的变量功能

2.1 变量的取用:echo,及变量的设定

2.2 变量的设定规则

2.3 环境变量的功能

2.3.1 查询默认的环境变量 env,export

2.3.2 用set观察所有变量(包括自定义变量)

2.3.3 export自定义变量转成环境变量

2.3.4 影响显示结果的语系变量locale

2.3.5 变量键盘读取,数组与宣告 : read,array,declare

2.3.6 与文件系统及程序的限制关系 : ulimit

2.4 变量内容的删除,取代与替换(Optional)

3 历史命令与别名

3.1 别名

3.2 历史命令:history


1.1 硬件,核心与shell

shell将我们输入的指令与Kernel沟通,Kernel来控制硬件正确工作.
用户通过应用程序来指挥核心,让核心达成我们所需要的硬件任务.应用程序在最外层,因此也叫壳程序(shell).
壳程序只提供给用户操作接口,因此壳程序需要呼叫其他软件.通过壳程序操作其他应用程序(如指令:man,chomd,mkfs),以呼叫核心来运作所需的工作.也就是能操作应用程序的接口都是壳程序.狭义的壳程序是指指令列方面的软件,如bash.广义的壳程序则包括图形接口的软件.

1.2 bash的功能

bash是Linux的预设shell,是GUN计划中的重要工具.它的主要优点:

  • 命令编修能力
    下达的所有命令都会记录在家目录的.bash_history中,默认可以记录1000个.
  • 命令补全功能
    [tab]接在一串指令第一个字符后边,则为命令补全
    [tab]接在一串指令第二个及以后字符后边,则为目录/文件补全
  • 命令别名设定
    alias xx = 'xxxxxx'
  • 工作控制,前景背景控制
  • 程序化脚本
  • 通配符

1.3 查询命令是否是bash的内建命令 : type

type 搜寻的是执行挡,而不是一般文件.

1.4 快速编辑按钮

2 shell的变量功能

变量是用一个简单的数据代表一个复杂的或可变的数据

2.1 变量的取用:echo,及变量的设定

echo $XXX 或 echo ${XXX}
变量的设定用[=]连接.如  a=123456 变量a的值设置成123456.当一个变量名称没有被设定的时候,预设的内容时空

2.2 变量的设定规则

  • 变量与变量内容以一个[=]连接 如  a=123456
  • 等号两边不能直接接空格 错误示例 a = 123456 或 a=123 456
  • 变量名称只能是英文或数字,但不能以数字开头
  • 变量内容如果有空格符,可以用['']或[" "]将变量内容连接起来,但
    双引号内的特殊字符可以保有原有的特性
    单引号内的特殊字符一律按一般字符(纯文本)处理
  • 可用逃脱符[\]将特殊字符变为一般字符(如[Enter],$,\,空格符,'')
  • 在一串指令执行中,还需要籍由其他额外的指令所提供信息时,可以使用反单引号[`指令`]或$(指令)
  • 若该变量是扩增变量内容时,则可用"$变量名称"或${变量}累加内容,如PATH=${PATH}:/home/bin
  • 若该变量需要其他子程序执行,则可用export来使变量编程环境变量
  • 取消变量的方法 unset

2.3 环境变量的功能

2.3.1 查询默认的环境变量 env,export

env 是 environment的缩写,执行 env命令:

执行export也能达到一样的效果,上边列出来的环境变量的功能如下:

  • HOME  代表家目录.
  • SHELL  环境使用的shell是哪一支,预设是 /bin/shell
  • HISTSIZE  下达过的命令记录笔数
  • MAIL  信箱文件地址
  • PATH  执行文件搜寻路径,目录间用[:]隔开,按序搜寻
  • LANG  语系
  • RANDOM  随机数变量

2.3.2 用set观察所有变量(包括自定义变量)

比较重要的变量:

PS1:(提示字符的设定)
命令提示符,当执行某个命令后,最后再出现提示字符时,就会主动读取这个变量值了.PS1相关符号及意义

$:关于本shell的pid
目前shell的线程代号,即pid.[echo $$]观察pid

?:上个指令的回传值
上一个指令的执行回传值,如果指令执行正确回传[0],否则回传错误代码

2.3.3 export自定义变量转成环境变量

自定义变量与环境变量的差异就是,是否能被子程序引用,环境变量可以被子程序引用.用法:
export 变量名

2.3.4 影响显示结果的语系变量locale

可以逐一设定每个语系有关的变量.但实际上其他语系没有设定,只设定了LANG(主语言环境)和LC_ALL(整体语系环境),则其他语系变量就会
被这两个变量所取代.
指令locale 的 -a 选项可列出所有语系

2.3.5 变量键盘读取,数组与宣告 : read,array,declare

read
利用键盘设置变量

declare/typeset

两个指令有一样的功能:宣告变量的类型.declare指令不接选项会将所有变量叫出来相当于set:

默认情况下,bash对变量有基本定义:

  • 变量类型默认字符串
  • 数值运算仅能达到整数形态,如1/3结果是0

数组变量类型(array)

数组的设定方式:
var[index]=content
var->数组名,index->元素序号,content->内容

2.3.6 与文件系统及程序的限制关系 : ulimit

用于限制用的某些系统资源

2.4 变量内容的删除,取代与替换(Optional)

鸟哥的几个例子


  • #:符合取代文字的最短的那一个
  • ##:符合取代文字的最长的那一个
  • 都是从前向后

%与%%功能与#和##意义和功能类似,只是#和##是从后向前删除

变量替换用[/]和[//]

变量内容替换


3 历史命令与别名

3.1 别名

别名的定义规则与变量的定义规则几乎相同,alias:
alias aa='cd /home'
定义别名还可以取代既有的指令,像rm指令会默认带上 -i 选项.
取消别名用 unalias:
unalias aa

3.2 历史命令:history


 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值