Linux基础入门——实用操作和软件安装(完结)

课程链接:第四章-01-各类小技巧快捷键_哔哩哔哩_bilibili

前置文章Linux基础入门——用户和权限-CSDN博客

声明:该文章为本人的学习笔记,非专业教程

目录

声明:该文章为本人的学习笔记,非专业教程

第四章 Linux实用操作

各类小技巧

软件安装

Linux系统应用商店

yum命令

systemctl命令

控制系统内置服务

控制第三方服务

手动集成到systemctl

软链接

ln命令创建软链接

日期和时区

date命令

查看系统时间

进行日期加减

修改Linux时区

ntp程序

IP地址和主机名

IP地址

特殊IP地址

主机名

在Linux中修改主机名

域名解析

为Linux虚拟机配置主机名映射

虚拟机配置固定IP

配置固定IP为 192.168.88.130

网络传输

ping命令

wget命令

curl命令

端口

查看端口占用

nmap命令

netstat命令

进程管理

查看进程

ps命令

查看指定进程

关闭进程(kill)

主机状态

top命令查看系统资源占用

top命令选项

top交互式选项(不强记,可跳过)

磁盘信息监控

df命令

iostat命令

网络状态监控

环境变量

环境变量PATH

$符号

自行设置环境变量

自定义环境变量PATH

上传和下载

rz、sz命令

压缩和解压

压缩格式

tar命令

压缩

 解压

zip命令压缩文件

unzip命令解压文件

第五章 实战章节

Redis安装部署

简介

安装


第四章 Linux实用操作

各类小技巧

快捷键/快捷命令作用
CTRL + C1.强制停止:结束正在运行的命令 2.取消命令:退出当前命令的输入(比如写错了,就不用逐一删除),重新开始编写
CTRL + D1.退出账户登录 2.退出某些特定程序的专属页面,如:python(终端输入python可以进入) PS:不能用于退出vi或vim
history查看历史输入过的命令
! + 命令前缀可以快速执行历史命令(如:刚使用过python,后续输入!py即可),配合history使用更好
CTRL + R快速查找历史命令,进行修改(按键盘左右键获取)或直接执行(直接回车)
CTRL + A跳到命令开头
CTRL + E跳到命令结尾
CTRL + 键盘左键向左跳一个单词
CTRL + 键盘右键向右挑一个单词
CTRL + L清空终端内容(清屏)
clear效果同上

软件安装

Linux系统应用商店

操作系统安装软件有许多种方式,一般分为:

  • 下载安装包自行安装

    • win系统使用exe文件、msi文件等

    • mac系统使用dmg文件,pkg文件等

  • 系统的应用商店内安装

    • win系统的Microsoft Store商店

    • 如mac系统有AppStore商店

Linux系统(CentOS)同样支持这两种方式:Linux命令行内的“应用商店”,yum命令安装软件

注意yum是CentOS的命令,不适用于其他Linux操作系统

yum命令

yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题

语法:yum [-y] [install | remove | search] 软件名称

  • -y,自动确认,无需手动确认安装或卸载过程

  • install,安装

  • remove,卸载

  • search,搜索

注意

  1. yum命令需要root权限,可以su切换到root,或使用sudo提权

  2. yum命令需要联网

演示

通过yum命令安装 wget 程序yum [-y] install wget

[root@localhost womeng]# yum install -y wget
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                   | 3.6 kB  00:00:00     
extras                                                                                                 | 2.9 kB  00:00:00     
updates                                                                                                | 2.9 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                                          | 153 kB  00:00:00     
(2/4): extras/7/x86_64/primary_db                                                                      | 253 kB  00:00:00     
(3/4): updates/7/x86_64/primary_db                                                                     |  27 MB  00:00:02     
base/7/x86_64/primary_db       FAILED                                          
http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/6d0c3a488c282fe537794b5946b01e28c7f44db79097bb06826e1c0c88bad5ef-primary.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"
正在尝试其它镜像。
(4/4): base/7/x86_64/primary_db                                                                        | 6.1 MB  00:00:00     
正在解决依赖关系
--> 正在检查事务
---> 软件包 wget.x86_64.0.1.14-18.el7 将被 升级
---> 软件包 wget.x86_64.0.1.14-18.el7_6.1 将被 更新
--> 解决依赖关系完成
​
依赖关系解决
​
==============================================================================================================================
 Package                   架构                        版本                                   源                         大小
==============================================================================================================================
正在更新:
 wget                      x86_64                      1.14-18.el7_6.1                        base                      547 k
​
事务概要
==============================================================================================================================
升级  1 软件包
​
总下载量:547 k
Downloading packages:
No Presto metadata available for base
警告:/var/cache/yum/x86_64/7/base/packages/wget-1.14-18.el7_6.1.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
wget-1.14-18.el7_6.1.x86_64.rpm 的公钥尚未安装
wget-1.14-18.el7_6.1.x86_64.rpm                                                                        | 547 kB  00:00:00     
从 http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
 用户ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 指纹       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 来自       : http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在更新    : wget-1.14-18.el7_6.1.x86_64                                                                               1/2 
  清理        : wget-1.14-18.el7.x86_64                                                                                   2/2 
  验证中      : wget-1.14-18.el7_6.1.x86_64                                                                               1/2 
  验证中      : wget-1.14-18.el7.x86_64                                                                                   2/2 
​
更新完毕:
  wget.x86_64 0:1.14-18.el7_6.1                                                                                               
​
完毕!
通过yum命令卸载wget程序:yum [-y] remove wget

[root@localhost womeng]# yum remove wget
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 wget.x86_64.0.1.14-18.el7_6.1 将被 删除
--> 解决依赖关系完成
​
依赖关系解决
​
==============================================================================================================================
 Package                   架构                        版本                                  源                          大小
==============================================================================================================================
正在删除:
 wget                      x86_64                      1.14-18.el7_6.1                       @base                      2.0 M
​
事务概要
==============================================================================================================================
移除  1 软件包
​
安装大小:2.0 M
是否继续?[y/N]:N
Exiting on user command
您的事务已保存,请执行:
 yum load-transaction /tmp/yum_save_tx.2024-08-25.09-08.wj7Cvn.yumtx 重新执行该事务
​
# 因为后面要用,我就不卸载了,可以自行尝试

通过yum命令,搜索是否有wget安装包

[root@localhost womeng]# yum search wget
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
===================================================== N/S matched: wget ======================================================
wget.x86_64 : A utility for retrieving files using the HTTP or FTP protocols
​
  名称和简介匹配 only,使用“search all”试试。

如果出现报错,按顺序执行以下命令,进行换源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all
​
yum makecache
​
yum -y update # 这个可能会花点时间

因为Linux自带的应用商店需要连外网,这里将镜像换到国内,就可以用国内网络下载了

systemctl命令

Linux系统很多软件(内置或第三方)均支持使用systemcyl命令控制:启动、停止、开机自启

能够被systemctl管理的软件,一般称之为:服务

语法:systemctl start | stop |status | enable | disable 服务名

  • start 启动

  • stop 关闭

  • status 查看状态

  • enable 开启开机自启

  • disable 关闭开机自启

