文章目录

  • nginx
  • nginx反向代理
  • nginx负载均衡
  • rewrite重定向
  • shell
  • Shell 简介
  • Shell 分类
  • 图形界面 Shell(GUI Shell)
  • 命令行界面 Shell(CLI Shell)
  • Shell执行
  • shell编程几个常用命令
  • grep命令详解
  • cut命令详解
  • sort
  • uniq 去重重复的行
  • seq
  • tr命令


nginx

nginx反向代理

location ~ php$ {
 proxy_pass http://192.168.64.5;
 }
 location / {
 proxy_pass http://192.168.64.7;
 }nginx负载均衡
upstream ken {
 server 192.168.64.5 weight=1;
 server 192.168.64.7 weight=2;
 }location / {
 proxy_pass http://ken;
 }rewrite重定向
location ~ .php$ {
 rewrite (.*php)$ http://192.168.64.7/$1 last;
 }练习1:使用root用户帐号创建并执行test2.sh,实现创建一个shelltest用户,并在其家目录中新建文件try.html。
#!/bin/bash
 useradd shelltest
 touch /home/shelltest/try.html练习2:统计当前系统总共有多少用户
[root@ken ~]# cat test2.sh #!/bin/bash
 echo “当前系统中用户数量:cat /etc/passwd | wc -l”[root@ken ~]# bash test2.sh 当前系统中用户数量:27
练习3:统计当前已经安装的软件数量
#!/bin/bash
 yum list installed | wc -l

shell

简介
脚本简单地说就是一条条的文字命令(一些指令的堆积),这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。

常见的脚本: JavaScript(JS,前端),VBScript, ASP,JSP,PHP(后端),SQL(数据库操作语言),Perl,Shell,python,Ruby,JavaFX, Lua等。

Shell 简介

Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理, Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。

shell 脚本统计nginx uvpv nginx执行shell_bash

Shell 分类

图形界面 Shell(GUI Shell)

GUI 为 Unix 或者类 Unix 操作系统构造一个功能完善、操作简单以及界面友好的桌面环境。主流桌 面环境有 KDE,Gnome 等。

命令行界面 Shell(CLI Shell)

CLI 是在用户提示符下键入可执行指令的界面,用户通过键盘输入指令,完成一系列操作。 在 Linux 系统上主流的 CLI 实现是 Bash,是许多 Linux 发行版默认的 Shell。还有许多 Unix 上 Shell,例如 tcsh、csh、ash、bsh、ksh 等。

Shell执行

  1. 直接用 bash 解释器执行
  2. source 命令执行,以当前默认 Shell 解释器执行
  3. 添加可执行权限

shell编程几个常用命令

grep命令详解

grep是行处理

选项 	                 		 描述-E,–extended-regexp 模式是扩展正则表达式(ERE)
 -i,–ignore-case 忽略大小写
 -n,–line-number 打印行号
 -o,–only-matching 只打印匹配的内容
 -c,–count 只打印每个文件匹配的行数
 -B,–before-context=NUM 打印匹配的前几行
 -A,–after-context=NUM 打印匹配的后几行
 -C,–context=NUM 打印匹配的前后几行
 –color[=WHEN], 匹配的字体颜色
 -v,–invert-match 打印不匹配的行例子1:找到/etc/passwd中的所有的root
[root@ken ~]# grep “root” /etc/passwd
 root❌0:0:root:/root:/bin/bash
 operator❌11:0:operator:/root:/sbin/nologin仅仅显示root
[root@ken ~]# grep -o “root” /etc/passwd
 root统计root出现的数量
[root@ken ~]# grep -o “root” /etc/passwd | wc -l
 4查看crond是否在线
[root@ken ~]# ps aux| grep “crond” | grep -vc “grep”
 1例子2:查看root所在的行号
[root@ken ~]# grep -n “root” /etc/passwd
 1:root❌0:0:root:/root:/bin/bash
 10:operator❌11:0:operator:/root:/sbin/nologin例子3:找到所有非/sbin/nologin 的行
[root@ken ~]# grep -v “nologin” /etc/passwd
 root❌0:0:root:/root:/bin/bash
 sync❌5:0:sync:/sbin:/bin/sync
 shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
 halt❌7:0:halt:/sbin:/sbin/halt例子4:在/etc/profile中找到history默认显示的行号
[root@ken ~]# grep -i “^hist” /etc/profile
 HISTSIZE=1000cut命令详解
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一
-c 指定字符数量
-d 指定分隔符
-f 指定分隔符后显示第几列
例子1:取出六位随机密码
[root@ken ~]# echo $RANDOM | md5sum | cut -c 1-6
 475f1c例子2:取出所有的用户名
[root@ken ~]# cat /etc/passwd | cut -d “:” -f 1
 root
 bin
 daemon
 adm取出shell类型
[root@ken ~]# cat /etc/passwd | cut -d “:” -f 7
 /bin/bash
 /sbin/nologin
 /sbin/nologinsort
Linux sort命令用于将文本文件内容加以排序。
 sort可针对文本文件的内容,以行为单位来排序。
 排序默认是升序常用参数说明:
-k:根据切割后的那一段进行排序
-n 依照数值的大小排序(默认是根据字符进行排序)。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
-u:去除重复的行(只要那个指定的字段重复,就认定是重复的行)例子1:根据大小进行排序
[root@ken ~]# sort -r test #默认是字符排序
 3
 2
 11[root@ken ~]# sort -rn test
 11
 3
 2uniq 去重重复的行
作用:
去除重复的行(相邻且相同,认定为重复)
 选项:-c:在行首用数字表示该行出现了多少次
-u:仅仅显示那些没有出现重复过的行
例子1:
[root@ken ~]# uniq -c test
 10 2
 1 11
 10 3统计访问网站IP数量并排名
[root@ken ~]# cat /var/log/httpd/access_log | cut -d ” ” -f1 | sort | uniq -c | grep -v “::” | sort -rn
 98 192.168.64.4
 45 192.168.64.1
 8 192.168.64.7
 3 192.168.64.5取出访问网站前三名的IP地址
[root@ken ~]# cat /var/log/httpd/access_log | cut -d ” ” -f1 | sort | uniq -c | grep -v “::” | sort -rn | head -3
 98 192.168.64.4
 45 192.168.64.1
 8 192.168.64.7seq
作用:
 生成一个数组序列
 seq 5 #结束位是5seq 2 10 #起始位是2,结束位是10
seq 2 2 10 #起始位是2,步长是2,结束位是10
tr命令
作用:
Linux tr 命令用于转换或删除文件中的字符。
tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
a-z 任意小写
A-Z 任意大写
0-9 任意数字