概念
shell编程主要将用户手工操作的单个或多个Linux指令,按照一定的逻辑关系执行,将重复的繁琐的工作简单化、流程化、自动化
1.基础编程:
echo $SHEL
用来查看机器用的是哪种SHELL程序类型
2.安装ksh
yum install -y ksh
3.查看文件安装位置
rpm -ql ksh
whereis ksh
which ksh
4.查系统版本情况
cat /etc/openEuler-release
5.查看包的版本信息
[root@localhost ~]# rpm -qa | grep ksh
ksh-2020.0.0-11.oe2203sp4.x86_64
6切换shell解释器
[root@localhost ~]# ksh
# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 1.7G 0 1.7G 0% /dev/shm
tmpfs 676M 17M 659M 3% /run
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/sda3 25G 3.4G 21G 15% /
tmpfs 1.7G 0 1.7G 0% /tmp
/dev/sda1 770M 204M 511M 29% /boot
# bash
Welcome to 5.10.0-221.0.0.120.oe2203sp4.x86_64
7.1打印hello,world
[root@localhost ~]# echo "hello,world"
hello,world
[root@localhost ~]# touch print_hello.sh #创建print_hello.sh文件
[root@localhost 20240814]# vim print_hell.sh
7.2查看创建文件权限,并添加执行权限执行文件操作
[root@localhost 20240814]# ls -l print_hell.sh
-rw-r--r-- 1 root root 119 8月 15 12:33 print_hell.sh
[root@localhost 20240814]# chmod +x print_hell.sh
[root@localhost 20240814]# ls -l print_hell.sh
-rwxr-xr-x 1 root root 119 8月 15 12:33 print_hell.sh
[root@localhost 20240814]# ./print_hell.sh
hello world.
8.开发自动部署Nginx一键部署脚本
步骤1.从Nginx官网下载软件包nginx-1.26.1.tar.gz(-c continue断点续传,-P path指定下载存储的目录);
wget -c http://nginx.org/download/nginx-1.26.1.tar.gz -P /usr/src/
步骤2.切换至/usr/src目录;
cd /usr/src/
ls -l nginx-1.26.1.tar.gz
步骤3.通过tar工具对其解压(-x extract解压,-z gzip压缩格式,-v verbose 详细显示,-f file文件属性);
tar -xzvf nginx-1.26.1.tar.gz
步骤4.切换至Nginx源代码目录;
cd nginx-1.26.1/
提前创建www用户和组,安装依赖包、库文件(-s,shell指定解释器类型,-M 不为其创建家目录);
useradd -s /sbin/nologin www -M
yum install -y gcc pcre-devel zlib-devel openssl-devel
步骤5.预编译(--prefix指定安装路径,--user|group指定用户和组,--with-http_stub_status_module开启状态监控模块);
./configure --prefix=/usr/local/nginx/ --user=www --group=www --with-http_stub_status_module
主要是检测Linux系统安装该软件所需的依赖环境/库文件,检测linux系统是否存在C编译器(GCC),指定软件服务部署的路径,自定义软件服务特定的参数、模块,最终会产生Makefile文件
步骤6.编译(-j4 开启4个线程并行执行)
make -j4 install
主要是通过make编译工具去读取第一步预编译产生的Makefile文件,调用Linux系统GCC编译器,将源代码文件编译生成二进制文件,其中Makefile文件用途告知make工具再编译源代码文件时从哪个源码文件开始编译至哪个源码文件结束编译。
步骤7.安装
make -j4
主要是讲第二步make编译产生的二进制文件,拷贝或者安装至Linux系统指定的安装目录--prefix=/usr/local/nginx/。
步骤8.启动Nginx进程;
/usr/local/nginx/sbin/nginx
步骤9.Nginx进程状态;
ps -ef | grep nginx
步骤10.Firewalld防火墙对外开放80duankou ;
firewall-cmd --add-port=80/tcp --permanent
或者关闭防火墙:systemctl reload firewalld.service
[root@localhost 20240814]# #yum install -y lrzsz
[root@localhost 20240814]# #sz auto_install_nginx_v1.sh 将文件下载至桌面
[root@localhost 20240814]# #rz -y 可以将系统文件上传至服务器
[root@localhost 20240814]# touch auto_install_nginx_v1.sh
[root@localhost 20240814]# vim auto_install_nginx_v1.sh
#!/bin/bash
#2024年8月14日21:06:20
#auto install nginx web
#by author www.jfedu.net
#######################
#从Nginx官网下载软件包;
wget -c http://nginx.org/download/nginx-1.26.1.tar.gz -P /usr/src/
#Cd切换至/usr/src/;
cd /usr/src/;
ls -l nginx-1.26.1.tar.gz
#通过Tar工具对其解压;
tar -xzvf nginx-1.26.1.tar.gz
#Cd切换至Nginx源代码目录;
cd nginx-1.26.1/
#创建www用户和组,解决依赖环境、库文件;
useradd -s /sbin/nologin www -M
yum install -y pcre-devel zlib-devel openssl-devel
#预编译;
./configure --prefix=/usr/local/nginx/ --user=www --group=www --with-http_stub_status_module
#编译;
make -j4
#安装;
make -j4 install
#查看Nginx软件服务是否部署成功;
ls -l /usr/local/nginx/
#启动Nginx服务进程;
/usr/local/nginx/sbin/nginx
#查看Nginx进程状态;
ps -ef|grep nginx
#关闭Firewalld防火墙;
systemctl stop firewalld.service
#!/bin/bash
#2024年8月14日21:06:20
#auto install nginx web
#by author www.jfedu.net
########################
NGX_VER="1.26.1"
NGX_SRC="/usr/src/"
NGX_DIR="/usr/local/nginx"
NGX_SOFT="nginx-${NGX_VER}.tar.gz"
NGX_URL="http://nginx.org/download"
NGX_ARGS="--user=www --group=www --with-http_stub_status_module"
#从Nginx官网下载软件包;
wget -c $NGX_URL/$NGX_SOFT -P $NGX_SRC
#Cd切换至/usr/src/;
cd $NGX_SRC
ls -l $NGX_SOFT
#通过Tar工具对其解压;
tar -xzvf $NGX_SOFT
#Cd切换至Nginx源代码目录;
cd nginx-$NGX_VER/
#创建www用户和组,解决依赖环境、库文件;
useradd -s /sbin/nologin www -M
yum install -y pcre-devel zlib-devel openssl-devel
#预编译;
./configure --prefix=$NGX_DIR/ $NGX_ARGS
#编译;
make -j4
#安装;
make -j4 install
#查看Nginx软件服务是否部署成功;
ls -l $NGX_DIR/
#启动Nginx服务进程;
$NGX_DIR/sbin/nginx
#查看Nginx进程状态;
ps -ef|grep nginx
#关闭Firewalld防火墙;
systemctl stop firewalld.service
后执行sh auto_install_nginx_v1.sh