bash的基础特性

1、命令历史

history [n]  n为数字,列出最近的n条命令

-c  将目前shell中的所有history命令消除

history [-raw] histfiles
-a 将目前新增的命令写入histfiles, 默认写入~/.bash_history
-r  将histfiles内容读入到目前shell的history记忆中
-w 将目前history记忆的内容写入到histfiles
使用! 执行历史命令。
! number 执行第几条命令
! command 从最近的命令查到以command开头的命令执行
!! 执行上一条

2、命令补全

直接补全:用户给定的字符串只有一个对应命令,按“Tab”键将自动补全命令

用户给定的字符串不能指定唯一命令,连续按两次“Tab”键给出以指定字符串开头的命令列表

3、路径补全

直接补全:用户给定的字符串只有一个对应路径,按“Tab”键将自动补全路径

用户给定的字符串不能指定唯一路径,连续按两次“Tab”键给出以指定字符串开头的路径列表

4、命令行展开

~:展开为用户家目录

{}:可承载一个以逗号分隔的列表,并将其展开为多个路径

/tmp/{a,b}=/tmp/a , /tmp/b

/tmp/{a,b}/hi=/tmp/a/hi , /tmp/b/hi

{x,y}_{a,b}=x_a,x_b,y_a,y_b

5、命令的执行结果状态

bash试用特殊变量$?保存最近一条命令的执行转台结果

0:成功

1~255:失败

6、命令别名(alias)

alias:显示当前shell中所有的可用的命令别名

设置命令别名:

alias COMMAND='VALUE' (仅对当前shell有效)

~/bashrc:对当前用户有效

/etc/bashrc:对所有用户有效

撤销命令别名

unalias COMMAND

-a:所有

7、glob:bash中用于实现文件名“通配”

通配符:

*:任意长度任意字符

?:任意单个字符

[]:指定范围内的任意单个字符

[0-9]:0-9

[a-z]:不分大小写

[A-Z]:只有大写

[^]:匹配指定范围外的任意单个字符

专用字符合集

[:digit:]:任意数字,0-9

[:lower:]:任意小写字母

[:upper:]:任意大写字母

[:alphe:]:任意大小写字母

[:alnum:]:任意数字和字母

[:space:]:空白字符

[:punct:]:标点符号

8、bash快捷键

Ctrl+l:清屏,相当于clear命令

Ctrl+a:跳至命令开始出

Ctrl+e:跳至命令尾处

Ctrl+u:删除行首至光标

Ctrl+k:删除光标至行尾

Ctrl+c:取消命令的执行

9、bash的I/O重定向及管道

输出重定向

>:覆盖重定向

>>:追加重定向

2>:将错误输出数据流覆盖重定向

2>>:将错误输出数据流追加重定向

set -C:禁止将内容覆盖输出至已有文件

>|:强制覆盖

标准输出和错误输出各自定向至不通位置

COMMAND > file  2> file2

合并标准输出和错误输出为一个数据流输出重定向

&>

重定向输入

<

管道

|:将命令的结果传递给下一个命令当参数

COMMAND|COMMAND|COMMAND......

10、提供了编程环境

11、提供了变量

变量类型:

字符型

数值型:

整型

浮点型

强类型:定义变量是必须指定类型,参与运算必须符合类型

弱类型:无需制定类型,默认均为字符型,参与运算会自动进行隐式类型转换,变量无需事先定义可直接调用。

bash中的变量种类

根据变量的生效范围等标准划分:

本地变量:生成范围为当前shell进程,对当前shell之外的其他shell进程,包括当前shell的子shell进程均无效。

变量赋值:name="value"(可以使用引用)

value:

1、可以是直接字符串:name="username"

2、变量引用:name="$username"

3、命令引用:name=`COMMAND`;name=$(COMMAND)

变量引用:${name};$name

"":弱引用,其中的变量引用会被替换为变量值

'':强引用,其中的变量引用不会被替换为变量值,而保持原字符串

显示已定义的所有变量

set

销毁变量

unset name

环境变量:生效范围为当前shell进程及其子进程

变量声明、赋值

export name=VALUE

declare -x name=VALUE

变量引用:$name;${name}

显示所有环境变量:

export

env

printenv

销毁变量:

unset name

bash中有许多内建的环境变量:PATH、SHELL、UID、HISTSIZE、HOME、PWD、OLD、HISTFILE、PSI

变量的命名法则:

1、不能使用程序中的保留字:例如if,for

2、只能使用数字、字母及下划线,且不能以数字开头

3、见名知义

局部变量:生效范围为当前shell中某代码片段(通常指函数)

位置变量:$1,$2...来表示,用于让脚本在脚本代码中调用通过命令行传递给定的参数

在脚本代码中调用通过命令行船底给脚本的参数

$1、$2...:对应调用第1、2个参数

$0:命令本身

$*:传递给脚本的所有参数,当作一个字符串

$@:传递给脚本的所有参数

$#:传递给脚本的参数的个数

特殊变量:$?,$0,$*,$@,$#

只读变量:变量中的值不能被改变

readonly name

declare -r name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值