Lunix常见实操

目录

linux快捷键

安装软件

使用yum为centOS安装软件

首次使用yum时报错?

 使用apt为Ubuntu安装软件

使用systemctl控制软件的启动和关闭

软链接:ln

日期和时区

date命令查看系统时间

修改linux时区

使用ntp程序自动校准系统时间

ip地址和主机名

基础

域名解析:通过主机名/替代的字符地址去代替ip地址,以便于访问

配置ip映射

虚拟机配置固定ip

在VMWare配置linux系统的固定ip地址(window)

在VMWare配置linux系统的固定ip地址(MacOS)

网络传输

使用ping命令检查服务器是否可联通

wget下载文件

使用curl发起网络请求

端口

查看端口的占用情况 

进程管理

了解进程

1. 进程的基本概念

2. 进程的组成

3. 进程的状态

4. 进程的创建

5. 进程的调度

6. 进程的通信

进程管理

通过ps查看Linux系统中的进程信息

关闭进程:kill

主机状态

查看主机的资源占用:top命令

top 命令的常用选项

 top 命令的交互操作

 查看磁盘信息监控

查看硬盘的使用情况

查看cpu、磁盘的详细监控指标

网络状态监控

环境变量:env查看环境变量

环境变量的作用

$的作用

如何在lunix的环境变量

虚拟机-本地电脑的文件上传下载

在FinalShell提供的可视化操作完成

通过指令rz上传和sz下载完成

压缩和解压

tar压缩或解压缩tar(后缀名.tar)、gzip(后缀名.gz)文件

zip、unzip压缩或解压缩zip文件


linux快捷键

强制停止程序运行/退出当前命令输入ctrl+c
推出账户登录/某些特定程序的专属页面ctrl+d不能用于退出编辑器
搜索历史输入过的命令history此时可以通过grep过滤命令
快速执行上一次执行过的类似1命令!+字符

例如,当前历史执行过

python

history

ls

grep

此时通过!p

系统会从下向上搜索执行过的命令,根据匹配机制,可以快速执行python、命令

注意:执行历史比较久远的命令,不容易命中

根据关键字搜索历史比较久远的指令ctrl+r,输入关键字

回车直接执行目标目录

键盘左右键,可以得到该命令(不执行)

光标移动快捷键

CTRL+a

CTRL+e

CTRL+键盘左键

CTRL+键盘右键

a:跳到命令开头

e:跳到命令结尾

左键:向左跳一个单词

右键:向右跳一个单词

清空终端内容CTRL+l或命令clear

安装软件

使用yum为centOS安装软件

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

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

选项y:自动确认,无需手动确认安装或卸载过程

install:安装

remove:卸载

search:搜索

yum命令需要联网且需要root权限,可以su切换到root也可以使用sudo临时使用root权限

首次使用yum时报错?

Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"

原因:

现这个错误是因为使用的 CentOS 7 仓库已经被归档,当前的镜像地址无法找到所需的文件。CentOS 7 的官方支持已经结束,部分仓库已被移至归档库。这导致了你的 yum 命令无法找到所需的元数据文件。CentOS 7 的官方仓库在 2024 年 6 月 30 日之后已经停止维护。因此,使用最新的 CentOS 7 官方仓库可能会遇到问题。

解决方法:

一、使用阿里云镜像

1.备份原有仓库配置文件

sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2.下载阿里云的仓库配置文件:

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

结果如下图,即为成功:

3.清理缓存并重新尝试:

sudo yum clean all
sudo yum makecache
sudo yum -y install wget(这条代码是示例)

二、使用清华大学镜像

1.备份原有仓库配置文件:

sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2.下载清华大学的仓库配置文件

sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo

3.清理缓存并重新尝试

sudo yum clean all
sudo yum makecache
sudo yum -y install wget

 使用apt为Ubuntu安装软件

语法:apt [-y] [install | remove |search]

用法和yum一样。

使用systemctl控制软件的启动和关闭

linux系统有很多软件(内置或可以自动注册为服务的第三方软件)均支持使用systemctl命令来控制:启动、停止、开机自启动···,能够被systemctl管理的软件,一般称为“服务”

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

start 启动、 stop 关闭、 status 查看状态、 enable 开启开机自启动、 disable关闭开机自启动

内置的服务比较多,例如:

NetworkManager 主网络服务

network 副网络服务

firewalld防火墙服务

sshd,ssh服务(FinalShell使用的就是这个服务)

软链接:ln

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

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

-s:创建软链接

参数1:被链接的文件/文件夹的地址

参数2:要链接到的目的地

