飞天班第33节:Linux快速上手(下)

2020/05/10

1、用户管理

Linux系统是多用户多任务的

添加用户

# man ueradd 查看useradd命令的详细信息
# useradd --help 查看useradd命令的帮助信息
# 创建一个用户coding,并生成用户的主目录
# -m 创建用户主目录,默认有登录权限
[root@kuangshen ~]# useradd -m coding
# 设置密码,
[root@kuangshen ~]# passwd coding
[root@kuangshen ~]# cd /home
[root@kuangshen ~]# ls
coding

查看用户文件/etc/passwd

修改用户

# man usermod 查看详细信息
# 修改用户的登录shell 、用户主目录、组
# 修改它的组为 root,也就拥有了root权限
[root@kuangshen ~]# usermod -s /bin/ksh -d /home/coding222 -g root coding

用户设置密码

# man passwd
# 如果是超级用户,可以给任何一个账户指定它的密码
[root@kuangshen ~]# passwd coding

# 如果是当前用户,则直接输入passwd来修改密码
[coding@kuangshen ~]# passwd
Changing password for user coding
New password:		# 输入密码是不显示的
Retype new password

# 密码设置为空
passwd -d 用户名
# 锁定用户
passwd -l 用户名

删除用户

# man userdel
# userdel -r 删除用户所有的目录文件
[root@kuangshen ~]# userdel -r coding
[root@kuangshen ~]# cat /etc/passwd

2、用户组管理

/etc/group

man groupadd  # 添加组
man groupmod	# 修改组
man groupdel	# 删除组
对于组的操作本质是修改文件/etc/group

# 切换用户组
[root@kuangshen ~]# man newgp
[root@kuangshen ~]# newgp root

/etc/passwd

所有用户信息

# 取出一条记录
coding:x:1001:1001::/home/coding:/bin/bash

# 用户名:口令:用户组:组的标识:注释:用户的主目录:登录的shell

/etc/shadow

用户密码的管理

# 取出一条记录
coding:!!:18395:7:99999:7:::
# 登录名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:

3、进程管理

进程存在两种方式:前台进程,后台进程,一般我们会将一些服务使用后台进程方式启动

ps命令

查看当前系统正在执行的进程信息

-a 显示当前终端的所有进程信息
-u 以用户的形式显示进程信息
-x 显示后台进程运行的参数

[root@kuangshen ~]# ps -a
[root@kuangshen ~]# ps -aux|grep mysql # 查看某个服务的进程
# grep命令用于查找文件中符合条件的字符

ps -ef 可以查看父进程

-e 显示所有的进程
-f 格式化
UID: 用户id
PID: 进程的id

# 查看特定进程信息
[root@kuangshen ~]# ps -ef|grep docker

kill 杀进程

相当于windows的结束任务
kill 进程号
kill 进程名称
# 强制结束进程
kill -9 PID

pstree 进程树查看

-p 显示进程PID
-u 显示这个进程所属的用户
[root@kuangshen ~]# pstree -pu

使用pstree方便我们查看进程间的关系

小结

4、JDK安装

安装的三种方式

  • rpm安装
  • 解压缩包安装
  • 在线安装

rpm安装jdk

安装包通过ssh22端口或者ftp21端口上传到服务器,

1、线检查本地是否有安装JDK

[root@kuangshen ~]# rpm -qa|grep jdk
jdk1.8-1.8.0_221-fcs.x86_64
# 卸载
[root@kuangshen ~]# rpm -e --nodeps jdk1.8-1.8.0_221-fcs.x86_64
# 确认卸载完成
[root@kuangshen ~]# java -version

2、安装jdk

[root@kuangshen ~]# rpm -ivh jdk-8u251-linux-i586.rpm

3、配置环境

[root@kuangshen ~]# vi /etc/profile
# 添加下面的内容,路径自行修改
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12
CLASSPATH=%JAVA_HOME%/lib:%$JAVA_HOME%/jre/bin
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export JAVA_HOME CLASSPATH PATH

# 让配置生效
[root@kuangshen ~]# source /etc/profile
[root@kuangshen ~]# java -version
java version "1.8.0_221"

# java默认安装目录
[root@kuangshen ~]# cd /usr/java

5、Tomcat安装

解压缩包安装

到官网下载tomcat的压缩包,后缀tar.gz,上传到服务器

1、解压缩

[root@kuangshen usr]# tar -zxvf apache-tomcat-9.0.22.tar.gz  

2、启动测试

使用 curl命令模拟浏览器访问测试

# curl命令 -X请求方式(GET/POST/PUT/DELETE) 请求地址 -d 参数
curl -XPUT 'localhost:9200/customer/car/1' -d '{"name":"jude"}'

