SHELL —— BASH环境
Posted Z贺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SHELL —— BASH环境相关的知识,希望对你有一定的参考价值。
一 、什么是SHELL
shell一般代表两个层面的意思,一个是命令解释器,比如BASH,另外一个就是shell脚本。本节我们站在命令解释器的角度来阐述shell
二 、命令的优先级
命令分为:
==> alias
==> Compound Commands
==> function
==> build_in
==> hash
==> $PATH
==> error: command not found
alias别名:别名命令是为了简化输出给一个长参数命令的整合,别名的定义方法 alias la=‘ls -al‘ 取消别名 unalias la
buildin内部命令:是BASH自带的命令 功能简单,内部命令的帮助在builtin(1)里
外部命令:是就是一个小程序存在于/bin/ /sbin/ /usr/bin 等地方,源码安装的软件添加环境变量就应该改PATH。
三、元字符
元字符(是被shell解释的) |
||
`` |
命令替换 取命令的执行结果 |
[[email protected] ~]# ls |
$ |
$ 变量取值 |
[[email protected] ~]# money=10 |
${} |
变量名的范围 |
|
$() |
同`` ,但它弥补了``的嵌套缺陷 |
[[email protected] ~]# res=`echo `ls`` #嵌套使用后无法达到预想的效果:取echo 一堆文件名的效果。 |
~ |
家目录 |
[[email protected] tmp]# cd ~ |
! |
取非 |
[[email protected] ~]# ls /dev/sda |
历史命令调用 |
[[email protected] ~]# !343 |
|
匹配最近一次历史命令 |
[[email protected] ~]# !ls |
|
! ls 带空格 将命令的返回值取反 |
[[email protected] ~]# echo ok |
|
@ |
无特殊含义 |
|
# |
# 注释 |
|
% |
杀后台进程 jobs号; 取模 |
|
^ |
取非 和 ! 雷同 |
[[email protected] ~]# ls /dev/sda[^01] |
替换 |
[[email protected] ~]# systemctl restart
network |
|
& |
后台执行 |
|
&& |
逻辑与 |
|
* |
匹配任意长度字符串;计算乘法 |
|
() |
在子进程中执行 |
[[email protected] ~]# x=1 |
- |
减号;区间;cd - |
|
_ |
无特殊含义 |
|
+ |
加号 |
|
= |
赋值 |
|
| |
管道 |
|
|| |
逻辑或 |
|
\ |
转译 |
[[email protected] test]# echo \\ |
{} |
命令列表 ,注意括号内的开头和结尾必须是空格{ ls; cd /; } |
|
[] |
字符通配,匹配括号内之一 |
|
: |
: 空命令 真值 |
[[email protected] ~]# : |
; |
可以接多个命令:ls;pwd;echo 123;无论对错,会一直执行到最后一条命令 |
|
“” |
"" 软引,引号中的字符有意义 |
[[email protected] test]# x=1 |
’‘ |
‘硬引,引号中的所有字符无特殊含义 |
|
< |
< 输入重定向 |
|
> |
> 输出重定向 |
|
>> |
>> 追加 |
|
<< |
<< here document |
|
>& |
>& 合并2和1输出 |
|
, |
, 枚举分隔符 |
|
. source |
. source ; 当前目录 |
|
/ |
/ 目录分隔符 |
|
? |
? 单个字符 |
|
? 通配符:任一字符 |
||
回车 |
回车 命令执行 |
|
* |
* 通配符:任意字符 |
|
[abc] 列表项之一 |
||
[^abc] 对列表取非 也可以使用范围 [a-z] 代表aAbBcC...,[0-9]代表012345。。。 |
||
{} |
{} 循环列表 |
[[email protected] test]# touch
{1..3}{a..d}.txt |
控制变量名的范围 echo ${AB}C |
以上是关于SHELL —— BASH环境的主要内容,如果未能解决你的问题,请参考以下文章