使用软链接之后,在今后的工作中需要用到某的文件(地址复杂)时,直接使用其软链接的地址(参数2)即可。

日期和时区

date命令查看系统时间

语法:date [-d] ["+格式化字符串"](+不可省略)

-d:按照给定的字符串显示日期,一般用于日期计算,支持的时间标记有:year年,mouth月,day天,hour小时,minute分钟,second分钟

格式化字符串:

%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到现在的秒数

示例:date "+%Y-%m-%d %H:%M:%S"

输出结果示例:2025-02-15 05:59:45

示例:date -d "+1day"

输出结果示例:2025年 02月 16日 星期日 06:01:15 PST

修改linux时区

要使用root权限。

  1. 查看当前时区:timedatectl
  2. 列出所有可用时区:timedatectl list-timezones
  3. 修改时区:sudo timedatectl set-timezone 时区名称

使用ntp程序自动校准系统时间

安装方法:yum -y install ntp

启动并设置开机自启动:

systemctl start ntpd

systemctl enable ntpd

手动校准:ntpdate -u ntp.aliyun.com

ip地址和主机名

基础

  1. 查看ip地址:ifconfig
  2. 可以用来指代本机的ip地址:127.0.0.1和0.0.0.0(后者还有更广泛的作用)
  3. 查看主机名:hostname,修改主机名:hostnamectl set-hostname 新的主机名

域名解析:通过主机名/替代的字符地址去代替ip地址,以便于访问

域名解析的过程(图片源于黑马程序员):

由上图可知,当你想直接通过主机名会是其它去代替ip地址时,需要在本机的文件里去配置ip映射。

配置ip映射

配置映射的位置:

window:C:\\Windows\System32\dirvers\etc\hosts

Linux:/etc/hosts

权限:需要root/管理员权限

如何配置?

  1. window:在文件的末尾添加 目标ip地址 域名
  2. 完成1的操作之后,打开FinalShell,修改“主机”的ip地址,将其改成上述的“域名”,也可以成功连接
  3. linux的配置方法也类似。

虚拟机配置固定ip

为什么需要固定ip?

固定 IP 地址(Static IP)是指为设备分配一个长期不变的 IP 地址,而不是由 DHCP 服务器动态分配的临时 IP 地址。

配置好了ip地址的映射之后,如果ip地址频繁变更,我们也需要频繁变更其映射,非常的不方便。

在VMWare配置linux系统的固定ip地址(window)

  1. 在VMWare配置ip地址网关和网段(IP地址的范围)
  2. 在linux系统中手动修改配置文件

修改完成后确定退出即可

值得注意的是,当发现FinalShel连接超时时,要修改FinalShell对应的主机地址,可以通过在虚拟机的控制面板输入ifconfig查看新的ip地址

接下来解析第二步:系统中手动修改配置文件(需要root权限)

1.指令:vim /etc/sysconfig/network-scripts/ifcfg-ens33

在文件末尾添加:

IPADDR="192.168.88.130"
NETMASK="255.255.255.0"
GATEWAY="192.168.88.2"
DNS1="192.168.88.2"

