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. min25筛学习笔记

    min25筛简介:用来求积性函数F(x)前缀和的,复杂度O(n0.75/logn),大概能求n<=1010. 记一个数x的最小质因子为R(x),所以当x不为质数时,R(x)<=√x这是废话 ...

  2. 剑指offer【08】- 二叉树的深度(java)

    题目:二叉树的深度 考点:知识迁移能力 题目描述:输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 牛客网上的剑指offer题, ...

  3. Go 验证是否字符串包含中文

    发现一个验证字符串是否包含中文滴时候,一个比正则更好使滴方法,而且是golang 自带滴验证. 不需要自己写正则验证,代码如下: package main import ( "fmt&quo ...

  4. js中要声明变量吗?

    你好,js语言是弱类型语言,无需申明即可直接使用,默认是作为全局变量使用的.建议:在function里时应使用var 申明变量,这样改变量仅仅只在function的生存周期内存在,不会污染到,全局控件 ...

  5. 吴裕雄--天生自然TensorFlow2教程:维度变换

    图片视图 [b, 28, 28] # 保存b张图片,28行,28列(保存数据一般行优先),图片的数据没有被破坏 [b, 28*28] # 保存b张图片,不考虑图片的行和列,只保存图片的数据,不关注图片 ...

  6. Python程序中的进程操作--—--开启多进程

    Python程序中的进程操作-----开启多进程 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创 ...

  7. 题解-------CF372C Watching Fireworks is Fun

    传送门 一道有趣的DP 题目大意 城镇中有$n$个位置,有$m$个烟花要放.第$i$个烟花放出的时间记为$t_{i}$,放出的位置记为$a_{i}$.如果烟花放出的时候,你处在位置$x$,那么你将收获 ...

  8. iTOP-4412开发板-can测试工具使用文档

    本文档介绍如何使用 can 工具测试 can. 给用户提供了“can_libs.rar”以及“can_tools.zip”压缩包,分别是 can 工具需要的库 文件和 can 工具二进制文件. 注意开 ...

  9. 6.windows-oracle实战第六课 --数据管理

    数据库管理员: 每个oracle数据库应该至少有一个数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分担不同的管理职责. 对于dba来说,会权限管 ...

  10. 论文翻译——Deep contextualized word representations

    Abstract We introduce a new type of deep contextualized word representation that models both (1) com ...