您的位置:首页 > 运维架构 > Shell

Bash用法小结

2012-09-26 22:06 232 查看
Bash是shell的一种,Bourne Again Shell的简称,具有强大的功能。

bash提供的主要功能有:

1、命令行编辑

2、命令补全和路径补全

3、命令历史查询

4、命令行展开

5、文件名通配

6、命令别名

下面简要说明各项功能:

1、命令行编辑

常用的快捷键有;

ctrl+a: 快速跳到行首

ctrl+e: 快速跳到行尾

ctrl+u: 快速删除光标到行首的字符

ctrl+k: 快速删除光标到行尾的字符

ctrl+l: 用于清屏,等用于clear,相当于windows下cmd的cls命令

ctrl+c: 取消命令,不在执行

2、命令补全功能

[Tab]键具有自动补全功能,方便命令的输入:

当命令的前几个字母唯一确定一个命令时,敲[Tab]键可显示该命令,即实现自动补全功能;

如果所敲的字符不能唯一确定一个单词时,敲两下可显示以该字符开头的所有的单词,当你一个命令后面部分没记全时,[Tab]很有帮助。(另外,当只记得某个命令的中间一部分时,如想要用hwclock,只记得有clock,可敲入 # -k clock,可显示所有包含clock的命令)

3、命令历史

# history 查看命令历史

-c 清空历史记录

-w 保存缓存中的命令历史至历史文件

-d:删除指定的第几条

-d OFFSET n:从偏移的那条命令开始删除多少个命令

# echo $HISTSIZE

# echo $HISTFILE

# echo $HISTFILESIZE

!n:表示执行命令历史中的第n跳命令

!!:两个!表示执行上一条命令

!-n:表示执行倒数第n条命令

!string:表示找命令中离string最近的命令

4、

5、文件名通配

glob:

特殊字符:叫元字符,不表示字符的表面意义,而是能匹配符合指证的字符串

*:任意长度的任意字符;

a*b(表示a开头,b结束的字符串,中间为任意字符),ab,aab,acbb,

?: 任意单个字符:a?b

[]: 匹配指定范围内的任意单个字符:a[axy]b, a[a-zA-Z]b,

[^]: 指定范围之外的任意单个字, [^a-z]=[^[:lower:]]

[[:alpha:]]=[a-zA-Z] : 表示大小写字母中(的任一个)

[[:digit:]]=[0-9]=\d 表示一位数字

[[:lower:]]=[a-z] 表示小写字母的任一个

[[:upper:]]=[A-Z] 表示 大写字母中的任一个

[[:alnum:]]=[a-zA-Z0-9]]=\w 表示字母和数字

[[:space:]]=\s 表示空白符

[[:punct:]] 表示特殊字符

6、命令别名:

仅对当前shell有效

alias ALIAS=`COMMAND`

别名的撤销:

unalias ALIAS

Bash变量类别:

本地变量

环境变量

特殊变量

位置变量

1、 本地变量:(局部变量)

作用范围仅限当前源程序文件, 仅对当前shell进程有效

赋值表达式:=

eg: AGE=23

bash中的引号:

'单引号: 强引用,引号中的特殊字符不在起作用,如\,$

" 双引号:弱引用,引号中的特殊字符还可以作用。

`反引号:命令替换, ` `等效于${}

本地变量只对当前shell有效

变量的声明和赋值:

声明:

declare AGE:

-i: 声明为整型

-a:声明为数组

-x: 可执行

declare -i AGE

AGE=23

declare -i AGE=23

NAME="Tom obama"

NAME="$ AGE"

引用变量值:

${VARNAME}

撤销变量:

unset VARNAME

只读变量:将一个变量设置为只读变量后,既不能替换,也不能撤销

readonly VARNAME

变量名:只能包含字母、数字、下划线,且不能以数字开头。

变量赋值:AGE="$ANOMAL"

VAR1=${VAR2-word}若VAR2的值存着,则赋予VAR1,否则将word值赋予VAR1

VAR1=${VAR1-word}

# AGE=${A-40}

2、环境变量

作用范围是当前shell及其子shell

export VARNAME

export VARNAME=value

declare -x VARNAME=value

查看所有环境变量的命令:

env

printenv

export

导出:

PS1='[\u@\h \w]\$'

基名:/usr/local/src,src

3、特殊命令:

$?:显示上一个命令的返回值

程序的返回值:

程序自身执行的返回值:

程序执行状态返回值:

执行成功返回值为1,失败为1-255

常用的有 0,1,2等

bash的运行方式:

交互式:/etc/profile-->/etc/profile.d/*-->~/.bash_profile-->~/.bashrc-->/etc/bashrc

非交互式:~/.bashrc-->/etc/bashrc-->/etc/profile.d/*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bash