26 系统基本设定
CentOS 6.x 以前有个名为 setup 的软件将许多的设定做成类图形界面, CentOS 7 已经为很多命令加入了 bash-complete 的功能。
1. 网络设置⚓
nmcli [OPTIONS] OBJECT { COMMAND | help }
控制 NetworkManager 的命令行工具
OBJECT
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
CONNECTION MANAGEMENT COMMANDS
nmcli connection {show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export} [ARGUMENTS...]
nmcli 是透过一个名为联机代号
的名称来设定是否要上网,而每个联机代号会有个网卡代号
, 这两个东西通常设定成相同就是了。
1.1 查看网络参数⚓
# 首先,必须要开启NetworkManager服务啊
[root@dev ~]# systemctl start NetworkManager
[root@dev ~]# nmcli connection show
# NAME 就是联机代号,通常与后面的网卡 DEVICE 会一样!
# UUID 这个是特殊的装置识别,保留就好不要理他!
# TYPE 就是网卡的类型,通常就是以太网卡!
# DEVICE 当然就是网卡名称啰!
NAME UUID TYPE DEVICE
ens37 4a5516a4-dfa4-24af-b1c4-e843e312e2fd ethernet ens37
ens33 a0adb700-66e5-4fa5-9ad9-ffe048c7f33b ethernet ens33
virbr0 5584116b-5bdd-4c5d-bfb4-436e3f88ac4e bridge virbr0
# 这里为什么多了一张!!!
ens33 e8f7f6ec-8d65-43d1-91a1-b5ec5792515a ethernet --
# 详细的参数就要带上名字喽
[root@dev ~]# nmcli connection show ens33
connection.id: ens33
connection.uuid: e8f7f6ec-8d65-43d1-91a1-b5ec5792515a
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens33
connection.autoconnect: yes
……
ipv4.method: manual
ipv4.dns: 8.8.8.8
ipv4.dns-search: --
ipv4.dns-options: ""
ipv4.dns-priority: 0
ipv4.addresses: 192.168.216.10/24
ipv4.gateway: 192.168.216.2
……
# 在我的机器上上面的信息会有两段,也符合两个联机代号?
IP4.ADDRESS[1]: 192.168.216.10/24
IP4.GATEWAY: --
如上表的输出,最底下的大写的 IP4, IP6 指的是目前的实际使用的网络参数,最上面的 connection 开头的部份则指的是联机的状态。比较重要的参数:
- connection.autoconnect [yes|no] :是否于开机时启动这个联机,预设通常是 yes 才对!
- ipv4.method [auto|manual] :自动还是手动设定网络参数的意思
- ipv4.dns [dns_server_ip] :就是填写 DNS 的 IP 地址~
- ipv4.addresses [IP/Netmask] :就是 IP 与 netmask 的集合,中间用斜线
/
来隔开~ - ipv4.gateway [gw_ip] :就是 gateway 的 IP 地址!
1.2 手动设置网络参数⚓
# 修改
[root@dev ~]# nmcli connection modify ens33 connection.autoconnect yes ipv4.method manual ipv4.addresses 192.168.216.10/24 ipv4.gateway 192.168.216.2 ipv4.dns 8.8.8.8
# 启动
[root@dev ~]# nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
# 设置完成之后有一个联机代号消失了。。。
[root@dev ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens37 4a5516a4-dfa4-24af-b1c4-e843e312e2fd ethernet ens37
ens33 e8f7f6ec-8d65-43d1-91a1-b5ec5792515a ethernet ens33
virbr0 5584116b-5bdd-4c5d-bfb4-436e3f88ac4e bridge virbr0
# 再来查看
[root@dev ~]# nmcli connection show ens33
……
IP4.ADDRESS[1]: 192.168.216.10/24
IP4.GATEWAY: 192.168.216.2
IP4.DNS[1]: 8.8.8.8
1.3 自动设置网络参数⚓
其实跟上面很类似啦
[root@dev ~]# nmcli connection modify ens33 connection.autoconnect yes ipv4.method auto
[root@dev ~]# nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
# 哦,居然有两个ip,并且都可以使用!
[root@dev ~]# nmcli connection show ens33
……
IP4.ADDRESS[1]: 192.168.216.10/24
IP4.ADDRESS[2]: 192.168.216.165/24
IP4.GATEWAY: 192.168.216.2
nmcli 的参数也是支持自动补全的哦!
2. 修改主机名⚓
hostnamectl [OPTIONS...] COMMAND ...
OPTIONS
-H --host=[USER@]HOST Operate on remote host
COMMAND
status Show current hostname settings
set-hostname NAME Set system hostname
[root@dev ~]# hostnamectl
Static hostname: dev
Icon name: computer-vm
Chassis: vm
Machine ID: 0242c388ca104d46b8d6d9a4b951ff3f
Boot ID: 8c349cebf0d1404483efc44765754ea4
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1062.el7.x86_64
Architecture: x86-64
[root@dev ~]# hostnamectl set-hostname shark
[root@dev ~]# hostname
shark
# 新打开的终端才会改变哦
[root@shark ~]#
3. 日期与时间设置⚓
timedatectl [OPTIONS...] COMMAND ...
OPTIONS
-H --host=[USER@]HOST Operate on remote host
COMMAND
status Show current time settings
set-time TIME Set system time
set-timezone ZONE Set system time zone
list-timezones Show known time zones
set-ntp BOOL Control whether NTP(Network Time Protocol) is enabled
[root@dev ~]# timedatectl
Local time: Fri 2019-12-13 10:02:29 CST # 本地时间
Universal time: Fri 2019-12-13 02:02:29 UTC # UTC 时间,可称为格林威治标准时间
RTC time: Fri 2019-12-13 02:02:29
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
过去我们使用 date 去修改日期后,还得要使用 hwclock 去订正 BIOS 记录的时间。现在透过 timedatectl 可以一步到位!
3.1 用 ntpdate 手动网络校时⚓
[root@dev ~]# ntpdate ntp1.aliyun.com
13 Dec 10:29:59 ntpdate[23726]: adjust time server 120.25.115.20 offset 0.002090 sec
# 将正确的时间写入你的 BIOS 时间记录
[root@dev ~]# hwclock -w
后续可以利用 crontab 来更新系统时间。
4. 语言环境设置⚓
系统的语言环境与当前终端的语言环境不一定是一致的。
localectl [OPTIONS...] COMMAND ...
OPTIONS
-H --host=[USER@]HOST Operate on remote host
COMMAND
status Show current locale settings
set-locale LOCALE... Set system locale
list-locales Show known locales
[root@dev ~]# locale
LANG=en_US.UTF-8
# 当前终端的语言环境
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
……
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
# 系统的语言环境
[root@dev ~]# localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
改变语言环境:
# 改变当前终端语言环境
[root@dev ~]# export LC_ALL=zh_CN.UTF-8
[root@dev ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="zh_CN.UTF-8"
……
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8
# 改变系统语言环境
[root@dev ~]# localectl set-locale LANG=zh_CN.UTF-8
[root@dev ~]# localectl
System Locale: LANG=zh_CN.UTF-8
VC Keymap: us
X11 Layout: us
[root@dev ~]# cat /etc/locale.conf
LANG=zh_CN.UTF-8