1./service/scripts 固定放脚本的文件;写脚本固定以.sh结尾;用bash执行脚本(也可用sh去执行脚本)
2.chmod +x(权限) test.sh 加权限以后可以用绝对路径执行脚本;/service/scripts/ test.sh
3.在linux中,没有指定解释器,会默认用bash解释器;#!/bin/bash (声明指定用bash解释器)
脚本必须要写声明,脚本第一行固定有
4.理论上给脚本加上逻辑,变成编程;(echo "123123" | passwd -stdin yunjisuan)
5.在脚本里,[ ]是逻辑符号,&&是逻辑语(左边是假动作,右边不执行);|| 逻辑或(左边是假,右边才执行)逻辑或只能用一次,只能出现在最右边,用一个结束。
echo 111 && echo 222 || echo 333
(真) (真) (不执行)
6.[空格 内容 空格] 进行真或假判断的
[ 1=1 ] && echo 真 || echo 假
在计算机里面两个==是判断(x==3);一个=是复制,把右边的给左边
[ 1==3 ] && echo 真 || echo 假
在脚本里 -gt代表大于;-eq代表等于;-lt代表小于;-ge大于等于;-le小于等于;-ne是不等于
7./etc/init.d/sshd start 启动ssh服务
8.脚本里可以传参数 sh /service/scripts/test.sh 1 2 3 4 5
$0取得是文件的执行路径;$*=$@把参数罗列出来;$# 参数的个数
9.shell计算 (1)expr $x+$y
(2) echo "$((a+b))"
10.输入重定向 cat << FOF 让cat输出内容到屏幕上遇到FOF停止输出
cat >test.txt<< FOF 键盘输入内容到test.txt里,输入FOF终止输入
exit 强行终止脚本
11.read 把屏幕输出的内容,输入到后面的变量里
read -p 把后面引号里的东西,存到后面变量里,然后再输出(逻辑或只能用一次,只能出现在最右边,用一个结束)
12.[ -d /service/scripts ] && echo 1 || echo 2 ; 判断/service/scripts是不是目录
[ -d /service/scripts ] || mkdir -p /service/scripts; 不是目录就创建它
13.-e 判断目标是否存在;-f 判断文件;-d判断目录;-r 判断可读;-w 判断可写;-x 判断可执行;-z 判断是不是空
[ -z " " ] && echo 空 || echo 不空
14.${#x}求变量有多少个字符;x=“123123” echo ${#x} 6
15.编程语言:(1)基本脚本命令 (2)基本逻辑语法
if语句:(1)if (条件) (2)then 干啥 (3)fi (结尾符号);elfi 否则
16.用缩进(tab)来体现shell的优先集,条件判断只要成功一次,后面就不执行了
17.在shell脚本里搭建yum仓库
#!/bin/bash
umount /dev/sr0
[ -d / media/cdrom ] || mkdir -p /media/cdrom
mount /dev/sr0 /media/cdrom
if [ $? -ne 0 ];then
echo "请查看光盘是否插入“
exit
fi
[ -d /etc/yum.repos.d ] || mkdir -p /etc/yum.repos.d
cd /etc/yum.repos.d &&
mv * /tmp/
cat > /etc/yum.repos.d/local.repo <<FOF
[local]
name=local
baseurl=file:///media/cdrom
gpgcheck=0
enabled=1
FOF
yum -y clean all && echo "yum clean"
yum makecache && echo "huan cun success"