控制系统内置服务

系统内置的服务比较多,比如:

  • NetworkManager,主网络服务

  • network,副网络服务

  • firewalld,防火墙服务

  • sshd,ssh服务(FinalShell远程登录Linux使用的iu是这个服务)

查看防火墙的运行状态systemctl status firewalld

[womeng@localhost ~]$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 日 2024-08-25 08:25:49 PDT; 9h ago
     Docs: man:firewalld(1)
 Main PID: 129427 (firewalld)
    Tasks: 2
   CGroup: /system.slice/firewalld.service
           └─129427 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

关闭防火墙(需要root权限)sudo systemctl stop firewalld

[womeng@localhost ~]$ sudo systemctl stop firewalld
[womeng@localhost ~]$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 日 2024-08-25 17:37:40 PDT; 11s ago
     Docs: man:firewalld(1)
  Process: 129427 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 129427 (code=exited, status=0/SUCCESS)

启动防火墙(需要root权限)sudo systemctl start firewalld

[womeng@localhost ~]$ sudo systemctl start firewalld
[womeng@localhost ~]$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 日 2024-08-25 17:38:15 PDT; 9s ago
     Docs: man:firewalld(1)
 Main PID: 5224 (firewalld)
    Tasks: 2
   CGroup: /system.slice/firewalld.service
           └─5224 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

控制第三方服务

除了内置的服务外,部分第三方软件安装后也可以使用systemctl进行控制

  • 安装ntp时间同步软件:yum install -y ntp

    可以通过ntpd服务名,配合systemctl进行控制

  • 安装apache服务器软件:yum install -y httpd

    可以通过httpd服务名,配合systemctl进行控制

    查看ntp服务状态systemctl status ntpd

[womeng@localhost ~]$ systemctl status ntpd
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[womeng@localhost ~]$ sudo systemctl start ntpd
[womeng@localhost ~]$ systemctl status ntpd
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 日 2024-08-25 17:52:11 PDT; 9s ago
  Process: 47574 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 47577 (ntpd)
    Tasks: 1
   CGroup: /system.slice/ntpd.service
           └─47577 /usr/sbin/ntpd -u ntp:ntp -g

设置ntp开机自启sudo systemctl enable ntpd

[womeng@localhost ~]$ sudo systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.

启用httpd服务sudo systemctl start httpd

[womeng@localhost ~]$ systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)
[womeng@localhost ~]$ sudo systemctl start httpd
[womeng@localhost ~]$ systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 日 2024-08-25 18:30:24 PDT; 20s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 105545 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
    Tasks: 6
   CGroup: /system.slice/httpd.service
           ├─105545 /usr/sbin/httpd -DFOREGROUND
           ├─105549 /usr/sbin/httpd -DFOREGROUND
           ├─105550 /usr/sbin/httpd -DFOREGROUND
           ├─105551 /usr/sbin/httpd -DFOREGROUND
           ├─105552 /usr/sbin/httpd -DFOREGROUND
           └─105553 /usr/sbin/httpd -DFOREGROUND

手动集成到systemctl

部分软件安装后没有自动集成到systemctl中,我们可以手动添加

软链接

ln命令创建软链接

在系统中创建软连接,可以将文件、文件夹链接到其他位置,类似Windows系统中的快捷方式

语法:ln -s 参数1 参数2

  • -s,创建软连接

  • 参数1:被连接的文件或文件夹

  • 参数2:要连接去的目的地

示例:

  • ln -s /etc/yum.conf ~/yum.conf:在用户的HOME目录内创建yum.conf文件的快捷方式

  • ln -s /etc/yum ~/yum:在用户的HOME目录内创建yum文件夹的快捷方式

演示

在用户的HOME目录内创建yum.conf文件的快捷方式ln -s /etc/yum.conf ~/yum.conf

[womeng@localhost ~]$ ln -s /etc/yum.conf ~/yum.conf
[womeng@localhost ~]$ ll
总用量 8
drwxr-xr-x. 4 womeng womeng  32 8月  23 19:38 Desktop
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Documents
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Downloads
-rwxr-x--x. 1 root   womeng 104 8月  24 08:17 hello.txt
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Music
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Pictures
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Public
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Templates
drwxrwxr-x. 4 root   womeng  32 8月  25 06:50 test
drwxrwxr-x. 2 womeng womeng   6 8月  23 20:19 test3
drwxrwxr-x. 2 womeng womeng   6 8月  23 20:19 test4
-rw-rw-r--. 1 womeng womeng  15 8月  24 07:57 test.txt
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Videos
drwxrwxr-x. 3 womeng womeng  18 8月  23 03:01 womeng2
lrwxrwxrwx. 1 womeng womeng  13 8月  25 19:20 yum.conf -> /etc/yum.conf ##在这

在用户的HOME目录内创建yum文件夹的快捷方式ln -s /etc/yum ~/yum

[womeng@localhost ~]$ ln -s /etc/yum ~/yum
[womeng@localhost ~]$ ll
总用量 8
drwxr-xr-x. 4 womeng womeng  32 8月  23 19:38 Desktop
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Documents
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Downloads
-rwxr-x--x. 1 root   womeng 104 8月  24 08:17 hello.txt
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Music
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Pictures
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Public
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Templates
drwxrwxr-x. 4 root   womeng  32 8月  25 06:50 test
drwxrwxr-x. 2 womeng womeng   6 8月  23 20:19 test3
drwxrwxr-x. 2 womeng womeng   6 8月  23 20:19 test4
-rw-rw-r--. 1 womeng womeng  15 8月  24 07:57 test.txt
drwxr-xr-x. 2 womeng womeng   6 8月  22 07:00 Videos
drwxrwxr-x. 3 womeng womeng  18 8月  23 03:01 womeng2
lrwxrwxrwx. 1 womeng womeng   8 8月  25 19:22 yum -> /etc/yum
lrwxrwxrwx. 1 womeng womeng  13 8月  25 19:20 yum.conf -> /etc/yum.conf ##在这
[womeng@localhost ~]$ cd yum
[womeng@localhost yum]$ ll
总用量 4
drwxr-xr-x. 2 root root   6 10月  1 2020 fssnap.d
drwxr-xr-x. 2 root root  54 10月  1 2020 pluginconf.d
drwxr-xr-x. 2 root root  26 8月  25 08:22 protected.d
drwxr-xr-x. 2 root root  37 10月  1 2020 vars
-rw-r--r--. 1 root root 444 10月  1 2020 version-groups.conf

日期和时区

date命令

查看系统时间

语法:date [-d] [+格式化字符串]

  • -d,按照给定的字符串显示时间,一般用于日期计算

  • 格式化字符串:通过特定的字符串标记,来控制显示的日期格式

    • %Y,年

    • %y,年份后两位数字(00...99)

    • %M,月份(01...12)

    • %d,日(01...31)

    • %H,小时(00...23)

    • %M,分钟(00...59)

    • %S,秒(00...60)

    • %s,自1970-01-01 00:00:00 UTC 到现在的秒数

按照2024-01-01的形式显示日期date +%Y-%m-%d

