* 通配符
? 单个任意字符
~ 宿主目录
&& 连接符,前一个成功了后面一个才执行
| 管道符,前者的输出作为后者的输入
|| 或,只要其中一个通过,整个式子通过
换行符,在命令中,表示命令未打完,下一行接着打,在编码中,可转义,如:
,
; 连接,如:cd /tmp;ls 表示进入tmp目录中后,查看
{} 展开,如:mkdir file{1..10},会创建file1,file2,file3,。。。file10个文件夹
[] 连续的范围,如:grep [a-z] /tmp/a.txt
"" 字符串,但是可以获取变量
'' 字符串,字符
`` 括起来的东西可以当做命令来执行,~号
--------------------------------------------
变量
自定义变量
系统变量
自定义变量:
如:
a="helloworld"
echo "$a"
ip=192.168.18.105
ping -c 4 $ip
交互式获取变量:read -p "please input a name" name
echo "$name"
变量不能是数字
系统变量:(又称为内部变量,变量名都是大写)
$HOME
$HOSTNAME
$PWD
$PID
$PATH等
echo $PATH 命令的搜索路径
PATH=$PATH:/vfast 这样/vfast中的文件在其他路径下就可以直接使用,把/vfast提升到系统变量搜索中
-----------------
A=apple
B=bnanana
echo $A.$B 只适用与当前环境,换个shell就不能识别出来
如果 export A,新打开一个shell就会识别a,把它提升为环境变量,与这个shell平级的shell不能识别,但是他的子shell可以识别
------------------------------------------
变量符号:
$0 : 脚本名称
$1 : 第一个参数的名字
$2 : 第二个参数的名字
。。。
$10 : 第10个参数的名字。注意:${10}要括号括起来,否则会识别为1,0
$# : 未知参数的个数
$$ : 脚本执行时候pid号是多少,进程号,因为脚本执行完之后,ps aux查看时候是不显示的
$@ : 未知参数的列表
$? : 返回值
0:表示成功
非0:表示失败,常见的非0值,127命令未找到,126:没有权限
-----------------------------------
脚本的写法:
后缀名一般以 .sh .c .py 结尾
书写规范:
#!/bin/bash 定义开头指定的运行环境
# 说明脚本的作用,介绍
定义变量
函数
主程序
---------------------------
脚本的执行:
需要拥有x权限,拒绝777
有两种执行方式:
sh x.sh 在原来shell基础上又开启了一个新的shell,执行,输出,又返回到原来的shell
source x.sh 在当前shell执行,当前shell输出
-----------------------------
echo指令的简单使用:
echo -n 不换行
-e 解释转义字符
tab制表符
换行,回车
删除前一个字符
a 提示音
常用颜色
echo -e " 33[30m 黑色字