1.shell文件创建
touch day1.sh #创建脚本,后缀为sh或者bash
vim day1.sh
#! /bin/sh #指定脚本解释器
date
要给day1.sh执行权限
chmod +x day1.sh
运行
./day1.sh
2.shell注释
#这是单行注释
:<<!
多行注释 #其中!可以换成其他东西替代
!
3.运行脚本
绝对路径
去目录底下去执行
以上两种需要脚本必须有运行权限
利用sh或者bash来指定运行
还有一种方法使用. 和source 来进行执行,不需要执行权限
4.命令的嵌套
第一种方法 `命令`
echo "`date +'%F %T'`"
第二种方法 $(命令)
echo "$(date +'%F %T')"
其中USER是个系统定义的可以直接用$调用
5.转义
\是可以用来转义的
echo "\"this is string...\""
echo -e 是启用转义,不加他不会去进行转义""里面的
6.bash快捷键
ctrl+A 把光标移动到命令行开头
ctrl+E 把光标移动到命令行尾行
ctrl+C 终止当前命令
ctrl+L 清屏
ctrl+U 删除或剪切光标之前的命令
ctrl+K 删除或剪切光标之后的命令
ctrl+Y 粘贴ctrl+U或ctrl+K剪切的内容
ctrl+D 退出当前终端
7.命令的执行
;顺序执行
date;ls;date
&& 前面的命令没执行就不执行后面的命令
||如果前面的执行了,就不执行后面的
|管道符 左边的输出是右边的输入
? 匹配一个任意字符
*匹配0个或者任意多个任意字符,也是可以匹配任何内容
[] 匹配括号中任意一个字符
[-]匹配括号中任意一个字符 -表示范围
[^]逻辑非,表示匹配不是括号内的字符
[:alnum:] 匹配任意一个数字或者字母
[:alpha:] 匹配任意一个字母
[:digit:] 匹配任意一个数字
[:lower:] 匹配任意一个小写字母
[:upper:] 匹配任意一个大写字母
8.一些命令
eval
命令格式:eval args
功能:式当shell执行eval时,shell 读取args参数,并将其组合成为命令执行
export
功能:设置或者显示环境变量
read
read命令可以说从标准输入读取字符等信息,传递给shell内部定义的bianliang
-p 设置提示时间
-t 设置输入等待时间,单位默认为秒
-n 指定读取多少个字符
-s 输入不回显(类似输入密码不显示)
-d 用定界符输入 例如输入“:”时输入完成
shift
在程序中使用shift回事所有未知的参数依次做移动一位
#!/bin/bash
echo $1
shift
echo $1
shift