Linux - 凡论人心,观事传,不可不熟,不可不深


Linux - 凡论人心,观事传,不可不熟,不可不深

Linux

学习目标

Linux简介

Linux系统版本

  • Linux系统分为内核版和发行版:

Linux系统版本-发行版

  • ubuntu:以桌面应用为主
  • RedHat:应用最广泛、收费
  • centOS:RedHat的社区版、免费
  • openSUSE:对个人完全免费、图形界面华丽
  • Fedora:功能完备、快速更新、免费
  • 红旗Linux:北京中科红旗软件技术有限公司开发

Linux安装(centOS7)

安装方式介绍

  • 物理机安装:直接将操作系统安装到服务器硬件上。
  • 虚拟机安装:通过虚拟机软件安装。

    • 虚拟机指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。
  • VMware Workstation16 密钥:ZF3R0-FHED2-M80TY-8QYGC-NPKYF  

安装Linux

root密码

  • root1234
  • 这样就是进入系统了

网卡设置

  • 由于启动服务器时未加载网卡,导致lIP地址初始化失败。
  • ip addr

修改网络初始化配置,设定网卡在系统启动时初始化

改最后一项ONBOOT

  • esc:wq退出

测试

  • ip addr
  • 能看得见IP地址就可以了

安装SSH连接工具

  • SSH,建立在应用层基础上的安全协议。
  • 常用的SSH连接工具:

    • putty
    • secureCRT
    • xshell
    • finalshell
  • 通过SSH连接工具就可以实现从本地连接到远程的Linux服务器

finalshell SSH连接centos

Linux和Windows目录结构对比

  • Linux系统中的目录

    • /是所有目录的顶点。
    • 目录结构像一颗倒挂的树。

Linux目录介绍

  • bin 存放二进制可执行文件
  • boot 存放系统引导时使用的各种文件
  • dev 存放设备文件etc存放系统配置文件
  • home 存放系统用户的文件·
  • lib 存放程序运行所需的共享库和内核模块
  • opt 额外安装的可选应用程序包所放置的位置
  • root 超级用户目录
  • sbin 存放二进制可执行文件,只有root用户才能访问
  • tmp 存放临时文件
  • usr 存放系统应用程序
  • var 存放运行时需要改变数据的文件,例如日志文件

Linux常用命令

Linux命令初体验

  • 注意事项:在执行Linux命令时,提示信息如果显示为乱码,这是由于编码问题导致,只需要修改Linux的编码即可。
  • 命令如下:
  • echo 'LANG="en_US.UTF-8"' >> /etc/profile
    source /etc/profile

Linux命令初体验

Linux命令使用技巧

  • Tab键自动补全
  • 连续两次Tab键,给出操作提示
  • 使用上下箭头快速调出曾经使用过的命令
  • 使用clear命令或者Ctrl+l快捷键实现清屏

