Shell脚本编程学习笔记

echo $BASH 或 echo $SHELL     --查看当前系统使用的shell环境 
csh 或 ksh                    --切换shell环境(要安装才能切换)
chmod o+x xxx.sh              --给xxx.sh文件执行的权限
chmod o-x xxx.sh              --给xxx.sh文件去掉执行的权限
./xxx.sh                      --执行shell脚本(脚本目录下执行)
./bin/bash xxx.sh             --不需要执行权限执行shell脚本(脚本目录下执行)
ntpdate pool.ntp.org          --同步系统时间命令
date +%Y%m%d                  --打印当天时间
date -s 20180822              --修改系统时间
df -h                         --查看当前系统的分区情况
env                           --查看系统变量
!+命令                       --表示执行上一次这个命令 

---------------
rpm –qa|grep yum              --查看安装源是否安装:
rpm –e –nodeps yum            --卸载安装源
yum clean all                 --清理缓存
wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz   --下载最新的yum-3.2.28.tar.gz并解压
tar xvf yum-3.2.28.tar.gz
touch/etc/ yum.conf
cd yum-3.2.28 
yummain.py install yum        --运行安装
yum check-update
yum update
yum clean all                 --更新系统
---------------
yum install httpd httpd-devel mysql mysql-server mysql-devel php php-devel -y   --一键安装lamp环境
---------------
/etc/init.d/httpd restart      --重启httpd服务
/etc/init.d/mysqld restart     --重启mysql服务
/var/www/html/                 --Apache发布目录
-------------------
vim index.php   --新建一个php测试页
<?php
php.info();
?>


-------------------

Shell编程--变量
-----------------------------------
变量名规范:首字母不能为数字
            不能使用-
            可以使用_
单引号\'\为强制引用,内部不能使用变量
双引号\"\,内部可以使用变量

常见系统变量
$0          --当前脚本名称
$n          --当前脚本的第N个参数n=1,2,3....9
$* 或 $@    --当前脚本的所有参数(不包括程序本身)
$#          --当前脚本的参数个数(不包括程序本身)
$?          --命令或程序执行完后的状态,一般返回0表示执行成功
$UID        --当前用户的ID
$PWD        --当前所在的目录
 
----------------------------------------
逻辑运算符解析:
-f       --判断文件是否存在 eg:if [ -f filename ]
-d       --判断目录是否存在 eg:if [ -d dir ]
-eq      --等于应用于:整型比较 eqaul
-ne      --不等于 应用于:整形比较 not equal
-lt      --小于应用于:整型比较 letter
-gt      --大于应用于:整型比较 greate
-le         --小于或等于应用于:整型比较                    
-ge      --大于或等于应用于:整型比较
-a       --双方都成立(and)逻辑表达式 -a 逻辑表达式
-o       --单方成立(or)逻辑表达式 -o 逻辑表达式
-z       --判断空字符串


------------------------------------------
在Linux Shell编程中,if、for、while、case等条件流程控制语句
if (表达式)
    语句1
else
    语句2
fi


#第一个脚本  
#!/bin/bash
# by author Mike
##################
echo "Hello,world!"


#第二个脚本
#!/bin/bash
# by author Mike
##################
echo "================"
echo "Hello,world!"
echo -e "\033[32mHello,world!\033[0m"      --输出绿色字


#第三个脚本
#!/bin/bash
# by author Mike
##################
echo "================"
echo -e "\033[32mHello,world!\033[0m"      --输出绿色字
mkdir -p /tmp/20180822


#第四个脚本
#!/bin/bash
# by author Mike
##################
echo "================"
echo -e "\033[32mHello,world!\033[0m"      --输出绿色字
mkdir -p /tmp/`date +%Y%m%d`


#第五个脚本--安装lamp--apache+mysql+php环境
# by author Mike
##################
echo "================"
echo -e "\033[32m一键安装lamp环境\033[0m"      --输出绿色字
yum remove httpd httpd-devel mysql mysql-server mysql-devel php php-devel -y       --先卸载原有的
rm -rf /var/lib/mysql/  /etc/my.cnf /var/www/html/
yum install httpd httpd-devel mysql mysql-server mysql-devel php php-devel -y


#第六个脚本--安装lamp--apache+mysql+php环境--变量
# by author Mike
##################
LAMP_SOFT = "httpd httpd-devel mysql mysql-server mysql-devel php php-devel"
echo "================"
echo -e "\033[32m一键安装lamp环境\033[0m"      --输出绿色字
yum remove $LAMP_SOFT -y                       --先卸载原有的
rm -rf /var/lib/mysql/  /etc/my.cnf /var/www/html/
yum install $LAMP_SOFT -y

----------------------------------------------------
#第七个脚本--变量
params.sh
#!/bin/bash
#by Mike
echo -e '\033[32m--------------------\033[0m'
echo "This \$0 is $0 param !"
echo "This \$1 is $1 param !"
echo "This \$2 is $2 param !"
echo -e '\033[32m--------------------\033[0m'
echo "This \$* is $* param !"
echo "This \$# is $# param !"
echo "This \$? is $? param !"

执行结果
/bin/bash params.sh a b c d
--------------------
This \$0 is params.sh param !
This \$1 is a param !
This \$2 is b param !
--------------------
This \$* is a b c d  param !
This \$# is 4 param !
This \$? is 0 param !
-----------------------------------------------------
#第七个脚本--if
#!/bin/bash
NUM = $1
if (($NUM > 100));then                       --(( ))两个小括号表示运算
    echo "this num is $NUM greater 10!"
elif [[$NUM == 100]];then                     --使用[[ ... ]]条件判断结构,能够防止脚本中的许多逻辑错误
    echo "this num is $NUM equal 10!"
else
    echo "this num is $NUM little 10 !"
fi
-----------------------------------------------------
#第八个脚本--if
#!/bin/bash
#dir exist?
if [ -d /tmp/tmp0808 -a ! -d /tmp/tmp0809/ ];then   ----判断tmp0808和tmp0809目录是否存在(! -d)表示不存在
    mkdir -p /tmp/tmp0808
else
    echo "This DIR is exist,Please exist .."    
if

-----------------------------------------------------
#第九个脚本--if判断用户是否输入了参数
#!/bin/bash
NUM = $1
if [ -z $NUM ];then
    echo -e "\033[32mYou must to be enter a number.\033[0m"
    exit 0
fi

if (($NUM > 100));then                       --(( ))两个小括号表示运算
    echo "this num is $NUM greater 10!"
elif [[$NUM == 100]];then                     --使用[[ ... ]]条件判断结构,能够防止脚本中的许多逻辑错误
    echo "this num is $NUM equal 10!"
else
    echo "this num is $NUM little 10 !"
fi
 

猜你喜欢

转载自blog.csdn.net/u012002125/article/details/82027414