0


Linux的基本协议与他的堂兄堂弟

14天学习训练营导师课程: 互联网老辛《 符合学习规律的超详细linux实战快速入门》

努力是为了不平庸~
学习有些时候是枯燥的,但收获的快乐是加倍的,欢迎记录下你的那些努力时刻(学习知识点/题解/项目实操/遇到的bug/等等),在分享的同时加深对于知识点的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~

1.17 动态监控

top与ps命令一样,它们都用来显示正在执行的进程。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程。

基本语法:

top [选项]
选项功能-d秒数指定top命令每隔几秒刷新,默认3秒-i使用top不显示任何闲置或者僵死的进程-p通过指定监控ID来仅仅监控某个进程的状态
1.17.1 top指令详解

我们执行top指令:

[root@xq100 ~]# top

我们发现进程信息会每3秒钟就刷新1次。

下面我们对这些重要的指标信息进行讲解:

top -21:34:06: top命令刷新进程的时间

up:系统运行的时长

user:当前linux系统上面的用户数

load average: 负载值(三个数字相加(0.04+0.07+0.18)除以3 的值>0.7说明负载值很大)

Tasks:总进程数

ruuning: 正在运行的进程数

sleeping:休眠的进程数

stopped:停止的进程数

zombie:僵死的进程数

%(CPU): CPU负载百分比 us:用户占用cpu百分比 sy:系统占用cpu百分比 id:空闲cpu百分比

Mem:描述内存占用情况 total:总共内存 free 空余内存 used:使用了的内存 buff/cache:缓存

Swap:描述交换区内存占用情况

1.17.2 top指令的交互操作

当我们输入top命令之后,我们可以按下面的字符来进行对应的交互操作。

交互操作说明:
操作功能P以CPU使用率来排序,默认就是此项M以内存使用来排序N以PID排序q退出top
应用实例:

1.监控特定用户,比如我们监控jack用户(前提是jack登录了)

先输入top指令,然后按小写的u,最后输入jack然后回车,查看执行的进程。

最后查看效果:

2.终止指定的进程,比如我们要结束jack登录

top:输入此命令,然后回车,查看执行的进程

k:然后输入要结束的进程ID号 回车之后输入9 强制删除。

接下来还要输入信号量:

此时我们发现jack没强制下线。

3.指定系统状态更新的时间(没隔10秒自动更新),默认是3秒

[root@xq100 ~]# top -d 10  # 每10秒刷新1次

1.17.3 监控网络状态

基本语法: netstat [选项]

选项说明 -an 按照一定的属性排列输出 -p 显示哪个进程在调用

[root@xq100 ~]# netstat -anp | more
Local Address:本机linux的ip地址

Foreign Address:外部的网络地址

tcp:网络协议

127.0.0.1 / 0.0.0.0: 当前linux机器的本地地址

631/25/6060....:应用程序监听的端口号

State: LISTEN 监听状态 ESTABLISHED:建立连接的状态

PID:应用程序的进程号 Program name: 应用程序的名称

如何理解Foreign Address呢?

我们可以通过一幅图来理解:

应用案例:

查看服务名称为sshd的服务信息。

[root@xq100 ~]# netstat -anp | grep sshd

1.18 rpm与yum

1.18.1 rpm

rpm是互联网下载包和打包和安装工具,他包含在某些linux分版中,他具有生产.rpm扩展名的文件,RPM是redhat package manage(软件包管理工具的缩写),类似于setup.exe

我们看看rpm相关的指令:

  • 查询所有安装的rpm列表
[root@xq100 ~]# rpm -qa
[root@xq100 ~]# rpm -qa | more # 分页展示所有的rpm列表
  • 查询当前系统中是否安装了指定的软件
[root@xq100 ~]# rpm -qa | grep firefox # 查询linux系统中是否已经安装了火狐浏览器
firefox-60.8.0-1.el7.centos.x86_64

