课程链接:第四章-01-各类小技巧快捷键_哔哩哔哩_bilibili
声明:该文章为本人的学习笔记,非专业教程
目录
第四章 Linux实用操作
各类小技巧
快捷键/快捷命令 | 作用 |
---|---|
CTRL + C | 1.强制停止:结束正在运行的命令 2.取消命令:退出当前命令的输入(比如写错了,就不用逐一删除),重新开始编写 |
CTRL + D | 1.退出账户登录 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
,搜索
注意:
-
yum
命令需要root权限,可以su
切换到root,或使用sudo
提权 -
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:00:date "+%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
通过阿里云提供的服务网址配合ntpdate
(ntp
自带这个命令)进行校准
演示:
[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.0 | 1.也可表本机 2.表示端口绑定关系 3.在放行规则中设置,表示允许任意IP访问 |
主机名
每一台电脑除了有IP地址,还可以有一个名字,称之为主机名
无论是Windows还是Linux系统,都可以给系统设置主机名
-
Windows系统主机名:右键 此电脑 —》属性即可看到
-
Linux系统主机名:输入命令
hostname
在Linux中修改主机名
命令:hostnamectl set-hostname 主机名
(需root)
修改后重新登录(关闭窗口再打开)FinalShell即可看到修改后主机名
将主机名替换为centos:hostnamectl set-hostname centos
[womeng@localhost ~]$ sudo hostnamectl set-hostname centos
# 重新登录后
[womeng@centos ~]$ hostname
centos
域名解析
由于IP地址过于抽象,在日常生活中很少直接使用。
比如,要进行百度搜索,我们一般会输入网址 www.baidu.com
,而不是输入IP地址,这个网址就是域名
计算机会自动将域名解析为IP地址再进行访问。
域名解析简易过程:
-
浏览器访问 www.baidu.com
-
浏览器检查本地域名映射文件是否存在关于该域名对应的地址
-
Windows检查:C:\Windows\System32\drivers\etc\hosts
-
Linux检查:/etc/hosts
-
-
如果没有找到,继续联网访问公开的DNS服务器(如:114.114.114.114,8.8.8.8等)
-
找到对应IP地址,将得到的IP地址返回给浏览器,浏览器就会打开对应网站
-
如果没有找到,则网站不存在
为Linux虚拟机配置主机名映射
简单来讲就是在 C:\Windows\System32\drivers\etc\hosts
这个文件里配置IP地址和对应主机名的映射关系,有兴趣的可以自己去查
虚拟机配置固定IP
当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP获取的。
DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能会导致IP地址频繁变更
原因:
-
当我们要远程连接到Linux系统时,频繁的IP地址变化需要频繁地修改适配
-
如果配置了虚拟机IP和主机名地映射,IP地址的变化也会导致我们需要频繁的更新映射关系
综合上述,我们需要把IP地址固定下来
配置固定IP为 192.168.88.130
步骤:(IP地址不固定,可自行更改)
-
在VMware WorkStation中配置IP地址网关和网段(IP地址的范围)
-
关闭虚拟机
-
在VMware WorkStation界面右上角找到 编辑—》虚拟网络编辑器—》选中VMnet8
-
将子网IP设置为:
198.168.88.0
,子网掩码为:255.255.255.0
-
点击 NAT设置,将网关设置为
198.168.88.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设置为网关即可
-
-
-
在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
在这里是干嘛用的?
同样需要先安装netstat
:yum -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
选项必须位于所有选项之后 -
-z
,gzip
模式,不使用-z
就是普通的tarball
格式。-z
选项必须位于所有选项之首 -
-C
,选择解压的目的地,用于解压模式。-C
选项因为要指定解压路径,需要单独使用,与其他参数分开
压缩
tar
压缩常用组合:
-
tar -cvf test.tar 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt压缩到test.tar文件内
-
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
选项,和rm
、cp
等命令的-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的特点就是:快,可以基于内存存储数据并提升超低延迟、超快的检索速度
一般用于在系统中提供快速缓存的能力
安装
-
配置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
-
安装Redis
# root执行 yum install -y redis
-
启动Redis
# root执行 # 使用systemctl管控,服务名:redis systemctl enable redis # 开机自启 systemctl disable redis # 关闭开机自启 systemctl start redis # 启动 systemctl stop redis # 关闭 systemctl status redis # 查看状态
-
放行防护墙,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
最后,虽然本人技术力不强,但感谢大家对我的认可,看着文章点赞和浏览量慢慢地涨,感觉还挺有意思的。