Linux的进阶学习

  • A+
所属分类:Nginx Linux LNMP

在这里推荐先参考我的另一篇文章:Linux的基础学习 然后再详细学习本篇教程。

修改主机名命令

需求: 想给linux主机取个有含义的主机名,方便将来查询

查看主机名:hostname
临时修改:
修改主机名:hostname 新主机名
此时修改的主机名只在当前服务中有效果,服务重启将还原主机名
永久设置:
hostnamectl set-hostname  主机名
或者修改配置文件: etc/hostname文件 永久更改,重启linux有效.reboot重启 

ip地址设置--自动配置/手动配置命令

需求: 之前我们linux的ip地址都是安装的时候自动分配获取的,能不能设置一个固定的ip地址

查看网络配置:ifconfig
设置固定ip:
编辑ifcfg-ens33网卡文件 vi /etc/sysconfig/network‐scripts/ifcfg‐ens33
ifcfg-ens33文件(ens33是通过ipconfig查询出来的):
ifcfg‐ens33:该文件存放网络的基本信息.(存在etc/sysconfig/network‐scripts目录下)

信息如下:

DEVICE=ens33  #网卡名称
TYPE=Ethernet  #网卡类型 以太网
ONBOOT=yes   #是否开机就使用此网卡 
BOOTPROTO=dhcp #启动网卡时指定获取IP地址的方式
常用取值 : dhcp (自动获取ip地址,网关,子网掩码等信息无需设置)

常用取值:static (静态ip,如需要访问网络,需要自己设置ip地址等信息)
其他取值:none (不指定,如需要访问网络,,需要自己设置ip地址等信息)
IPADDR=192.168.50.128   #ip地址
GATEWAY=192.168.50.2   #网关
NETMASK=255.255.255.0 #子网掩码

注意: 修改完毕后要重启网卡服务:service network restart

总结:linux的ip地址2种配置方式
linux的主机自动获取ip:BOOTPROTO=dhcp
会自动给当前linux主机分配ip地址

linux的主机手动设置ip:BOOTPROTO=static
手动自己配置ip 网关 子网掩码
IPADDR=192.168.50.128   #ip地址
GATEWAY=192.168.50.2   #网关
NETMASK=255.255.255.0 #子网掩码
还需要重启网卡服务 加载修改过后的ifcfg‐ens33配置文件
其中PREFIX=24而NETMASK与PREFIX的作用是一样的,都是配置子网掩码,只是PREFIX更简洁而已,两个都存在时,PREFIX优先起作用

ip和域名的映射

我们访问自己电脑可以使用127.0.0.1访问,也可以通过localhost,其实是由于localhost这个域名映射到了127.0.0.1这个ip地址上了. 同理,我们也可以设置域名映射,把要访问的虚拟机ip地址在当前主机上映射。

更改/etc下的hosts文件 最下面添加ip和域名的映射
192.168.xx.xx  gyhqq.com

网络服务管理(对应的是window的服务管理)

例如: service network(网卡服务) restart 重启网卡服务

服务命令:
service 服务名称 status  -----查看服务状态
service 服务名称 start    -----开启服务
service 服务名称 stop    -----关闭服务
service 服务名称 restart -----重启服务
或者
systemctl status  服务名称 -----查看服务状态
systemctl start    服务名称 -----开启服务
systemctl stop    服务名称 -----关闭服务
systemctl restart 服务名称 -----重启服务

配置服务开机自启动

mysql window  开机自动启动的
mysql linux       开机不自动启动的

开机自启/禁用服务
chkconfig mysql off  关掉服务的开机自动启动
chkconfig mysql on  开启服务的开机自动启动
或者
systemctl enable mysql  NetworkManager  开启network服务的开机启动
systemctl disable mysql NetworkManager  关闭network服务的开机启动

进程端口的查看

端口号的查看:netstat -apn/-an
如果提示命令没找到:yum install net-tools
端口号冲突 可以进行查看谁占用了 方便结束掉占用端口的进程   kill -9 pid
系统中网络进程端口的监听:
命令语法: netstat [参数]
参数: -a

防火墙设置

详细参考我的另外两篇文章:

1 安装iptables作为防火墙(企业用)
yum install iptables-services            #通过yum install 命令可以从网上下载安装iptables

2 停止firewall及其开机启动
systemctl stop firewalld.service       #停止firewall
systemctl disable firewalld.service   #禁止firewall开机启动

3 启用iptables,配置开机启动
systemctl start iptables.service        #启动iptables 
systemctl enable iptables.service    #将iptables设置为开机启动

4 查看iptables是否安装成功:systemctl status iptables
关闭iptables防火墙:systemctl stop iptables  #严重不建议
重启iptables防火墙:systemctl restart iptables

ps:只要安装好了iptable这个防火墙,这个防火墙的配置文件在/etc/sysconfig/iptabls
iptabls配置文件:允许某个端口访问
后期我们要安装软件 比如tomcat 8080
我们可以通过修改iptables文件设置8080端口可以被外界访问
修改配置文件:vi /etc/sysconfig/iptables  复制指定端口
ps:iptables是iptable防火墙的配置文件 所以必须得安装iptable防火墙才有该配置文件

SSH免密登录

在企业中,多台Linux机器是可以相互之间进行登录和退出的。 用Linux自带的SSH客户端命令,可以用输入密码的方式登录到另一台Linux机器中

命令:ssh 另一台linux主机的地址  需要密码
退出:exit

发现每次登录另一台Linux机器都要输入用户名和密码,难免让用户觉得麻烦。那么能不能 一个用户在不输入密码的情况下,也能登录另一台Linux机器呢,答案是可以的 这就是SSH免密登录(多台linux操作系统主机互相登录)

