Shell之基本用法
一:shell简介
1.什么是shell
shell的中文意思是“外壳”,通俗地讲,shell是一个交互编程接口,通过获得用户输入来驱动操作系统内核完成指定工作。shell除了作为命令解释程序以外,还是一种高级程序设计语音,它有变量、关键字、有各种控制语句、支持函数模块,有自己的语法结构。shell最重要的功能是命令解释,从这种意义上说,shell是一个命令解释器。
2.Linux系统上可执行的文件分类如下:
Linux命令:存放在/bin,/sbin目录下的命令
内置命令:出于效率的考虑,将一些常用命令的解释程序构造在shell内部
实用程序:存放在/usr/bin,/usr/sbin,/usr/local/bin等目录下的实用程序或工具
用户程序:用户程序经过编译生成可执行文件后,也可作为shell命令运行
shell脚本:由shell语音编写的批处理文件
二:shell变量
1.变量命名规则
以字母或下划线开头,剩下的部分可以是:字母、数字、下划线
最好遵循下述规范:
1)以字母开头
2)使用中划线或者下划线做单词的连接
3)同类型的用数字区分
4)对于文件最好加上拓展名
例如:aa、aa1、a_b.tar.gz
2.系统变量
set和env区别:set:显示所有变量,env:环境变量
3.变量赋值
name=shenbuer
echo $name
删除变量 unset name
(shell变量为小写;环境变量为大写)
4.常用系统变量
PATH:命令的搜索路径
PWD:显示整个路径名
LANG:解压或释放程序
HOME:用户根目录的路径名
HISTSIZE:保存在历史列表中的最大项数
PS1:提示符1,主提示符(默认为“\s-\v\$”)
IFS:内部字段分隔符,用于分词
三、运算符
1.算术运算符
+、-、*、/、%
2、关系操作
与(())连用
< 小于
> 大于
<= 小于等于
>= 大于等于
== 等于
!= 不等于
&& 按位与
|| 按位或
3.赋值运算符
= 等于赋值
+= 加等于
*= 乘等于
/+ 除等于
%= 取模赋值
四、元字符
`` 命令替换 取命令的执行结果
$()同上,但它弥补了``的嵌套缺陷
~ 家目录
! 取非
! 历史命令调用
! 匹配最近一次历史命令
! ls 带空格 将命令的返回值取反
@ 无特殊含义
# 注释
$ 变量取值
$() 同``
${} 变量名的范围
$[] 整数计算 echo $[2+3] - * / % 浮点数用 echo "scale=3; 10/3" | bc -l
% 杀后台进程 jobs号; 取模
^ 取非 和 ! 雷同
^ 替换
& 后台执行;&& 逻辑与
* 匹配任意长度字符串;计算乘法
() 在子进程中执行
- 减号;区间;cd -;
_ 无特殊含义
+ 加号 ;
= 赋值
| 管道; || 逻辑或
\ 转义;
{} 命令列表 ,注意括号内的开头和结尾必须是空格{ ls; cd /; }
[] 字符通配,匹配括号内之一;
: 空命令 真值
; 可以接多个命令:ls;pwd;echo 123;无论对错,会一直执行到最后一条命令
"" 软引 ''硬引
< 输入重定向
> 输出重定向
>> 追加
<< here document
>& 合并2和1输出
, 枚举分隔符
. source ; 当前目录
/ 目录分隔符
? 单个字符
回车 命令执行
* 通配符:任意字符
? 通配符:任一字符
[abc] 列表项之一
[^abc] 对列表取非 也可以使用范围 [a-z] 代表aAbBcC...,[0-9]代表012345。。。
{} 循环列表
控制变量名的范围 echo ${AB}C
\转意