Linux系统基本操作

目录

一、命令行提示字符

1.1切换用户

1.2主机

 1.3系统

 1.4修改网卡IP

 1.5添加静态路由条目

1.6测试网络连接

1.7重启系统

1.8关机

二、给命令行提示字符加颜色


一、命令行提示字符

[root@localhost ~]#
[当前登录系统的用户@主机名称 当前所在的目录]#
# 表示为管理员登录
$ 表示为普通用户登录
 

1.1切换用户

su 用户名        #切换后所在目录不变
su - 用户名        #切换后所在目录变成用户家目录

su 用户名

[root@localhost ~]# su xiewei
[xiewei@localhost root]$ ls
ls: cannot open directory .: Permission denied

#切换到 xiewei 用户,
#这意味着任何操作和命令执行都会以 xiewei 用户的权限进行。

#保持原来的 Shell 环境(root 的环境),
#这包括环境变量和工作目录。

#由于用户身份已经切换,
#即使 Shell 环境保持不变,
#xiewei 用户的权限仍然受到限制,
#因为系统会根据当前的用户身份(xiewei)来决定权限。

我们可以明确看见“xiewei”无法查看root用户的家目录。

su - 用户名

示例一

[root@localhost ~]# su - xiewei
Last login: Sun Jun 30 12:59:45 EDT 2024 on pts/0
[xiewei@localhost ~]$ ls    #只列出当前目录的文件和目录名,不包括隐藏文件
logout1.log  xiewei1  xiewei111  xiewei2  xiewei3  xiewei4  xiewei5
[xiewei@localhost ~]$ exit    #退出当前登录
logout
[root@localhost ~]# ls
anaconda-ks.cfg  a.txt  Desktop  dianming.sh  Documents  Downloads  initial-setup-ks.cfg  Music  Pictures  Public  Templates  Videos

        当完全切换过去的时候,我们可以看见xiewei用户家目录下的内容;exit退出到root用户时,则能看见root用户的家目录。

示例二

# 当前用户为 root
[root@localhost ~]# whoami    #用于显示当前登录用户的用户名
root

# 使用 su - 切换到 xiewei 用户,并加载 xiewei 用户的 Shell 环境
[root@localhost ~]# su - xiewei
[xiewei@localhost ~]$ whoami
xiewei

# 当前工作目录切换到 xiewei 的家目录
[xiewei@localhost ~]$ pwd    #显示当前工作目录的绝对路径
/home/xiewei

# 环境变量也切换到了 xiewei 用户的环境
[xiewei@localhost ~]$ echo $PATH    #用于显示当前用户的 PATH 环境变量的值
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/xiewei/bin

#PATH 环境变量包含一系列目录,
#当你在命令行输入一个命令时,系统会按照 PATH 中的目录顺序搜索该命令

#xiewei 用户的 PATH 环境变量包含以下目录:
#/usr/local/bin
#/usr/bin
#/usr/local/sbin
#/usr/sbin
#/home/xiewei/bin

# 尝试访问 root 用户专有的文件,同样会因为权限不足而被拒绝
[xiewei@localhost ~]$ cat /root/secret.txt    #查看内容较少的文件
cat: /root/secret.txt: Permission denied

实际生产应用

su 用户名su - 用户名 的使用场景

  su 用户名su - 用户名 都是用于切换用户身份的命令,但它们在实际使用中的场景有所不同。下面将详细介绍两者在日常工作中的典型应用场景,并通过具体示例进行说明。

su 用户名

su 用户名 切换用户身份,但不加载新用户的环境变量和家目录。它通常用于临时以其他用户身份执行命令,同时保持当前的工作目录和环境。

场景 1:临时以其他用户身份执行命令

当你在当前用户环境中,需要临时以另一个用户身份执行某个特定命令,而不需要完全切换到该用户的环境时,可以使用 su 用户名

示例:

你正在以 root 用户身份工作,需要以 xiewei 用户身份编辑一个文件,但不希望离开当前的工作目录。

# 当前用户为 root
[root@localhost /var/www]# su xiewei
[xiewei@localhost /var/www]$ whoami
xiewei
[xiewei@localhost /var/www]$ vim somefile.txt

在这个示例中,root 用户切换为 xiewei 用户,并在 /var/www 目录下编辑文件 somefile.txt。环境变量和当前工作目录保持不变。

