4-Linux实用操作

1. 各类小技巧(快捷键)

1.1 ctrl + c 强制停止

Linux 某些程序的运行,如果想要强制停止它,可以使用快捷键 ctrl + c

命令输入错误,也可以通过快捷键 ctrl + c,退出当前输入,重新输入

1.2 ctrl + d 退出或登出

可以通过快捷键:ctrl + d,退出账户的登录

或者退出某些特定程序的专属页面

ps:不能用于退出 vi/vim

1.3 历史命令搜索

可以通过 history 命令,查看历史输入过的命令


可以通过:!命令前缀,自动执行上一次匹配前缀的命令

可以通过快捷键:ctrl + r,输入内容去匹配历史命令

如果搜索到的内容是你需要的,那么:

  • 回车键可以直接执行
  • 键盘左右键,可以得到此命令(不执行)

1.4 光标移动快捷键

ctrl + a,跳到命令开头
ctrl + e,跳到命令结尾
ctrl + 键盘左键,向左跳一个单词
ctrl + 键盘右键,向右跳一个单词

1.5 清屏

通过快捷键 ctrl + l,可以清空终端内容

或通过命令 clear 得到同样效果

2. 软件安装

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

  1. 下载安装包自行安装
    如 win 系统使用 exe 文件、msi 文件等
    如 mac 系统使用 dmg 文件、pkg 文件等
  2. 系统的应用商店内安装
    如 win 系统有 Microsoft Store 商店
    如 mac 系统有 AppStore 商店
    Linux 系统同样支持这两种方式,我们首先,先来学习使用:Linux 命令行内的"应用商店",yum 命令安装软件

2.1 yum命令

yum:RPM包 软件管理器,用于自动化安装配置 Linux 软件,并可以自动解决依赖问题。
语法:
yum [-y] [install | remove | search] 软件名称

  • 选项:-y,自动确认,无需手动确认安装或卸载过程
  • install:安装
  • remove:卸载
  • search:搜索
    yum 命令需要 root 权限哦,可以 su 切换到 root,或使用 sudo 提权。
    yum 命令需要联网
  • yum [-y] install wget, 通过 yum 命令安装 wget 程序
  • yum [-y] remove wget,通过 yum 命令卸载 wget 命令
  • yum search wget,通过 yum 命令,搜索是否有 wget 安装包

3. systemctl

Linux 系统很多软件(内置或第三方)均支持使用 systemctl 命令控制:启动、停止、开机自启
能够被 systemctl 管理的软件,一般也称之为:服务
语法:
systemctl start |stop | status | enable | disable 服务名

  • start 启动

  • stop 关闭

  • status 查看状态

  • enable 开启开机自启

  • disable 关闭开机自启
    系统内置的服务比较多,比如:

  • NetworkManager,主网络服务

  • network,副网络服务

  • firewalld,防火墙服务

  • sshd,ssh 服务(FinalShell 远程登录 Linux 使用的就是这个服务)
    除了内置的服务以外,部分第三方软件安装后也可以以 systemctl 进行控制。
    yum install -y ntp,安装 ntp 软件

可以通过 ntpd 服务名,配合 systemctl 进行控制
yum install -y httpd,安装 apache 服务器软件

可以通过 httpd 服务名,配合 systemctl 进行控制
部分软件安装后没有自动集成到 systemctl 中,我们可以手动添加。
这部分内容在后续章节和大家详细讲解。

4. 软连接

在系统中创建软链接,可以将文件、文件夹链接到其它位置。

类似 Windows 系统中的《快捷方式》
语法:
ln -s 参数1 参数2

  • -s选项,创建软连接
  • 参数1:被链接的文件或文件夹
  • 参数2:要链接去的目的地
    实例:
    ln -s /etc/yum.conf ~/yum.conf
    ln -s /etc/yum ~/yum

5. 日期、时区

通过 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 到现在的秒数
  1. 使用 date 命令本体,无选项,直接查看时间
  2. 按照 2022-01-01 的格式显示日期
  3. 按照 2022-01-01 10:00:00 的格式显示日期

    date 命令进行日期加减

-d 选项,可以按照给定的字符串显示日期,一般用于日期计算

其中支持的时间标记为:

  • year年
  • month月
  • day天
  • hour小时
  • minute分钟
  • second秒

-d 选项可以和 格式化字符串配合一起使用哦
使用 root 权限,执行如下命令,修改时区为东八区时区
rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

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

我们可以通过 ntp 程序自动校准系统时间
安装 ntp:yum -y install ntp

启动并设置开机自启:
systemctl start ntpd
systemctl enable ntpd

当 ntpd 启动后会定期的帮助我们联网校准系统的时间
也可以手动校准(需root权限):ntpdate -u ntp.aliyun.com

