bash学习记录
bash:
管理员: 提示符#
普通用户:提示符$
环境变量
A=3(变量是指内存空间,A指的是内存空间的名称-变量标示符)
PS1 \u@\h:\w\$ \u用户名 \h主机名 \w工作目录的路径基名
# echo
引用一个变量: ${变量名};
bash特性:
命令有两种类型:
builtin:在shell中实现的即为内置命令;
外部命令:在文件系统上的某位置有一个与命令名称对应的可执行文件;
如何判断:使用type命令。
shell中的引用:
'':强引用,变量替换不会进行
"":弱引用,能够执行变量替换
``:命令引用,引用命令的执行结果,还有另外一种形式:$(命令)
变量替换:${变量名}
命令历史
bash保存过去曾经执行过的命令列表
当前shell进程保存在缓冲区中;
缓冲区中的命令在shell退出时保存至文件中,家目录的.bash_history。
使用上下箭头可以翻看此前执行过的命令:
命令别名
alias:显示当前shell中定义的所有别名:
# alias 别名='原始命令'
# unalias 别名
bash快捷键
ctrl+a:跳至命令行行首
ctrl+e: 尾
ctrl+u:清除命令行首至当前光标所在处的内容
ctrl+k:清除命令行尾至光标所在处的内容
ctrl+l:清屏,相当于clear命令
ctrl+c:终止当前正在执行的进程
ctrl+z:将当前命令送至后台
bash补全
命令补全:
shell命令:内部,外部
外部:在系统某路径下有一个可执行程序
内部:
PATH:是一组由冒号分割的命令
使用tab键执行补全
路径补全:在给出的打头路径补全;如果没有打头路径,则为当前;
提供编程环境
变量
程序控制
#!/bin/bash
shebang
ELF:
#!/bin/bash
程序=指令+数据
bash的变量
变量的类型:
本地变量:只针对当前shell进程有效,对其子shell以及其他shell都无效;
定义变量:[set]Var_Name="Value"
引用变量:${Var_Name}
撤销变量:unset Var_Name
局部变量:仅对局部代码生效
local Var_Name="vALUE"
环境变量:对当shell进程及其子shell有效;
exprot Var_Name="Value"
Var_Name="Value"
export Var_Name
导出
位置变量:
$1,$2...$n
./learnbash.sh 2 8
特殊变量:
$0:脚本名称本身
$?:上条命令的执行状态返回值0
0:成功
1-255:失效
$$
$!
$#
$*