nginx-shell简介-shell命令

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执行

  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=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 任意数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值