场景 2:临时测试权限

你可以使用 su 用户名 来临时测试另一个用户是否对某个资源有访问权限,而不需要完全切换到该用户的环境。

示例:

你需要测试 xiewei 用户是否有权限访问某个文件。

# 当前用户为 root
[root@localhost /var/log]# su xiewei
[xiewei@localhost /var/log]$ cat /var/log/secure
cat: /var/log/secure: Permission denied

在这个示例中,root 用户切换为 xiewei 用户,并尝试访问 /var/log/secure 文件。可以看到权限被拒绝。

su - 用户名

su - 用户名 切换用户身份,并加载新用户的环境变量和家目录。它通常用于需要完整切换到另一个用户环境进行工作的时候。

场景 1:完整切换到另一个用户环境

当你需要完整切换到另一个用户环境,并使用该用户的所有配置(如环境变量、别名、路径等)时,可以使用 su - 用户名

示例:

你正在以 root 用户身份工作,需要切换到 xiewei 用户并执行一系列任务,使用 xiewei 用户的环境配置。

# 当前用户为 root
[root@localhost ~]# su - xiewei
[xiewei@localhost ~]$ whoami
xiewei
[xiewei@localhost ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/xiewei/bin
[xiewei@localhost ~]$ cd projects
[xiewei@localhost ~/projects]$ ./run_script.sh

        在这个示例中,root 用户切换为 xiewei 用户,加载了 xiewei 用户的环境配置,并在 xiewei 用户的家目录下工作。

场景 2:执行需要特定用户环境的脚本

有时,你需要执行的脚本依赖于特定用户的环境配置,例如路径、变量等。这时可以使用 su - 用户名 确保脚本在正确的环境中运行。

示例:

你需要运行一个依赖 xiewei 用户环境变量的脚本。

# 当前用户为 root
[root@localhost ~]# su - xiewei
[xiewei@localhost ~]$ ./scripts/setup_environment.sh

在这个示例中,root 用户切换为 xiewei 用户,并运行依赖于 xiewei 用户环境的脚本 setup_environment.sh

总结

  • su 用户名:用于临时以另一个用户身份执行命令,同时保持当前环境和目录。适用于需要快速测试权限或执行特定命令,而不需要完整切换环境的场景。

  • su - 用户名:用于完整切换到另一个用户的环境,包括加载该用户的环境变量和家目录。适用于需要在另一个用户的环境中工作,或执行依赖于该用户配置的任务和脚本的场景。

理解这两者的区别和应用场景,有助于在日常系统管理和操作中更高效地切换和管理用户权限。


1.2主机

1.2.1查看当前主机的完整名称

hostname

[root@localhost ~]# hostname
localhost

1.2.2临时设置主机名

hostname 主机名

#临时更换主机名
[root@localhost ~]# hostname xiewei

#启动一个新的 Bash Shell 实例。
#在改变主机名后启动一个新的 Bash Shell,
#可以立即看到主机名的更改效果,而不必退出当前会话。
[root@localhost ~]# bash
#重新启动
[root@xiewei ~]# init 6
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS7-2) at 01:22:01.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 192.168.78.22:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Sun Jun 30 09:48:26 2024 from 192.168.78.131
#启动后主机名已更改
[root@localhost ~]# 

我们可以明确看见重启后主机名就会变回去



拓展知识

1.什么是 Bash Shell 实例?

一个 Bash Shell 实例就是一个正在运行的 Bash Shell 会话。它是用户与操作系统交互的界面,通过它你可以输入命令,运行程序,查看文件等。

2.启动一个新的 Bash Shell 实例

        当你在命令行输入 bash 并按下回车键时,系统会启动一个新的 Bash Shell 实例。这意味着你在当前的 Shell 会话中又打开了一个新的 Shell 会话。新的 Bash Shell 实例是一个“子 Shell”,它从父 Shell 继承了一些环境变量,但它是一个独立的会话。

3.大白话解释

就像在一个房间里(当前 Shell 会话)开了一扇门(输入 bash 命令),进入了另一个房间(新的 Bash Shell 实例)。你在新房间里可以做很多事情,比如写东西(运行命令),看看文件(查看目录),但你仍然可以回到第一个房间(退出新的 Shell 实例)。

具体操作示例

步骤 1:查看当前 Shell 会话

