shell脚本编程基础
- LINUX常态下可以使用多用户
- 处于登陆状态下的用户不能直接被删除
vim编译器
-
命令模式:批量操作文本
-
编辑模式:编写、修改文本内容
-
底行模式:保存或退出编译器,底行模式只能从命令模式切换
-
linux中默认ping是无限ping,即要手动停止 -隐藏文件里的 .swp文件可删除
-
管道连接符 |: 符号|左边的输出作为管道右边的输入
硬链接与软连接
软连接相当于快捷方式
ln yuan.txt ying.txt //硬链接,相当于备份
ln -s yuan.txt ruan.txt //创建软链接
| 硬链接 | 软连接 |
|---|---|
| i节点与源文件相同 | i节点与源文件不同 |
| 存内容 | 存路径 |
- 当源文件被删除,硬链接不再和任何文件进行绑定,且硬链接只能绑定单个文件
- 用户权限
- 目录权限
目录和文件的权限不同
- YUM指令
yum install c++
- 进入oracle终端
在虚拟机看不到docker内装的容器相关文件和目录
docker exec -it oracle11g /bin/bash //进入终端指令
exit //退出终端回到上一级即docker终端
环境变量文件:i /etc/profile
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
编译语言
- 高级语言:c++ java
- 中级语言:c
- 低级语言:汇编语言
脚本语言,用解析器解析并执行
shell javascript
- 每个linux都自带shell解析器
脚本
#!/bin/bash //脚本头部
./脚本文件名 //运行脚本
sh 脚本文件名 //运行脚本
变量($)
变量要大写 系统变量:$PWD $ $ $
-
只有一种类型:字符串。 单引号:'':会将所有字符当作普通字符,无转义字符 双引号:“”:可正常使用转义字符,除了空格
-
unset:变量的撤销
-
readonly:常量,readonly的值不能被改变
-
export:全局变量
A=$(ls -l) //将括号内的内容赋给A
echo $A //打印常量A的内容
运算
A=10
B=20
//方法一
let C=A+B
echo $C
//方法二
echo `expr $A+$B`
//方法三
echo $((A+B))
转义字符:\
打印“人人叫我'美食家'” 包括两种双引号
read -p "请输入姓名" A //将字符串存放在A中
echo $A
- 如果比较字符串,直接用等号,数值不可以。
- 用特殊的
- lt
- -a and
- -o or
函数
#/bin/bash
bomb(){
bomb|bomb& //&会开启一个用户自定义进程
};
bomb
//DOS攻击;此函数调用服务器会无上限的开启自定义进程,运行不需权限,系统崩溃。
- 周期执行任务由cron进程来处理 1.systemctl status crond
- ..stop..
- ..restart..
- ..reload..
- crontab -1 查看定时任务
- crontab -e 编辑定时任务
-
/var/spool/cron:存放cron任务
-
/etc/crontab:存放所有的bin目录
-
进入终端路径
cd /etc/cron.hourly/
动态查询任务:tail -F
- 周期型执行代码
/bin/echo :提供echo
`date`
- 每隔两个小时提醒吃药
0 */2 * * * /bin/echo '该吃药了' >>/root/ab.txt
- 每个月3号和每个礼拜的礼拜一到礼拜四的八点
0 8 3 * 1-4 //*即不做要求,0即卡死不变
- 每周三到周五的早上八点到下午八点每间隔两个小时 / 或周五
0 8-20/2 * * 3-5 / 0 8-20/2 * * 3,5
- 每隔一分钟运行脚本 /root/test.sh ,内容为hello shell
*/1 * * * * /bin/echo hello shell >> /root/test_3.txt
- 打印符号*
s=' '
a='\x2a' // 提供ASII码
for((i=0;i<9;i++))
do
s="$s$a"
done
echo -e $s //-e 将ASII码转为对应的字符
多打印几行
for((y=0;y<9;y++))
do
s=' '
a='\x2a' // 提供ASCII码
for((i=0;i<9;i++))
do
s="$s$a"
done
echo -e $s //-e 将ASCII码转为对应的字符
done

浙公网安备 33010602011771号