基础知识

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                          解除密码锁定
posted @ 2021-07-06 12:09  AllenHoo118  阅读(151)  评论(0)    收藏  举报