通过阿里云提供的服务网址配合 ntpdate(安装ntp后会附带这个命令)命令自动校准

6. IP地址、主机名

6.1 IP地址

  • 每一台 联网 的电脑都会有一个地址,用于和其它计算机进行通讯
  • IP 地址主要有 2 个版本,V4 版本和 V6 版本(V6 很少用,课程暂不涉及)
  • IPv4 版本的地址格式是:a.b.c.d,其中 abcd 表示 0~255 的数字,如 192.168.88.101 就是一个标准的IP地址
    可以通过命令:ifconfig,查看本机的 ip 地址,如无法使用 ifconfig 命令,可以安装:yum -y install net-tools

6.2 特殊 IP 地址

除了标准的IP地址以外,还有几个特殊的IP地址需要我们了解:

  • 127.0.0.1,这个IP地址用于指代本机
  • 0.0.0.0,特殊 IP 地址
    1️⃣可以用于指代本机
    2️⃣可以在端口绑定中用来确定绑定关系(后续讲解)
    3️⃣在一些 IP 地址限制中,表示所有 IP 的意思,如放行规则设置为 0.0.0.0,表示允许任意IP访问

6.3 主机名

每一台电脑除了对外联络地址(IP 地址)以外,也可以有一个名字,称之为主机名

无论是 Windows 或 Linux 系统,都可以给系统设置主机名
可以使用命令:hostname 查看主机名

可以使用命令:hostnamectl set-hostname 主机名,修改主机名(需 root)

重新登录 FinalShell 即可看到主机名已经正确显示

6.4 域名解析

IP 地址实在是难以记忆,有没有什么办法可以通过主机名或替代的字符地址去代替数字化的IP地址呢?

  • 实际上,我们一直都是通过字符化的地址去访问服务器,很少指定 IP 地址。比如,我们在浏览器内打开:www.baidu.com,会打开百度的网址。其中,www.baidu.com,是百度的网址,我们称之为:域名
    访问 www.baidu.com 的流程如下:

  • 先查看本机的记录(私人地址本)
    Windows看:C:\Windows\System32\drivers\etc\hosts
    Linux看:/etc/hosts

  • 再联网去 DNS 服务器(如 114.114.114.114,8.8.8.8 等)询问

6.5 虚拟机配置固定IP

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

DHCP:动态获取 IP 地址,即每次重启设备后都会获取一次,可能导致 IP 地址频繁变更
为什么需要固定IP?

  1. 办公电脑 IP 地址变化无所谓,但是我们要远程连接到 Linux 系统,如果 IP 地址经常变化我们就要频繁修改适配很麻烦

  2. 刚刚我们配置了虚拟机 IP 地址和主机名的映射,如果 IP 频繁更改,我们也需要频繁更新映射关系
    配置固定 IP 需要2个大步骤:

  3. 在 VMware Workstation(或Fusion)中配置 IP 地址网关和网段(IP 地址的范围)

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

使用 vim 编辑 /etc/sysconfig/network-scripts/ifcfg-ens33 文件,填入如下内容

执行: systemctl restart network 重启网卡,执行 ifconfig 即可看到 ip 地址固定为 192.168.88.130 了

7. 网络传输

7.1 ping命令

可以通过 ping 命令,检查指定的网络服务器是否是可联通状态
语法:
ping [-c num] ip或主机名

  • 选项:-c,检查的次数,不使用 -c 选项,将无限次数持续检查
  • 参数:ip 或主机名,被检查的服务器的ip地址或主机名地址
    示例:

检查到 baidu.com 是否联通,结果表示联通,延迟32ms左右

检查到 39.156.66.10 是否联通,并检查 3 次

ping 随机地址不通

7.2 wget命令

wget 是非交互式的文件下载器,可以在命令行内下载网络文件
语法:
wget [-b] url

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

  • 参数:url,下载链接
    示例:

  • 下载apache-hadoop 3.3.0版本:wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

  • 在后台下载:wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

  • 通过 tail 命令可以监控后台下载进度:tail -f wget-log
    注意:无论下载是否完成,都会生成要下载的文件,如果下载未完成,请及时清理未完成的不可用文件。

7.3 curl命令

curl 可以发送 http 网络请求,可用于:下载文件、获取信息等
语法:
curl [-O] url

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

  • 参数:url,要发起请求的网络地址
    示例:

  • cip.cc 发起网络请求:curl cip.cc

  • python.itheima.com 发起网络请求:curl python.itheima.com
  • 通过 curl 下载 hadoop-3.3.0 安装包:curl -O http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

7.4 端口

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

  • 物理端口:又可称之为接口,是可见的端口,如 USB 接口,RJ45 网口,HDMI 端口等
  • 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的