curl -XDELETE 'localost:9200/customer/external/1?name=pretty'

在Linux测试中,可以使用纯命令curl测试请求,如果你不使用Postman等工具的话

公网访问

  • 防火墙

    云服务器默认防火墙是关闭的,手动开启

    # 查看防火墙状态
    [root@kuangshen bin]# systemctl status firewalld 
    # 启动防火墙
    systemctl start firewalld
    # 关闭防火墙
    systemctl stop firewalld
    # 重启防火墙
    systemctl restart firewalld
      
    # 查看防火墙开启的端口
    firewall-cmd --list-ports
    # 开启防火墙端口
    firewall-cmd --zone=public --add-port=9200/tcp --permanent
    #命令含义:
    #  –zone #作用域
    #  –add-port=9200/tcp #添加端口,格式为:端口/通讯协议
    #  –permanent #永久生效,没有此参数重启后失效
    #  _注意:添加端口后,必须重新加载防火墙一遍才会生效
    firewall-cmd --reload
    #关闭防火墙端口:
    firewall-cmd --zone=public --remove-port=9200/tcp --permanent
    
  • 安全组策略

    如果是云服务器,还需要配置安全组,否则外网链接不上

6、Docker安装

Yum在线安装

Docker 官网: https://docs.docker.com/

Linux安装docker官方文档:https://docs.docker.com/engine/install/centos/

docker仓库:https://hub.docker.com/

1、查看docker 版本,确认是否已安装

 [root@VM_0_3_centos ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:25:41 2019
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

2、安装前先卸载旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

确认centos的版本

[root@VM_0_3_centos ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)

[root@iZwz996g0zi82g3p8a5i9mZ ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

如果不想在线安装,也可以选择rpm手动安装docker

3、环境安装

# 确认安装c和c++环境
[root@iZwz996g0zi82g3p8a5i9mZ ~]# yum -y install gcc
Package gcc-4.8.5-39.el7.x86_64 already installed and latest version
Nothing to do
[root@iZwz996g0zi82g3p8a5i9mZ ~]# yum -y install gcc-c++
Package gcc-c++-4.8.5-39.el7.x86_64 already installed and latest version
Nothing to do

4、设置镜像仓库

# 工具包
yum install -y yum-utils

# 安装阿里的镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5、安装docker engine

# 可以更新yum的缓存软件索引包,保证下载最新的
yum makecache fast 或者yum update
# docker-ce(社区版) docker-ee(企业版)
yum install docker-ce docker-ce-cli containerd.io -y

# 安装完毕启动docker
systemctl start docker
# 关闭docker
systemctl stop docker
# 运行一个hello world镜像image,确认docker正确安装
docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete 

卸载docker-ce(社区版)

#1 卸载docker 引擎,客户端,包含的安装包
$ sudo yum remove docker-ce docker-ce-cli containerd.io

#2 删除所有的镜像文件
sudo rm -rf /var/lib/docker

使用docker安装镜像

比如安装tomcat,两步:search搜索tomcat->pull 安装tomcat

docker解决的问题场景

我们原来发布项目,是打jar包,war包,使用docker之后,我们环境一起打包成一个镜像发布服务器上,使用命令docker run启动镜像,环境都不用配置,大大节省开发时间和部署时间

7、宝塔安装

宝塔是简单好用的服务器运维面板

搜索bt.cn,官网:https://bt.cn/

我们选择Linux面板,安装免费版

安装

宝塔面板其实是安装在我们服务器上的一个程序应用,我们通过浏览器访问管理,需要开发一些端口,

帮助文档:https://www.bt.cn/bbs/thread-19376-1-1.html

1、云服务器安全组开放端口

2、安装命令

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装完成,会显示面板地址和登录用户名/密码

Bt-Panel: http://119.109.0.119:8888/jude
username: xxxxx
password: xxxxx
Warning:
If you cannot access the panel, 
release the following port (8888|888|80|443|20|21) in the security group

宝塔Linux面板命令大全

官方文档:https://www.bt.cn/btcode.html

# 宝塔工具箱
bt

# 停止
/etc/init.d/bt stop

# 启动
/etc/init.d/bt start

# 卸载面板
/etc/init.d/bt stop && chkconfig --del bt && rm -f /etc/init.d/bt && rm -rf /www/server/panel

# 修改面板密码,如改成123456
cd /www/server/panel && python tools.py panel 123456

安全

防火墙端口开放关闭,可以在这里配置

文件可视化管理

可以上传下载文件,在线修改文件,如修改nginx的配置

一键安装环境

一键部署应用

部署网站,需要域名备案

Post Directory