基于一对密钥:也就是你必须为自己创建一对密钥(公钥和私钥),并把公匙放在要访问的服务器上
密钥生成命令:ssh-keygen  三次回车
将公钥给另一台服务器:ssh-copy-id 另一台linux服务器的ip
再次登录:ssh 另一台linux服务器的ip  就再也不用密码了

Nginx的安装

1安装C语言环境(gcc)
命令:yum install gcc-c++   安装期间有提示,一律选y

2安装Nginx依赖环境,‐y表示所有提示默认选择y
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel

3放入/usr/local下解压并进入解压目录
tar -zxvf nginx-1.13.9.tar.gz
cd /usr/local/nginx-1.13.9

4编译并安装
注意:C语言研发的软件,都需要在解压的源码目录中,执行编译安装操作。
根据权限是否有x权限判断是否是可执行程序,也可以根据命令行中是否绿色显示判断,比如configure和nginx
./configure
make
make install
ps:安装成功之后,就会在/usr/local下多出了一个nginx目录.

5启动/停止 Nginx
进入nginx的sbin目录:cd /usr/local/nginx/sbin
./nginx  启动
./nginx -s stop 停止 
./nginx -s reload 重启

6 在防火墙配置文件中开放80端口
vi /etc/sysconfig/iptables
重启防火墙服务:service iptables restart

7 查看是否有nginx的线程是否存在
命令 ps -ef | grep nginx

8 反向代理,是服务端代理。
例如:我们有10台服务器集群,共同提供了一个web应用服务。为了实现负载均衡或者安全原因,为这10台服务器提供一个代理服务器。当有客户端访问web应用时,请求到代理服务器,由代理服务器把请求分发给某一个服务器处理,然后再由代理服务器把响应结果交给客户端。
这台代理服务器,是服务端的代理,称为反向代理。
9 正向代理,是客户端代理。
例如:我们访问不了google,但是香港的电脑可以访问。我们可以把访问请求交给香港的某台服务器电脑,让这台服务器电脑帮我们转必到google;然后得到google的响应内容,再把响应内容转交给我们。
这台服务器电脑,就是我们的代理,是客户端的代理,称为正向代理。

Nginx搭建负载均衡

详细参考我另一篇文章:Nginx反向代理、正向代理、负载均衡的配置详解

由于Nginx上没有安装tomcat,所以,暂时使用Windows版,完成负载均衡搭建演示

1.准备一个nginx服务器
2.准备多个tomcat服务器
    修改tomcat的端口
        关闭的端口
        访问的端口
        连接的端口
3.实现反向代理
    修改nginx的配置文件 nginx.conf
    upstream aaa{
        server localhost:8080 weight=5;
        server localhost:8090 weight=1;
    }
    server{
        
        location / {
           # root   html;
           index  index.html index.htm;
           proxy_pass http://aaa;
        }
    }

用户管理

在Linux系统中,除超级管理员外,还可以创建用户,创建组

1 创建新用户
命令: useradd  -m  新用户名 
ps:在home目录下会多一个用户 默认有一个组:组名就是当前用户名

2 设置新用户密码
命令: passwd  用户名
ps:普通用户的密码设置需要8位数的

3 使用新用户登录linux
使用新创建的用户名和密码登录 
ps:#代表超级管理员 $代表普通用户

4 修改用户名
命令 usermod -l 新用户名 旧用户名
ps:修改旧用户名为新用户名,该用户所在组名不变 还是以前的名字
   旧用户名就不能再登录Linux了 必须要使用新用户名

5 创建新用户组
命令:groupadd   新组名

6 修改用户组名
命令:groupmod  -n 新组名 旧组名

7 将用户添加到新用户组中
命令:usermod  -g   组名 用户名

8 从新用户组中删除用户
命令:gpasswd  -d   用户名  用户组名

详细命令介绍:
1.创建用户 (该权限归root帐号)
Linux和windows一样是一个多用户操作系统,我们系统中只有一个root用户,如何在linux中创建其他的用户呢?
命令格式:  useradd -m -g 组名 新用户名
命令格式:  passwd 新用户名
参数解释:
-m 自动在/home目录了,建立用户家目录,家目录名字就是新用户名
-g 组名 指定新用户所在的组,如果不带"-g 组名"参数的话,会建立和新用户名同名的组
Eg: 创建tom用户
创建用户命令:useradd ‐m tom
设置密码: passwd tom  (注意:设置密码的时候最少8位数字和字母组合,不能包含用户名)
2.修改用户
命令语法:  usermod -l 新登录名 原登录名
(使用管理员权限修改原登录名为新登录名,但所在组名不变)
Eg: 修改tom的登录名称为tomcat
usermod  ‐l  tomcat  tom
3.用户组操作
创建一个新组:
命令语法:groupadd 组名
Eg: groupadd javaee
将用户添加到组中
命令语法: usermod -g 组名 用户
Eg: usermod ‐g javaee  tomcat
修改组名:
命令语法:groupmod -n 新组名 原组名
Eg: groupmod ‐n java javaee
4.为用户配置sudo权限
sudo,可以理解为超级管理员执行的操作,最高权限.(有效操作时长5分
钟)
使用步骤:
1. 用root编辑 vi /etc/sudoers
2. 找到root ALL=(ALL) ALL
3. 找到之后,在当前行的下方添加一行
tomcat ALL=(ALL) ALL
在普通用户上,使用超级权限时前面需要加 sudo 
修改sudoers文件时需要强制写入信息(该文件为只读文件)
  • 资源分享QQ群
  • weinxin
  • 官方微信公众号
  • weinxin
沙海
AnyNode:最便宜的国外服务器
C语言郝斌老师教程
一个Java基础入门的教程视频
Linux服务器网站环境安装

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: