文章目录
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 分类
图形界面 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执行
- 直接用 bash 解释器执行
- source 命令执行,以当前默认 Shell 解释器执行
- 添加可执行权限
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=1000
cut命令详解
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/nologin
sort
Linux sort命令用于将文本文件内容加以排序。
sort可针对文本文件的内容,以行为单位来排序。
排序默认是升序
常用参数说明:
-k:根据切割后的那一段进行排序
-n 依照数值的大小排序(默认是根据字符进行排序)。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
-u:去除重复的行(只要那个指定的字段重复,就认定是重复的行)
例子1:根据大小进行排序
[root@ken ~]# sort -r test #默认是字符排序
3
2
11
[root@ken ~]# sort -rn test
11
3
2
uniq 去重重复的行
作用:
去除重复的行(相邻且相同,认定为重复)
选项:
-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.7
seq
作用:
生成一个数组序列
seq 5 #结束位是5
seq 2 10 #起始位是2,结束位是10
seq 2 2 10 #起始位是2,步长是2,结束位是10
tr命令
作用:
Linux tr 命令用于转换或删除文件中的字符。
tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
a-z 任意小写
A-Z 任意大写
0-9 任意数字