Linux命令格式

  • 例:ls -l

  • 例:cd /roottouch 2.txt 3.txt 4.txt`
  • 例:rm -f 1.txt(直接删除,不提示)

文件目录操作命令

ls显示指定目录下的内容

简写“ll”=“ls -l”

cd切换当前工作目录,即进入指定目录

cat显示文件内容

例1:cat /etc/profile

例2:cat -n /etc/profile

more以分页的形式显示文件内容

例:more /etc/profile

tail查看文件末尾的内容

例:tail -f /my/my.log

  • ctrl + c 即可退出。

mkdir创建目录

举例

rmdir删除空目录

举例

rm删除文件或者目录

举例

拷贝移动命令

CP用于复制文件或目录

举例① —— 将cpdd01.txt复制到cpdd目录中

举例② —— 将cpdd01.txt复制到当前目录,并改名为cpdd02.txt

举例③ —— 将cpdd目录和目录下所有文件复制到ps目录下

举例④ —— 将hei目录下所有文件复制到ps目录下

mv为文件或目录改名、或将文件或目录移动到其它位置

① 将tiktok.txt改名为dou.txt

② 将文件dou.txt移动到ps目录中

③ 将dou.txt移动到cp9目录中,并改名为yin.txt

④ 如果mv1目录不存在,将mv1目录改名为mv2;如果mv1目录存在,将mv1目录移动到mv2目录中

打包压缩命令

tar对文件进行打包、解包、压缩、解压

① 建包 -cvf

② 打包压缩 -zvcf

③ 解包 -xvf

④ 解压 -zxvf

举例(打包、解包)

解包 - 解压到根目录

文本编辑命令

vi/vim

安装vim

  • yum install vim

vim

针对vim中的三种模式说明如下:

1、命令模式
  • 命令模式下可以查看文件内容、移动光标(上下左右箭头、gg、G)。
  • 通过vim命令打开文件后,默认进入命令模式。
  • 另外两种模式需要首先进入命令模式,才能进入彼此。
2、插入模式
  • 插入模式下可以对文件内容进行编辑。
  • 在命令模式下按下[i,a,o]任意一个,可以进入插入模式。
  • 进入插入模式后,下方会出现【insert】字样。
  • 在插入模式下按下ESC键,回到命令模式。
3、底行模式
  • 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作。
  • 在命令模式下按下[:,/]任意一个,可以进入底行模式。
  • 通过/方式进入底行模式后,可以对文件内容进行查找。
  • 通过:方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)。

查找命令

find在指定目录下查找文件

在当前目录及其子目录下查找.java结尾文件

在/root目录及其子目录下查找.java结尾的文件

grep从指定文件中查找指定的文本内容

查找Hello.java文件中出现的Hello字符串的位置

查找当前目录中所有.java结尾的文件中包含hello字符串的位置

Linux软件安装

软件安装方式

二进制发布包安装

  • 软件已经针对具体平台编译打包发布,只要解压,修改配置即可。

rpm安装

  • 软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题。

yum安装

  • 一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库。

依赖问题源码编译安装

  • 软件以源码工程的形式发布,需要自己编译打包。

安装jdk

上传jdk文件

  • finalshell可以直接上传文件:

解压jdk

  • tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local

配置环境变量

  • vim /etc/profile
  • shift + g 定位到文件末尾
  • 点击 i键 进入插入模式
  • 输入以下两行变量:
JAVA_HOME=/usr/local/jdk1.8.0_171

PATH=$JAVA_HOME/bin:$PATH
  • esc返回,:wq保存退出。
  • 重新加载profile文件,使更改的配置立即生效,命令为source /etc/profile
  • 检查安装是否成功,命令为java -version

安装Tomcat

上传和解压tomcat

  • 解压安装包:tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local

进入Tomcat的bin目录启动服务

  • cd apache-tomcat-7.0.57/
  • cd bin
  • 进入Tomcat的bin目录启动服务,命令为sh startup.sh或者./startup.sh

验证Tomcat启动是否成功

查看启动日志

  • 先回到tomcat文件夹根目录下,再cd logs/
  • more /usr/local/apache-tomcat-7.0.57/logs/catalina.out
  • 无异常信息,出现端口号则为运行成功

  • 也可以用tail -50 /usr/local/apache-tomcat-7.0.57/logs/catalina.out

查看进程 ps -ef|grep tomcat

  • ps -ef|grep tomcat

防火墙操作

  • 查看防火墙状态(systemctl status firewalld、firewall-cmd --state)
  • 暂时关闭防火墙(systemctl stop firewalld)
  • 永久关闭防火墙(systemctl disable firewalld)
  • 开启防火墙(systemctl start firewalld)
  • 开放指定端口(firewall-cmd --zone=public --add-port=8080/tcp --permanent)
  • 关闭指定端口(firewall-cmd --zone=public --remove-port=8080/tcp --permanent)
  • 立即生效(firewall-cmd --reload)
  • 查看开放的端口(firewall-cmd --zone=public --list-ports)


  • 注意:

    • systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作。
    • firewall-cmd是Linux中专门用于控制防火墙的命令。
    • 为了保证系统安全,服务器的防火墙不建议关闭。

暂时关闭防火墙

开放指定端口

  • firewall-cmd --zone=public --add-port=8080/tcp --permanent
  • 立即生效:firewall-cmd --reload

查看开放的端口

  • firewall-cmd --zone=public --list-ports

停止tomcat服务

运行Tomcat的bin目录中提供的停止服务的脚本文件shutdown.sh

  • sh shutdown.sh
  • ./shutdown.sh

结束Tomcat进程 —— 查看Tomcat进程,获得进程id

  • 执行命令结束进程kill -9 XXXXX

安装MySQL

  • 注意事项:如果当前系统中已经安装有MySQL数据库,安装将失败。CentoS7自带mariadb,与MySQL数据库冲突。

rpm -qa | grep mysql

rpm -qa | grep mariadb

  • 有mariadb,没有mysql。
  • 移除mariadb。

卸载已经安装的冲突软件 —— 移除mariadb

  • rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
  • 现在mariadb移除掉了。

将资料中提供的MySQL安装包上传到Linux并解压

  • mkdir /usr/local/mysql
  • tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql

按照顺序安装rpm软件包

* rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
* rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
* rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
* rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
* rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
* yum install net-tools
* rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm

* yum update   --通过指令升级现有软件及系统内核

启动mysql

查看mysql服务状态

  • systemctl status mysqld

启动mysql服务

  • systemctl start mysqld

开机启动mysql服务

  • systemctl enable mysqld

查看已经启动的服务

  • netstat -tunlp

  • netstat -tunlp | grep mysql

查看mysql进程

  • ps -ef | grep mysql

登录MySQL数据库,查阅临时密码

  • 注意事项:冒号后面的是密码,注意空格
  • cat /var/log/mysqld.log | grep password
  • 临时密码:iTeBuy)ue7er

登录MySQL,修改密码,开放访问权限

  • set global validate_password_length=4;
  • set global validate_password_policy=LOW;
  • set password = password('root');
  • grant all on *.* to 'root'@'%' identified by 'root';
  • flush privileges;

外部连接数据库(Navicat)

  • 开启3306端口号
  • reload

连接成功

安装lrzsz —— 文件上传、下载

  • 搜索lrzsz安装包,命令为yum list lrzsz
  • 使用yum命令在线安装,命令为yum install lrzsz.x86_64

rz —— “选择上传文件”

项目部署

手工部署项目

① 在IDEA中开发SpringBoot项目并打成jar包

② 将jar包上传到Linux服务器

mkdir /usr/local/app                      --创建目录,将项目jar包放到此目录

③ 启动SpringBoot程序

  • java -jar hello.jar

④ 检查防火墙,确保8080端口对外开放,访问SpringBoot项目

⑤ 改为后台运行SpringBoot程序,并将日志输出到日志文件

  • 目前程序运行的问题:

    • 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行;
    • 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息。

⑥ 停止SpringBoot程序

通过Shell脚本自动部署项目

  • 在Linux中安装Git
  • 在Linux中安装maven
  • 编写Shell脚本(拉取代码、编译、打包、启动)
  • 为用户授予执行Shell脚本的权限
  • 执行Shell脚本

① 在Linux中安装Git

yum list git          --列出git安装包
yum install git      --在线安装git

② 使用Git克隆代码

cd /usr/local/
git clone https://gitee.com/xxxxxxx/xxxxx.git

③ 将资料中提供的maven安装包上传到Linux,在Linux中安装maven

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
vim /etc/profile

export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

source /etc/profile
mvn -version
vim /usr/local/apache-maven-3.5.4/conf/settings.xml
<localRepository>/usr/local/repo</localRepository>

④ 将资料中提供的Shell脚本文件复制到Linux —— bootstart.sh

  • Shell脚本(shell script),是一种Linux系统中的脚本程序。
  • 使用Shell脚本编程跟JavaScript、 Java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

bootstart.sh

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=helloworld

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

echo 准备从Git仓库拉取最新代码
cd /usr/local/helloworld

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`

cd target

echo 启动项目
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成

新建脚本

⑤ 为用户授权

  • chmod(change mode)命令是控制用户对文件的权限的命令。
  • Linux中的权限分为:读(r)、写(w)、执行(x)三种权限。
  • Linux的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其它用户(Other users)。
  • 只有文件的所有者和超级用户可以修改文件或目录的权限。
  • 要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行。

chmod命令可以使用八进制数来指定权限

⑥ 设置静态ip

BOOTPROTo="static"         # 使用静态IP地址,默认为dhcp

IPADDR="192.168.138.100"       # 设置的静态IP地址

NETMASK="255.255.255.0"       # 子网掩码

GATEWAY="192.168.138.2"      # 网关地址

DNS1="192.168.138.2"             # DNS服务器

⑦ 重启网络服务

  • systemctl restart network
  • 注意:重启完网络服务后ip地址已经发生了改变,此时FinalShell已经连接不上Linux系统,需要创建一个新连接才能连接到Linux。

声明:三二一的一的二|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Linux - 凡论人心,观事传,不可不熟,不可不深


三二一的一的二