一个rpm包的名称命名规则:

firefox:rpm包名

60.8.0-1.el7:rpm包的版本号

centos:rpm包适用于的操作系统

x86_64:适用于64位的操作系统。(如果是i686或者i386说明适用于32位操作系统,noarch表示通用。)

  • 查看软件包是否安装
[root@xq100 opt]# rpm -q firefox  # 查看火狐浏览器是否存在rpm包(安装)
firefox-60.8.0-1.el7.centos.x86_64
  • 查询软件安装的详细信息
[root@xq100 opt]# rpm -qi firefox   # 查询火狐浏览器的详细安装信息
Name        : firefox
Version     : 60.8.0
Release     : 1.el7.centos
Architecture: x86_64
Install Date: Thu 18 Aug 2022 02:50:39 PM CST
Group       : Unspecified
Size        : 218777805
License     : MPLv1.1 or GPLv2+ or LGPLv2+
Signature   : RSA/SHA256, Fri 12 Jul 2019 11:01:23 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : firefox-60.8.0-1.el7.centos.src.rpm
Build Date  : Fri 12 Jul 2019 02:04:42 AM CST
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : https://www.mozilla.org/firefox/
Summary     : Mozilla Firefox Web browser
Description :
Mozilla Firefox is an open-source web browser, designed for standards
compliance, performance and portability.
  • 查看rpm包安装之后的文件
[root@xq100 opt]# rpm -ql mariadb-libs-5.5.64-1.el7.x86_64
  • 查看指定的文件所属的rpm包
[root@xq100 opt]# rpm -qf /etc/my.cnf  # 查询/etc目录下面的my.cnf文件所属的rpm包
mariadb-libs-5.5.64-1.el7.x86_64

如果某一个rpm包我们不想要了,我们也可以卸载。

[root@xq100 opt]# rpm -e firefox  #删除firefox

注意:如果其它的软件包依赖于要删除的软件包,卸载时则会产生错误。此时如果我们想强制删除,可以添加另外的参数--nodeps。

[root@xq100 opt]# rpm -e --nodeps firefox  #删除firefox
  • 安装rpm包

基本语法: rpm -ivh RPM包全路径名称

几个参数:

i=install 安装

v=verbose 提示

h=hash 进度条

案例:使用rpm命令安装firefox

[root@xq100 ~]# rpm -e firefox  # 删除firefox
[root@xq100 ~]# rpm -q firefox  # 查询firefox是否删除成功
package firefox is not installed

接下来我们需要去下载rpm包,其实linux操作系统内置了firefox的安装包,我们打开光驱:

然后找到Packages目录:

然后打开Packages目录,找到firefox的rpm包:

将其拷贝至/opt目录下面:

最后我们安装rpm包:

[root@xq100 ~]# rpm -ivh /opt/firefox-60.8.0-1.el7.centos.x86_64.rpm 

最后我们发现firefox又安装成功了。

1.18.2 yum

Yum是一个Shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并安装,并且可以自动处理依赖性关系,并且一次安装所有的依赖软件包。下面我们用一副图来理解yum命令:

基本指令

查询yum服务器上是否有需要安装的软件:

yum install | grep xxx软件列表

下载并安转指定的yum包:

yum install xxx 的rpm包名

案例:使用yum命令安装firefox

[root@xq100 opt]# rpm -e firefox  #删除firefox  此时我们发现linux服务器里面的火狐浏览器不存在了
[root@xq100 opt]# rpm list | grep firefox # 查看服务器上是否存在指定的rpm包
firefox.x86_64                            60.8.0-1.el7.centos          @anaconda
firefox.i686                              91.12.0-2.el7.centos         updates  
firefox.x86_64                            91.12.0-2.el7.centos         updates 
[root@xq100 opt]# yum install firefox.x86_64  # 下载并安装firefox,我们再查看linux服务器里面的火狐浏览器,发现又有了