[xiewei@localhost ~]$ echo $$
1961

echo $$ 命令显示当前 Shell 会话的进程 ID(PID)。这里显示的是 1961。

步骤 2:启动一个新的 Bash Shell 实例

[xiewei@localhost ~]$ bash
[xiewei@localhost ~]$ echo $$
2068

在输入 bash 命令后,系统启动了一个新的 Bash Shell 实例。再次运行 echo $$,你会看到不同的 PID(这里显示的是 2068),这表明你现在在一个新的 Shell 会话中。

步骤 3:在新的 Bash Shell 实例中操作

你可以在新的 Shell 实例中执行各种命令,比如查看当前目录、运行脚本等。

[xiewei@localhost ~]$ pwd
/home/xiewei
​
[xiewei@localhost ~]$ ls
logout1.log  xiewei1  xiewei111  xiewei2  xiewei3  xiewei4  xiewei5

步骤 4:退出新的 Bash Shell 实例

当你完成操作,想回到之前的 Shell 会话时,可以输入 exit 命令或按 Ctrl+D

[xiewei@localhost ~]$ exit
[xiewei@localhost ~]$ echo $$
1961

退出后,你回到了原来的 Shell 会话。再次运行 echo $$,你会看到之前的 PID(1961)。

总结

  • 启动一个新的 Bash Shell 实例:输入 bash 命令并按回车键。系统会打开一个新的 Shell 会话,就像在当前环境中开了一个新窗口。

  • 大白话解释:就像你在一个房间里开了一扇门进入另一个房间,你可以在新房间里做事情,但随时可以回到第一个房间。

  • 实用场景:这种操作在需要测试新的配置、临时在独立环境中执行命令、不干扰当前会话时非常有用。



1.2.3永久设置主机名

hostnamectl set-hostname 主机名vim /etc/hostname设置完后需重启系统才生效

1)hostnamectl set-hostname 主机名

#永久更改主机名
[root@localhost ~]# hostnamectl set-hostname xiewei
[root@localhost ~]# bash
[root@xiewei ~]# init 6    #重启
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS7-2) at 01:45:50.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 192.168.78.22:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Sun Jun 30 13:23:38 2024 from 192.168.78.131
[root@xiewei ~]# 

这里我们可以看见,即使重启了,主机名也没有变回去

vim /etc/hostname

[root@xiewei ~]# vim /etc/hostname

#修改/etc/hostname此配置文件
[root@xiewei ~]# vim /etc/hostname 
[root@xiewei ~]# init 6
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS7-2) at 01:50:04.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 192.168.78.22:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Sun Jun 30 13:46:21 2024 from 192.168.78.131
[root@localhost ~]# 

(在vim编辑时,按i键先删除旧主机名,再输入新主机名(只有第一行有效)
按ESC键,再按SHIFT + “:” 组合键,输入 wq ,再按回车键退出)

 此时我们也可以清楚看见,即使重启,也并不影响主机名的更改。

 1.3系统

1.3.1查看当前系统版本信息

cat /etc/redhat-release

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

<!--
1. CentOS Linux
   - 这是操作系统的名称,表示这是一个 CentOS 系统。
2. release 7.9.2009
   - `release` 表示发行版的版本信息。
   - `7`:主版本号。这表示这是 CentOS 7 系列。
   - `9`:次版本号。这表示这是 CentOS 7 的第九个次版本更新。
   - `2009`:表示发布日期,具体为 2020 年 9 月。
3. (Core)
   - `Core` 表示这是 CentOS 的核心版本,不包括额外的变体或定制版本。
-->