计算机程序之间的通讯,通过 IP 只能锁定计算机,但是无法锁定具体的程序。

通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通
IP 地址相当于小区地址,在小区内可以有许多住户(程序),而门牌号(端口)就是各个住户(程序)的联系地址

Linux 系统是一个超大号小区,可以支持 65535 个端口,这 6 万多个端口分为 3 类进行使用:

  • 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如 SSH 服务的 22 端口,HTTPS 服务的 443 端口
    非特殊需要,不要占用这个范围的端口

  • 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务

  • 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。

  • 如图中,计算机 A 的微信连接计算机 B 的微信,A 使用的 50001 即动态端口,临时找一个端口作为出口

  • 计算机 B 的微信使用端口 5678,即注册端口,长期绑定此端口等待别人连接

7.5 查看端口占用

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

  • 使用 nmap 命令,安装 nmap:yum -y install nmap
    语法:
    nmap 被查看的 IP 地址

    可以通过 netstat 命令,查看指定端口的占用情况

  • 语法:netstat -anp | grep 端口号,安装 netstat:yum -y install net-tools

如图,可以看到当前系统 111 端口被程序(进程号 570)占用了。

其中,0.0.0.0:111,表示端口绑定在0.0.0.0这个IP地址上,表示允许外部访问
netstat -anp 主要用于查看本地机器上的网络连接和端口使用情况,而 nmap 127.0.0.1 则用于扫描本地机器上开放的端口以及它们可能对应的服务。

8. 进程管理

8.1 进程

程序运行在操作系统中,是被操作系统所管理的。
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程
并会为每一个进程都分配一个独有的:进程ID(进程号)

8.2 查看进程

可以通过 ps 命令查看 Linux 系统中的进程信息
语法:
ps [-e -f]

  • 选项:-e,显示出全部的进程
  • 选项:-f,以完全格式化的形式展示信息(展示全部信息)

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

从左到右分别是:

  • UID:进程所属的用户ID
  • PID:进程的进程号ID
  • PPID:进程的父ID(启动此进程的其它进程)
  • C:此进程的CPU占用率(百分比)
  • STIME:进程的启动时间
  • TTY:启动此进程的终端序号,如显示?,表示非终端启动
  • TIME:进程占用CPU的时间
  • CMD:进程对应的名称或启动路径或启动命令
    ps -ef | grep tail,即可准确的找到 tail 命令的信息

过滤不仅仅过滤名称,进程号,用户ID等等,都可以被 grep 过滤哦

如:ps -ef | grep 30001,过滤带有 30001 关键字的进程信息(一般指代过滤 30001 进程号)

8.3 关闭进程

在 Windows 系统中,可以通过任务管理器选择进程后,点击结束进程从而关闭它。

同样,在Linux中,可以通过 kill 命令关闭进程。
语法:
kill [-9] 进程ID

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

9. 主机状态

9.1 查看系统资源占用

可以通过 top 命令查看CPU、内存使用情况,类似 Windows 的任务管理器

默认每 5 秒刷新一次,语法:直接输入 top 即可,按 qctrl + c 退出


top 命令支持选项

top交互式选项

9.2 磁盘信息监控

使用 df 命令,可以查看硬盘的使用情况
语法:
df [-h]

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


可以使用 iostat 查看CPU、磁盘的相关信息
语法:
iostat [-x] [num1] [num2]

  • 选项:-x,显示更多信息
  • num1:数字,刷新间隔,num2:数字,刷新几次

tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。

9.3 网络状态监控

可以使用 sar 命令查看网络的相关统计(sar 命令非常复杂,这里仅简单用于统计网络)
语法:
sar -n DEV num1 num2

  • 选项:-n,查看网络,DEV表示查看网络接口
  • num1:刷新间隔(不填就查看一次结束),
  • num2:查看次数(不填无限次数)

10. 环境变量

10.1 环境变量

环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。
在 Linux 系统中执行:env 命令即可查看当前系统中记录的环境变量
环境变量是一种 KeyValue 型结构,即名称和值,如下图:

  • HOME:/home/itheima,用户的HOME路径
  • USER:itheima,当前的操作用户
  • PWD:当前工作路径

一系列信息,用于辅助系统在运行的时候从环境变量中获取关键信息

10.2 环境变量:PATH

在前面提出的问题中,我们说无论当前工作目录是什么,都能执行 /usr/bin/cd 这个程序,这个就是借助环境变量中:PATH 这个项目的值来做到的。

PATH 记录了系统执行任何命令的搜索路径,如上图记录了(路径之间以 : 隔开):

  • /usr/local/bin
  • /usr/bin
  • /usr/local/sbin
  • /usr/sbin
  • /home/itheima/.local/bin
  • /home/itheima/bin

