认识bash
查看可用shell
cat /etc/shells
bash功能
stty -echo //隐藏终端输入
stty echo //恢复终端输入
命令别名 alias
alias //显示目前终端的全部别名
alias ll=“ls -l” // 设置别名
unalias ll //取消别名设置
bash快捷键
Ctrl + a :移到命令行首
Ctrl + e :移到命令行尾
Ctrl + u :从光标处删除至命令行首
Ctrl + k :从光标处删除至命令行尾
Ctrl+c 终止目前在进行的命令
Ctrl+d 输入结束(EOF),例如写邮件结束的时候
通配符与特殊符号
# 批注符号
\ 转移符号,可以将具有特殊意义的符号变为一般字符
| 管道符,把前一个命令的结果传递给后一个命令,可以多个,以此类推
; 连续下达命令的分隔符
$ 取用变量值的前缀符号
& 将一个工作置于后台
! 逻辑运算意义上的非
/ 路径分隔符
>,>> 输出重定向,>覆盖, >>追加
<,<< 输入重定向
'' 单引号,单引号内的字符均视为一般字符
"" 双引号,其内的字符具有特殊意义,具有变量置换功能
`` 其内的命令可以先执行,建议用$( )取代
() 在中间为子shell的起始与结束
{} 在中间为命令区块的组合
数据流重定向
数据流重定向 | 代码 | 符号 |
---|---|---|
标准输入 | 0 | <或<< |
标准输出 | 1 | >或>> |
错误输出 | 2 | >或>> |
history----查看历史命令
history //列出全部历史命令记录
history 10 //显示最近10条执行过的命令
history -c //清除目前 shell 中的所以历史命令
history -w //即刻写入 .bash_history
!25 //执行第25条历史命令
! ser //执行最近一次以 “ser”开头的命令
!! //执行上一条命令
变量
变量名与变量内容以一个等号 = 的连结,且等号两边不能有空格。如下所示:
myname=XiguaTian
变量名称只能是英文字母与数字,但是开头字符不能是数字,如下为错误:
2myname=xiguatian
变量内容若有空格符可使用双引号 " 或单引号' 将变量内容组合起来,但双引号内的特殊字符如 $ 、 ! 等,可以保有原本的特性,如下所示:
var="lang is $LANG"
#则
echo $var
#可得
lang is en_US
感叹号 ! 不可以在shell命令行里直接在双引号里使用,但是可以在脚本中使用。
• 单引号内的特殊字符则仅为一般字符 (纯文本),如下所示:
var='lang is $LANG'
# 则
echo $var
#可得
lang is $LANG
可用转意符 \ 将特殊符号(如 [Enter], (命 令)(推荐这种)。特别注意,那个反引号 是键盘上方癿数字键1` 左边那个按键,而不是单引号!
例如想要取得
核心版本的内容:
version=$(uname -r)
# 再
echo $version
#可得
4.9.125-linuxkit
增加变量的内容时,则可用 "{变量}字符串 (推荐)累加内容,如下所示:
PATH="$PATH":/home/bin
PATH=${PATH}:/home/bin
若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量:
export PATH
通常大写字符为系统默认变量,自定义变量可以使用小写字符,方便判断 (纯粹个人习惯) ;
取消变量的方法为使用 unset :unset 变量名称 例如取消 myname 的设定:
unset myname