[womeng@localhost ~]$ date +%Y-%m-%d
2024-08-25

按照2024-01-01 10:00:00date "+%Y-%m-%d %H:%M:%S"

[womeng@localhost ~]$ date +%Y-%m-%d %H:%M:%S # 这里因为空格而被当成前后两个参数了
date: 额外的操作数 "%H:%M:%S"
Try 'date --help' for more information.
[womeng@localhost ~]$ date "+%Y-%m-%d %H:%M:%S" # 这样就没问题
2024-08-25 19:42:17
进行日期加减
  • -d,可以按照给定的字符串显示日期,一般用于日期计算,其中支持的时间标记有:

    • year

    • month

    • day

    • hour小时

    • minute分钟

    • second

  • -d,选项可以配合格式化字符串使用

演示

[womeng@localhost ~]$ date -d "-1 day"
2024年 08月 24日 星期六 19:53:47 PDT
[womeng@localhost ~]$ date -d "+1 year"
2025年 08月 25日 星期一 19:54:00 PDT
[womeng@localhost ~]$ date -d "-1 month" "+%Y-%m-%d %H:%M:%S"
2024-03-25 19:54:54
[womeng@localhost ~]$ date -d "-1 month" "+%Y-%m-%d %H:%M:%S  %s" 
2024-03-25 19:55:28  1721962528

修改Linux时区

由于系统默认时区非中国的东八区,需要我们通过命令来将Linux系统时区修改为北京时间

使用root权限,执行如下命令,修改时区为东八区

rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

将系统自带的locatime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接设置为localtime文件即可

演示

[womeng@localhost ~]$ sudo rm -f /etc/localtime
ewomeng@localhost ~]$ sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtim 
[womeng@localhost ~]$ date "+%Y-%m-%d %H:%M:%S  %s" 
2024-08-26 11:07:27  1724641647
ntp程序

这个程序可以自动校准系统时间

安装:yum -y install ntp

启动并设置开机自启:

  • systemctl start ntpd

  • systemctl enable ntpd

当ntpd启动后会定期联网校准系统时间

  • 也可以手动校准(需要rootq权限):ntpdate -u ntp.aliyun.com

通过阿里云提供的服务网址配合ntpdatentp自带这个命令)进行校准

演示

[womeng@localhost ~]$ sudo systemctl enable ntpd
[womeng@localhost ~]$ sudo ntpdate -u ntp.aliyun.com
26 Apr 11:20:35 ntpdate[44709]: adjust time server 203.107.6.88 offset -0.000278 sec

IP地址和主机名

IP地址

每一台联网的电脑都会有一个地址,用于和其他计算机进行通讯。

IP地址主要有两个版本,V4和V6。

IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字,如192.168.88.101就是一个标准的IP地址

可以通过 ifconfig命令查看本机IP地址,如无法使用ifconfig,可以安装:yum -y install net-tool

演示:当前主机地址为 192.168.81.135

