🤣
操作系统挂载概念
服务器磁盘如何使用
1.配置磁盘阵列 学习raid:http://www.solves.com.cn/it/yj/yp/2019-09-27/5463.html
2.系统分区 根据需求分区即可
3.磁盘格式化
4.磁盘文件系统创建
如何进行挂载操作 光驱设备挂载举例
PS:linux系统中一切皆文件
1.挂载环境准备
准备光驱(或者要挂载的分区):/dev/cdrom (/dev ----存储设备文件目录)
准备挂载:任意空目录 或者/mnt临时挂载点目录
2.光驱设备放入光盘
3.进行挂载
mount /dev/cdrom /mnt
取消挂载:
/umount /mnt(挂载点目录)
4.最后检查确认是否挂载
df -h ----已人类可读方式查看磁盘
优秀运维良好习惯:
1.所有编辑文件数据 都需要进行备份
2.所有操作完成之后 需要检查确认
系统重要文件目录与文件
/etc目录
1.网卡配置文件
文件路径信息:/etc/sysconfig/network-scripts/ifcfg-eth0
文件作用说明:配置网卡地址信息(IP地址 掩码地址 网关地址 DNS)
文件配置信息:
TYPE=Ethernet ---指定网络类型 以太网网络类型
BOOTPROTO=none ---获取地址方式 自动获取ip地址(dhcp)/手动静态配置(none或static就代表手动)
DEFROUTE=yes ---是否开启默认路由 可以实现主机访问外网?
NAME:eth0 ---网卡的名称信息 逻辑名称
DEVICE=eth0 ---网卡的名称信息 设备名称
UUID: bc86a7ed-8a4d-4f0d-b395-db2f20b93dfa ---设备硬件标识信息
(blkid)命令可以查看硬件标识
ONBOOT=yes ---确认网卡是否激活
IPADDR=10.0.0.200 ---网卡ip地址信息
PREFIX=24 ---子网掩码信息 决定一个局域网中可以有多少台主机配置ip地址
GATEWAY=10.0.0.254 --- 网关可以实现A网络主机和其他任意网络主机进行通讯
DNS1=10.0.0.254 ---dns(domain name system 域名解析系统)
实现网络通讯需要有ip地址 输入域名解析后跳转到相应ip地址进行访问
文件配置生效:重启网络服务
方法一:利用systemctl命令 企业环境不建议
systemctl restart network
方法二:利用service命令 企业环境不建议
service network restart
方法三:利用ifxx命令,指定网卡重启
ifdown eth0 && ifup eth0 连续执行命令,企业环境使用
方法四:利用nmcli
命令介绍: https://my.oschina.net/u/3754919/blog/1811361
============================================================
如何修改网卡信息
第一个历程: 修改网卡文件中名称信息
vi ifcfg-ens33 将原内容改为↓
NAME=eth0
DEVICE=eth0
第二个历程: 网卡文件名称重命名
mv ifcfg-ens33 ifcfg-eth0
第三个历程: 让系统内核加载网卡名称修改信息
vi /etc/default/grub
GRUB_CMDLINE_LINUX="xxx net.ifnames=0 biosdevname=0 xxx"
第四个历程: 加载修改配置信息
grub2-mkconfig -o /boot/grub2/grub.cfg
第五个历程: 重启操作系统
reboot
2.域名服务配置文件
文件路径信息:/etc/resolv.conf
文件作用说明:是否可以访问名称或者域名信息
文件内容说明:
vi /etc/resolv.conf
nameserver 223.5.5.5(DNS服务器地址)
PS:DNS服务器作用:将域名解析成IP地址
223.5.5.5 阿里云公司
114.114.114.114 电信公司
8.8.8.8 谷歌
配置如何生效:立即生效
3.本地域名解析配置文件:
文件路径信息:/etc/hosts
文件作用说明:实现本地名称解析(用于访问不同服务器) 用于网站测试
web服务器 数据库服务器 存储服务器 监控服务器 日志服务器 备份服务器 审计服务器 缓存服务器
web服务器 -网络- 数据库服务器 10.0.0.51
-网络- 存储服务器 10.0.0.31
-网络- 监控服务器 10.0.0
文件信息配置:
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
在文件里配置你需要的ip 加上对应的域名
简单举例:182.61.200.7 baidu(仅举例,某些情况会有问题)
[root@jasonchen ~]# ping baidu
PING baidu (182.61.200.7) 56(84) bytes of data.
64 bytes from baidu (182.61.200.7): icmp_seq=1 ttl=128 time=4.20 ms
64 bytes from baidu (182.61.200.7): icmp_seq=2 ttl=128 time=4.34 ms
64 bytes from baidu (182.61.200.7): icmp_seq=3 ttl=128 time=4.01 ms
64 bytes from baidu (182.61.200.7): icmp_seq=4 ttl=128 time=5.67 ms
4.开机自动运行命令文件:
文件路径信息:/etc/rc.local
文件作用说明:让系统启动后,自动运行命令信息 开机自动运行命令信息
文件内容信息:
#!/bin/bash 脚本文件
mkdir -p /backup
cp /etc/hosts /backup
rm -rf /tmp/*
mount /dev/sdb1 /oldboy01
mount /dev/cdrom /mnt
PS: 确认/etc/rc.d/rc.local文件必须有执行权限
chmod +x /etc/rc.d/rc.local
什么是脚本文件:将复杂工作简单化 将重复工作高效化 堆命令文件
脚本文件如何执行:
方法一:
sh 脚本文件.sh
方法二:
路径+脚本文件.sh 必须确认脚本文件有执行权限
需求:系统启动好就执行完毕
1)将重要数做好初始备份
2)系统启动好自动清除回收站数据
3)实现自动存储设备挂载
5.系统开机自动挂载文件
文件路径信息:/etc/fstab
文件作用说明:完成自开启自动挂载操作文件
文件配置信息:
UUID=8814f471-53b4-4eb7-aee9-a20b2ce6fe64 / xfs defaults 0 0
UUID=7f45bd81-656c-45c3-8c9b-01105857d65a /boot xfs defaults 0 0
UUID=79d951d0-06a4-4f9f-9d10-e273dc25d4d1 swap swap defaults 0 0
01 02 03 04 05 06
-
挂载存储设备信息 可以使用UUID或者/dev/sdax进行配置
root@jasonchen ~]# blkid (查看设备uuid号码及设备类型,挂载设备时需注意类型不要写错,否则需要进救援模式-。-) /dev/sr0 : UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64"TYPE="iso9660"PTTYPE="dos" /dev/sda1: UUID="7f45bd81-656c-45c3-8c9b-01105857d65a" TYPE="xfs" /dev/sda2: UUID="79d951d0-06a4-4f9f-9d10-e273dc25d4d1" TYPE="swap" /dev/sda3: UUID="8814f471-53b4-4eb7-aee9-a20b2ce6fe64" TYPE="xfs" -
挂载点目录信息
-
文件系统类型 xfs 默认crstos7文件系统类型
存储数据 -->需要磁盘做阵列 -->分区 -->格式化 -->创建文件系统 (存储数据方式不太一样) -->挂载操作 -
默认的挂载参数信息 决定了是否可以像存储设备中存储数据 (mount -o ro(只读) rw可以配置挂载后磁盘权限)
-
是否进行磁盘数据备份 影响磁盘存储效率 磁盘利用率会降低 数据恢复 0代表不开启 1代表功能开启
-
是否检查磁盘信息 影响磁盘存储效率 后期用fsck命令进行磁盘备份,所以此处为0
文件配置生效:
存储设备文件信息 挂载点信息 xfs defaults 0 0
方法一:重启操作系统
方法二:mount -a
如何配置信息:
1)如何进行自动挂载操作
第一个里程:编写配置文件
/dev/cdrom /mnt iso9660 defaults 0 0
第二个里程:重启系统
2)如何进行磁盘自动挂载操作
第一个里程:编写配置文件
UUID=b6ff6888-7c0a-46af-ac93-8f40df60128d /oldgirl xfs defaults 0 0
第二个里程:重启系统
6.系统环境变量 别名功能设置文件
文件路径信息:/etc/profile
文件作用说明:可以设置环境变量 可以设置别名功能
变量设置
变量如何设置:石头(变量)=孙悟空(变量值) (系统不识别中文变量-。-仅举例)
变量如何使用:$XXX 输入 $+设定的变量
变量存在的意义:在脚本中存在,告诉机器,你输入的命令到哪里去执行
[root@jasonchen ~]# shitou=sunwukong
[root@jasonchen ~]# echo $shitou
sunwukong
指定一些经常变化的信息,利用变量可以快速修改调整
环境变量
1)环境变量都是有大写字母组成
2)环境变量都是系统默认设置好的变量
3)环境变量是有特殊作用变量
$PATH -----让系统用户可以直接运行命令
命令执行逻辑:
1.用户输入命令 --> 系统加载PATH环境变量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 保存二进制文件目录
2.在指定环境变量目录中找寻执行命令的文件
举例:cat , 输入cat后再环境变量路径中找到命令文件 --> 执行命令功能
环境变量路径中找不到命令 --> 提示报错信息 命令找不到 文件不存在
4)环境变量设置完毕后,影响所有用户
环境变量设置方法:
临时生效:命令行直接输入
PATH= /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:tmp
永久修改环境变量
vim /etc/profile 最后一行写入
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/.local/bin:/root/bin:/tmp
方法一:配置文件生效
重新连接主机
方法二:利用命令记录加载profile文件中的配置
source /etc/profile
. /etc/profile
可以自己发明系统命令:
创建一个删除命令 作用:将数据放到回收站里面
第一个里程:编写命令文件del
vi del
#!/bin/bash
mv $* /tmp
第二个里程:将文件放入到环境变量PATH路径中
mv del /bin
第三个历程: 将命令文件权限修改 +x
chmod +x /bin/del
别名设置
别名有什么用:
1.简化复杂命令重复输入
2.将危险命令进行转换 rm 删除文件 == 将文件移动到 /tmp
实现别名配置:alias(查看别名 临时设置别名)unalias(临时取消别名)
临时设置:
alias 别名名称=‘xxx真正命令’ (跟已有命令不要起冲突)
alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
永久配置:
vi /etc/profile
最后一行,alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
练习:给rm设置一个别名, 实现rm删除数据, 实质上是将数据移动到/tmp
rm(别名)
alias rm='mv xxxx'
临时设置别名
第一个里程:
alias rm='mv -t /tmp' -t target:代表不管后面多少信息目标都是到执行的对象/tmp
说明信息:
rm /oldboy.txt ==mv -t /tmp /oldboy.txt /oldboy01.txt
第二个里程:编写porfile文件
vi /etc/profile
alias rm='mv -t /tmp'
永久设置别名
第三个里程:查看局部配置文件
cat ~/.bashrc
alias rm='rm -i'
第四个里程: 将局部配置进行调整
vi ~/.bashrc
#alias rm='rm -i' #:注释禁用
取消别名功能:
方法一:利用unalias
方法二:使用命令的绝对路径
举例:/usr/bin/rm xxx文件
方法三:\转意符号
举例:\rm xxx文件
=====================================================================
别名和环境变量设置方法:4个文件可以设置
(国法)全局配置:影响所有用户
/etc/profile 系统环境变量配置文件 /etc/bashrc 系统别名配置文件
(家规)局部配置:只影响指定用户 局部优先于全局
~/.bash_profile 用户环境变量配置文件 ~/.bashrc 用户别名配置文件
补充说明:永久配置变量 环境变量 别名文件信息
环境变量配置优先级别:(了解即可,工作中常用为/etc/profile ~/.bash_profile)
01 ~/.bash_profile ------局部优先全局
02 ~/.bashrc
03 /etc/basahrc ---------全局配置
04 /etc/profile
别名设置优先级别:
01 ~/.bash_profile
02 /etc/bashrc
03 ~/.bashrc
04 /etc/profile
1)全局配置文件—对系统中所有用户都有影响
/etc/profile etc/bashrc
2) 局部配置文件—对系统中某个用户有影响
~/.bash_profile ~/.bashrc
说明:系统中以.开头的文件都是隐藏文件 查看方式ls -a
说明:局部配置优先于全局配置
国法 ===全局配置
家规 ===局部配置
如何还原rm别名本来的删除命令作用:
方法一:临时取消别名功能 unalias rm
方法二:临时使用命令绝对路径操作命令/bin/rm xxxx文件
方法三:在别名前面加上 \ (\还原别名本身的意思)
7.系统运行级别文件
文件路径信息:/etc/inittab(centos6) centos7-/usr/lib/systemd/system/runlevel*target↓
文件作用说明:查看/设置系统默认运行级别
centos6 ↓ --------------------------------------------------------------- centos7↓
临时配置: init 级别数字 ----------------------------------默认修改系统运行模式(target)
--------------------------------------------------------------- systemctl set-default 模式信息或数字0-6(centos7配置完毕永久生效小心使用)
0 - halt (Do NOT set initdefault to this)--------------runlevel0.target -> poweroff.target
关机级别 ---------------------------------------------------关机级别
1 - Single user mode ------------------------------------runlevel1.target -> rescue.target
单用户模式 破解系统密码信息(root)-----------------救援模式 == 单用户模式 (无网络)
2 - Multiuser, without NFS (The same as 3, if you do not have networking)
多用户模式, 没有网络服务模式
3 - Full multiuser mode----------------------------------multi-user.target
多用户模式, 具有网络服务模式------------------------centos7中234统称为多用户模式
4 - unused
未使用
5 - X11-------------------------------------------------------runlevel5.target -> graphical.target
图形化级别
6 - reboot (Do NOT set initdefault to this)-----------runlevel6.target -> reboot.target
重启级别-----------------------------------------------------#To view current default target, run:↓
runlevel 查看级别配置信息------------------------------systemctl get-default 查看默认配置信息
永久配置:
vim /etc/inittab----------------------------------------------#To set a default target, run:↓
id:3:initdefault: — 默认是3运行级别-------------------systemctl set-default TARGET.target
把3改成要修改的数字级别就可以了--------------------修改成要运行的级别名称
8.系统登录前提示信息
文件路径信息:/etc/motd
文件作用说明:登录系统后显示提示信息
文件路径信息:/etc/issue本地登录前显示 /etc/issue.net 网络登录前显示
文件作用说明: 登录系统前显示提示信息
9.系统主机名称配置文件
文件路径信息:/etc/hostname
文件作用说明:修改主机名称
系统名称修改:
临时修改:
hostname jason01
永久修改:
vim /etc/hostname
jason01
命令修改:hostnamectl set-hostname jason01
PS:企业需求,统计主机信息 ==资产管理
主机名称 主机网络地址 主机品牌型号 主机cpu 主机内存 主机存储信息
主机名称:区域 -机房 -机柜号码-机器编号
BJ - pbs - 010203 - 01
10.系统软件安装方法
/usr/local | /opt -------第三方软件程序目录
第一个方法:利用rpm命令安装软件
特点说明:安装软件 需要解决软件依赖关系
命令简单介绍:
rpm:RPM软件包管理命令 软件包都成为rpm包
命令使用方法:
示例下载过程:
wget https://mirrors.aliyun.com/centos/7.7.1908/os/x86_64/Packages/vim-enhanced-7.4.629-6.el7.x86_64.rpm
前提:必须有软件包
rpm -ivh 软件包名称
-i —安装软件
-v —显示安装过程
-h —以人类可读方式显示信息
缺点:无法解决软件依赖关系
解决依赖方法:https://jingyan.baidu.com/article/2a138328c7055c074a134f9b.html
第二个方法:利用yum命令安装软件
特点说明:下载软件 并进行安装 自动解决依赖关系
命令简单介绍:
yum:下载软件 并安装软件 自动解决依赖关系
命令使用方法:
yum install -y 软件名称
yum reinstall -y 软件名称 (重新安装或修复软件)
缺点:过渡依赖网络 不能定制一些功能
第三个方法:利用编译命令安装软件(源码安装软件)
特点说明:灵活的安装或配置软件功能 无法解决软件依赖
命令简单使用:
软件程序源码包 --> configure(指定软件安装目录 指定软件功能)
–> make 编译过程 -->make install编译安装
缺点:需要解决软件依赖 安装复杂度较高
代码(c c++ php python) - 翻译 - 系统识别(计算机语言 二进制)
翻译:
有道软件翻译 单词 句子 — 解释过程 shell python 解释语言
翻译工作者 整个信息全翻译 编译过程 c ++ java
第四个方法:二进制包安装方法
特点说明:绿色软件(软件解压后直接使用)数据库服务就有这样的二进制包
安装软件过程:
二进制压缩包 — 解压 — 数据保存好 — 简单配置 — 启动程序
缺点:无法解决软件依赖 功能单一
11.系统日志文件查看
日志文件:记录系统或者服务运行情况 正常信息/异常信息***
日志文件保存路径:/var/log/
日志重要文件信息:
·/var/log/messages —系统运行或服务运行状态信息日志文件
·/var/log/secure —系统用户登陆情况日志文件
用户登录成功信息
Oct 22 12:13:45 linux67 sshd[8410]: Accepted password for root from 10.0.0.1 port 51635 ssh2
Oct 22 12:13:45 linux67 sshd[8410]: pam_unix(sshd:session): session opened for user root by (uid=0)
用户断开连接信息
Oct 22 12:14:42 linux67 sshd[8410]: pam_unix(sshd:session): session closed for user root
用户登录错误信息
Oct 22 12:15:41 linux67 unix_chkpwd[8437]: password check failed for user (root)
Oct 22 12:15:41 linux67 sshd[8435]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.0.0.1 user=root
Oct 22 12:15:41 linux67 sshd[8435]: pam_succeed_if(sshd:auth): requirement “uid >= 1000” not met by user “root”
Oct 22 12:15:43 linux67 sshd[8435]: Failed password for root from 10.0.0.1 port 51642 ssh2
Oct 22 12:15:47 linux67 sshd[8435]: error: Received disconnect from 10.0.0.1 port 51642:0: [preauth]
Oct 22 12:15:47 linux67 sshd[8435]: Disconnected from 10.0.0.1 port 51642 [preauth]
----- 0 --------------- 02 ------- 03 ---------- 04
01. 日志产生时间
02. 显示主机名称信息
03. 登录主机方式 sshd(远程连接) login(本地连接)
04. 登录过程详细信息(成功或失败的具体信息) 关注失败信息
日志信息如何进行查看:
messages
secure
方法一: 只查看最新的信息
head -n 文件信息 — 查看文件前几行信息
tail : 看尾部后10行
tail -n 文件信息 — 查看文件后几行信息
tail -f 文件信息 — 实时查看日志文件变化内容信息
tail -f参数和-F参数区别:tail -f:当文件删除时,会结束实时查看的过程,tail -F:当文件删除时,会结束实时查看的过程,但是如果命令相同文件再次创建出来, 会继续追踪
方法二: 关注指定信息 fail error
grep “关注信息” 文件
-C -B -A -i
grep -A 3 “内容” 文件名 —从A 后面内容为起点查看"内容"后三行 数字三代表看几行
grep -B 3 “内容” 文件名 —从B 后面内容为起点查看"内容"前三行
grep -C 3 “内容” 文件名 —以"内容"为中心查看附近三行
grep -i “数据” 文件名 —忽略大小写
系统基础优化
1.系统用户优化:如何创建用户 用户设置密码 如何使用创建用户 如何删除用户
·如何创建用户:useradd +名称 ---------------输入命令id + 用户名称 —可查看确认用户是否存在
·如何设置密码:
方法一:交互式设置密码
[root@jason oldboy]# useradd jason01
[root@jason oldboy]# passwd jason01
Changing password for user jason01.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
方法二:免交互设置密码
echo 123456 | passwd --stdin oldboy
·如何使用新建用户
方法一:重新建立远程连接
方法二:直接切换用户信息
su - 用户名称 ------切换用户 不加-切换不彻底
PS:root无需密码切换普通用户
普通用户切换root需要密码
·如何删除用户:userdel -r + 用户名
2.系统下载优化:yum(更新yum源文件)
优化选择软件仓库:
1.软件仓库中软件比较全面,定期更新
2.软件仓库服务器网络必须稳定
最终选择以下两个:
阿里源:
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.53322f70iBkVGV
软件仓库:http://mirrors.aliyun.com/centos/7.7.1908/os/x86_64/Packages/
下载优化过程:
确认是否有下载优化目录: /etc/yum.repos.d/
完成下载优化操作:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清华源: https://mirrors.tuna.tsinghua.edu.cn/help/centos/
首先备份 /etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
下载优化过程:
vi /etc/yum.repos.d/CentOS-Base.repo
复制粘贴上面网站的文件内容即可
下载基础软件:
yum install -y vim tree telnet nc nmap net-tools wget bash-completion lrzsz
vim ----------------------编辑文件内容 vi升级版
telnet -------------------用于测试服务端口 telnet 服务器地址 服务端口
nc -----------------------用于测试服务器端口 nc 服务器地址 服务端口
nmap ------------------ 用于测试服务端口 nmap 服务器地址 -p 服务端口
net-tools ---------------使centos7系统可以支持centos6系统网络相关命令‘
wget --------------------用于下载软件
bash-completion ---- 将部分命令参数进行补全
lrzsz ---------------------用户将linux系统下载数据 将windows数据上传到linux系统
sz -y 数据信息 下载到windows
rz -y 选择上传的数据
rz -E 把windows的文件拖拽进虚拟机
开发人员开发完成软件:会放入不同平台(审核)
Base软件平台:审核操作标准 严格
epel软件平台 :审核操作保准 宽松 EPEL(ExtraPackagesforEnterpriseLinux)是基于Fedora的一个项目
epel下载源优化:
下载优化步骤:
https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.53322f70iBkVGV
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
或者
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
3.系统安全优化:安全相关服务关闭
firewalld 防火墙服务:关闭
临时关闭:
对于centos7: ---------------------------------------- centos6
systemctl stop firewalld ----------------------- /etc/init.d/iptables stop
systemctl status firewalld --------------------- /etc/init.d/iptables status
systemctl is-active firewalld -------------------services stop iptables
↑↑↑查看该服务是否激活
永久关闭:
centos7 ------------------------------------------- centos6 chkconfig(控制开机是否运行)
systemctl disable firewalld---------------------chkconfig iptables off
systemctl status firewalld.service -----------chkconfig iptables on
systemctl is-enabled firewalld.service------chkconfig --list iptables
↑↑↑查看该服务是否开机启动
开启命令:systemctl start firewalld
selinux 安全服务:
root:管理员用户 权限大 利用selinux程序配置 限制root用户能力
jason:其他用户 权限低
临时关闭:---------------------------------命令getenforce —查看状态
命令:setenforce 0
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
setenforce Enforcing/1 ------ selinux功能开启
setenforce Permissive/0 ------ selinux功能临时关闭
永久关闭:
方法一:
vim /etc/selinux/config-------------------编辑该文件将原内容改为↓
SELINUX=disabled --------------------永久关闭selinux功能(设置完毕重启即可)
enforcing - SELinux security policy is enforced
selinux安全策略会被强制执行 --安全策略启用
permissive - SELinux prints warnings instead of enforcing.
selinux输出警告信息代替强制执行 --临时关闭
disabled - No SELinux policy is loaded.
没有selinux策略被加载
方法二:
cat -n (查看文件行号)/etc/selinux/config ↓
sed -i '7s#enforcing#disabled#g' /etc/selinux/config
永久关闭生效:重启系统
永久启动程序:修改配置文件 – 重启系统 等待很长时间 重新加载selinux程序
查看服务是否开启
systemctl is-active sshd(xxx)
========================================================
工作环境各种问题:某些时候快速解决问题大招
1)重启系统服务 类似一些java应用出现异常
2)重启操作系统 网络不通等
3)重装操作系统 系统中毒了
========================================================
4.系统时间优化:系统时间同步,和所在时区同步
时间信息同步操作:
自动同步时间:
方式一:实现时间自动同步 利用timedatectl
timedatectl 命令使用方法/参数说明 timedatectl status查看配置信息↓↓↓
status Show current time settings
显示目前时间设置信息
set-time TIME Set system time
手动设置系统时间
set-timezone ZONE Set system time zone
设置系统时区
list-timezones Show known time zones
显示出系统已知时区信息
timedatectl set-timezone America/Los_Angeles
修改时区方式:修改时区为亚洲上海
timedatectl set-timezone Asia/Shanghai
set-local-rtc BOOL Control whether RTC is in local time
控制RTC功能是否开启
1 2 3 30 整数字符
1.11 1.12 1.13 浮点字符
1(true) 0(false)布尔型
abc char字符串
RTC: 设置硬件时间信息, 设置为1开启, 将系统信息自动同步给主板硬件
set-ntp BOOL Control whether NTP is enabled
设置方法:timedatectl set-ntp 0/1
是否设置开启网络时间同步功能(NTP: network time protocol网络时间协议,实现时间网络同步)
第一个里程:修改时区
timedatectl set-timezone Asia/Shanghai
第二个里程:开启时间同步功能
timedatectl set-ntp 1
systemctl start chronyd
systemctl enable chronyd
方式二:实现时间自动同步 利用ntpdate
ntpdate 找时间服务器
ntpdate ntp1.aliyun.com
手动修改时间:
方式一:利用命令 timedatectl
timedatectl set-time “2019-12-05 10:57”
方式二:利用命令 date
1.linux中的时间分为系统时间和硬件时间,系统时间可以通过date命令进行查看,硬件时间可以通过clock/hwclock命令来查看
[root@jason ~]# date +'%F %T'
2019-12-05 19:29:07
[root@jason ~]# date +'%Y-%m-%d %H:%M:%S'
2019-12-05 19:25:04
%n : 下一行
%t : 跳格
%H : 小时(00-23)
%I : 小时(01-12)
%k : 小时(0-23)
%l : 小时(1-12)
%M : 分钟(00-59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00-60)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
%a : 星期几 (Sun-Sat)
%A : 星期几 (Sunday-Saturday)
%b : 月份 (Jan-Dec)
%B : 月份 (January-December)
%c : 直接显示日期与时间
%d : 日 (01-31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001-366)
%m : 月份 (01-12)
%U : 一年中的第几周 (00-53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0-6)
%W : 一年中的第几周 (00-53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000-9999)
%N nanoseconds (000000000..999999999)
所以输出的是微妙
Linux date修改时间
命令格式:date -s 修改时间的字符
范例:修改系统日期,不修改时间(时分秒)
# date -s 2020-12-20
范例:修改系统时间 不修改日期
# date -s 10:40:23
范例:修改系统日期和系统时间
# date -s "2020-12-02 10:40:23" #<==因为日期和时间想之间有空格 所以需用引号引起来 否则会报错
注意:如果想要彻底更改系统的时间和日期 需要执行:clock -w
5.字符编码(字符集)优化:解决中文乱码 系统提示信息变为中文
· 为什么要做字符优化
避免出现中文乱码
localectl list-locales | grep "zh_CN" 查找有CN的支持中文的编码
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
UTF8 支持中文
GBK_xx 支持中文
修改系统字符编码:
查看默认编码信息:
echo $LANG
en_US.UTF_8
临时修改:
LANG=字符编码
LANG="zh_CN.utf8"
支持中文编码,以及让英文信息尽量翻译为中文显示
永久修改:
vi /etc/locale.conf
LANG="zh_CN.utf8"
临时永久都做修改:
localectl set-locale LANG="zh_CN.gbk"
6.远程连接优化:提升远程(xshell)连接速度
·系统远程连接优化
解决远程连接慢
提升ssh远程连接速度
vi /etc/ssh/sshd_config ----远程服务配合文件
(进入文件后:/DNS找到 #UseDNS yes 干掉注释,改为no)
UseDNS no ----是否开启DNS反向解析过程
DNS : 已知域名 --> 解析 --> IP ------利用IP地址通过网络 -----> 访问IP地址主机
已知IP地址 10.0.0.200–> 访问服务器中的服务 22 ssh远程服务 → 收到谁访问 源IP 10.0.0.1
---------------------------------- 服务端询问 10.0.0.1是谁啊 名称或者域名是什么
RDNS : 已知IP地址想获得 --> 反向解析 --> 名称域名信息
GSSAPIAuthentication yes 改为 no --------是否GSSAPI认证
改完重启服务:systemctl restart sshd
7).系统提示符优化 改组成信息
特殊环境变量:PS1
[root@jason ~]# echo $PS1
[ \u @ \h \W]\$
\u --- 当前登录用户 补充:\d:代表日期,格式为 weekday mouth date
@ --- 分割符号 \H:完整的主机名称
\h --- 显示系统主机名称 \t:显示时间为24小时格式,如HH:MM:SS
\W --- 显示当前路径信息 \T:显示时间为12小时格式
\$ --- 显示登录系统用户信息 \A:显示时间为24小时格式
# 管理员用户 root \v:BASH的版本信息
$ 普通用户 oldboy \w:完整的工作目录名称,家目录会以~显示(默认)
\W:利用bashname取得工作目录明称,所以只会列出最
后一个目录
\#:下达的第几个命令
临时设置:
PS1='[\u@\h \w]\$'
PS1='[\u@\h \W \t]\$ '
永久设置:
vi /etc/profile
PS1='[\u@\h \t \W]\$ '
恢复提示符正常显示
永久设置:
vi /etc/profile
PS1='[\u@\h \t \W]\$ '
提示符颜色优化
echo $PS1 [\u@\h \W]\$
\[\033[01;32m\] --- 开始给字符添加颜色
\033[0m\] --- 结束添加颜色过程
PS1='\[\e[36;1m\][\u@\h \w]\\$ \[\e[0m\]'

需求: 将命令提示符信息颜色修改
用户信息: 红色 Red='\[\e[31;1m\]'
主机名称: 蓝色 Bule='\[\e[34;1m\]'
路径信息: 绿色 Green='\[\e[32;1m\]'
时间信息: 黄色 Yello='\[\e[33;1m\]'
End='\[\e[0m\]'
PS1="[$Red\u$End@$Bule\h$End $Green\W$End $Yello\t$End]\\$ "
运维操作文件信息:*****
1)编辑文件前现将文件进行备份 cp
2)编辑文件内容信息
3)编辑文件出现问题后使用对比命令分析错误
vimdiff 编辑的同时对比文件内容
使用格式:vimdiff + 配置文件信息 + 备份文件信息
系统信息查看方法
系统信息查看
1)当前使用系统版本信息:centos7.6 centos6都是该命令
查看文件:cat /etc/redhat-release
[root@jason ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
2)使用系统内核信息:
查看命令:uname -a查看
[root@jason ~]# uname -a
Linux jason 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
硬件信息查看
为什么proc目录中的信息不让改动:次目录中的所有数据都存储在内存里面
/proc:数据内存存储 系统信息 内核信息 服务进程信息
1)cpu
查看文件信息:/cat /proc/cpuinfo
physical id : 0 ---- 服务器上有几颗CPU
processor : 0 ---- 服务器CPU核心数 (cpu的总核心数)
cpu cores : 1 ---- CPU核心数
physical id :0
physical id :0 4行有两行重复=服务器有2颗cpu:去掉重复的两行
physical id :1
physical id :1
[root@linux67 ~]# grep "physical id" /proc/cpuinfo | uniq
physical id : 0
physical id : 1
[root@linux67 ~]# grep "physical id" /proc/cpuinfo | uniq |wc - l
2 ↑ l:代表line,行
grep processor /proc/cpuinfo |wc -l 太麻烦不好用,用grep -c进行统计
processor : 0 -- 4行 == 整个服务器有4个核心
processor : 1
processor : 2
processor : 3
统计服务器总的核心数:
[root@linux67 ~]# grep -c processor /proc/cpuinfo
4
命令说明:
-c:统计的作用
wc -l :统计文件中有多少行
uniq :把一个文件里相同的内容去重
说明: | 管道符号: 将前一个命令执行输出结果通过管道交给后面的命令进行再次处理
“”:作用是让命令输入引号里的内容
补充: wc命令介绍:
-c, --bytes print the byte counts
将字节统计信息输出(包含空格和换行符)
-m, --chars print the character counts
将字符统计信息输出
-l, --lines print the newline counts ******
统计文件中有多少行
-w, --words print the word counts
使用命令查看cpu信息:lscpu
[root@linux67 ~]# lscpu
CPU(s): 4 -----服务器cpu总的核心数
Socket(s): 2 -----服务器有几颗cpu
Core(s) per socket: 1 -----每颗cpu总的核心数
2)内存
查看文件信息:cat /proc/meminfo
MemTotal: 2028088 kB ---服务器总的内存容量
MemFree: 1698532 kB ---服务器内存空闲容量(可能被占用的)
MemAvailable: 1747872 kB ---服务器可用内存容量 (重点关注)
Buffers: 2076 kB ---划分内存一定空间用于缓冲使用 加快数据写入
Cached: 176712 kB ---划分内存一定空间用于缓存使用 加快数据读写
使用命令查看内存:free
[root@linux67 ~]# free
total used free shared buff/cache available
Mem: 2028116 140908 1720708 9700 166500 1703320
Swap: 1048572 0 1048572
[root@linux67 ~]# free -h
total used free shared buff/cache available
Mem: 1.9G 137M 1.6G 9.5M 162M 1.6G
Swap: 1.0G 0B 1.0G
3)磁盘
查看挂载信息:cat /proc/mounts
/dev/sr0 /mnt iso9660 ro,relatime 0 0
/dev/sda1 /boot xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
01. 存储设备文件信息
02. 磁盘挂载点信息
03. 文件系统类型信息
04. 挂载的参数信息
05. 是否备份磁盘信息
06. 是否检查磁盘
使用命令查看磁盘:df or df -h
[root@linux67 ~]# df -h (设置监控磁盘容量使用率在80%就要提醒清理空间)
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 98G 1.6G 97G 2% /
devtmpfs 980M 0 980M 0% /dev
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sda1 1014M 127M 888M 13% /boot
tmpfs 199M 0 199M 0% /run/user/0
4)系统负载情况
cpu压力 ==> cpu负载
查看负载信息:cat /proc/loadavg
[root@jason ~]# cat /proc/loadavg
0.00 0.01 0.05 1/112 9667
每分钟平均负载 5分钟平均负载 15分钟平均负载
w :
uptime简化版w
top:实时查看到进程信息
[root@jason ~]# w (最好保证负载数值<= 总的cpu核心数 128核心)
(↓当前时间) 运行时间 几个用户 负载值
10:36:31 up 1:36, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 09:37 7.00s 0.60s 0.00s w
01 02 03 04 05 06 07
01: 登录系统用户信息
02: 登录系统方式 pts/x(远程登录) ttyx(本地登录)
03: 远程登录主机用户IP地址信息
04: 用户登录主机时间
05: 用户登录主机空闲时间
06: 用户操作系统占用CPU情况
07: 检查用户远程之后再做什么
w — 用户在执行w命令
-bash — 进行基础命令操作
vim — 编辑文件状态
sh xxx — 执行脚本
.课程总结梳理
1)系统用户密码破解方法 使用单用户进入
2)系统下载优化方法 优化Bash epel 阿里源 清华源 基础软件
3)系统安全优化方法 firewalld selinux 关闭(临时 永久)
4)系统时间同步优化 timedatectl 手动修改时间 自动同步时间(修改时区 开启ntp功能)
5)字符编码(字符集)优化:解决中文乱码 系统提示信息变为中文 LANG locatectl
6)远程连接优化:提升远程连接速度 /etc/ssh/sshd_config
7)脚本for循环 批量创建用户
8)系统提示符优化 PS1 改个颜色
9)系统信息查看方法
系统信息查看 uname -a
硬件信息查看
作业:
1.(选做)如何批量创建用户 (删除用户用useradd -r )
情况一:创建oldboy01 oldboy02 oldboy03 … oldboy10 并且每个用户密码都是123456
for user in user{1..4};do useradd $user;echo "123456" | passwd --stdin $user; done
for循环:语句格式
for 变量 in {xxx}
do
做什么 $变量
done
示例脚本格式:
for username in oldboy{01..10}
do
useradd $username && echo 123456|passwd --stdin $username
done
情况二:创建oldboy oldgirl olddog oldbaby 并且用户密码是随机密码 6位
思路1)掌握如何创建用户 给用户设置密码 单个用户设置密码
useradd xx ; echo 密码 |passwd --stdin 用户信息
思路2)批量创建用户并设置密码,按照序列方式
seq -w 10|sed -r 's#(.*)#useradd oldboy\1;echo 123456|passwd --stdin oldboy\1#g'
sed +r 不加用不了扩展正则符号
echo {oldboy,oldgirl,olddog}|xargs -n1|sed -r 's#(.*)#useradd \1;echo 123456|passwd --stdin \1#g'
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,-n选项多行输出
思路3)创建的密码信息是随机密码
整理生成随机数方法(百度搜索有很多种)
date "+%N"|md5sum |head -c 6
useradd oldboy10; Password=`date "+%N"|md5sum |head -c 6`; echo $Password|passwd --stdin oldboy10; echo oldboy10 $Password >>/tmp/passwd.txt
最终答案:seq -w 10|sed -r 's#(.*)#useradd oldboy\1; Password=`date "+%N"|md5sum |head -c 6`; echo $Password|passwd --stdin oldboy\1; echo oldboy\1 $Password >>/tmp/passwd.txt#g'|bash
seq命令用于产生从某个数到另外一个数之间的所有整数。-w, --equal-width 在列前添加0 使得宽度相同
date:显示时间获得数字,%N nanoseconds (000000000…999999999)
所以输出的是微妙
[root@jason ~ 16:21:39]# date ‘+%N’
917296551
2.如何如果系统拥有ntpdate命令
yum -y install ntp
[root@jason backup]# ntpdate ntp1.aliyun.com
5 Dec 15:32:12 ntpdate[7529]: adjust time server 120.25.115.20 offset -0.006414 sec
一种情况:下载软件包软件包名称和命令一致
ntpdate命令没有
yum install -y ntpdate
一种情况:下载软件包 软件包名称和命令不一致
locate命令没有
yum provides locate --> mlocate
yum search locate
yum install mlocate
本文深入探讨Linux系统的管理与优化技巧,涵盖用户管理、软件安装、系统安全、时间同步、字符编码优化等方面,旨在帮助系统管理员提升系统性能与安全性。

657





