四、零散技巧
1、常用快捷键
1.1、强制停止/退出
-
ctrl+c:强制停止当前操作
-
ctrl+d:退出当前登录用户或用于某些特定场景的退出(不能用于退出vi/vim编辑器)
1.2、历史命令搜索
-
history:可以查看历史输入过的命令
-
!+命令前缀:等同于在你输入过的历史命令中,从最近输入到最久远输入去查询以你加上的命令前缀开头的命令,并且使用,如果太久远可能会命中错误比如:你之前输入过python,即Linux默认自带的python编辑器,这时候你输入!p就会从你最近的输入向最久的输入进行查询,查询到了python,然后直接帮你输入python,你久也可以进入python的编辑界面
-
ctrl+r+模糊的部分命令:搜索出来后,如果是你需要的命令直接回车即可使用(执行命令),如果不是可以进行键盘左右键的切换(不执行搜索出来的命令)
1.3、光标移动
-
ctrl+a:直接移动到当前命令的最左端
-
ctrl+e:直接移动到当前命令的最末端
-
ctrl+鼠标左键:向左移动一个完整单词
-
ctrl+鼠标右键:向右移动一个完整单词
-
普通键盘左移:向左移动一个单一字母
-
普通键盘右移:向右移动一个单一字母
1.4、清屏
-
ctrl+l
-
clear
2、软件安装
操作系统安装软件有许多种方式,一般分为:
-
下载安装包自行安装
-
如 Win 系统使用 exe 文件、Msi 文件等
-
如 Mac 系统使用 dMg 文件、pkg 文件等
-
-
系统的应用商店内安装
-
如 Win 系统有 Microsoft Store 商店
-
如 mac 系统有 AppStore 商店
-
Linux 系统同样支持这两种方式,但是在不同的发行版,其对应的安装命令有些许不同,接下来主要介绍其中两种
2.1、centOS系统
我们首先来学习使用:Linux 命令行内的“应用商店”,yum 命令安装软件。
yum(Yellowdog Updater, Modified)是 RPM-based Linux 发行版(如 CentOS、RHEL、Fedora 等)中的 包管理工具,用于安装、更新、删除和管理软件包。它通过自动解决依赖关系简化了软件管理过程。
以下是常见命令:
# 安装软件包
yum install 包名
# 更新软件包
yum update 包名 # 更新指定包
yum update # 更新所有可更新的包
# 删除软件包
yum remove 包名
# 搜索软件包
yum search 关键词
# 列出已安装的包
yum list installed
# 查看包信息
yum info 包名
# 清理缓存
yum clean all # 清理所有缓存
yum makecache # 重建元数据缓存
# 如果在yum命令中加入 -y 选项,则是默认自动回答yes,同意安装
注意:使用yum命令需要较大的权限,可以su到超级管理员root用户后再yum安装软件,同时yum需要联网才可以进行软件安装的操作
2.2、Ubuntu系统
相对于centOS系统的yum命令,在Ubuntu中安装软件就是使用apt命令进行安装
以下是常见命令(可和上面的yum的常见命令进行对比):
# 安装软件包
apt install 包名
# 更新软件包
apt update 包名 # 更新指定包
apt upgrade # 更新所有可更新的包
# 删除软件包
apt remove 包名
# 搜索软件包
apt search 关键词
# 列出已安装的包
apt list installed
# 查看包信息
apt show 包名
# 清理缓存
apt clean # 清理所有缓存
# 如果在yum命令中加入 -y 选项,则是默认自动回答yes,同意安装
注意:同理使用apt命令需要较大的权限,可以su到超级管理员root用户后再apt安装软件,同时apt需要联网才可以进行软件安装的操作
3、systemctl
systemctl 是 Systemd(现代 Linux 系统的初始化和管理工具)的核心命令,用于管理系统服务(守护进程)、挂载点、设备等。它替代了传统的 service 和 chkconfig 命令,成为大多数主流 Linux 发行版(如 RHEL/CentOS 7+、Ubuntu 16.04+、Debian 9+)的标准服务管理工具。
| 命令 | 作用 |
|---|---|
systemctl start 服务名 | 启动服务(如 nginx) |
systemctl stop 服务名 | 停止服务 |
systemctl restart 服务名 | 重启服务 |
systemctl reload 服务名 | 重新加载配置(不中断服务) |
systemctl status 服务名 | 查看服务状态(含日志片段) |
systemctl enable 服务名 | 设置开机自启 |
systemctl disable 服务名 | 禁用开机自启 |
systemctl is-enabled 服务名 | 检查是否开机自启 |
如果使用的wsl,而不是虚拟机,那么你在使用systemctl的时候可能会不成功,原因是wsl默认是不使用systemctl,我们可以使用旧版本的service进行替代:
-
原:systemctl start/stop/restart/status/enable等 服务名
-
改:service 服务名 start/stop/restart/status/enable等
4、软连接
在 Linux 和 WSL(Windows Subsystem for Linux)中,软连接(Symbolic Link,符号链接)是一种特殊的文件类型,它指向另一个文件或目录(类似于 Windows 的创建快捷方式)。
# 基本语法
ln -s <源文件/目录路径> <软连接路径>
# -s:表示创建符号链接(软连接)。
# 如果省略 -s,则创建的是硬链接(Hard Link)。
# 创建文件的软连接
ln -s /path/to/original/file.txt /path/to/symlink
# 如果 file.txt 是文件,symlink 将指向它。
# 即通过 symlink 也可访问原 file.txt 文件
# 创建目录的软连接
ln -s /path/to/original/directory /path/to/symlink_dir
# 如果 directory 是目录,symlink_dir 将指向它。
# 即通过 symlink——dir 也可访问原 directory 文件夹中的内容
# 在当前目录创建软连接
ln -s /etc/nginx/nginx.conf nginx_conf_link
# 会在当前目录下创建一个 nginx_conf_link,指向 /etc/nginx/nginx.conf。
5、日期和时区
在 Linux 和 WSL(Windows Subsystem for Linux)中,date 命令用于 显示或设置系统时间和日期。
5.1、基本用法
date 【-d】【时间标识】【+常用的格式选项】
# 显示当前日期和时间
date
# 输出示例: Sat Oct 25 12:52:43 CST 2025
# 自定义输出格式,使用date [+常用的格式选项] 即可
# 若你要自定义的时间形式中包含空格,建议使用双引号将整体包围
date "+%Y-%m-%d %H:%M:%S"
# 输出示例: 2025-10-25 12:54:40
常用格式选项:
| 格式符 | 说明 | 示例 |
|---|---|---|
%Y | 年份(4位) | 2024 |
%m | 月份(01-12) | 10 |
%d | 日期(01-31) | 25 |
%H | 小时(00-23) | 15 |
%M | 分钟(00-59) | 30 |
%S | 秒(00-59) | 45 |
%A | 星期全名 | Monday |
%a | 星期缩写 | Mon |
%B | 月份全名 | October |
%b | 月份缩写 | Oct |
%Z | 时区 | CST |
注意:WSL 默认 继承 Windows 系统时间,直接运行
date会显示 Windows 时间如果需要修改时间:推荐直接在 Windows 中调整时间(WSL 会同步)。
5.2、时间计算
date 【-d】【时间标识】【+常用的格式选项】其中的-d和时标识多用于时间计算
# 在当前的日期的基础上加上两天
date -d "+2 day" "+%Y-%m-%d %H:%M:%S"
# 在当前的日期的基础上减去2年
date -d "-2 year" "+%Y-%m-%d %H:%M:%S"
可用的时间标识如下:
-
year年
-
month月
-
day日
-
hour小时
-
minute分钟
-
second秒
如果觉得时间不准确,可以下载ntp(yum/apt -y install ntp)进行时间校准,这个软件每隔一段时间会进行自动的时间校准,当然也可以手动校准
6、IP和主机名
6.1、IP
①、查看IP
查看IP常用的命令是ifconfig,ifconfig 是net-tools包中一个传统的网络配置工具,用于显示或配置网络接口的网络参数。然而,从较新的Linux 系统版本开始,ifconfig 已被逐渐废弃(当然也可以用如下命令:
sudo apt update
sudo apt install net-tools
下载net-tools包进而使用ifconfig),取而代之的是更强大的 ip 命令:
Ip addr show
②、常见网络接口
1. lo(Local Loopback)
-
作用:本地回环接口,用于本机内部通信。
-
IP 地址:通常为
127.0.0.1(IPv4)和::1(IPv6)。 -
用途:
-
测试本机服务(如
ping 127.0.0.1)。 -
本地运行的应用程序通过
localhost互相通信。
-
-
特点:
-
不依赖物理网卡,始终存在。
-
数据不会经过物理网络。
-
2. eth0(Ethernet 0)
-
作用:物理以太网接口(或虚拟化环境中的虚拟网卡)。
-
命名规则:
-
传统命名:
eth0、eth1(按顺序编号)。 -
现代命名(如 Ubuntu 18.04+):
enp3s0(基于 PCI 位置)。
-
-
IP 地址:由 DHCP 分配或手动配置(如
192.168.1.100)。 -
用途:
-
连接外部网络(如路由器、互联网)。
-
服务器间通信。
-
3. wlan0(Wireless LAN)
-
作用:无线网卡接口。
-
命名规则:
wlan0、wlp2s0(现代命名)。 -
IP 地址:由无线路由器分配(如
192.168.1.101)。 -
用途:连接 Wi-Fi 网络。
4. docker0
-
作用:Docker 默认创建的虚拟网桥。
-
IP 地址:通常为
172.17.0.1。 -
用途:
-
为 Docker 容器提供网络连接。
-
容器通过
docker0与宿主机或其他容器通信。
-
-
特点:
-
使用 NAT 规则实现容器与外部网络通信。
-
可通过
docker network命令自定义。
-
5. vethXXX(Virtual Ethernet Pair)
-
作用:虚拟以太网设备对,用于连接容器与
docker0网桥。 -
命名规则:
vetha1b2c3(随机后缀)。 -
特点:
-
每启动一个 Docker 容器,会创建一对
veth设备(一端在容器内,一端在宿主机)。 -
数据通过
veth设备转发到docker0。
-
6. br-XXX(自定义网桥)
-
作用:用户通过
docker network create创建的自定义 Docker 网桥。 -
IP 地址:如
172.18.0.1。 -
用途:
-
实现更复杂的容器网络隔离(如多个容器组通信)。
-
7. tun/tap
-
作用:虚拟隧道接口,用于 VPN 或虚拟网络。
-
示例:
-
tun0:OpenVPN 创建的隧道接口。 -
tap0:用于虚拟机的桥接网络。
-
8. virbr0(Libvirt 网桥)
-
作用:Libvirt(KVM/QEMU)默认创建的虚拟网桥,用于虚拟机网络。
-
IP 地址:通常为
192.168.122.1。 -
用途:
-
为虚拟机提供 NAT 网络访问。
-
9. lxcbr0(LXC 网桥)
-
作用桥)
-
作用:LXC 容器默认的虚拟网桥(类似
docker0)。 -
IP 地址:如
10.0.3.1。
总结表
| 接口名 | 类型 | 典型 IP 地址 | 用途 |
|---|---|---|---|
lo | 回环接口 | 127.0.0.1 | 本机内部通信 |
eth0 | 物理以太网 | 192.168.1.100 | 有线网络连接 |
wlan0 | 无线网卡 | 192.168.1.101 | Wi-Fi 连接 |
docker0 | Docker 网桥 | 172.17.0.1 | Docker 容器网络 |
vethXXX | 虚拟以太网对 | - | 连接容器与 docker0 |
br-XXX | 自定义网桥 | 172.18.0.1 | 用户定义的 Docker 网络 |
tun0 | VPN 隧道 | 10.8.0.1 | OpenVPN 等 VPN 连接 |
virbr0 | Libvirt 网桥 | 192.168.122.1 | KVM/QEMU 虚拟机网络 |
以下给出我的网络接口:
③、特殊IP地址
Ⅰ、本地回环地址(Loopback Address)
-
IPv4:
127.0.0.1(通常用localhost表示) -
IPv6:
::1 -
作用:
-
用于本机内部通信,测试本机服务(如
ping 127.0.0.1)。 -
数据不会经过物理网卡,仅在操作系统内部流转。
-
-
范围:
-
IPv4:
127.0.0.0/8(127.0.0.1~127.255.255.254)都是回环地址,但通常只用127.0.0.1。
-
Ⅱ、0.0.0.0
表示“所有网络接口”,在服务器监听时(如 Web 服务、SSH):
-
如果服务绑定到
0.0.0.0,表示监听本机所有可用网络接口(包括eth0、wlan0、lo等)。 -
示例:
# Nginx 监听所有接口的 80 端口
listen 0.0.0.0:80;
-
此时,通过本机任何 IP(如
192.168.1.100、127.0.0.1)均可访问该服务。 -
对比:
-
127.0.0.1:80:仅允许本机访问(回环接口)。 -
192.168.1.100:80:仅允许通过该特定 IP 访问。
-
表示默认路由(Default Route)
-
在路由表中,0.0.0.0表示默认网关,即“所有未明确指定的目标网络”的出口。
-
示例:
ip route show
# 输出:
# default via 192.168.1.1 dev eth0 # 所有非本地流量通过 192.168.1.1 转发
# 等价于:route add default gw 192.168.1.1
表示无效/未知地址
在某些场景下,0.0.0.0表示:
-
未分配 IP:如 DHCP 客户端尚未获取到 IP 时可能临时显示为
0.0.0.0。 -
无效目标:用于表示“无地址”或“任意地址”。
6.2、主机名
在 Linux 和 Windows 系统中,主机名(Hostname) 是用于标识网络中设备的名称。它在局域网内帮助识别不同的计算机或服务器。
①、查看主机名
②、修改主机名
修改主机名需要较大权限,故要使用sudo或者直接切换到root超级管理员
Ⅰ、临时修改
sudo hostname "new-hostname" # 临时生效(重启后恢复)
Ⅱ、永久修改
sudo hostnamectl set-hostname "new-hostname"
6.3、域名解析
域名解析(DNS Resolution)是将人类可读的 域名(如 www.example.com)转换为计算机可识别的 IP 地址(如 192.0.2.1)的过程。
①、域名解析基本流程
当你在浏览器输入 www.example.com 时,DNS 解析过程如下:
-
本地缓存查询
-
系统首先检查 本地 Hosts 文件(如
/etc/hosts或C:\Windows\System32\drivers\etc\hosts)。 -
如果没有记录,则查询 本地 DNS 缓存(如 Windows 的
DNS Client或 Linux 的systemd-resolved)。
-
-
递归查询(Recursive Query)
-
如果本地没有缓存,请求会发送到 ISP 的 DNS 服务器(如
8.8.8.8或1.1.1.1)。 -
递归 DNS 服务器会从根域名服务器(Root DNS)开始逐级查询:
-
根域名服务器(.) → 顶级域(TLD,如 .com) → 权威 DNS(如 example.com 的 NS 记录)。
-
最终返回目标 IP。
-
-
-
返回 IP 地址
-
递归 DNS 服务器将 IP 返回给客户端,并缓存结果。
-
②、查询域名
Ⅰ、现在私人地址本查询
Windows中的地址本位于:"C:\Windows\System32\drivers\etc\hosts"
Linux中的地址本位于:"/etc/hosts"
Ⅱ、再联网去DNS服务器中查询
不需要我们手动去进行,电脑会自动去查询
③、配置伪域名
和我们在进行nginx的反向代理负载均衡时对于目标IP进行的域名配置相同,详情可见我的第1、2篇笔记
Ⅰ、打开文件
先以管理员的身份打开 C:\Windows\System32\drivers\etc\hosts文件
Ⅱ、域名映射的配置
在文件中的后面空白处添加:需要配置的IP 要配置的域名
如:123.123.123.123 www.example.com
Ⅲ、保存文件
之后我们便可以通过访问www.example.com 这个网址,进而访问123.123.123.123这个IP对应的网页
Linux实用技巧全解析
33万+

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



