CENTOS 8主要配置
hostnamectl 修改主机名
/etc/sysconfig/network-scripts/ifcfg-XXX 网络配置文件路径
一般配置如下:
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.10.10.10
NETMASK=255.255.255.0
GATEWAY=10.10.10.1
DNS1=8.8.8.8
nmcli connection reload XXX 重启网卡-生效配置
yum update -y 对系统中包、软件和系统内核进行升级
systemctl status sshd 查看sshd运行状态
yum install -y openssh 若未安装可透过yum安装
Linux的基本管理
#1.命令分为内置命令和外部命令
(1)内置命令即shell自带命令,在shell内部通过函数来实现,当shell启动后,这些命令所对应的代码也被加载到内存中,所以使用内置命令是非常快速的。
(2)外部命令即应用程序,一个命令就对应一个应用程序;运行外部命令要开启一个新进程,效率上比内置命令差很多。
命令执行过程,当用户输入一个命令后,shell检查命令是不是内置命令,如果是就执行;如果不是,若shell检测命令又对应的外部程序,转而执行外部程序,执行结束后回到shel。若shell检测命令没有对应的外部程序,就提示该用户命令不存在。
#2.命令三要素为语法、选项、参数。
(1)语法
command[选项][参数]
[]表示可选项,有些命令不写选项和参数也可执行,有些命令在必要的时候可同时附带选项和参数。命令之星需要附带参数指定的操作对象,如果省去参数,则使用命令默认参数。
(2)选项
选项的作用是调整命令功能。没有选项,命令只能执行最基本的功能;增加了选项,则能执行更多的功能,或者显示更加丰富的数据。
选项分为两种:短格式选项和长格式选项。短格式选项是长格式选项的缩写,用一个减号"-"和一个字母表示,例如ls -l;长格式选项是完整的英文单词,用两个减号“--”和一个单词表示,例如ls --all。
通常情况下,短格式选项和是长格式选项的缩写,但也有例外,比如ls命令的短格式选项-l就没有对应的长格式选项,具体的命令选项需要通过帮助手册man来查询。
(3)参数
参数是命令的操作对象,通常情况下,文件、目录、用户和进程等都可以作为参数被命令操作。
命令一般都需要参数,用于指定命令操作的对象是谁;命令如果省掉参数,则该命令有默认参数,就按照默认参数执行;命令可以同时附带选项和参数,例如:ls -l /etc;有些命令的选项后面也可以附带参数,用来补全选项,或者调整选项的功能细节。
#3.shell
shell是在linux操作系统中允星河的一种特殊程序,它位于操作系统内核与用户之间,负责接收用户输入的命令并进行解释,将需要执行的操作传递个系统内核执行,shell在用户和内核之间充当“翻译官”的角色。
shell主要分为两类:GUI和CLI即图形化和命令行。
#4.权限
Linux是多用户多任务操作系统,为了保护系统和用户的数据安全,Linux系统对用户访问文件或目录的权限规则的定义如下:
* 将文件的访问权限划分为3种:可读(r)、可写(w)、可执行(x)。
* 将文件的访问者划分为3类:所有者(u)、同群组的用户(g)、其他组用户(o)。
* 用户对文件可以独立设置权限。
Linux系统的文件访问权限表示方法;权限规则定义的对象:
| 八进制 |
二进制 |
文件目录权限 |
权限描述 |
| 0 |
000 |
--- |
无权限 |
| 1 |
001 |
--x |
执行 |
| 2 |
010 |
-w- |
写入 |
| 3 |
011 |
-wx |
写入执行 |
| 4 |
100 |
r-- |
读取 |
| 5 |
101 |
r-x |
读取执行 |
| 6 |
110 |
rw- |
读取写入 |
| 7 |
111 |
rwx |
读取写入执行 |
| 选项 |
说明 |
| u |
user, 文件或目录的所有者 |
| g |
group, 文件或目录的所属群组 |
| o |
other, 除了文件或目录所有者或所属群组之外的用户 |
| a |
all,即全部的用户 |
| r |
读权限 |
| w |
写权限 |
| x |
执行或切换权限,数字代号为“1” |
| - |
无任何权限,数字代号为“0” |
| s |
特殊功能权限,变更文件或目录的权限 |
hostnamectl status查看当前主机名相关配置信息如下:
* Static hostname: 静态主机名
* Icon name:图标名称
* Chassis:底层硬件环境
* Machine ID:虚拟机ID
* BootID:引导程序ID
* Virtualization:虚拟化类型
* Operating System:操作系统
* CPE OS Name:CPE的操作系统名称
* Kernel: 内核版本
* Architecture: 系统架构
hostnamectl[选项][参数]
[选项]
--transient 设置临时主机名
--static 设置静态主机名
--pretty 设置自定义主机名(可包含特殊字符)
status 显示当前主机名设置
set-hostname 设置系统主机名
set-icon-name 设置主机的图标名称
set-chassis 设置主机的机箱类型
set-deployment 设置主机的部署环境
[参数]
名称 指定要设置的名称
man Command 查阅文档
Command --help 查看帮助
网络配置
前面提到的网卡配置:
网络类型为以太网
TYPE="Ethernet"
代理方式为空
PROXY_METHOD="none"
取消仅浏览
BROWSER_ONLY="no"
启动协议,none/static为静态,dhcp为动态
BOOTPROTO="none"
启动默认路由
DEFROUTE="yes"
不启用IPv4错误检测功能
IPV4_FAILURE_FATAL="no"
启动IPv6协议
IPV6INIT="yes"
自动配置IPv6地址
IPV6_AUTOCONF="yes"
启用IPv6默认路由
IPV6_DEFROUTE="yes"
不启用IPv6错误检测功能
IPV6_FAILURE_FATAL="no"
网卡设备别名
NAME="enp0s3"
网卡设备UUID唯一标识号
UUID="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
网卡设备名称
DEVICE="enp0s3"
开机自动启动网卡
ONBOOT="yes"
IP地址
IPADDR=10.10.10.10
子网掩码
NETMASK=255.255.255.0
网关
GATEWAY=10.10.10.1
DNS
DNS=8.8.8.8
Linux中hosts配置的域名解析属于静态域名解析,动态的域名解析配置文件包括DNS配置文件(/etc/resolve.conf)和网络配置中的DNS配置。
/etc/hosts
127.0.0.1 本机主机名
/etc/resolve.conf
nameserver 8.8.8.8
domain 本机主机名
/etc/nsswitch.conf
hosts files dns myhostname
(1)/etc/nsswitch.conf配置内容对应关系与顺序:file(hosts文件)、dns(网络配置中的DNS)、myhostname(主机名)。
(2)当在系统访问某个网址时,系统会首先从hosts文件中寻找对应的IP地址,若找到就会快速解析到对应的IP地址,若未找到,则系统会自动再去本地的DNS配置文件进行IP地址的解析,若未解析到,则跳转至网络配置文件中配置我的DNS进行解析,解析顺序的配置文件在nsswitich.conf文件中。
设置时钟
#查看系统时间及配置信息
timedatectl
#查看系统中可设置的时区
timedatectl list-timezones
#设置时区为Asia/Shanghai
timedatectl set-timezone Asia/Shanghai
#设置时区为UTC(协调世界时)
timedatectl set-timezone UTC
#设置时间,日期不会更改
timedatectl set-time "2021-07-0723:59:59"
#timedatectl[选项][参数]
[选项]
-p --property=NAME 仅显示此名称的属性
-a --all 显示所有属性,包括空属性
--value 显示属性时,仅打印值
status 显示当前时间设置
show 显示system-timedated的属性
set-time TIME 设置系统时间
set-timezone ZONE 设置系统时区
list-timezones 显示系统中可设置的时区
[参数]
时间日期格式 指定设置日期时间
时区 指定设置的时区名称
设置服务器的语言支持
#查看当前系统语言环境
localectl
#设置当前系统语言环境
localectl status
#修改当前系统语言环境
localectl set-locale LANG=zh_CN.utf8
#重启操作系统生效配置
#[语法]
localectl[选项][参数]
[选项]
status 显示当前区域设置
set-locale LOCALE 设置系统语言环境
list-locales 显示已知的语言环境
set-keymap MAP[MAP] 设置控制台和X11键盘映射
list-keymaps 显示已知的虚拟控制台键盘映射
[参数]
语言格式 指定设置语言格式
设置YUM源
#注释镜像列表路径
sed -i 's/mirrorlist=/#mirrorlist=/g' CentOS-Base.repo CentOS-Appsteam.repo Centos-Extras.repo
#取消注释基础路径
sed -i 's/#baseurl=/baseurl=/g' CentOS-Base.repo CentOS-Appsteam.repo Centos-Extras.repo
#插入阿里云源镜像路径
sed -i 's/http:/\/\mirror.centos.org/https:/\/\mirrors.aliyun.com/g' CentOS-Base.repo CentOS-Appsteam.repo Centos-Extras.repo
#清除缓存
yum clean all
#创建新的缓存
yum makecache
查看系统信息
#查看当前登入系统的用户详细信息
who -a r
#查看所有已登录用户的登录名与用户数量
who -q
#查看上次系统启动时间
who -b
#[语法]
who[选项][参数]
[选项]
-a 显示全部信息
-b 显示系统最近启动时间
-d 显示已杀死的进程
-H 显示各字段的标题信息
-l 查看系统登录信息
-p, --proeess 显示由init进程衍生的活动进程
-q, --count 列出所有已登录用户的登录名与用户数量
-r 显示系统上次锁定时间
-u 显示已登录用户列表
[参数]
文件 指定要查询的文件
#查看当前用户ID的相关信息
id
#查看当前登入系统的用户所属群组ID
id -g
#查看指定用user001的用户信息
id user001
[语法]
id[选项][参数]
[选项]
-g 显示用户所属群组ID
-G 显示用户所属附加群组ID
-n 显示用户、所属群组或附加群组的名称
-r 显示实际ID
-u 显示用户ID
[参数]
用户名 指定要查看的用户名
#查看主机名
uname -n
#查看内核版本号
uname -r
#查看内核名称
uname -s
#查看系统详细信息
[语法]
uname[选项][参数]
[选项]
-a 显示所有系统的相关信息
-m 显示主机硬件名
-n 显示主机在网络节点上的名称
-r 显示Linux操作系统内核版本号
-s 显示Linux内核名称
-p 显示处理器类型或unknown
-i 显示硬件平台类型或unknown
-o 显示操作系统名
#查看系统时间,默认格式
date
#自定义输出时间格式
date +"%Y-%m-%d"
#输出中文格式
date '+%c'
#与date命令容易混淆的另一个常用命令是time,其可用于查看一个程序的执行时间,其显示的内容不包括程序的实际运行时间(real time),以及用户台使用时间(user time),和内核态使用时间(sys time)。
#查看网络配置信息
ip addr
lo 环回网卡
enp0s3 网卡名称
LOOPBACK 环回接口
BROADCAST 网卡有广播地址,可以发送广播包
UP 网卡为开启状态
LOWER_UP 网线连接正常
mtu 1500 最大传输单位元为1500字节
qdisc fq_codel 队列规则为流队列控制延迟
state UP 状态开启
group default qlen 1000 组默认为1000
link/ether MAC地址
inet IPv4地址信息
scope global 该网卡可接受全域的包
brd 广播地址
noprefixroute enp0s3 无前缀路由
valid_lft 正常使用时长
preferred_lft 优先使用时长
inet6 IPv6地址信息
[语法]
IP[选项]参数]
[选项]
-s 输出更详细的信息
-f 强制使用指定的协议族
-4 指定使用的网络层协议是IPv4协议
-6 指定使用的网络层协议是IPv6协议
-0 输出信息每条记录输出一行,不换行显示
-r 显示主机时,不使用IP地址,贰使用主机的域名
link 网络设备
address 一个设备的协议(IP或者IPv6)地址,可简写addr
neighbour ARP或者NDISC缓冲区条目
route 路由表条目
rule 路由策略数据库中的规则
maddress 多播地址
mroute 多播路由缓冲区条目
tunnel IP上的通道
#查看设备硬件的信息
通过dmidecode命令可查看主机的DMI(Desktop Mannagement Interface,桌面管理接口)信息,其输出的信息包含BIOS、系统、主板、内存、处理器、缓存等。
查看BIOS信息
dmidecode -t 0
查看系统信息
dmidecode -t 1
查看存储设备信息
dmidecode -t 17
[语法]
dmidecode[选项][参数]
[选项]
-d 从设备文件读取信息(默认值为/dev/mem)
-s 只显示指定的DMI字符串信息
-t 只显示指定条目的信息
-u 显示未解码的原始条目内容
--dump-bin file 将DMI信息转储到一个二进制文件内
--from-dump FILE 从一个二进制文件读取DMI信息
#创建用户组group01
groupadd group1
创建用户组group02,设置其组ID为500
groupadd -g 500 group02
查看用户组信息
cat /etc/group
[语法]
groupadd[选项][参数]
[选项]
-g 指定创建用户组ID
-r 创建系统用户组,系统用户组的ID小于500(该值由系统配置文件决定)
-o 允许用户组的ID不唯一
[参数]
用户组名 指定创建的用户组名
#修改用户组group01为group03
groupmodgroup01 -n group03
#修改用户组group03的组GID为501
groupmod-g 501 group03
#查看用户组信息
cat /etc/group
[语法]
groupmod[选项][参数]
[选项]
-g<用户组ID> 设置要使用的用户组ID
-o 重复使用用户组ID
-n<新用户组名称> 设置要使用的用户组名称
[参数]
用户组名 指定要修改的用户组名
#删除用户组group02
groupdelgroup02
[语法]
groupdel[参数]
[参数]
用户组名 指定要删除的用户组名
#创建用户user001
useradd user001
#创建系统用户user002
useradd -r user02
#创建用户user03 ,指定用户组user001,并且设定home目录为user003
user001 -d /home/user003 user003
#查看/etc/passwd
cat /etc/passwd
#Linux系统的用户分为3种:超级用户、普通用户、系统用户(伪用户、程序用户)。
* 超级用户:即root用户,是Linux系统中默认的超级用户账号,对本主机拥有最高及完整的权限,只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常系统操作建议使用普通用户账号。root用户对应的UID为0.
* 普通用户:普通用户账号需要由超级用户创建,拥有的权限受到一定限制,一般只在用户的家目录(个人目录)中有完全权限。普通用户对应的UID范围为1000-65535.
* 系统用户:在安装Linux系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户不允许登录到系统,而仅用于维持系统或某个程序的正常运行。例如:bin、daemon、ftp、mail等,对应的UID范围为1-200(系统分配给进程使用)、201-999(运行服务的用户,动态分配)。
* /etc/passwd文件中的信息由“:”隔开,共分为7段,例如“root:x:0:0:root:/root:/bin/bash”
* root 用户名称
* x 密码占位符,存放账户的口令,用x表示,密码保存在/etc/shadow中
* 0 用户的UID
* 0 用户基本组GID
* root 用户的详细信息
* /root root用户的家目录,普通用户的家目录在/home下
* /bin/bash 用户登录的shell
[语法]
useradd[选项][参数]
[选项]
-c <备注> 加上备注文字,备注文字会保存在passwd的备注栏位中
-d <登入目录> 指定用户登入时的启始目录
-D 变更预设值
-e <有效期限> 指定账号的有效期限
-f <缓冲天数> 指定在密码过期后多少天即禁用该用户
-g <群组> 指定用户所属群组
-G <群组> 指定用户所属附加群组
-m 自动创建用户的登入目录
-M 不要自动创建用户的登入目录
-n 取消创建以用户名称为名的群组
-r 创建系统用户
-s <shell> 指定用户登入后所使用的Shell
-u <uid> 指定用户uid
[参数]
用户名 指定要创建的用户名
#设置用户user001密码,(要输入两次密码)
passwd user001
#锁定密码不允许用户修改
passwd -l user001
#查询密码状态
passwd -S user001
#解除锁定密码,允许用户修改
passwd -u user001
#查询密码状态
passwd -S user001
[语法]
passwd[选项][参数]
[选项]
-d 删除密码,拥有超级用户权限才能使用
-f 强制执行
-k 设置只有在密码过期失效后,才能更新
-l 锁定密码
-s 列出密码的相关信息,拥有超级用户权限才能使用
-u 解除密码锁定
[参数]
用户名 指定要修改密码的用户名
#修改user003用户的家目录为/home/user001
usermod -d /home/user001 user003
#修改user003的UID为1003
usermod -u1003 user003
#查看/etc/passwd下的用户信息
cat /etc/passwd
[语法]
usermod[选项][参数]
[选项]
-c <备注> 修改用户名的备注信息
-d <登入目录> 修改用户登入目录
-e <有效期限> 修改用户名的有效期限
-f <缓冲天数> 修改在密码过期后多少天禁用该用户
-g <群组> 修改用户所属群组
-G <群组> 修改用户所属附加群组
-l <用户名> 修改用户名
-L 锁定用户密码
-s <Shell> 修改用户登入后所使用的Shell
-u <uid> 修改用户UID
-U 解除密码锁定