1. SHELL 编程概念入门
1)一个完整 Linux 操作系统(Linux 内核),默认用户是不能直接操作 Linux 内核,需要借助第三方的程序或者软件去操作,例如桌面工具、命令行工具(SHELL)。
2)SHELL 是 Linux 操作系统的外壳,可以将 SHELL 程序理解为中间件,位于用户和 Kernel 之间的沟通桥梁,SHELL 主要是用于接收用户输入的指令,对指令进行解析,并且发送给 Linux 内核。
3)Linux 内核接收到指令之后,会进行处理,会将处理完成的数据信息返回给 SHELL,最终 SHELL 将数据进行解析展示(返回)给用户使用者。
4)SHELL 程序软件类似 Windows 系统的 CMD 命令行,SHELL 看成是命令解释器,用户输入指令,最终通过 SHELL 解释器返回数据。
5)大多数的 Linux 操作系统(Linux 内核),启动之后,启动默认的 SHELL 程序(解释器),CentOS、RHEL、Ubuntu 系统的 SHELL程序:/bin/bash,SHELL 种类比较繁多,不同的 SHELL 的集成的
命令不一样,使用界面各不相同。
6)SHELL 编程的概念?
 SHELL 编程是在 SHELL 解释器中编写不同的指令,将不同的指令按照一定的逻辑关系和顺序堆积在文本文件中(SHELL 脚本),最终文本文件中的指令会在 SHELL 解释器中去执行,从而完成某个需求,整个过程称为 SHELL 编程。
7)SHELL 编程的规范?
 SHELL 编程的产物是 SHELL 脚本;
 脚本命名后缀以.sh 结尾的;
 脚本名称可以使用大小写字母、数字、-、_命名,推荐使用
跟脚本内容相关小写字母关键词命名; 脚本内容第一行以#!开头,表示强调和标识,其后接 SHELL解释器的类型;
 SHELL 代码编程时,尽量多的使用注释和说明;
8)SHELL 编程的意义?
2. SHELL 编程实战 Nginx WEB 平台(v1 版本)
1)Nginx 官网下载 Nginx 软件包稳定版本;
2)解压 Nginx 软件包&进入源代码目录;
3)安装 Linux 系统基础库、依赖的文件;
4)预编译,检查 Linux 系统 GCC、库文件,会产生 Makefile;
5)编译,执行 make 工具读取 Makefile 文件,调用 C 编译器;
6)安装,将 make 编译产生二进制文件拷贝至指定的目录;
7)启动,将 Nginx 二进制程序以进程的方式启动,对外提供服务访问;
#!/bin/bash
# 年  月  日 ::#auto install nginx web.
#by author www.jfedu.net
#########################
yum install -y wget tar gzip make openssl-devel
yum install -y gcc pcre pcre-devel zlib-devel
wget -c http://nginx.org/download/nginx-1.16.0.tar.gz
.tar.gz
cd nginx-
useradd -s /sbin/nologin www -M
./configure --prefix=/usr/local/nginx --user=www
--group=www
make
make install
/usr/local/nginx/sbin/nginx
ps -ef|grep nginx
netstat -tnlp|
setenforce
systemctl stop firewalld.service
3. SHELL 编程变量剖析(Nginx v2 版本)
1)变量是可变的值,跟常量(固定的数值)是相对立的,变量的值是可以随机修改的,变量赋值使用=,例如 A=www.jfedu.net,引用变量的值时,使用$A。变量主要是用于临时记录常用的信息,
变量信息存储在内存缓冲区,重启系统变量消失。
2)使用变量可以降低后续使用的信息时,变得简单、降低复杂度,类似 alias 别名机制。
3)SHELL 编程变量分为三种:
 用户变量
用户变量被称为是用户自定义的变量,局部变量,临时生效的,
例如:
A=www.jfedu.net
WEB=www.baidu.com
X_M=1101011994
 系统变量
系统变量是 Linux 系统内置的变量,主要是用于参数的定义、引用、结果的判断等,永久生效的,例如:
$?判断上一个命令执行成功或者失败;
$1 调用执行脚本时给定的第一个位置参数;
 环境变量
4)
#!/bin/bash
# 年  月  日 ::#auto install nginx web.
#by author www.jfedu.net
########################
NGX_VER="1.16.0"
NGX_YUM="yum install -y"
NGX_DIR="/usr/local/nginx"
NGX_SRC="nginx-$NGX_VER"
NGX_SOFT="nginx-${NGX_VER}.tar.gz"
NGX_ARGS="--user=www --group=www"
NGX_URL="http://nginx.org/download"
$NGX_YUM wget tar gzip make openssl-devel
$NGX_YUM gcc pcre pcre-devel zlib-devel
wget -c
$NGX_URL/$NGX_SOFT
tar -xzf $NGX_SOFT
cd $NGX_SRC
useradd -s /sbin/nologin www -M
./configure --prefix=$NGX_DIR $NGX_ARGS
make
make install
$NGX_DIR/sbin/nginxps -ef|grep nginx
netstat -tnlp|
setenforce
systemctl stop firewalld.service

