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的首页。
版权归原作者 康来个程 所有, 如有侵权,请联系我们删除。