一。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 文件名
五 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@'%';
七 shell编程
-------------------------------------------------------------
1.执行脚本权限
属主权限(文件创建人) -表示去掉权限
chmod u+rwx 文件
chmod u+x 文件
属组权限
chmod g+rwx 文件
其他权限
chmod o+rwx 文件
-------------------------------------------------------------
2 变量
i=值
echo $i ${i}
arr=("a" "b")
arr[1]="123"
echo $arr[1]
参数
$n表示传递的多个参数 1表示第一个参数 *表示所有参数 #表示参数的个数 0表示文件名
$?表示最近执行的shell命令 成功(0)|失败(非0) 重点
-------------------------------------------------------------
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<=$loopCount ))
do
echo -n $i
let "i++"
done
4 方法调用
#!/bin/bash
function add123(){
result=10000
result=`expr $1 + $2 `
echo $result
# 参数1 和 2是数字
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
将 /usr/local/nginx/sbin目录 添加到path环境变量中
vi ~/.bash_profile
PATH=:/usr/local/nginx/sbin
生效
source ~/.bash_profile
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项目打包
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>cn.ps.RegServerMain</mainClass>
</configuration>
</plugin>
</plugins>
</build>
执行命令打包
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;
}
linux命令
最新推荐文章于 2021-10-20 19:40:30 发布