7、配置固定IP
原来我们每次重启设备,我们的ip都会进行变化,这是因为我们每次重启设备都会通过dhcp获取动态ip,这样每次重新查看并识别IP较麻烦,于是我们便需要进行固定IP,即为当前设备配置静态IP
如果使用的是wsl,WSL 2 的 IP 是动态的:每次重启 WSL 或 Windows 后,eth0 的 IP 会变化,如果要进行静态IP的配置建议使用的是虚拟机,故接下来我将以VMware虚拟机的静态IP配置为例:
首先确定以下三个部分:
-
子网,如果配置的是1.1.1.0,则你之后在文件中配置的静态IP要在这个子网范围(1.1.1.0--1.1.1.255)内
-
子网掩码,确认是255.255.255.0
-
网关:在子网范围内,且通常不能是子网中的第一个或最后一个可用 IP(即不能是网络地址或广播地址),即在(1.1.1.0--1.1.1.255)范围内,且不建议是1.1.1.0和1.1.1.255
之后编辑配置文件(一般在/etc/sysconfig/network-scripts/ifcfg-eth0):
将其中内容修改和添加
DEVICE=eth0
BOOTPROTO=static # 静态 IP,由原来的 dhcp 改为 static
ONBOOT=yes
IPADDR=1.1.1.123 # 添加你要设置的静态IP,数值任意,只要在子网范围内且不和网关相同均可
NETMASK=255.255.255.0 # 添加子网掩码
GATEWAY=192.168.1.1 # 添加网关,在子网范围内,且通常不能是子网中的第一个或最后一个可用 IP
DNS1=8.8.8.8
# DNS 服务器通常是独立的网络设备或公共服务(如 8.8.8.8、1.1.1.1),可达且合法即可
8、网络传输
8.1、下载文件和网络请求
①、ping命令
ping [-c num] IP/主机名
# 默认不使用-c则是无限次数进行网络联通测试
ping -c 3 123.123.123.123
# 即向 IP 为 123.123.123.123 的网站发送3次请求,查看是否网络联通
②、wget命令
wget 是 Linux/Unix 系统中一个强大的 命令行下载工具,支持 HTTP、HTTPS、FTP 等协议,能递归下载、断点续传、批量抓取文件等。
# 普通下载
wget https://example.com/file.zip # 下载文件到当前目录,保留原始文件名。
# 指定保存路径和文件名
wget -O /path/to/save/new_name.zip https://example.com/file.zip
# -O:指定保存路径和文件名(可重命名)。
# 断点续传
wget -c https://example.com/big_file.iso
# -c:继续未完成的下载(适合大文件中断后恢复)。
# 后台下载
wget -b https://example.com/large_file.tar.gz
# -b:后台运行,日志默认写入 wget-log。
# 限速下载
wget --limit-rate=500k https://example.com/file.iso
# --limit-rate=500k:限制下载速度为 500KB/s(避免占用全部带宽)。
不论下载的文件是否成功,即下载到一半因为某些不知名原因下载失败,也会生成对应的文件名
③、curl命令
curl 是一个功能强大的 命令行数据传输工具,支持 HTTP、HTTPS、FTP、SFTP、SCP 等多种协议,常用于 API 调试、文件下载/上传、请求发送等场景
# 发送 GET 请求
curl https://example.com
# 获取网页内容并输出到终端。
# 保存输出到文件
curl -o https://example.com/file.zip # 保存为原文件名
curl -o custom_name.zip https://example.com/file.zip # 自定义文件名
# -o:指定保存文件名(类似 wget)。
8.2、端口
端口可分为物理端口(比如我们可见的usb端口、html端口等等)和虚拟端口(计算机内部不可见的)
端口(Port)是计算机网络中用于区分不同服务或应用程序的逻辑通道,在Linux系统中其范围是 0~65535。每个端口对应一个特定的服务(如 HTTP 80、SSH 22),确保数据能正确送达目标应用。
我们通过IP可以锁定一台计算机,通过端口可以锁定计算机内部的一个服务程序
①、端口分类
Ⅰ、公认端口(Well-Known Ports,0~1023)
由 IANA 分配,用于系统级服务(需 root 权限绑定):
| 端口 | 协议 | 用途 |
|---|---|---|
| 20/21 | FTP | 文件传输(数据/控制) |
| 22 | SSH | 安全远程登录 |
| 80 | HTTP | 网页访问 |
| 443 | HTTPS | 加密网页访问 |
| 53 | DNS | 域名解析 |
| 25 | SMTP | 邮件发送 |
| 3306 | MySQL | 数据库服务 |
我们在finalshell中进行ssh远程连接就是默认使用的是port:22端口
Ⅱ、注册端口(Registered Ports,1024~49151)**
用于用户级应用或常见软件,可以由我们自由分配:
| 端口 | 协议 | 用途 |
|---|---|---|
| 8080 | HTTP | 替代 80 的 Web 服务 |
| 3389 | RDP | Windows 远程桌面 |
| 5432 | PostgreSQL | PostgreSQL 数据库 |
| 27017 | MongoDB | MongoDB 数据库 |
Ⅲ、动态/私有端口(Dynamic/Ephemeral Ports,49152~65535)
客户端临时使用,操作系统动态分配(如浏览器访问网站时随机生成),用于临时使用。
②、查看端口
# Linux/macOS
netstat -tuln # 显示所有监听端口,需要yum/apt下载net-tools
ss -tuln # 更快的替代命令(推荐)
# Windows
netstat -ano # 显示所有端口及进程PID
9、进程管理
进程(Process)是运行中的程序实例,掌握进程管理是系统运维和开发调试的核心技能。
9.1、查看进程
ps aux # 查看所有用户的所有进程
ps -ef # 完整格式列表
ps -u root # 查看root用户的进程
ps aux | grep nginx # 过滤特定进程
9.2、终止进程
kill -9 PID | 强制终止(SIGKILL) |
|---|---|
kill -15 PID | 优雅终止(SIGTERM) |
pkill nginx | 按名称终止 |
killall httpd | 终止所有同名进程 |
10、主机状态监控
10.1、top命令
-
PID:进程id
-
USER:进程所属用户
-
PR:进程优先级,越小越高
-
NI:负值表示高优先级,正表示低优先级
-
VIRT:进程使用虚拟内存,单位KB
-
RES:进程使用物理内存,单位KB
-
SHR:进程使用共享内存,单位KB
-
S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
-
%CPU:进程占用CPU率
-
%MEM:进程占用内存率
-
TIME+:进程使用CPU时间总计,单位10毫秒
-
COMMAND:进程的命令/名称/程序文件路径
①、top可用选项:
| 选项 | 说明 |
|---|---|
-d | 设置刷新间隔时间(单位:秒),例如 top -d 2 表示每 2 秒刷新一次。 |
-p | 只监控指定的进程 ID,例如 top -p 1234。 |
-u | 只显示指定用户的进程,例如 top -u root。 |
-n | 设置刷新次数后退出,例如 top -n 5 表示刷新 5 次后自动退出。 |
-b | 批处理模式,适合将输出重定向到文件或其他程序,例如 top -b -n 1 > top.log。 |
-i | 不显示空闲(idle)或无用的进程。 |
-H | 显示线程信息,而不是进程。 |
-c | 显示完整的命令行路径(默认是简写)。 |
-M | 按照内存使用率排序(部分系统支持)。 |
-P | 按照 CPU 使用率排序(部分系统支持)。 |
②、可用交互式命令
| 按键 | 功能 |
|---|---|
P | 按 CPU 使用率排序 |
M | 按内存使用率排序 |
T | 按运行时间排序 |
k | 杀死一个进程(输入 PID) |
r | 修改进程优先级(renice) |
q | 退出 top |
h 或 ? | 显示帮助信息 |
10.2、磁盘监控和网络监控
# 查看硬盘使用情况
df [-h]
# -h 更人性化
iostat [-x] [num1] [num2]
# -x显示更多信息,num1刷新间隔,num2刷新次数
# 网络状态监控,主要看接收和发送的网卡速率
sar -n DEV [num1] [num2]
# num1刷新间隔,num2刷新次数
11、环境变量
环境变量(Environment Variables)是操作系统和应用程序用来存储配置信息的键值对,它们在Shell会话和子进程中全局可用。
注意区分变量大小写
11.1、查看环境变量
# 显示所有环境变量
env # 显示所有环境变量
printenv # 同上(更清晰的输出)
# 查看特定变量
echo $PATH # 查看PATH变量
printenv HOME # 查看HOME变量
11.2、设置环境变量
①、临时设置(仅当前Shell有效)
export VAR_NAME="value" # 设置变量(子进程可继承)
MY_VAR="hello" # 仅当前Shell可用(子进程不可见)
# 示例:export JAVA_HOME="/usr/lib/jvm/java-11
②、永久设置
# 当前用户生效
# 写入 ~/.bashrc(bash)或 ~/.zshrc(zsh)
echo 'export PATH="$PATH:/my/custom/path"' >> ~/.bashrc
source ~/.bashrc # 立即生效
# 对所有用户生效
# 写入 /etc/environment(系统级,无需export)
sudo nano /etc/environment
# 添加:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
当然也可以直接在Windows的桌面端直接添加
11.3、管理环境变量
# 追加变量
export PATH="$PATH:/new/path" # 将 /new/path 追加到原 PATH 末尾
# 替换变量
export PATH="/new/path" # 将 /new/path 追加到原 PATH 末尾
# 删除变量
unset VAR_NAME
# 赋予变量默认值
# 如果VAR未设置,则使用默认值
echo ${VAR:-"default_value"}
12、上传下载压缩解压
上传和下载基于finalshell可以直接选中文件后右键下载,或直接将目标Windows文件拖取到finalshell中,这里就不多赘述了,主要讲解压缩和解压
12.1、tar命令
①、仅打包(不压缩)
即最终打包出来的文件其体积并不比原要打包的文件之和小
tar -cvf archive.tar file1 file2 # 将 file1和file2 压缩打包到 archive.tar
tar -tvf archive.tar # 查看内容
tar -xvf archive.tar # 解包
-
-c:创建归档 -
-x:解压包(不可和-c一起用,一个文件不能既压缩又同时解压) -
-v:显示过程 -
-f:指定文件名,一般放在最后以接收你最终压缩或解压的包名 -
-z:gzip模式,不使用就是最基本的tar包模式 -
-C:单独使用,和解压的其他参数分开,解压的目标路径
②、打包后压缩
即最终压缩出来的文件,其体积比要压缩打包的文件之和小
| 压缩类型 | 命令(创建) | 命令(解压) |
|---|---|---|
| gzip | tar -czvf archive.tar.gz files/ | tar -xzvf archive.tar.gz |
| bzip2 | tar -cjvf archive.tar.bz2 files/ | tar -xjvf archive.tar.bz2 |
| xz | tar -cJvf archive.tar.xz files/ | tar -xJvf archive.tar.xz |
12.2、zip、uzip命令
zip压缩,uzip解压
# 压缩
zip archive.zip file1 file2 -r dir/ # -r 要压缩的文件中包含文件夹(目录)时使用
# 将文件file1 file2 和目录 dir/ 一起压缩到archive.zip
# 解压
unzip archive.zip # 解压到当前目录
unzip archive.zip -d /path # 解压到指定路径
# 查看内容
unzip -l archive.zip # 列出压缩包内容

被折叠的 条评论
为什么被折叠?