[womeng@localhost ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.81.135  netmask 255.255.255.0  broadcast 192.168.81.255
        inet6 fe80::a9ff:42ac:d6:b4db  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:bd:f1:51  txqueuelen 1000  (Ethernet)
        RX packets 4415722  bytes 1420251615 (1.3 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5837696  bytes 1751088380 (1.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
...
特殊IP地址
地址作用
127.0.0.1代指本机
0.0.0.01.也可表本机 2.表示端口绑定关系 3.在放行规则中设置,表示允许任意IP访问

主机名

每一台电脑除了有IP地址,还可以有一个名字,称之为主机名

无论是Windows还是Linux系统,都可以给系统设置主机名

  • Windows系统主机名:右键 此电脑 —》属性即可看到

  • Linux系统主机名:输入命令 hostname

在Linux中修改主机名

命令:hostnamectl set-hostname 主机名需root

修改后重新登录(关闭窗口再打开)FinalShell即可看到修改后主机名

将主机名替换为centoshostnamectl set-hostname centos

[womeng@localhost ~]$ sudo hostnamectl set-hostname centos
# 重新登录后
[womeng@centos ~]$ hostname
centos

域名解析

由于IP地址过于抽象,在日常生活中很少直接使用。

比如,要进行百度搜索,我们一般会输入网址 www.baidu.com,而不是输入IP地址,这个网址就是域名

计算机会自动将域名解析为IP地址再进行访问。

域名解析简易过程

  1. 浏览器访问 www.baidu.com

  2. 浏览器检查本地域名映射文件是否存在关于该域名对应的地址

    • Windows检查:C:\Windows\System32\drivers\etc\hosts

    • Linux检查:/etc/hosts

  3. 如果没有找到,继续联网访问公开的DNS服务器(如:114.114.114.114,8.8.8.8等)

  4. 找到对应IP地址,将得到的IP地址返回给浏览器,浏览器就会打开对应网站

  5. 如果没有找到,则网站不存在

为Linux虚拟机配置主机名映射

简单来讲就是在 C:\Windows\System32\drivers\etc\hosts这个文件里配置IP地址和对应主机名的映射关系,有兴趣的可以自己去查

虚拟机配置固定IP

当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP获取的。

DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能会导致IP地址频繁变更

原因

  1. 当我们要远程连接到Linux系统时,频繁的IP地址变化需要频繁地修改适配

  2. 如果配置了虚拟机IP和主机名地映射,IP地址的变化也会导致我们需要频繁的更新映射关系

综合上述,我们需要把IP地址固定下来

配置固定IP为 192.168.88.130

步骤:(IP地址不固定,可自行更改)

  1. 在VMware WorkStation中配置IP地址网关和网段(IP地址的范围)

    • 关闭虚拟机

    • 在VMware WorkStation界面右上角找到 编辑—》虚拟网络编辑器—》选中VMnet8

    • 将子网IP设置为:198.168.88.0,子网掩码为:255.255.255.0

    • 点击 NAT设置,将网关设置为 198.168.88.2

    • 点击确定—》再点击应用

  2. 在Linux系统中手动修改配置文件,固定IP

    • 使用vim编辑 /etc/sysconfig/network-scripts/ifcfg-ens33文件,作以下更改

      • BOOTPROTO="dhcp"改为 BOOTPROTO="static"

      • 在文件末尾添加

        IPADDR="192.168.88.130" # 想要给虚拟机配置的IP地址
        NETMASK="255.255.255.0" # 子网掩码固定:255.255.255.0
        GATEWAY="192.168.88.2" # 网关和VMware虚拟网络编辑器中设置一致
        DNS1="192.168.88.2" #DNS1设置为网关即可
  3. 在FinalShell中重新连接即可

网络传输

ping命令

通过ping命令,可以检查指定的网络服务器是否可联通

语法:ping [-c num] ip或主机名

  • -c,检查的次数,不使用-c选项,将无限次数持续检查

  • ip或主机名,被检查的服务器的ip地址或主机名地址

检查www.baidu.com的联通情况ping -c 3 www.baidu.com

[womeng@centos ~]$ ping -c 3 www.baidu.com
PING www.a.shifen.com (153.3.238.102) 56(84) bytes of data.
64 bytes from 153.3.238.102 (153.3.238.102): icmp_seq=1 ttl=128 time=17.2 ms
64 bytes from 153.3.238.102 (153.3.238.102): icmp_seq=2 ttl=128 time=17.4 ms
64 bytes from 153.3.238.102 (153.3.238.102): icmp_seq=3 ttl=128 time=16.9 ms
​
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 16.930/17.196/17.411/0.199 ms

延迟较小(最好100ms以内),没有丢包,即可视为联通

检查一个不存在网址的联通情况ping -c 5 192.168.88.5

[womeng@centos ~]$ ping -c 5 192.168.88.5
PING 192.168.88.5 (192.168.88.5) 56(84) bytes of data.
From 192.168.88.130 icmp_seq=1 Destination Host Unreachable
From 192.168.88.130 icmp_seq=2 Destination Host Unreachable
From 192.168.88.130 icmp_seq=3 Destination Host Unreachable
From 192.168.88.130 icmp_seq=4 Destination Host Unreachable
From 192.168.88.130 icmp_seq=5 Destination Host Unreachable
​
--- 192.168.88.5 ping statistics ---
5 packets transmitted, 0 received, +5 errors, 100% packet loss, time 4001ms
pipe 4

wget命令

wget是非交互式的文件下载器,可以在命令行内下载网络文件

语法:wget [-b] url

  • -b,可选,后台下载,会将日志写入到当前工作目录的weget-log文件

  • url,下载连接

下载apache-hadoop 3.3.0版本wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.0/hadoop-3.3.0.tar.gz

[womeng@centos ~]$ wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.0/hadoop-3.3.0.tar.gz
--2024-08-26 21:56:44--  https://archive.apache.org/dist/hadoop/core/hadoop-3.3.0/hadoop-3.3.0.tar.gz
正在解析主机 archive.apache.org (archive.apache.org)... 65.108.204.189, 2a01:4f9:1a:a084::2
正在连接 archive.apache.org (archive.apache.org)|65.108.204.189|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:500749234 (478M) [application/x-gzip]
正在保存至: “hadoop-3.3.0.tar.gz”
​
100%[====================================================================================>] 500,749,234 8.27MB/s 用时 94s    
​
2024-08-26 21:58:19 (5.08 MB/s) - 已保存 “hadoop-3.3.0.tar.gz” [500749234/500749234])

PS:一开始跟着课上的命令,发现访问不了,我以为是要连外网的原因,然后各种骚操作解决了虚拟机连外网的问题,最后发现是链接过期了,气煞我也!!

curl命令

curl可以发送http请求,可用于:下载文件、获取信息等

语法:curl [-O] url

  • -O,用于下载文件,当url是下载链接时,可以使用此选项保存文件

  • url,要发起请求的网络地址

向cip.cc发起网络请求curl cip.cc

这个请求可以获得本机的公网IP地址,这里就不作演示,可以自己尝试

  • curl命令本质上就是访问网址,但是没有渲染功能,所以只能获得文本内容或文件

端口

端口,时设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类

  • 物理端口:又可称之为接口,可见的端口,如USB接口,RJ45网口,HDMI端口等

  • 虚拟端口:计算机内部的端口,不可见,是操作系统用来和外部进行交互的

虚拟端口的概念【服务器】——什么是端口,最齐全的端口指南_服务器端口-CSDN博客

上面这个不想看或看不懂的,这里做个简单比喻:

IP地址对于主机 就像是 你的宿舍楼地址对于宿舍楼,如:XX省XX市XX区XX大学XX区XX栋

端口号对于应用程序 就像是 你的宿舍号对于宿舍,如:X0X

其他主机(也可以是本机)应用程序的信息要想传送到你主机对应的应用程序,首先要按照IP地址(宿舍地址)找到你的主机(宿舍楼),然后再按照端口号(宿舍号)找到对应的应用程序(宿舍),然后将信息交给对应的应用程序(你)

查看端口占用
nmap命令

通过Linux命令去查看端口的占用情况

  • 要使用nmap命令,先安装nmap:yum -y install nmap

PS安装软件都需要root权限(好像没说过吧)

语法:nmap 被查看的IP地址

查看本机(127.0.0.1)端口的占用情况nmap 127.0.0.1

[womeng@centos ~]$ nmap 127.0.0.1
​
Starting Nmap 6.40 ( http://nmap.org ) at 2024-08-26 23:03 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00057s latency).
Not shown: 996 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
111/tcp open  rpcbind
631/tcp open  ipp
​
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
netstat命令

语法:netstat -anp | grep 端口号

提个问:grep在这里是干嘛用的?

同样需要先安装netstatyum -y install net-tools

查看本机111的端口的占用情况:netstat -anp | grep 111

[womeng@centos ~]$ netstat -anp | grep 111
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::111                  :::*                    LISTEN      -                   
udp        0      0 0.0.0.0:111             0.0.0.0:*                           -                   
udp6       0      0 :::111                  :::*                                -

PS:这里以root身份执行可以看到具体是那个程序占用的端口,我这里忘了

进程管理

进程运行在操作系统中,是被操作系统所管理的。

为管理运行的程序,每一个程序在运行的时候,都会被操作系统注册为系统中的一个进程

并会为每一个进程分配一个独有的进程ID(进程号)

查看进程

ps命令

语法:ps [-e -f]

  • -e,显示全部进程

  • -f,以完全格式化的形式展示信息(展示全部信息)

一般来说,ps -ef是固定用法,用于列出全部进程的全部信息

[womeng@centos ~]$ ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 21:54 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0  0 21:54 ?        00:00:00 [kthreadd]
root          4      2  0 21:54 ?        00:00:00 [kworker/0:0H]
root          5      2  0 21:54 ?        00:00:00 [kworker/u256:0]
root          6      2  0 21:54 ?        00:00:00 [ksoftirqd/0]
root          7      2  0 21:54 ?        00:00:00 [migration/0]
root          8      2  0 21:54 ?        00:00:00 [rcu_bh]
root          9      2  0 21:54 ?        00:00:01 [rcu_sched]
root         10      2  0 21:54 ?        00:00:00 [lru-add-drain]
root         11      2  0 21:54 ?        00:00:00 [watchdog/0]
root         13      2  0 21:54 ?        00:00:00 [kdevtmpfs]
root         14      2  0 21:54 ?        00:00:00 [netns]
root         15      2  0 21:54 ?        00:00:00 [khungtaskd]
root         16      2  0 21:54 ?        00:00:00 [writeback]
root         17      2  0 21:54 ?        00:00:00 [kintegrityd]
root         18      2  0 21:54 ?        00:00:00 [bioset]
root         19      2  0 21:54 ?        00:00:00 [bioset]
root         20      2  0 21:54 ?        00:00:00 [bioset]
root         21      2  0 21:54 ?        00:00:00 [kblockd]
root         22      2  0 21:54 ?        00:00:00 [md]
...

各字段解释如下

  • UID: 用户ID(User ID),表示运行该进程的用户。

  • PID: 进程ID(Process ID),是系统为每个进程分配的唯一标识号。

  • PPID: 父进程ID(Parent Process ID),表示产生该进程的父进程的ID。

  • C: CPU利用率(CPU usage),表示进程占用CPU资源的百分比。

  • STIME: 启动时间(Start Time),表示进程开始运行的时间。

  • TTY: 控制终端(Teletypewriter),表示进程的控制终端设备。如果进程没有控制终端,则显示问号“?”。

  • TIME: 运行时间(Time),表示进程运行的总时长。

  • CMD: 命令(Command),表示启动进程的命令名称。

查看指定进程

用ps配合grep可以快速定位进程

  • 执行命令tail,此命令会一直阻塞

  • 复制一个标签,执行 ps -f | grep tail,就可以快速定位tail进程的信息

查看tail进程的信息ps -ef | grep tail

[womeng@centos ~]$ ps -ef | grep tail
womeng    48677   2496  0 23:36 pts/0    00:00:00 tail
womeng    49569  47201  0 23:36 pts/2    00:00:00 grep --color=auto tail
关闭进程(kill)

语法:kill [-9] 进程ID

  • -9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的机制

关闭tail进程

标签1信息

[womeng@centos ~]$ ps -ef | grep tail
womeng    66317   2496  0 23:43 pts/0    00:00:00 tail
womeng    67999  63340  0 23:43 pts/2    00:00:00 grep --color=auto tail
[womeng@centos ~]$ kill 66317
[womeng@centos ~]$ ps -ef | grep tail
womeng    72619   2496  0 23:45 pts/0    00:00:00 tail
womeng    73530  63340  0 23:45 pts/2    00:00:00 grep --color=auto tail
[womeng@centos ~]$ kill -9 72619

标签2信息

[womeng@centos ~]$ tail
已终止
[womeng@centos ~]$ tail
已杀死

主机状态

top命令查看系统资源占用

  • 通过top命令可以查看CPU、内存使用情况,类似Windows的任务管理器,默认每5秒刷新一次

语法:top

按a或CTRL + C可以退出

演示:

[womeng@centos ~]$ top
top - 09:26:36 up  3:01,  7 users,  load average: 0.28, 0.24, 0.35
Tasks: 210 total,   1 running, 209 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.0 us,  3.7 sy,  0.0 ni, 95.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995456 total,   108116 free,   673156 used,   214184 buff/cache
KiB Swap:  2098172 total,  2044668 free,    53504 used.   162040 avail Mem 
​
   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                   
 31112 womeng    20   0  161484   2972   1228 S  0.7  0.3   0:01.86 sshd                                                      
 41439 womeng    20   0  162100   2340   1580 R  0.7  0.2   0:00.03 top                                                       
     1 root      20   0  193824   4068   2080 S  0.0  0.4   0:01.77 systemd                                                   
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd                                                  
     4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                              
     6 root      20   0       0      0      0 S  0.0  0.0   0:02.35 ksoftirqd/0                                               
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                                               
     8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                                                    
     9 root      20   0       0      0      0 S  0.0  0.0   0:03.79 rcu_sched                                                 
    10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-drain                                             
    11 root      rt   0       0      0      0 S  0.0  0.0   0:00.05 watchdog/0                                                
    13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs                                                 
    14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns                                                     
    15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd                                                
    16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback                                                 
    17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd                                               
    18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                    
    19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                    
    20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                    
    21 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd                                                   
    22 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 md                                                        
    23 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 edac-poller

分行解释一下(不强记,可跳过):

top - 09:30:03 up  3:05,  7 users,  load average: 0.01, 0.12, 0.28
  • top:当前显示的是top命令的输出

  • 09:30:03: 当前的时间

  • up 3:05: 系统已经启动了3小时5分钟。

  • 7 users: 当前有7个用户登录到系统。

  • load average: 0.01, 0.12, 0.28: 系统在过去1分钟、5分钟和15分钟内的平均负载。

Tasks: 209 total,   1 running, 208 sleeping,   0 stopped,   0 zombie
  • Tasks: 系统中的任务(进程)。

  • 209 total: 共有209个进程。

  • 1 running: 1个进程正在使用CPU

  • 208 sleeping: 208个进程处于睡眠状态

  • 0 stopped: 0个进程被停止

  • 0 zombie: 0个僵尸进程(已结束但父进程尚未回收的进程)。

%Cpu(s):  3.0 us,  7.7 sy,  0.0 ni, 89.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
  • %Cpu(s): CPU的占用情况(百分比)

  • 3.0 us: 用户空间

  • 7.7 sy: 系统空间

  • 0.0 ni: 优先级调整的进程

  • 89.0 id: 空闲CPU

  • 0.3 wa: 等待I/O

  • 0.0 hi: 硬件中断

  • 0.0 si: 软件中断

  • 0.0 st: 被虚拟化程序盗用

KiB Mem :   995456 total,   103764 free,   674164 used,   217528 buff/cache
  • KiB Mem: 物理内存

  • 995456 total: 总量

  • 103764 free: 空闲

  • 674164 used: 已使用

  • 217528 buff/cache: 缓冲和缓存

KiB Swap:  2098172 total,  2044668 free,    53504 used.   161028 avail Mem
  • KiB Swap: 交换空间

  • 2098172 total: 总量

  • 2044668 free: 空闲

  • 53504 used: 已使用

  • 161028 avail Mem: 可用于启动新应用程序的内存量(物理内存的空闲部分加上缓冲/缓存可回收的部分)。

列标题

  • PID: Process ID,进程ID,是系统为每个进程分配的唯一标识号

  • USER: 用户名,运行该进程的用户账户名

  • PR: 优先级(Priority),进程的优先级,数值越小,优先级越高

  • NI: Nice值,代表进程的调度优先级。负值表示更高的优先级,正值表示更低的优先级

  • VIRT: 虚拟内存大小(Virtual Memory Size),进程占用的虚拟内存总量,包括代码、数据、共享库和交换出去的内存

  • RES: 常驻内存大小(Resident Memory Size),进程占用的非交换物理内存大小

  • SHR: 共享内存大小(Shared Memory Size),进程与其它进程共享的内存大小

  • S: 进程状态(Status),表示进程的状态,如S(睡眠)、R(运行)、Z(僵尸)、I(空闲)

  • %CPU: CPU占用百分比,进程占用的CPU时间百分比

  • %MEM: 内存占用百分比,进程占用的物理内存百分比

  • TIME+: 累计CPU时间,进程自启动以来累计占用的CPU时间

  • COMMAND: 命令名,启动进程的命令名称

top命令选项
选项功能
-p只显示某个 进程的信息
-d设置刷新时间
-c显示产生进程的完整指令,默认是进程名
-n指定刷新次数,如:top -n 3 ,刷新3次后退出
-b以非交互式全屏模式运行,以批次的方式执行top,一般配合 -n指定输出几次统计信息,将输出重定向到指定文件,比如:top -b -n 3 > /tmp/top.tmp
-i不显示任何闲置(idle)或无用(zombie)的进程
-u查找特定用户启动的进程

只显示进程ID为2的信息top -p 2

[womeng@centos ~]$ top -p 2
top - 10:30:07 up  4:05,  3 users,  load average: 0.00, 0.01, 0.05
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.0 us,  3.0 sy,  0.0 ni, 96.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995456 total,   113644 free,   658240 used,   223572 buff/cache
KiB Swap:  2098172 total,  2044668 free,    53504 used.   176944 avail Mem 
​
   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                   
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kthreadd  
top交互式选项(不强记,可跳过)
选项功能
h按下h键,会显示帮助画面
c按下c键,会显示产生进程的完整命令,等同于-c参数,再次按下c键,变为默认显示
f按下f键,可以选择需要展示的项目
M按下M键,根据驻留内存大小(RES)排序
P按下P键,根据CPU使用百分比大小进行排序
T按下T键,根据时间/累计时间进行排序
E按下E键,切换顶部内存显示单位
e按下e键,切换进程内存显示单位
l按下l键,切换显示平均负载和启动时间信息。
i按下i键,不显示闲置或无用的进程,等同于-i参数,再次按下,变为默认显示
t按下t键,切换显示CPU状态信息
m按下m键,切换显示内存信息

磁盘信息监控

df命令
  • 使用df命令,可以查看硬盘的使用情况

语法:df [-h]

选项:-h,以更加人性化的单位显示

演示

文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        471M     0  471M    0% /dev
tmpfs           487M     0  487M    0% /dev/shm
tmpfs           487M  8.5M  478M    2% /run
tmpfs           487M     0  487M    0% /sys/fs/cgroup
/dev/sda3        38G  5.8G   32G   16% /
/dev/sda1       297M  186M  112M   63% /boot
tmpfs            98M   28K   98M    1% /run/user/1000
iostat命令
  • 使用 iostat可以查看CPU、磁盘的相关信息

语法:iostat [-x][num1][num2]

  • -x,显示更多信息

  • num1,数字,刷新间隔

  • num2,数字,刷新次数

演示

[womeng@centos ~]$ iostat -x
Linux 3.10.0-1160.119.1.el7.x86_64 (centos)     2024年08月27日  _x86_64_        (1 CPU)
​
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.74    0.00    4.69    0.01    0.00   93.56
​
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.02     0.93    2.72    0.80   162.44    41.44   115.90     0.00    0.43    0.40    0.50   0.21   0.07

着重点

  • rkB/s :每秒发送到设备的读取请求数

  • wKB/s:每秒发送到设备的写入请求数

  • %util:磁盘利用率

网络状态监控

sar命令

  • 使用sar命令查看网络的相关统计(sar命令非常复杂,这里仅简单用于统计网络)

语法:sar -n DEV num1 num2

  • -n,查看网络,DEV表示查看网络接口

  • num1,刷新间隔(不填就查看一次结束)

  • num2,刷新次数(默认无限)

不填任何数字sar -n DEV

[womeng@centos ~]$ sar -n DEV
Linux 3.10.0-1160.119.1.el7.x86_64 (centos)     2024年08月27日  _x86_64_        (1 CPU)
​
...
​
11时00分01秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11时10分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时10分01秒 virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时10分01秒    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时10分01秒     ens33     20.09     30.47      2.18      8.75      0.00      0.00      0.00
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     ens33     26.40     39.97      2.87     11.53      0.00      0.00      0.00

添加显示刷新间隔和次数sar -n DEV 2 3

[womeng@centos ~]$ sar -n DEV 2 3
Linux 3.10.0-1160.119.1.el7.x86_64 (centos)     2024年08月27日  _x86_64_        (1 CPU)
​
11时17分24秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11时17分26秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时17分26秒 virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时17分26秒    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时17分26秒     ens33     25.63     38.19      2.74     13.87      0.00      0.00      0.00
​
11时17分26秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11时17分28秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时17分28秒 virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时17分28秒    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时17分28秒     ens33     24.62     35.68      2.68     10.79      0.00      0.00      0.00
​
11时17分28秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11时17分30秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时17分30秒 virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时17分30秒    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时17分30秒     ens33     13.43     21.39      1.41      2.64      0.00      0.00      0.00
​
平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     ens33     21.20     31.72      2.27      9.08      0.00      0.00      0.00

着重点

  • rxKB/s:每秒钟接受的数据包大小,单位为KB

  • txKB/s:每秒钟发送的数据包大小,单位为KB

环境变量

环境变量式操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用于辅助系统运行。

在Linux系统中执行:env命令即可查看当前系统中记录的环境变量

环境变量是一种KeyValue型结构,即键和值。如下:

[womeng@centos ~]$ env
XDG_SESSION_ID=27
HOSTNAME=centos
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.88.1 56262 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/4
USER=womeng
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
MAIL=/var/spool/mail/womeng
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/womeng/.local/bin:/home/womeng/bin
PWD=/home/womeng
LANG=zh_CN.UTF-8
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/home/womeng
LOGNAME=womeng
XDG_DATA_DIRS=/home/womeng/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
SSH_CONNECTION=192.168.88.1 56262 192.168.88.130 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/1000
_=/usr/bin/env

想要深入了解环境变量可以查看【Linux基础】Linux环境变量(超详细)_linux 环境变量-CSDN博客

环境变量PATH

这个环境变量里记录了系统执行命令的搜索路径,我们输入指令后操作系统会在这个变量里从上到下取搜索是否含有对应指令,有则执行,没有会报错

$符号

在Linux系统中,$符号被用于取“变量”的值(配合{}使用,效果更好)

演示

[womeng@centos ~]$ echo ${PATH}
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/womeng/.local/bin:/home/womeng/bin

自行设置环境变量

Linux环境变量可以自行设置,其中分为:

  • 临时设置,语法:export 变量名=变量值 (重新启动后变量将不会存在)

  • 永久生效

    • 针对当前用户生效,配置在当前用户的:~/bashrc文件中

    • 针对所有用户生效,配置在系统的:/etc/profile文件中

    • 并通过语法:source 配置文件 ,进行立刻生效,或重新登录FinalShell生效

设置临时变量export MYNAME=womeng

[womeng@centos ~]$ export MYNAME=womeng # 重新启动后变量将不会存在
[womeng@centos ~]$ echo ${MYNAME}
womeng

设置永久全局变量(需root)

  • export MYNAME=womeng配置在 /etc/profile文件末尾即可(使用vim编辑器)

  • 并通过语法:source 配置文件 ,进行立刻生效,或重新登录FinalShell生效

自定义环境变量PATH

这个环境变量里记录了系统执行命令的搜索路径,我们也可以手动添加搜索路径

测试

  • 在当前HOME目录创建文件夹,myenv,在文件夹内创建文件mkhaha

  • 通过vim编辑器,在mkhaha文件内填入:echo 哈哈哈哈

  • mkhaha赋予可执行权限

  • 修改PATH的值

    • 临时修改:执行命令export PATH=$PATH:/home/你的HOME文件夹/myenv,再执行mkhaha,无论在哪都能执行了

    • 永久修改:将 export PATH=$PATH:/home/你的HOME文件夹/myenv填入用户环境变量配置文件~/bashrc或系统变量配置文件/etc/profile中去,并执行 source 配置文件命令即可

临时修改

[womeng@centos ~]$ mkdir myenv # 创建文件夹
[womeng@centos ~]$ touch myenv/mkhaha # 创建文件
[womeng@centos ~]$ sudo vim myenv/mkhaha # 添加文件内容:echo 哈哈哈哈
[womeng@centos ~]$ sudo chmod u=rwx,g=rwx,o=x myenv/mkhaha # 给文件添加执行权限
[womeng@centos ~]$ ll myenv/mkhaha
-rwxrwx--x. 1 womeng womeng 20 8月  27 15:46 myenv/mkhaha
[womeng@centos ~]$ export PATH=${PATH}:/home/womeng/myenv # 将文件夹添加到PATH中去
[womeng@centos ~]$ mkhaha # 执行自定义指令
哈哈哈哈

PS:临时修改再重新连接FinalShell或重启Linux之后都会失效

上传和下载

通过FinalShell工具,我们可以很方便地和虚拟机进行数据交换

再FinalShell软件的下方窗体中,提供了Linux的文件系统视图,在这里可以:

  • 浏览Linux文件系统,找到合适的文件,右键文件 ,点击下载,即可传输到本地电脑

  • 浏览本地文件系统,找到合适的文件,并在FinalShell中选中要上传到的文件夹,将文件拖拽FinalShell的文件窗口,即可上传数据到Linux中

注意:FinalShell的文件系统和显示的终端root权限是不互通的,这就导致有一些文件无法浏览或下载。这是因为,我们是以普通用户的身份登录的FinalShell。如果想要获得最高权限,就要以root身份进行登录,并重新连接FinalShell。

PS:这里root密码和普通用户一致的前提是:这个Linux虚拟机是你自己安装的,且没有改过root的密码

rz、sz命令

安装:yum -y install lrzsz

  • rz命令进行上传,语法:rz。然后在打开的窗口找到要上传的文件即可

  • sz命令进行下载,语法:sz 要下载的文件

下载的文件会自动保存到桌面的 fsdownload文件夹中

PS

  • 长名文件输入文件名前几个单词后,可以按Tab键自动补全

  • rz命令上传文件的速度比直接拖拽进来的要慢很多,建议上传大文件的时候直接使用拖拽的方式

压缩和解压

压缩格式

市面上有非常多的压缩格式

  • zip格式:Linux、Windows、MacOS常用

  • 7zip:Windows系统常用

  • rar:Windows系统常用

  • tar:Linux、MacOS常用

  • gzip:Linux、MacOS常用

tar命令

Linux和Mac系统中常用有两种压缩格式,分别是

  • .tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装

  • .gz,也常见为 .tar.gz.gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积

针对这两种格式,使用tar命令均可以进行压缩和解压缩的操作

语法:tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N

  • -c,创建压缩文件,用于压缩模式

  • -v,显示压缩、解压过程,用于查看进度

  • -x,解压模式

  • -f,要创建的文件,或要解压的文件。-f选项必须位于所有选项之后

  • -zgzip模式,不使用-z就是普通的tarball格式。-z选项必须位于所有选项之首

  • -C,选择解压的目的地,用于解压模式。-C选项因为要指定解压路径,需要单独使用,与其他参数分开

压缩

tar压缩常用组合

  1. tar -cvf test.tar 1.txt 2.txt 3.txt

    将1.txt 2.txt 3.txt压缩到test.tar文件内

  2. tar -zcvf test.tar 1.txt 2.txt 3.txt

    使用gzip模式将1.txt 2.txt 3.txt压缩到test.tar文件内

演示

[womeng@centos ~]$ touch 1.txt 2.txt 3.txt # 准备数据
[womeng@centos ~]$ echo "Hello Linux" > 1.txt
[womeng@centos ~]$ echo "Hello Linux" > 2.txt
[womeng@centos ~]$ echo "Hello Linux" > 3.txt
[womeng@centos ~]$ tar -cvf test1.tar 1.txt 2.txt 3.txt # 不使用gzip模式
1.txt
2.txt
3.txt
[womeng@centos ~]$ tar -zcvf test2.tar 1.txt 2.txt 3.txt # 使用gzip模式
1.txt
2.txt
3.txt
[womeng@centos ~]$ ll -h
总用量 478M
-rw-rw-r--. 1 womeng womeng   12 8月  27 17:57 1.txt
-rw-rw-r--. 1 womeng womeng   12 8月  27 17:57 2.txt
-rw-rw-r--. 1 womeng womeng   12 8月  27 17:57 3.txt
drwxr-xr-x. 2 womeng womeng    6 8月  26 17:17 Desktop
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Documents
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Downloads
-rw-rw-r--. 1 womeng womeng 478M 7月  16 2020 hadoop-3.3.0.tar.gz
-rwxr-x--x. 1 root   womeng  104 8月  24 23:17 hello.txt
-rw-r--r--. 1 root   root    21K 8月  26 18:57 index.html
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Music
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Pictures
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Public 
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Templates
drwxrwxr-x. 4 root   womeng   32 8月  25 21:50 test
-rw-rw-r--. 1 womeng womeng  10K 8月  27 18:06 test1.tar  # 普通tarball格式的压缩文件
-rw-rw-r--. 1 womeng womeng  163 8月  27 18:07 test2.tar  # 使用了gzip格式的压缩文件
drwxrwxr-x. 2 womeng womeng    6 8月  24 11:19 test3
drwxrwxr-x. 2 womeng womeng    6 8月  24 11:19 test4
-rw-rw-r--. 1 womeng womeng   15 8月  24 22:57 test.txt
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Videos
drwxrwxr-x. 3 womeng womeng   18 8月  23 18:01 womeng2
lrwxrwxrwx. 1 womeng womeng    8 8月  26 10:22 yum -> /etc/yum
lrwxrwxrwx. 1 womeng womeng   13 8月  26 10:20 yum.conf -> /etc/yum.conf

这里我准备的文件太小,所以感觉压缩了还变大了,自己压缩的时候可以在文件内多添加一些内容

 解压

PS同名同类型文件会被覆盖,命名的时候要注意不要跟系统重要文件重复

tar常用解压组合

  • tar -xvf test.tar:解压test.tar到当前目录

  • tar -xvf test -C Linux路径:将文件解压到指定目录

  • tar -zxvf test.tar.gz -C Linux路径:以gzip模式将test.tar.gz解压到指定目录

将test2.tar以gzip模式解压至 /home/womeng文件夹:sudo tar -zxvf test2.tar -C /home/womeng

[womeng@centos ~]$ rm 1.txt 2.txt 3.txt # 清除目录下对应的文件
[womeng@centos ~]$ sudo tar -zxvf test2.tar -C /home/womeng # 解压文件
1.txt
2.txt
3.txt
[womeng@centos ~]$ ll -h | grep .txt
-rw-rw-r--. 1 womeng womeng   12 8月  27 17:57 1.txt
-rw-rw-r--. 1 womeng womeng   12 8月  27 17:57 2.txt
-rw-rw-r--. 1 womeng womeng   12 8月  27 17:57 3.txt
-rwxr-x--x. 1 root   womeng  104 8月  24 23:17 hello.txt
-rw-rw-r--. 1 womeng womeng   15 8月  24 22:57 test.txt

zip命令压缩文件

使用zip命令得到的是.zip压缩包

语法:zip [-r] 参数1 参数2 ... 参数N

  • -r,压缩包含文件夹的文件时,需要使用 -r选项,和 rmcp等命令的 -r效果一致

示例

  • zip test.zip a.txt b.txt c.txt:将a.txt b.txt c.txt 压缩到test.zip文件内

  • zip -r test.zip test1 test2 a.txt:将test1、test2两个文件夹和a.txt文件压缩到test.zip文件内

将test1、test2两个文件夹和a.txt b.txt c.txt文件压缩到test.zip文件内zip -r test.zip test1 test2 a.txt b.txt c.txt

[womeng@centos ~]$ ll -h
总用量 288K
-rw-rw-r--. 1 womeng womeng 93K 8月  27 21:09 a.txt
-rw-rw-r--. 1 womeng womeng 93K 8月  27 21:11 b.txt
-rw-rw-r--. 1 womeng womeng 93K 8月  27 21:12 c.txt
drwxr-xr-x. 2 womeng womeng   6 8月  26 17:17 Desktop
drwxr-xr-x. 2 womeng womeng   6 8月  22 22:00 Documents
drwxr-xr-x. 2 womeng womeng   6 8月  22 22:00 Downloads
drwxr-xr-x. 2 womeng womeng   6 8月  22 22:00 Music
drwxr-xr-x. 2 womeng womeng   6 8月  22 22:00 Pictures
drwxr-xr-x. 2 womeng womeng   6 8月  22 22:00 Public
drwxr-xr-x. 2 womeng womeng   6 8月  22 22:00 Templates
drwxrwxr-x. 2 womeng womeng   6 8月  27 21:17 test1
drwxrwxr-x. 2 womeng womeng   6 8月  27 21:17 test2
drwxr-xr-x. 2 womeng womeng   6 8月  22 22:00 Videos
[womeng@centos ~]$ zip -r test.zip test1 test2 a.txt b.txt c.txt
  adding: test1/ (stored 0%)
  adding: test2/ (stored 0%)
  adding: a.txt (deflated 100%)
  adding: b.txt (deflated 100%)
  adding: c.txt (deflated 100%)
[womeng@centos ~]$ ll -h
总用量 292K
-rw-rw-r--. 1 womeng womeng  93K 8月  27 21:09 a.txt
-rw-rw-r--. 1 womeng womeng  93K 8月  27 21:11 b.txt
-rw-rw-r--. 1 womeng womeng  93K 8月  27 21:12 c.txt
drwxr-xr-x. 2 womeng womeng    6 8月  26 17:17 Desktop
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Documents
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Downloads
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Music
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Pictures
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Public
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Templates
drwxrwxr-x. 2 womeng womeng    6 8月  27 21:17 test1
drwxrwxr-x. 2 womeng womeng    6 8月  27 21:17 test2
-rw-rw-r--. 1 womeng womeng 1.8K 8月  27 21:18 test.zip  # 文件在这
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Videos
​

unzip命令解压文件

语法:unzip [-d] 参数

  • -d,指定要解压去的位置,同tar的-C选项

  • 参数,被解压的.zip文件

示例:

  • unzip test.zip ,将test.zip解压到当前目录

  • unzip test.zip -d Linux路径,将test.zip解压到指定文件夹内

test.zip文件解压到当前目录下的test文件夹内unzip test.zip -d test

[womeng@centos ~]$ ll -h
总用量 4.0K
drwxr-xr-x. 2 womeng womeng    6 8月  26 17:17 Desktop
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Documents
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Downloads
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Music
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Pictures
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Public
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Templates
-rw-rw-r--. 1 womeng womeng 1.8K 8月  27 21:18 test.zip
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Videos
[womeng@centos ~]$ unzip test.zip -d test
Archive:  test.zip
   creating: test/test1/
   creating: test/test2/
  inflating: test/a.txt              
  inflating: test/b.txt              
  inflating: test/c.txt              
[womeng@centos ~]$ ll -h
总用量 4.0K
drwxr-xr-x. 2 womeng womeng    6 8月  26 17:17 Desktop
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Documents
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Downloads
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Music
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Pictures
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Public
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Templates
drwxrwxr-x. 4 womeng womeng   71 8月  27 21:33 test
-rw-rw-r--. 1 womeng womeng 1.8K 8月  27 21:18 test.zip
drwxr-xr-x. 2 womeng womeng    6 8月  22 22:00 Videos
[womeng@centos ~]$ ll -h test
总用量 288K
-rw-rw-r--. 1 womeng womeng 93K 8月  27 21:09 a.txt
-rw-rw-r--. 1 womeng womeng 93K 8月  27 21:11 b.txt
-rw-rw-r--. 1 womeng womeng 93K 8月  27 21:12 c.txt
drwxrwxr-x. 2 womeng womeng   6 8月  27 21:17 test1
drwxrwxr-x. 2 womeng womeng   6 8月  27 21:17 test2

第五章 实战章节

Redis安装部署

简介

Redis是一个开源的、使用C语言编写、支持网络交互、科技与内存也可持久化存储的Key-Value数据库。

Redis的特点就是:,可以基于内存存储数据并提升超低延迟、超快的检索速度

一般用于在系统中提供快速缓存的能力

安装

  1. 配置EPEL仓库

    EPEL的全称是 Extra Packages for Enterprise Linux。EPEL是由Fedora 社区打造,为RHEL及其衍生发行版如CentOS、Scientific Linux等提供高质量软件包的项目。装上了EPEL后,相当于添加了一个第三方源。EPEL则为服务器版本提供大量的rpm包(yum程序所使用的程序安装包,类似Windows的exe),而且大多数rpm包在官方repository中是找不到的

    # root执行
    yum install -y epel-release
  2. 安装Redis

    # root执行
    yum install -y redis
  3. 启动Redis

    # root执行
    # 使用systemctl管控,服务名:redis
    systemctl enable redis          # 开机自启
    systemctl disable redis         # 关闭开机自启
    systemctl start redis           # 启动
    systemctl stop redis            # 关闭
    systemctl status redis          # 查看状态
  4. 放行防护墙,redis使用端口6379(netstat -anp | grep 服务名可以快速定位端口)

    # 方式1(推荐),关闭防火墙
    systemctl stop firewalld        # 关闭
    systemctl disable firewalld     # 关闭开机自启
    ​
    #方式2,放行6379端口
    firewall-cmd --add-port=6379/tcp --permanent #放行tcp规则下的6379端口,永久生效
    firewall-cmd --reload

     5.进入redis服务,输入ping

# 执行redis-cli
[womeng@centos ~]$ redis-cli
127.0.0.1:6379> ping
PONG

因为本人就是为了Redis才学的Linux,所以就不演示其他软件的安装了,有需要的可以看视频课程自取。
视频链接:第五章-02-MySQL5.7在CentOS安装[单机软件]_哔哩哔哩_bilibili


最后,虽然本人技术力不强,但感谢大家对我的认可,看着文章点赞和浏览量慢慢地涨,感觉还挺有意思的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值