1.19 常用软件的安装

1.19.1 安装JDK8

  • 第一步:在/opt目录下面创建jdk文件夹
[root@xq100 ~]# mkdir /opt/jdk
  • 第二步:使用ftp上传工具上传jdk的安装压缩包,上传成功之后如下:
[root@xq100 ~]# cd /opt/jdk
[root@xq100 jdk]# ll
total 185312
-rw-r--r--. 1 root root 189756259 Sep  3 16:38 jdk-8u161-linux-x64.tar.gz  # 这就是上传之后的jdk的压缩文件
  • 第三步:解压压缩文件
[root@xq100 jdk]# tar -zxvf jdk-8u161-linux-x64.tar.gz

解压之后效果如下:

jdk的下载地址是:

链接:https://pan.baidu.com/s/1u3misQGlL9JHqpXnqdLtzw 
提取码:42gk 
  • 第四步:在/usr/local目录下面创建java文件夹
[root@xq100 java]# mv /opt/jdk/jdk1.8.0_161/ /usr/local/java  # 拷贝解压的文件至java文件夹
[root@xq100 java]# ll
total 0
drwxr-xr-x. 8 10 143 255 Dec 20  2017 jdk1.8.0_161
  • 第五步:配置环境变量

编辑配置文件/etc/profile

[root@xq100 java]# vim /etc/profile

在文件的最后追加:

export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH

保存并退出,然后让编辑之后的profile文件生效:

[root@xq100 java]# source /etc/profile  # 让编辑之后的profile文件生效
[root@xq100 java]# java -version  # 查看jdk的版本号
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
  • 第六步: 编写一个java文件测试是否正常运行
[root@xq100 kobe]# javac Hello.java # 编译java文件
[root@xq100 kobe]# java Hello  # 执行class字节码文件
Hello World

1.19.2 安装mysql5.7

1.19.2.1 mysql的安装

第一步: 切换到opt目录,下载mysql的rpm包

[root@java2201 opt]# cd /opt
[root@java2201 opt]# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

注意: 如果wget命令不可用,我们需要安装wget命令

[root@java2201 opt]# yum -y install wget

下载成功之后,我们会发现:

第二步:安装mysql的yum源

[root@java2201 opt]# yum -y localinstall mysql57-community-release-el7-11.noarch.rpm 

第三步:在线安装mysql

[root@java2201 opt]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
[root@java2201 opt]# yum -y install mysql-community-server  # 在线安装mysql

整个安装过程需要一点时间,请耐心等待。

第四步:启动mysql服务

[root@java2201 opt]# systemctl start mysqld

我们可以查看mysql服务启动之后的状态:

第五步:设置mysql服务开机自启动

[root@java2201 opt]# systemctl enable mysqld
[root@java2201 opt]# systemctl daemon-reload

第六步,修改root登录密码

mysql安装完成之后,会在/var/log/mysqld.log文件中给root生成了一个临时的默认密码。

[root@java2201 opt]# vi /var/log/mysqld.log 

复制此密码,使用此密码登录root。(mysql -u root -p)

粘贴密码之后,回车进入到mysql服务器:

修改密码, mysql5.7默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位

mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin123!'; #密码自定义

第七步:运行远程登录

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Admin123!' WITH GRANT OPTION;
mysql>exit  # 退出mysql

第八步:防火墙开放3306端口

[root@java2201 opt]# firewall-cmd --permanent --add-port=3306/tcp  # 开放防火墙对3306端口的权限
[root@java2201 opt]# firewall-cmd --reload  # 重载防火墙服务
[root@java2201 opt]# firewall-cmd --list-ports  # 查看防火墙开发的端口有哪些
3306/tcp

第九步:配置mysql默认编码为utf-8

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置:

character_set_server=utf8

init_connect='SET NAMES utf8'

:wq保存退出

第十步:重启MySQL

[root@java2201 opt]# systemctl restart mysqld

