linux学习第二周总结

本文深入探讨Linux系统的管理与优化技巧,涵盖用户管理、软件安装、系统安全、时间同步、字符编码优化等方面,旨在帮助系统管理员提升系统性能与安全性。

🤣

操作系统挂载概念

服务器磁盘如何使用
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
  1. 挂载存储设备信息 可以使用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" 
    
  2. 挂载点目录信息

  3. 文件系统类型 xfs 默认crstos7文件系统类型
    存储数据 -->需要磁盘做阵列 -->分区 -->格式化 -->创建文件系统 (存储数据方式不太一样) -->挂载操作

  4. 默认的挂载参数信息 决定了是否可以像存储设备中存储数据 (mount -o ro(只读) rw可以配置挂载后磁盘权限)

  5. 是否进行磁盘数据备份 影响磁盘存储效率 磁盘利用率会降低 数据恢复 0代表不开启 1代表功能开启

  6. 是否检查磁盘信息 影响磁盘存储效率 后期用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
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值