cat /etc/*release

[root@localhost ~]# cat /etc/*release
CentOS Linux release 7.9.2009 (Core)
NAME="CentOS Linux"                   # 操作系统的名称
VERSION="7 (Core)"                    # 版本号为 7,核心版本
ID="centos"                           # 系统的标识符
ID_LIKE="rhel fedora"                 # 表示 CentOS 类似于 RHEL 和 Fedora
VERSION_ID="7"                        # 版本 ID 为 7
PRETTY_NAME="CentOS Linux 7 (Core)"   # 系统的完整名称
ANSI_COLOR="0;31"                     # 控制台显示颜色
CPE_NAME="cpe:/o:centos:centos:7"     # CPE 名称(通用平台枚举)
HOME_URL="https://www.centos.org/"    # CentOS 官方网站 URL
BUG_REPORT_URL="https://bugs.centos.org/" # CentOS bug 报告网址

CENTOS_MANTISBT_PROJECT="CentOS-7"    # CentOS MantisBT 项目名称
CENTOS_MANTISBT_PROJECT_VERSION="7"   # CentOS MantisBT 项目版本
REDHAT_SUPPORT_PRODUCT="centos"       # Red Hat 支持产品名称
REDHAT_SUPPORT_PRODUCT_VERSION="7"    # Red Hat 支持产品版本

CentOS Linux release 7.9.2009 (Core)  # 再次显示操作系统的名称和版本信息
CentOS Linux release 7.9.2009 (Core)  # 再次显示操作系统的名称和版本信息

可以看出来这个命令得到的信息更加详细。

1.3.2查看当前内核版本

uname -r

[root@localhost ~]# uname -r
3.10.0-1160.118.1.el7.x86_64

# 详细解释:
3.10.0        # 内核的主版本号和次版本号,表示内核版本为 3.10.0。
1160.118.1    # 特定的补丁版本号,表示在 3.10.0 版本的基础上应用了 1160.118.1 补丁。
el7           # 表示这是为 Red Hat Enterprise Linux 7(RHEL 7)和 CentOS 7 编译的内核(Enterprise Linux 7)。
x86_64        # 表示这是为 x86_64 架构(64 位系统)编译的内核。

 1.4修改网卡IP

1.4.1临时修改网卡IP

 ifconfig ens33 192.168.80.3/24

ifconfig ens33 192.168.80.3 netmask 255.255.255.0
ifconfig ens33:0 192.168.80.3 netmask 255.255.255.0

# 临时修改网卡 IP
ifconfig ens33 192.168.78.3/24

# 详细解释:
ifconfig                 # 命令用于配置网络接口。
ens33                    # 网络接口名称,这里表示要配置的网卡是 ens33。
192.168.78.3/24          # 设置网卡的 IP 地址为 192.168.78.3,子网掩码为 24 位(255.255.255.0)。

# 临时修改网卡 IP 和子网掩码
ifconfig ens33 192.168.78.3 netmask 255.255.255.0

# 详细解释:
ifconfig                 # 命令用于配置网络接口。
ens33                    # 网络接口名称,这里表示要配置的网卡是 ens33。
192.168.78.3             # 设置网卡的 IP 地址为 192.168.78.3。
netmask 255.255.255.0    # 显式指定子网掩码为 255.255.255.0。

# 设置别名网卡 IP 和子网掩码
ifconfig ens33:0 192.168.78.3 netmask 255.255.255.0

# 详细解释:
ifconfig                 # 命令用于配置网络接口。
ens33:0                  # 表示给 ens33 接口创建一个别名配置 ens33:0。
192.168.78.3             # 设置别名网卡的 IP 地址为 192.168.78.3。
netmask 255.255.255.0    # 设置别名网卡的子网掩码为 255.255.255.0。

 执行这些命令后,可以使用 ifconfigip a 命令来验证更改是否成功。

[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.78.3  netmask 255.255.255.0  broadcast 192.168.78.255
        inet6 fe80::829f:1ef:9794:e9a3  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:7d:f4:85  txqueuelen 1000  (Ethernet)
        RX packets 292277  bytes 398614136 (380.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 108485  bytes 6702186 (6.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:7d:f4:85 brd ff:ff:ff:ff:ff:ff
    inet 192.168.78.3/24 brd 192.168.78.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::829f:1ef:9794:e9a3/64 scope link 
       valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:7d:f4:8f brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.105/24 brd 192.168.200.255 scope global ens36
       valid_lft forever preferred_lft forever
    inet6 fe80::d207:3599:d09f:cd0c/64 scope link 
       valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:e6:02:4f brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:e6:02:4f brd ff:ff:ff:ff:ff:ff

别名网卡在工作中的实际应用

        别名网卡(Alias Network Interface)是一个网络接口的逻辑扩展,允许在单个物理网卡上配置多个 IP 地址。这在多种场景下非常有用,如服务器虚拟化、网络隔离和多网络访问等。下面是别名网卡的实际应用场景和配置方法。

实际应用场景

1.服务器虚拟化

在一台服务器上运行多个虚拟主机,每个虚拟主机需要一个独立的 IP 地址。通过为每个虚拟主机配置别名网卡,可以实现虚拟主机之间的独立通信。

2.多网络隔离

当一个服务器需要连接到多个子网或 VLAN 时,可以为每个子网或 VLAN 配置一个别名网卡,从而实现网络隔离和管理。

3.测试环境

在测试环境中,使用别名网卡可以快速配置多个 IP 地址来模拟不同的网络环境,而无需添加新的物理网卡。

4.负载均衡

配置多个 IP 地址在同一网卡上,通过别名网卡实现负载均衡,分担网络流量。


1.4.2 永久修改网卡IP 

 vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=3e811a30-b684-4e21-b1ca-40a78fc72b96
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.78.3
NETMASK=255.255.255.0
GATEWAY=192.168.78.2
DNS1=114.114.114.114

PREFIX=24
~                                                                                                                                                
~                                                                                                                                                
~                                                                                                                                                
~                                                                                                                                                
"/etc/sysconfig/network-scripts/ifcfg-ens33" 21L, 377C  

 1.4.3重启网卡

重启网卡
systemctl restart network        #重启所有的网卡
ifdown ens33 ; ifup ens33        #重启某一个网卡
ifdown ens33                    #关闭某个网卡
ifup ens33                        #启动某个网卡
ifconfig ens33 down                #临时禁用某个网卡
ifconfig ens33 up                #重新激活某个网卡(不会更新IP地址)

[root@localhost ~]# systemctl restart network    #重启网卡
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.78.3  netmask 255.255.255.0  broadcast 192.168.78.255
        inet6 fe80::250:56ff:fea1:2c22  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:a1:2c:22  txqueuelen 1000  (Ethernet)
        RX packets 152468  bytes 194630202 (185.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 116254  bytes 9272601 (8.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


# 详细解释:
ifconfig          # 命令用于配置网络接口。
ens33             # 网络接口名称,这里指要激活的网卡 ens33。
up                # 操作指令,表示激活网络接口。

[root@localhost ~]# ifdown ens33 ; ifup ens33    #先关闭再开启,相当于重启
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.78.3  netmask 255.255.255.0  broadcast 192.168.78.255
        inet6 fe80::250:56ff:fea1:2c22  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:a1:2c:22  txqueuelen 1000  (Ethernet)
        RX packets 152468  bytes 194630202 (185.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 116254  bytes 9272601 (8.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# ifdown ens33    #关闭某一个网卡
[root@localhost ~]# ifconfig ens33
ens33: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:50:56:a1:2c:22  txqueuelen 1000  (Ethernet)
        RX packets 152468  bytes 194630202 (185.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 116254  bytes 9272601 (8.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# ifconfig ens33 down        #临时关闭某个网卡
[root@localhost ~]# ifconfig ens33    
ens33: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 00:0c:29:71:c9:2f  txqueuelen 1000  (Ethernet)
        RX packets 1541  bytes 132963 (129.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 662  bytes 64428 (62.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# ifconfig ens33 up        #临时打开某个网卡
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.78.22  netmask 255.255.255.0  broadcast 192.168.78.255
        inet6 fe80::4828:4a5a:b31c:bda1  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:71:c9:2f  txqueuelen 1000  (Ethernet)
        RX packets 1546  bytes 133551 (130.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 688  bytes 68214 (66.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 1.4.4查看网卡地址

ifconfigip a

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.78.22  netmask 255.255.255.0  broadcast 192.168.78.255
        inet6 fe80::4828:4a5a:b31c:bda1  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:71:c9:2f  txqueuelen 1000  (Ethernet)
        RX packets 1618  bytes 142079 (138.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 744  bytes 73549 (71.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 52  bytes 4224 (4.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 52  bytes 4224 (4.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:14:88:73  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:71:c9:2f brd ff:ff:ff:ff:ff:ff
    inet 192.168.78.22/24 brd 192.168.78.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::4828:4a5a:b31c:bda1/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:14:88:73 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:14:88:73 brd ff:ff:ff:ff:ff:ff

扩展

  • ifconfig:适用于简单的网络配置和查看,显示的信息简洁,但功能有限。
  • ip:功能更强大和全面,适用于复杂的网络配置和诊断,显示更详细的信息,是现代 Linux 系统中推荐使用的工具。

 1.5添加静态路由条目

1.5.1临时添加路由(重启network服务失效)

方法一:
route add -net 192.168.200.0/24 gw 192.168.78.3 [dev ens33]
-net:指定目标网段的地址
gw:指定下一跳路由器的 IP 地址
dev: 为路由指定的输出接口
查看路由表条目
route -n

[root@localhost ~]# ping 192.168.200.105
PING 192.168.200.105 (192.168.200.105) 56(84) bytes of data.
^C
--- 192.168.200.105 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 2999ms

# 查看路由表条目
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.78.2    0.0.0.0         UG    100    0        0 ens33
192.168.78.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

#添加临时路由
[root@localhost ~]# ip route add 192.168.200.0/24 via 192.168.78.3 dev ens33
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.78.2    0.0.0.0         UG    100    0        0 ens33
192.168.78.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.200.0   192.168.78.3    255.255.255.0   UG    0      0        0 ens33
#成功ping通
[root@localhost ~]# ping 192.168.200.105
PING 192.168.200.105 (192.168.200.105) 56(84) bytes of data.
64 bytes from 192.168.200.105: icmp_seq=1 ttl=64 time=0.717 ms
64 bytes from 192.168.200.105: icmp_seq=2 ttl=64 time=0.517 ms
64 bytes from 192.168.200.105: icmp_seq=3 ttl=64 time=0.496 ms
64 bytes from 192.168.200.105: icmp_seq=4 ttl=64 time=0.434 ms
64 bytes from 192.168.200.105: icmp_seq=5 ttl=64 time=0.444 ms
^C
--- 192.168.200.105 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4002ms
rtt min/avg/max/mdev = 0.434/0.521/0.717/0.105 ms


删除静态路由条目
route del -net 192.168.200.0/24

[root@localhost ~]# route del -net 192.168.200.0/24
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.78.2    0.0.0.0         UG    100    0        0 ens33
192.168.78.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

方法二:
ip route add 192.168.200.0/24 via 192.168.78.3 [dev ens33]

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.78.2    0.0.0.0         UG    100    0        0 ens33
192.168.78.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

#添加静态路由
[root@localhost ~]# ip route add 192.168.200.0/24 via 192.168.78.3
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.78.2    0.0.0.0         UG    100    0        0 ens33
192.168.78.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.200.0   192.168.78.3    255.255.255.0   UG    0      0        0 ens33
[root@localhost ~]# ping 192.168.200.105
PING 192.168.200.105 (192.168.200.105) 56(84) bytes of data.
64 bytes from 192.168.200.105: icmp_seq=1 ttl=64 time=0.412 ms
64 bytes from 192.168.200.105: icmp_seq=2 ttl=64 time=0.800 ms
^C
--- 192.168.200.105 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.412/0.606/0.800/0.194 ms

1.5.2永久添加路由(重启network服务生效)

方法一:
vim /etc/sysconfig/static-routes
any net any gw 192.168.80.2
any net 192.168.3.0/24 gw 192.168.80.2
any net 10.0.0.0 netmask 255.0.0.0 gw 192.168.80.2
any host 192.168.100.100 gw 192.168.80.2
systemctl restart network

#删除静态路由
[root@localhost ~]# route del -net 192.168.200.0/24

#查看路由表
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.78.2    0.0.0.0         UG    100    0        0 ens33
192.168.78.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

#先测试通不通
[root@localhost ~]# ping -c 4 192.168.200.105
PING 192.168.200.105 (192.168.200.105) 56(84) bytes of data.

--- 192.168.200.105 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3000ms

#设置永久路由
[root@localhost ~]# vim /etc/sysconfig/static-routes
#重启
[root@localhost ~]# init 6
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS7-2) at 03:28:50.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 192.168.78.22:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Sun Jun 30 15:03:43 2024 from 192.168.78.131

#查看路由表
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.78.2    0.0.0.0         UG    100    0        0 ens33
192.168.78.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.200.0   192.168.78.3    255.255.255.0   UG    0      0        0 ens33
#网络测试
[root@localhost ~]# ping 192.168.200.105
PING 192.168.200.105 (192.168.200.105) 56(84) bytes of data.
64 bytes from 192.168.200.105: icmp_seq=1 ttl=64 time=0.915 ms
64 bytes from 192.168.200.105: icmp_seq=2 ttl=64 time=0.530 ms
64 bytes from 192.168.200.105: icmp_seq=3 ttl=64 time=0.748 ms
^C
--- 192.168.200.105 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.530/0.731/0.915/0.157 ms

方法二:
vim /etc/sysconfig/network-scripts/route-ens33
default via 192.168.78.3 dev ens33        #默认路由,另一种格式 0.0.0.0/0 192.168.78.3 dev ens33
192.168.200.0/24 via 192.168.78.3 dev ens33
192.168.200.0 neywork 255.255.255.0  via 192.168.78.3 dev ens33
systemctl restart network

#去掉上述实验的永久路由
[root@localhost ~]# vim /etc/sysconfig/static-routes
[root@localhost ~]# cat /etc/sysconfig/static-routes 

#更改新的永久路由
[root@localhost ~]# vim /etc/sysconfig/network-scripts/route-ens33
#查看该配置内容
[root@localhost ~]# cat /etc/sysconfig/network-scripts/route-ens33 
default via 192.168.100.9 dev ens33
192.168.200.0/24 via 192.168.78.3 dev ens33
#查看路由表
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.78.2    0.0.0.0         UG    100    0        0 ens33
192.168.78.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.200.0   192.168.78.3    255.255.255.0   UG    0      0        0 ens33
#测试网络
[root@localhost ~]# ping -c 4  192.168.200.105
PING 192.168.200.105 (192.168.200.105) 56(84) bytes of data.
64 bytes from 192.168.200.105: icmp_seq=1 ttl=64 time=0.486 ms
64 bytes from 192.168.200.105: icmp_seq=2 ttl=64 time=0.793 ms
64 bytes from 192.168.200.105: icmp_seq=3 ttl=64 time=0.632 ms
64 bytes from 192.168.200.105: icmp_seq=4 ttl=64 time=0.576 ms

--- 192.168.200.105 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.486/0.621/0.793/0.115 ms

通过以上实验,我们可以掌握路由的配置方法

1.6测试网络连接

ping 
traceroute    (静态跟踪)
mtr            (动态跟踪)

[root@localhost ~]# ping -c 4 baidu.com
PING baidu.com (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=1 ttl=128 time=99.5 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=2 ttl=128 time=124 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=3 ttl=128 time=147 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=4 ttl=128 time=70.4 ms

--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 70.445/110.472/147.503/28.671 ms
[root@localhost ~]# ping baidu.com
PING baidu.com (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=1 ttl=128 time=101 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=2 ttl=128 time=126 ms
^C
--- baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 101.900/114.018/126.136/12.118 ms
[root@localhost ~]# traceroute baidu.com
traceroute to baidu.com (39.156.66.10), 30 hops max, 60 byte packets
 1  gateway (192.168.78.2)  0.220 ms  0.237 ms  0.296 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
[root@localhost ~]# mtr baidu.com

 扩展

# 运行 mtr 并实时显示到 192.168.3.1 的路由路径和网络性能
mtr 192.168.3.1

# 详细解释:
mtr                 # 运行 mtr 工具。
192.168.3.1         # 目标主机的 IP 地址。

# 生成到 192.168.3.1 的路由路径和网络性能报告,并在探测 10 次后退出
mtr -r -c 10 192.168.3.1

# 详细解释:
mtr -r              # 生成报告并退出。
-c 10               # 发送 10 次探测包。
192.168.3.1         # 目标主机的 IP 地址。

# 每 2 秒钟探测一次到 192.168.3.1 的路由路径和网络性能
mtr -i 2 192.168.3.1

# 详细解释:
mtr -i 2            # 设置探测间隔时间为 2 秒。
192.168.3.1         # 目标主机的 IP 地址。

# 以宽模式显示到 192.168.3.1 的路由路径和网络性能
mtr -w 192.168.3.1

# 详细解释:
mtr -w              # 以宽模式显示输出。
192.168.3.1         # 目标主机的 IP 地址。

1.7重启系统

reboot                     立即重启系统,终止所有进程并重新启动系统。            
init 6                        
将系统切换到运行级别 6,重启状态。
shutdown -r now    安全地关闭系统并立即重启,所有进程将被有序终止,系统将最终重新启动。

[root@localhost ~]# reboot
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS7-3) at 03:48:28.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 
[root@localhost ~]# init 6
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS7-2) at 03:49:04.

Type `help' to learn how to use Xshell prompt.
[root@localhost ~]# shutdown -r now
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS7-3) at 03:49:57.

Type `help' to learn how to use Xshell prompt.

1.8关机

poweroff                       立即关闭系统电源
init 0                             将系统切换到运行级别 0,关机状态
shutdown -h now        立即关闭系统电源
shutdown -c                取消已经安排的关机操作

[root@localhost ~]# poweroff 
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS7-2) at 03:54:37.

Type `help' to learn how to use Xshell prompt.
[root@localhost ~]# init 0
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS7-3) at 03:55:15.

Type `help' to learn how to use Xshell prompt.
[root@localhost ~]# shutdown -h now
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS7-2) at 03:55:58.

Type `help' to learn how to use Xshell prompt.
#定时关机(重启也可以定时),都是用shutdown
[root@localhost ~]# shutdown -h 4:00 2024-07-01
Shutdown scheduled for Mon 2024-07-01 04:00:00 EDT, use 'shutdown -c' to cancel.
#关闭定时关机任务
[root@localhost ~]# shutdown -c

Broadcast message from root@localhost.localdomain (Sun 2024-06-30 15:57:23 EDT):

The system shutdown has been cancelled at Sun 2024-06-30 15:58:23 EDT!

二、给命令行提示字符加颜色

PS1="\[\e[1;34m\][\u@\h \W]\\$\[\e[0m\] "
PS1="\[\e[1;35m\][\[\e[1;34m\]\u\[\e[1;36m\]@\[\e[1;34m\]\h \[\e[1;31m\]\w\[\e[1;35m\]]\[\e[1;36m\]\\$\[\e[0m\] "|
\[\e[1;35m\][ ====> 定义左边的"["
\[\e[1;34m\]\u ====> 定义用户名
\[\e[1;36m\]@ ====> 定义"@"
\[\e[1;34m\]\h ====> 定义第一个点(.)之前的主机名
\[\e[1;31m]\w ====> 定义目录完整路径
\[\e[1;35m]] ====> 定义"]"
\[\e[1;36m\]\\$ ====> 定义"#"或"$"
\[\e[0m\] ====> 一段不显示字串的结束

#PS1="\[\e[1;34m\][\u@\h \W]\\$\[\e[0m\] "
#\[\e[1;34m\]:设置颜色为蓝色。
#[:定义左边的 [。
#\u:显示当前用户名。
#@:显示 @ 符号。
#\h:显示主机名(第一个点之前的部分)。
#\W:显示当前工作目录的名称(不包括完整路径)。
#\:显示 $(如果是普通用户)或 #(如果是 root 用户)。
#\[\e[0m\]:重置颜色,使后续的文本显示为默认颜色。

下面为实际操作 

PS1="\[\e[1;35m\][\[\e[1;34m\]\u\[\e[1;36m\]@\[\e[1;34m\]\h \[\e[1;31m\]\w\[\e[1;35m\]]\[\e[1;36m\]\\$\[\e[0m\] "

#\[\e[1;35m\]:设置颜色为紫色。
#[:定义左边的 [。
#\[\e[1;34m\]\u:设置用户名为蓝色。
#\[\e[1;36m\]@:设置 @ 符号为青色。
#\[\e[1;34m\]\h:设置主机名为蓝色。
#\[\e[1;31m\]\w:设置当前工作目录的完整路径为红色。
#\[\e[1;35m\]]:定义右边的 ] 为紫色。
#\[\e[1;36m\]\\$:设置 $(如果是普通用户)或 #(如果是 root 用户)为青色。
#\[\e[0m\]:重置颜色,使后续的文本显示为默认颜色。

 


扩展

/etc/resolv.conf
是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名。最多可以指定3个不同的DNS服务器地址,优先使用第一个 DNS 服务器。对该文件所做的修改将会立刻生效。
nameserver 192.168.78.3           #定义DNS服务器的IP地址

[root@localhost ~]# vim /etc/resolv.conf
[root@localhost ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 114.114.114.114
search example.com           # 设置搜索域
options timeout:2 attempts:3 # 设置查询超时时间和重试次数

注意:此配置文件与网卡配置文件的DNS1参数作用相同,哪个最后修改或重启,系统就使用哪个配置。
 

  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值