第十一步:登录root用户查看编码

mysql> show variables like '%character%';

第十二步,测试远程连接

0

到这里,在linux操作系统里面安装mysql就成功了。

1.19.2.2 如何修改root密码

如果我们不小心忘记了root账户的密码,那么如何重置root账户的密码呢?

第一步:修改mysql的配置文件/etc/my.cnf。设置免密登录。然后重启mysql服务。

[mysqld]
skip-grant-tables=1   # 设置免密登录
[root@java2201 ~]# systemctl restart mysqld

第二步:无需使用密码,登录数据库。

[root@java2201 ~]# mysql -u root  # 不带密码就可以实现数据库的登录
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.39 MySQL Community Server (GPL)
​
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​

第三步:重置密码。

mysql> use mysql;  # 切换到mysql数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
​
Database changed
mysql> update user set authentication_string=password('Admin2022!') where user='root';
Query OK, 2 rows affected, 1 warning (0.01 sec)
Rows matched: 2  Changed: 2  Warnings: 1
​

第四步:退出并修改my.cnf,将免密登录的配置注释掉。

[mysqld]
# skip-grant-tables=1   # 把这行配置注释掉 

第五步:重启mysql服务,然后重新登录即可。

[root@java2201 ~]# systemctl restart mysqld
[root@java2201 ~]# mysql -u root -pAdmin2022!  # 使用新的密码登录
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.39 MySQL Community Server (GPL)
​
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> 

1.19.3 安装tomcat

  • 第一步:上传文件到/opt/tomcat

下载地址是:

链接:https://pan.baidu.com/s/1SpgByHyyZfkA3Ia836A4aw 
提取码:a251 
[root@xq100 opt]# mkdir /opt/tomcat
[root@xq100 opt]# cd tomcat/
[root@xq100 tomcat]# ll
total 10188
-rw-r--r--. 1 root root 10432020 Sep  3 17:02 apache-tomcat-8.5.59.tar.gz
  • 第二步:进入解压目录bin,使用./startup.sh启动tomcat
[root@xq100 tomcat]# tar -zxvf apache-tomcat-8.5.59.tar.gz
[root@xq100 tomcat]# ll
total 10188
drwxr-xr-x. 9 root root      220 Sep  3 17:03 apache-tomcat-8.5.59  # 解压之后的目录
-rw-r--r--. 1 root root 10432020 Sep  3 17:02 apache-tomcat-8.5.59.tar.gz
[root@xq100 tomcat]# cd apache-tomcat-8.5.59/bin  # 切换到tomcat解压目录中的bin目录
[root@xq100 bin]# ll
total 868
[root@xq100 bin]# ./startup.sh # 启动tomcat
Using CATALINA_BASE:   /opt/tomcat/apache-tomcat-8.5.59
Using CATALINA_HOME:   /opt/tomcat/apache-tomcat-8.5.59
Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-8.5.59/temp
Using JRE_HOME:        /usr/local/java/jdk1.8.0_161
Using CLASSPATH:       /opt/tomcat/apache-tomcat-8.5.59/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.5.59/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
  • 第三步:开放防火墙对8080端口的权限
[root@xq100 tomcat]# firewall-cmd --permanent --add-port=8080/tcp  # 开放8080端口
success
[root@xq100 tomcat]# firewall-cmd --reload  # 重新载入防火墙服务
success
[root@xq100 tomcat]# firewall-cmd --list-ports # 查看8080端口是否被开放
3306/tcp 8080/tcp
  • 第四步:测试tomcat是否安装成功

发送请求: http://192.168.10.130:8080 是否能够访问tomcat的首页。

标签: linux

本文转载自: https://blog.csdn.net/keep_contact/article/details/128025902
版权归原作者 康来个程 所有, 如有侵权,请联系我们删除。

“Linux的基本协议与他的堂兄堂弟”的评论:

还没有评论