其他常用
# 1.查看当前用户系统环境变量
$ env
# 2.查询当前用户的所有变量(临时变量与环境变量)
$ set
# 3.设置环境变量
$ export 变量名=变量值 或者 变量名=变量值;export 变量名
例子:系统中有一个变量PATH,环境变量export PATH=/usr/local/mysql/bin:$PATH
# 4.
常用快捷键
# 1.光标移到命令行的最前端
$ Ctrl+A 或 Home
# 2.光标移动到命令行后端
$ Ctrl+E 或 End
# 3.删除光标前所有字符
$ Ctrl+u
# 4.删除光标后所有字符
$ Ctrl+k
# 5.搜索历史命令
$ Ctrl+r
常用通配符
* :匹配 0 或多个任意字符
?:匹配任意单个字符
[abc] :匹配[abc]中任意`单个`字符, 或者一组单个字符 [a-z]
[!abc] : 匹配除abc中的任意单个字符
{str1,str2,str3...} : 匹配str1,str2或更多字符 例子:{0..12} 表示匹配0-12
案例:
1. rm -f file*
2. cp *.conf /home
3. touch file{1..5}
bash中的引号
双引号 "" :会把引号内的内容当成一个整体看待,允许通过$符号引用其他变量值
单引号 '' :会把引号内的内容当成一个整体看待,禁止引用其他变量值,shell中特殊符号都被视为普通符号
反撇号 `` :反撇号和$()一样,引号或括号里的内容会优先执行,如果存在嵌套,反撇号不能用
例子:
[root@192 docker]# date +%F
2021-07-16
[root@192 docker]# echo "$(date +%F)"
2021-07-16
[root@192 docker]# echo '$(date +%F)'
$(date +%F)
[root@192 docker]# echo "`date +%F`"
2021-07-16
[root@192 docker]#
shell脚本模板
#!/bin/bash
表示以下内容使用bash解释器解析
注意: 如果直接将解释器路径写死在脚本里,可能在某些系统就会存在找不到解释器的兼容性问题,所以可以使用:#!/bin/env 解释器
#!/bin/env bash
#!/bin/env bash
# 以下内容是对脚本的基本信息的描述
# Name: 名字
# Desc:描述describe
# Path:存放路径
# Usage:用法
# Update:更新时间
#下面就是脚本的具体内容
commands
...
shell内置bash中变量
内置变量 | 含义 |
---|---|
$? | 上一条命令执行后返回的状态;状态值为0表示执行正常,非0表示执行异常或错误 |
$0 | 当前执行的程序或脚本名 |
$# | 脚本后面接的参数的个数 |
$* | 脚本后面所有参数,参数当成一个整体输出 ,每一个变量参数之间以空格隔开 |
$@ | 脚本后面所有参数,参数是独立的 ,也是全部输出 |
$1~$9 | 脚本后面的位置参数,$1表示第1个位置参数,依次类推 |
10 {10}~ 10 {n} | 扩展位置参数,第10个位置变量必须用{}大括号括起来(2位数字以上扩起来) |
$$ | 当前所在进程的进程号,如echo $$ |
$! | 后台运行的最后一个进程号 (当前终端) |
!$ | 调用最后一条命令历史中的参数 |
案例:
$*
:表示将变量看成一个整体 $@
:表示变量是独立的
#!/bin/bash
for i in "$@"
do
echo $i
done
echo "======我是分割线======="
for i in "$*"
do
echo $i
done
[root@MissHou ~]# bash 3.sh a b c
a
b
c
======我是分割线=======
a b c
四则运算符号
表达式 | 举例 |
---|---|
$(( )) | echo $((1+1)) |
$[ ] | echo $[10-5] |
expr | expr 10 / 5 |
let | n=1;let n+=1 等价于 let n=n+1 |