第一行表示的是IP地址(是我们想要的固定ip地址,改成88.150或者88.120都行,只要是你想要的ip地址

第二行表示的是我们的子网掩码

第三行表示我们的网关,要和前面vmware设置的一致

第四行DNS1设置成网关即可
并把BOOTPROTO="dhcp"改成="static",如图所示

最后,我们要重启网卡,输入(值得注意的是,当发现FinalShel连接超时时,要修改FinalShell对应的主机地址,可以通过在虚拟机的控制面板输入ifconfig查看新的ip地址)

systemctl stop network
systemctl start network

在VMWare配置linux系统的固定ip地址(MacOS)

由于作者的电脑不是macOS的,所以我没有实践过

参考文件Mac用 VMWare创建虚拟机并设置静态IP - 知乎

网络传输

使用ping命令检查服务器是否可联通

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

选项-c:检查次数,num=3就检查三次,不使用-c将会无限次数地持续检查

参数:ip或主机名是指被检查的服务器端ip或主机名

wget下载文件

语法:wget [-b] url

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

参数:url,下载链接,

如果想要停止下载,可以通过ctrl+c(此时获得的是一个不完整的文件)

通过tail -f wget-log持续跟踪下载的进程

使用curl发起网络请求

语法:curl [-O] url

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

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

作用:相当于在浏览器打开一个网站

端口

端口(Port)是计算机网络中用于区分不同服务或应用程序的逻辑概念。它是网络通信中的一个重要组成部分,帮助设备在同一 IP 地址上运行多个服务,并通过端口号来区分这些服务。

1. 端口的基本概念

  • IP 地址:用于标识网络中的设备(如计算机、服务器、路由器等)。

  • 端口号:用于标识设备上运行的特定服务或应用程序。

  • 组合:IP 地址 + 端口号 = 唯一标识一个服务。

例如:

  • 192.168.1.100:80 表示 IP 地址为 192.168.1.100 的设备上的 HTTP 服务(端口 80)。


2. 端口号的范围

端口号是一个 16 位整数,范围是 0 到 65535。根据用途,端口号分为以下三类:

1. 知名端口(Well-Known Ports)

  • 范围:0 - 1023

  • 用途:预留给系统或知名服务使用。

  • 示例:

    • 80:HTTP(网页服务)

    • 443:HTTPS(加密的网页服务)

    • 22:SSH(安全远程登录)

    • 21:FTP(文件传输协议)

    • 25:SMTP(邮件发送协议)

2. 注册端口(Registered Ports)

  • 范围:1024 - 49151

  • 用途:预留给用户或应用程序使用。

  • 示例:

    • 3306:MySQL 数据库

    • 8080:HTTP 备用端口

    • 27017:MongoDB 数据库

3. 动态端口(Dynamic Ports)

  • 范围:49152 - 65535

  • 用途:临时分配给客户端程序使用,通常用于短暂的通信。


3. 端口的作用

  • 多路复用:允许同一设备上的多个服务同时运行。

  • 区分服务:通过端口号区分不同的服务(如 HTTP、FTP、SSH 等)。

  • 安全性:通过防火墙限制特定端口的访问,提高网络安全性。


4. 常见的端口及其用途

端口号

协议

用途

20/21

FTP

文件传输协议

22

SSH

安全远程登录

23

Telnet

远程登录(不安全)

25

SMTP

邮件发送

53

DNS

域名解析

80

HTTP

网页服务

110

POP3

邮件接收

143

IMAP

邮件接收

443

HTTPS

加密的网页服务

3306

MySQL

MySQL 数据库

3389

RDP

远程桌面协议

8080

HTTP

HTTP 备用端口

查看端口的占用情况 

  1. 使用nmap查看某ip地址端口占用情况:安装yum -y install nmap;语法:nmap 被查看的ip地址
  2. 使用netstat命令查看指定端口的占用情况,安装netstat:yum -y install net-tools

语法:netstat -anp | grep 端口号

进程管理

了解进程

进程(Process)是计算机中正在运行的程序的实例。它是操作系统进行资源分配和调度的基本单位。每个进程都有独立的内存空间、代码、数据和系统资源。每个进程会被分配一个独有的进程ID


1. 进程的基本概念

  • 程序:存储在磁盘上的静态文件(如可执行文件、脚本)。

  • 进程:程序在内存中的动态执行实例。

  • 多任务:操作系统可以同时运行多个进程,通过时间片轮转等方式实现并发执行。


2. 进程的组成

一个进程通常包括以下部分:

  1. 代码段:程序的指令。

  2. 数据段:程序的全局变量和静态变量。

  3. :动态分配的内存(如 malloc 或 new 分配的内存)。

  4. :用于存储函数调用的局部变量和返回地址。

  5. 进程控制块(PCB):操作系统用于管理进程的数据结构,包含进程的状态、优先级、寄存器值等信息。


3. 进程的状态

进程在其生命周期中会经历多种状态,常见的状态包括:

  1. 新建(New):进程刚被创建,尚未开始执行。

  2. 就绪(Ready):进程已准备好运行,等待 CPU 分配时间片。

  3. 运行(Running):进程正在 CPU 上执行。

  4. 阻塞(Blocked):进程等待某些事件(如 I/O 操作完成)。

  5. 终止(Terminated):进程执行完毕或被强制终止。


4. 进程的创建

  • 系统启动:操作系统启动时会创建一些系统进程。

  • 用户操作:用户运行程序时会创建新的进程。

  • 进程派生:一个进程可以通过系统调用(如 fork())创建子进程。


5. 进程的调度

操作系统通过调度算法决定哪个进程可以使用 CPU。常见的调度算法包括:

  1. 先来先服务(FCFS):按进程到达的顺序调度。

  2. 短作业优先(SJF):优先调度执行时间短的进程。

  3. 时间片轮转(RR):每个进程分配一个固定的时间片,轮流执行。

  4. 优先级调度:根据进程的优先级进行调度。


6. 进程的通信

多个进程之间可以通过以下方式通信:

  1. 管道(Pipe):用于父子进程之间的通信。

  2. 消息队列(Message Queue):进程之间通过消息传递数据。

  3. 共享内存(Shared Memory):多个进程共享同一块内存区域。

  4. 信号(Signal):用于通知进程某个事件的发生。

  5. 套接字(Socket):用于网络通信。

进程管理

通过ps查看Linux系统中的进程信息

语法; ps [-e -f]

选项-e:显示出全部进程

选项-f:已完全格式化的形式展示全部信息

固定用法:ps -ef列出全部进程的信息

可以通过管道符准确过滤具体的关键字信息,例如:ps -ef | grep tail(tail这个位置可以是命令或者关键词,例如进程号)

 

UIDPIDPPIDCSTIMETTYTIMECMD
进程所属用户ID进程号

进程的父id

(启动此进程的其他进程)

此进程的CPU占用率进程的启动时间七点此进程的终端序号,如显示?,表示非终端进程,而是系统内置的进程占用的CPU时间(累计占用CPU的时间启动路径

关闭进程:kill

语法:kill [-9] 进程号

选项-9:表示强制关闭进程,不使用此选项会像进程发送信号要求其关闭,的那是否关闭取决于进程自身的处理机制。

主机状态

查看主机的资源占用:top命令

语法:top,默认五秒刷新一次

top命令内容详解:

top 命令的常用选项

选项作用
-d 秒数设置刷新间隔时间(默认 5 秒)。例如:top -d 1 表示每秒刷新一次。
-n 次数设置刷新次数后退出。例如:top -n 5 表示刷新 5 次后退出。
-p PID仅显示指定 PID 的进程信息。例如:top -p 1234
-u 用户名仅显示指定用户的进程信息。例如:top -u root
-b以批处理模式运行,适合将输出重定向到文件。例如:top -b > output.txt
-H显示线程信息(默认显示进程信息)。
-c显示完整的命令行(默认只显示命令名称)。
-i忽略空闲进程(不显示 CPU 使用率为 0 的进程)。

 top 命令的交互操作

在 top 运行时,可以通过按键进行交互操作:

按键作用
k终止进程。输入 PID 后按回车。
r修改进程的优先级(Nice 值)。输入 PID 和新的 Nice 值后按回车。
P按 CPU 使用率排序(默认排序方式)。
M按内存使用率排序。
T按运行时间排序。
N按 PID 排序。
f进入字段选择界面,可以自定义显示的列。
h显示帮助信息。
q退出 top

 查看磁盘信息监控

查看硬盘的使用情况

语法:df [-h]

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

查看cpu、磁盘的详细监控指标

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

选项-x:显示详细信息

num1:刷新间隔

num2:刷新次数

网络状态监控

固定语法:sar -n DEV num1 num2

选项-n:查看网络,DEV表示查看网络接口

num1:刷新间隔(不填,仅显示一次)

num2:刷新次数(不填,无限次数)

环境变量:env查看环境变量

环境变量的作用

cd命令本身是一个程序,那为什么我们在任意目录输入cd都能成功执行这个程序呢,这得益于环境变量的作用:借助PATH记录的搜索路径,促使程序执行时会自动扫描PATH下面的搜索路径,直到找到cd所在的应用程序并运行。

环境变量(Environment Variables)是操作系统或应用程序用来存储配置信息和运行时数据的一种机制。它们在系统运行和程序执行中起着重要作用。以下是环境变量的主要作用:


1. 配置系统行为

环境变量可以影响操作系统和应用程序的行为。例如:

  • PATH:指定可执行文件的搜索路径。当你在终端输入命令时,系统会根据 PATH 中的路径查找对应的可执行文件。

  • LANG:设置系统的语言环境(如 en_US.UTF-8 或 zh_CN.UTF-8)。

  • HOME:指定当前用户的主目录路径。


2. 传递配置信息

环境变量可以用于向程序传递配置信息,避免将配置硬编码在代码中。例如:

  • 数据库连接信息:通过环境变量传递数据库的主机、端口、用户名和密码。

  • API 密钥:通过环境变量传递第三方服务的 API 密钥。


3. 控制程序行为

环境变量可以控制程序的运行方式。例如:

  • DEBUG:在开发环境中启用调试模式。

  • JAVA_OPTS:设置 Java 虚拟机的启动参数。


4. 多环境支持

通过环境变量,可以在不同的运行环境(如开发、测试、生产)中使用不同的配置。例如:

  • 开发环境:使用本地的数据库和服务。

  • 生产环境:使用远程的数据库和服务。


5. 提高安全性

将敏感信息(如密码、密钥)存储在环境变量中,而不是硬编码在代码中,可以提高安全性。例如:

  • DATABASE_PASSWORD:通过环境变量传递数据库密码,避免密码泄露。


6. 跨平台兼容

环境变量是跨平台的,可以在不同的操作系统(如 Linux、Windows、macOS)中使用相同的配置方式。


7. 动态调整

环境变量可以在运行时动态调整,而无需修改代码或重启程序。例如:

  • LOG_LEVEL:通过环境变量调整日志级别(如 INFODEBUG)。


8. 常见环境变量示例

环境变量

作用

PATH

指定可执行文件的搜索路径。

HOME

指定当前用户的主目录路径。

LANG

设置系统的语言环境。

USER

当前登录的用户名。

SHELL

当前用户的默认 Shell。

PWD

当前工作目录的路径。

EDITOR

默认的文本编辑器(如 vimnano)。

DATABASE_URL

数据库的连接地址。

API_KEY

第三方服务的 API 密钥。

$的作用

$用于取“变量”的值

环境变量记录的选项,处理提供给操作系统之外,如果我们想要自己使用,可以听过$取值;

语法:$环境变量名

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

当和其它内容混合在一起时,可以通过{}标注所取的变量,例如 echo ${PATH}ABC

如何在lunix的环境变量

  1. 临时设置环境变量,语法:export 变量名=变量值(在控制面板使用export命令)
  2. 永久生效:有两种方式
    1. 仅针对当前用户生效,配置在当前用户的:~/.bashrc文件中,关机再重新打开就会失效
    2. 针对所有用户生效,配置在系统的:/ect/profile文件中
    3. 通过语法:source 配置文件,进行立刻生效,或重新登录FinalShell生效
    4. 仅针对当前用户生效的方法:输入vi ~/.bashrc打开编辑器,在文件下面添加 export 变量名=变量值,在输入:wq!保存退出即可。
    5. 针对所有用户生效的方法:输入vi /ect/profile打开编辑器,在文件下面添加 export 变量名=变量值,在输入:wq!保存退出,再通过source /ect/profile使其生效即可

通过配置环境变量,可以在系统的任何目录执行我们自己编写的脚本命令,PATH里面追加的就是我们脚本文件的地址,写法:export PATH=$PATH:新增地址

PATH里的不同的地址,通过冒号:分隔

虚拟机-本地电脑的文件上传下载

在FinalShell提供的可视化操作完成

通过指令rz上传和sz下载完成

  1. 安装yum -y install lrzsz
  2. 使用方法:来到目标目录,通过sz 完整的文件名,即可下载(下载到下载文件夹),而rz就更简单了,直接输入rz命令,会弹出一个窗口选择,选中目标文件即可(速度慢)。

压缩和解压

tar压缩或解压缩tar(后缀名.tar)、gzip(后缀名.gz)文件

  1. .tar,被称之为tarball,归档文件,简单的封装文件,并没有太多的文件体积减少
  2. .gz,也常见为.tar.gz,gzip格式压缩文件,通过压缩算法压缩,可以极大减少压缩后的体积
  3. 语法:tar [-c -v -x -f -z -C] 参数1 参数2···参数n
    1. -c:创建压缩文件,用于压缩模式
    2. -v:显示压缩、解压的进程
    3. -x:解压
    4. -f:要压缩/解压的文件,必须在所有选项中处于最后一个位置
    5. -z:gzip模式,不适用-z就是普通的tarball模式,如果使用,必须在第一个
    6. -C:选择解压的目的地,单独使用
  4. 常见的选项组合:
    1. tar -cvf test.tar 1.txt 2.txt 作用:将 1.txt 2.txt文件都打包到 test.tar文件内
    2. tar -zcvf test.tar.gz 1.txt 2.txt 作用:将1.txt 2.txt 压缩到 test.tar.gz 文件中,使用gzip模式
    3. tar -xvf test.tar,作用:解压test.tar到当前目录
    4. tar -xvf test.tar -C /home/yzx,作用:将tar文件解压到指定目录
    5. tar -zxvf test.tar.gz -C /home/yzx,作用:将tar.gz文件解压到指定目录

zip、unzip压缩或解压缩zip文件

压缩语法:zip [-r] 参数1 参数2 ···参数n

选项-r:被压缩的文件包含文件时,需要带上-r

示例:zip test.zip 1.txt 2.txt

解压语法:unzip [-d] 参数

选项-d:指定解压目的地,要放在被解压文件地址的后面,并跟上解压目的地

参数:被解压的文件

示例:unzip test.zip -d /home/yzx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值