SHELL用法一(基本概念)的更多相关文章

  1. Linux编程 9 (shell类型,shell父子关系,子shell用法)

    一. shell类型 1.1  交互式 bin/ shell程序 当用户登录到某个虚拟控制台终端或是在GUI中启动终端仿真器时,默认的shell程序就会开始运行.系统启动什么样的shell程序取决于你 ...

  2. scrapy shell 用法(慢慢更新...)

    scrapy shell 命令 1.scrapy shell url #url指你所需要爬的网址 2.有些网址数据的爬取需要user-agent,scrapy shell中可以直接添加头文件, 第①种 ...

  3. hive的shell用法(脑子糊涂了,对着脚本第一行是 #!/bin/sh 疯狂执行hive -f 结果报错)

    hive脚本的执行方式 hive脚本的执行方式大致有三种: hive控制台执行: hive -e "SQL"执行: hive -f SQL文件执行:参考hive用法: usage: ...

  4. C++并发与多线程学习笔记--互斥量、用法、死锁概念

    互斥量(mutex)的基本概念 互斥量的用法 lock(), unlock() std::lock_guard类模板 死锁 死锁演示 死锁的一般解决方案 std::lock()函数模板 std::lo ...

  5. PLSQL_PLSQL Hint用法总结(概念)

    2014-06-20 Created By BaoXinjian

  6. CreateObject("Wscript.Shell")用法

    WScript.Shell是WshShell对象的ProgID,创建WshShell对象可以运行程序.操作注册表.创建快捷方式.访问系统文件夹.管理环境变量. 该对象有一个run方法. Run 方法创 ...

  7. Linux Shell 用法

    目录 Shell test 命令 数值测试 字符串测试 文件测试 函数返回值 Shell test 命令 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测 ...

  8. 学以致用十八-----shell脚本之基础概念及变量

    1.脚本脚本,说了很多年的脚本,一直都没怎么弄明白为什么叫脚本,还仅仅是script翻译过来的?今天再查看翻译,查阅了资料,对脚本有了个新的认识. script也叫剧本,脚本---剧本,像剧本一样,让 ...

  9. 【Shell 编程基础第一部分】第一个Shell脚本HelloShell及一些简单的Shell基础书写与概念;

    http://blog.csdn.net/xiaominghimi/article/details/7603000 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...

随机推荐

  1. JZOJ-TG817-A-solution

    T1 考虑是否有一种排序方法使得最优解都相邻,这种排序方法就是按照过一个点x的斜率为(P/Q)的直线的截距 排序之后考虑临项即可,O(N) T2 exit

  2. 86.QuerySet API常用的方法详解:get方法

    get方法的查询条件只能有一条数据满足,如果匹配到多条数据都满足,就会报错:如果没有匹配到满足条件的数据,也会报错. 示例代码如下: from django.http import HttpRespo ...

  3. 瑞芯微RK3399六核-迅为3399开发板介绍

    迅为3399开发板基于瑞芯微的RK3399处理器设计,Rockchip RK3399是瑞芯微推出的一款低功耗.高性能的应用处理器芯片,该芯片基于Big.Little架构,即具有独立的NEON协同处理器 ...

  4. openvino资源

    Intel OpenVINO介紹及樹莓派.Linux的安裝 https://chtseng.wordpress.com/2019/01/21/intel-openvino%E4%BB%8B%E7%B4 ...

  5. ubuntu16cuda8 cuda9.0 共存

    https://blog.csdn.net/lovebyz/article/details/80704800 转载

  6. 移动端web前端开发

    移动端浏览器现状 视口 meta视口标签 二倍图 移动端主流方案 移动端技术解决方案 移动端常见布局 1.流式布局(百分比布局) 2.flex布局 3.rem适配布局 1)rem单位 2)媒体查询 3 ...

  7. .net EasyTree显示所级层级(无限级、整层级颗树)的另类写法。非递归

    获取整颗树的另类写法.非递归 //获取所有的菜单 List<T_Menu> menu = bll.getMenuByUsesrID("8189a7c1-6f15-4744-b6c ...

  8. ORBSLAM2的资源

    ORBSLAM2代码总结 https://blog.csdn.net/hzwwpgmwy/article/details/82462988 ORBSLAM2局部地图更新实现 https://blog. ...

  9. 数据库T-SQL语言操作(T-SQL语句、数据库、表、视图、索引)

    T-SQL语言 按用途分四部分 数据定义语言(CREATE,DROP,ALTER) 数据操作语言(INSERT,DELETE,UPDATE) 数据查询语言(SELECT) 数据控制语言(GRANT,R ...

  10. C#匿名委托,匿名函数,lambda表达式

    一.类型.变量.实例之间的关系. 类型>变量>实例 类型可以创建变量,实体类可以创建实例,实例可以存储在变量里. 二.委托使用过程: 1.定义委托(写好签名): 2.创建委托变量: 3.给 ...