当执行任何命令,都会按照顺序,从上述路径中搜索要执行的程序的本体

比如执行 cd 命令,就从第二个目录 /usr/bin 中搜索到了 cd 命令,并执行

10.3 $符号

在 Linux 系统中,$ 符号被用于取"变量"的值。
环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用。
取得环境变量的值就可以通过语法:$ 环境变量名 来取得

比如: echo $PATH 就可以取得 PATH 这个环境变量的值,并通过 echo 语句输出出来。

又或者:echo ${PATH}ABC

当和其它内容混合在一起的时候,可以通过{}来标注取的变量是谁

10.4 自行设置环境变量

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

  • 临时设置,语法:export 变量名=变量值
  • 永久生效
    • 针对当前用户生效,配置在当前用户的: ~/.bashrc 文件中
    • 针对所有用户生效,配置在系统的: /etc/profile 文件中
    • 并通过语法:source 配置文件,进行立刻生效,或重新登录 FinalShell 生效



环境变量 PATH 这个项目里面记录了系统执行命令的搜索路径。

这些搜索路径我们也可以自行添加到 PATH 中去。
测试:

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

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

  • 完成上述操作后,随意切换工作目录,执行 mkhaha 命令尝试一下,会发现无法执行

    修改 PATH 的值

  • 临时修改 PATH:export PATH=$PATH:/home/itheima/myenv,再次执行mkhaha,无论在哪里都能执行了

  • 或将 export PATH=$PATH:/home/itheima/myenv,填入用户环境变量文件或系统环境变量文件中去


11. 上传、下载

11.1 上传和下载

我们可以通过 FinalShell 工具,方便的和虚拟机进行数据交换。
在 FinalShell 软件的下方窗体中,提供了 Linux 的文件系统视图,可以方便的:

  • 浏览文件系统,找到合适的文件,右键点击下载,即可传输到本地电脑
  • 浏览文件系统,找到合适的目录,将本地电脑的文件拓展进入,即可方便的上传数据到 Linux 中

11.2 rz、sz命令

当然,除了通过 FinalShell 的下方窗体进行文件的传输以外,也可以通过 rz、sz 命令进行文件传输。
rz、sz 命令需要安装,可以通过:yum -y install lrzsz ,即可安装。

  • rz 命令,进行上传,语法:直接输入 rz 即可
  • sz 命令进行下载,语法:sz 要下载的文件

文件会自动下载到桌面的:fsdownload 文件夹中。
注意: rz、sz 命令需要终端软件支持才可正常运行

FinalShell、SecureCRT、XShell 等常用终端软件均支持此操作

12. 压缩、解压

12.1 压缩格式

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

  • zip 格式:Linux、Windows、MacOS,常用
  • 7zip:Windows系统常用
  • rar:Windows系统常用
  • tar:Linux、MacOS常用
  • gzip:Linux、MacOS常用
    在 Windows 系统中常用的软件如:winrar、bandizip 等软件,都支持各类常见的压缩格式,这里不多做讨论。
    我们现在要学习,如何在 Linux 系统中操作:tar、gzip、zip 这三种压缩格式完成文件的压缩、解压操作。

12.2 tar 命令

Linux 和 Mac 系统常用有 2 种压缩格式,后缀名分别是:

  • .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格式

  • -C,选择解压的目的地,用于解压模式

12.3 tar 命令压缩

tar 的常用组合为:

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

  • tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
    将1.txt 2.txt 3.txt 压缩到 test.tar.gz 文件内,使用 gzip 模式
    注意:

  • -z 选项如果使用的话,一般处于选项位第一个

  • -f 选项,必须 在选项位最后一个

12.4 tar 解压

常用的 tar 解压组合有

  • tar -xvf test.tar
    解压 test.tar,将文件解压至当前目录

  • tar -xvf test.tar -C /home/itheima
    解压 test.tar,将文件解压至指定目录(/home/itheima)

  • tar -zxvf test.tar.gz -C /home/itheima
    以 Gzip 模式解压 test.tar.gz,将文件解压至指定目录(/home/itheima)
    注意:

  • -f 选项,必须在选项组合体的最后一位

  • -z 选项,建议在开头位置

  • -C 选项单独使用,和解压所需的其它参数分开

12.5 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 test itheima a.txt
    将 test、itheima 两个文件夹和 a.txt 文件,压缩到 test.zip 文件内

12.6 unzip 命令解压文件

使用 unzip 命令,可以方便的解压 zip 压缩包
语法:
unzip [-d] 参数

  • -d,指定要解压去的位置,同 tar 的 -C 选项
    参数,被解压的 zip 压缩包文件
    示例:

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

  • unzip test.zip -d /home/itheima,将 test.zip 解压到指定文件夹内(/home/itheima)

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式