一。linux起源与uniux操作系统 linux分为两大派系
linux
-redhat (rpm)
-centos
-debian (deb)
-ubuntu
二。vmware网络三种模式
window主机 物理网络
虚拟机操作系统 虚拟网络 (依靠物理网络)
1 桥接模式
将vmnet0网络和本地连接的网络 进行桥接 给vmnet0设置一个静态的1段网络(arp )
优点 可以被局域网访问 局域网拥有的所有功能 虚拟机都可以获取
2 仅主机模式
这种模式 是一个特殊的nat模式 主机还是一个路由器 只能主机访问虚拟机 虚拟机不能上网
3 NAT模式(模式)
路由器模式 本机就是一个模拟的路由器 ip (192.188.48.1)
如果虚拟机中的系统 连接了这个路由器 他就可以实现和本机相同的网络操作
缺点:只能本机(window) 来访问这个虚拟
三。vmware安装centos [c[create]r[read]u[update]d[delete]] 设置网络
设置ip
ifconfig(ipconfig) 或者 ip addr
/etc/sysconfig/network-scripts/ifcfg-网卡名
vi 编辑
vi /etc/sysconfig/network-scripts/ifcfg-ens33
A【append】 表示进入编辑模式
ESC表示进入命令模式 :wq 保存退出
:q 确认是否保存
:w 保存不退出
:q! 强制退出 不保存
:set nu 给记事本添加行号
:数字 光标自动跳到指定行
onBoot=yes
BOOTPROTO=static
IPADDR=192.168.1.144
GATEWAY=192.168.1.2
DNS1=8.8.8.8
DNS2=114.114.114.114
重启网卡 (service network stop|start|restart)
关闭防火墙 (service iptables stop) centos7
systemctl stop firewalld (当前回话下 关闭防火墙)
systemctl disable|enable firewalld (禁用服务)
常用linux远程操作软件
putty|xshell|securecrt
四。 常用的文件操作
ll(查看linux当前目录下所有的文件和目录 )
文件或者目录表示(d[目录]|_[文件]|l[快捷方式]) XXX XXX OOO
属主权限(r[read]w[write]x[execute] -表示没有某一项权限) 同组权限 其他权限
属主权限 就是创建文件的用户 他拥有的权限 rwx 创建人 默认只有读和写的权限
同组权限 就是和文件创建用户相同组的其他用户权限
其他权限 就是非同一组的用户权限
新建目录 mkdir 目录名称
查看当前工作目录 pwd
查看文件 more|cat|less|tail|head 文件名
拷贝 cp 源文件 目标文件
删除 rm -rf 源文件
剪切 mv 源文件 目标文件
编辑文件 vi 文件名
新建文件 touch 文件名
echo 内容>文件名
vi 文件名
clear:清屏
cat:查看文件所有内容
创建用户:useradd -g 所属组 用户名
设置密码:passwd 用户名
切换用户:su - 用户名
rz:上传文件需要在 yum search rz 下载
chkconfig 服务名 on(off) 自动开启服务
ls -al:查看隐藏文件
五 linux客户端工具 远程连接linux(ssh协议 22端口)
putty
securecrt
xshell
六 linux安装软件
1 压缩包(tgz tar.gz) zip或者rar
tomcat http://www.apache.org/
tar zxvf 压缩包
tar zcvf 压缩包.tar.gz 目录
2 rpm安装包 (可执行文件 rwx ) shell命令行 全路径 /a.rpm
JDK下载路径 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装 rpm -ivh 包名
卸载 rpm -e 包名
rpm -qa | grep 包名
3 yum安装方式(通过寻找第三方的仓库 来获取对应的rpm软件)
如果某个rpm包依赖其他rpm包 一同安装
假如 a.rpm + b.rpm
yum 安装文件上传工具
yum search sz
yum install lrzsz
rz 就是选择文件上传到linux的工作目录
yum search mariadb (mariadb是mysql被oracle收购后 最后一个开源的分支项目)
yum -y install mariadb-server
service mariadb start
grant all on *.* to root@'%' identified by '123456';
create user root@'%' identified by '123456';
grant all on *.* to root@'%';
3 数学运算
#!/bin/bash
i=1+1
#如果要将某个命令的返回值 给某个变量 使用
j=expr 1 + 1
ipresult=ip addr
echo $j
echo $ipresult
#变量的运算
a=100
b=5
r=expr $a / $b
echo $r
3 流程逻辑运算
#!/bin/bash
#根据用户传入参数 start 输出启动 stop 输出停止
if [ $1 == “start” ]
then
echo “启动”
elif [ $1 == “shutdown” ]
then
echo “关机”
else
echo “停止”
fi
if [ $2 -lt 10 ]
then
echo “骚年”
fi
arr=(“hello” “你好”)
for a in ${arr[*]}
do
echo $a
done
sex=(0 1)
for a in ${sex[*]}
do
if [ $a -eq 0 ]
then
echo “男”
else
echo “女”
fi
done
#打印9*9成法表 -n不换行 默认换行
loopCount=10
i=1
while(( i < = i<= i<=loopCount ))
do
echo -n $i
let “i++”
done
4 方法调用
#!/bin/bash
function add123(){
result=10000
result=expr $1 + $2
echo $result
return ${result}
}
add123 200 200
echo "返回值是:$? "
5 io流
写
echo 内容 > 文件 覆盖
echo 内容 >>文件 追加
读
for rline in cat /shell/a.txt
do
echo $rline
done
6 错误输出处理
$ command > /dev/null 2>&1 默认是1
注意:0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。
九 nginx安装
下载 tengine http://tengine.taobao.org/download_cn.html
解压
yum -y install gcc pcre pcre-devel openssl openssl-devel
./configure
编译
make
sed -e “s|%%PREFIX%%|/usr/local/nginx|”
-e “s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|”
-e “s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|”
-e “s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|”
< man/nginx.8 > objs/nginx.8
make[1]: 离开目录“/root/soft/tengine-2.2.2”
安装
make install
编写C语言编译器下载:yum install gcc gcc-devel -y
缺少的东西yum install pcre pcre-devel -y
将 /usr/local/nginx/sbin目录 添加到path环境变量中
vi ~/.bash_profile
PATH=:/usr/local/nginx/sbin
生效
source ~/.bash_profile
auto :自动选择CPU核数
查看nginx进程数安装和端口: yum install net-tools -y
netstat -nlp | grep 80 :查看nginx命令
ip_hash 黏性ip
session_sticky黏性ip
nginx启动命令
nginx -m 显示所有加载的模块
nginx -l 显示所有可以使用的指令
nginx -t 检查nginx的配置文件是否正确
nginx -s start 启动nginx
nginx -s reload 重启nginx
nginx -s stop 停止nginx
linux反向代理配置
upstream a {
server 192.168.1.3:8761;
server 192.168.1.238:8761;
}
location / {
#root html;
#index index.html index.htm;
proxy_pass http://a;
}
maven项目打包
org.springframework.boot
spring-boot-maven-plugin
cn.ps.RegServerMain
执行命令打包
mvn package
打包文件位于项目 target目录下
运行
java -jar jar包名称
列表功能
location / {
root /soft;
autoindex on;
#proxy_pass http://a;
}
当访问 /路径是 自动列表显示 root指定的目录的内容
请求限制
deny 192.168.1.238;
allow 192.168.1.0;
deny 禁用访问的ip
allow 允许访问的ip
allow all
举例:
deny 192.168.1.0;
allow all
意思:除了1段 以外的ip都能访问
验证
auth_basic “validation”;
auth_basic_user_file /pass.txt;
安装 httpd
yum -y install httpd
htpasswd -nb 用户名 密码
将内容拷贝到/pass.txt 重启nginx
rewite模块(动静分离)
静态资源 图片 js css
动态资源 get /user/1 动态从存储或者数据库中读取 可能发生变化 (springmvc requestmapping)
所有可用的参数列表
http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_core_module.html#variables
rewrite模块地址
http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_rewrite_module.html
案例1
不同的浏览器语言 到不同页面
使用中文浏览器 www.baidu.com
使用英文浏览器 www.bing.com.cn
if ($http_accept_language ~ ^zh) {
return http://www.baidu.com;
}
if ($http_accept_language ~ ^en) {
return http://www.bing.com.cn;
}
案例2
动静分离
所有图片 直接从 nginx某个目录上返回
非图片路径 转向到后台(微服务 tomcat)
location ~* ^(.*).jpg|png|gif|bmp$ {
root html;
index index.html index.htm;
}
location / {
proxy_pass http://a;
}