认识和学习bash

认识Bash这个Shell

查看linux下shells:

[shichaogeng@study etc]$ vim /etc/shells

 

查看登入时取得到的shell:

[shichaogeng@study etc]$ vim /etc/passwd

其中,root用户取得的是/bin/bash,为linux预设shell,有以下几个优点:

~./bash_history 记录指令历史

c[tab]查找以c开头的指令

alias 设置查询别名

shell scripts

通配符(wildcard)

查询是否bashshell内建指令:

[shichaogeng@study ~]$ type cd

指令下达与快速编辑

命令太长可以利用Enter来换行(转义)继续输出

ctrl+u 向前删除

ctrl+k 向后删除

ctrl+a 跑到最前端

ctrl+e 跑到最后端

Shell的变量

变量的取用与设定:echo,变量的设定规则unset

变量的取用 echo $变量名 或者 echo ${变量名},例如:

用等号设定变量名=

注意,变量设定要符合以下规则哦:

1.用等号连接

myname=VBIRD

2.=两边不能加空格

3.只能英文和数字组成,并数字不能开头(试了下,下面的好像不太符合啊)

4.变量内容若有空格,可以用"或'括起来()注意要成对出现哦,但

双引号的特殊字符如$,可保持原有特性(即变量),如:

单引号的特殊字符仅文本输出,如:

5.用转义特殊字符到原来的意义

6.借用其他指令,用反引号`指令`或者$(指令)如:

 

那么,如何进入当前核心驱动模块的目录?:

其中,被``包起来的内容会优先执行

7.可用"$变量名"或$(变量名)来累加内容(PATH用:来分隔),如:

PATH="$PATH":/home/bin
PATH=${PATH}/home/bin

8.使用export使变量变成环境变量

export myname

怎么样,看懂了吗,其中bash表示进入子程序

9.一般大写字符为环境变量,自定义为小写(自己决定咯)

10.取消变量设定,用unset 变量名称

环境变量的功能

用env查看环境变量和常见的环境变量说明

[shichaogeng@study ~]$ env

使用set来观察所有变量,包括环境和自定义变量

PS1:命令提示符的设定(可以man bash来查看PS1的相关说明)

其中u代表目前使用者账号

h代表主机在第一个小数点之前的名字

W代表工作目录名,最后一节目录

$代表提示字符,root为#,其他为~

$:本shell的线程代号(pid)

?:上个指令执行锁回传的值

export自定义变量转环境变量

环境变量与自定义变量有什么区别啊,需要来回转换,哈哈,主要是父程序的环境变量能被子程序所使用啊

因为子程序只会继承父程序的环境变量,所以需要export之后自定义变量编程环境变量,子程序才能使用啊

export展示所有环境变量:

变量的键盘读取,数组和宣告

read

read -pt variable
其中,-p代表提示;-t代表超时时间

decalre/typeset

decalre [-aixr] variable
-a:将variable变量定义为array数组
-i:将variable变量定义为integer类型
-x:将variable变量声明为环境变量
r:将variable变量设定为readonly,该变量不能被更改,也不能unset

解释:变量类型默认字符串,bash环境运算都为整数1/3=0

把-号变为+为取消设定

-p可只列出变量类型

数组:var[index]=content

  

变量的删除,取代和替换

 删除

#代表从前面开始删除,1个#代表删除最短的路径,2个##代表删除最长的路径

删除和取代表格:

替换:-代表替换null :-代表替换""和null

 别名和历史

别名alias

用alias列出别名

alias xx='xxx'指定别名

unalias xx 取消别名

history

history n    最近n笔命令
history -c    清空shell中history
 history -raw histfiles
-a 新增的指令加到histfiles中
-r 读取histfiles到history记忆中
-w history记忆中命令写到histfiles中

查看~/.bash_history 大小

利用history来执行命令

!number    执行第几笔指令
!command    执行command开头的指令
!! 执行上一个指令
 
原文地址:https://www.cnblogs.com/gengsc/p/6883354.html