Linux系统优化
一、 系统信息查看方法
-
查看系统名称信息
# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
-
查看系统内核版本
# uname -r 3.10.0-1160.el7.x86_64
-
查看系统硬件位数
# uname -m x86_64
二、 系统基础优化
2.1 添加系统普通用户
-
添加用户
# useradd oldboy
-
设置用户密码(设置的密码信息不能明文显示)
有交互方式: # passwd oldboy 免交互方式: # echo 123456|passwd --stdin oldboy
-
切换用户信息(普通用户在删除不属于自己的文件时会提示权限阻止)
root用户切换到普通用户不需要输入密码: # su - oldboy 普通用户切换到root用户需要输入密码: # su - root
-
查看用户信息
whoami : 当前窗口登录的用户 who : 当前用户登录系统的终端
2.2 命令提示信息优化
-
变量说明
-
设置变量相当于编辑书的目录
Info=oldboy
-
读取变量相当于读取书的内容
echo $Info
-
-
环境变量
环境变量:表示大部分情况都会用到的变量
系统默认的为大写方式书写变量:
说明:echo $PS1 显示命令行提示符格式信息变量
-
修改调整
-
临时设置环境变量:
export PS1='[\u@\h \w]\$ '
-
永久设置环境变量:
1、vim /etc/profile export PS1='[\u@\h \w]\$ ' 2、tail -1 /etc/profile 3、source /etc/profile
-
三、Linux中安装软件的三种方式
3.1 分类与区别
三种方式:
- rpm安装
- yum安装
- 源代码编译安装
区别:
rpm安装:类似于windows中的安装包,下载之后直接安装,缺点是不能自己解决依赖问题;
yum安装:基于rpm安装,也就是在rpm上增加了自动解决依赖的功能;
源代码安装:通过编译源代码,得到软件包;优点是可以自定制软件包,缺点是比较复杂;
3.2 rpm安装
前提:为了体验相关命令的效果,这里需要提前下载好安装包,本篇中笔者以提前下载好的 zsh-5.0.2-34.el7_8.2.x86_64.rpm 安装包作为例子进行说明。
3.2.1 安装
rpm -ivh [软件包名称]
eg:
[root@localhost ~]# rpm -ivh zsh-5.0.2-34.el7_8.2.x86_64.rpm
3.2.2 卸载
rpm -e [软件包名称]
eg:
[root@localhost ~]# rpm -e zsh
注:卸载时的软件包名称填写为软件名即可,不能写成软件包名称。
3.2.3 更新
rpm -Uvh [软件包名称]
eg:
[root@localhost ~]# rpm -Uvh zsh-5.0.2-34.el7_8.2.x86_64.rpm
3.2.4 软件包名称
zsh-5.0.2-34.el7_8.2.x86_64.rpm
软件包名称:zsh
版本号:5.0.2
修正版本:34
适用的平台:el7_8(CentOS 7)
适用的系统位数:x86_64
扩展名:rpm
3.2.5 查看软件包的配置文件
[root@localhost ~]# rpm -qc zsh
3.2.6 查看是否安装某软件
[root@localhost ~]# rpm -q zsh
3.2.7 查看当前系统安装了哪些软件
[root@localhost ~]# rpm -qa
3.2.8 查看软件的安装路径(查看安装了哪些东西)
[root@localhost ~]# rpm -ql zsh
扩展:上传与下载软件:yum install lrzsz -y (可以将Windows文件直接拖入Linux系统中完成上传)
3.3 yum安装(重要)
3.3.1 安装
yum install [软件包的名称]
参数:
-y : 免交互
--nogpgcheck : 忽略公钥认证
3.3.2 卸载
yum remove [软件包名称]
参数:
-y : 免交互
3.3.3 更新
yum update [软件包名称]
参数:
-y : 免交互
注意:如果update后跟具体的软件包名称,就会更新指定软件包;如果没有指定,则更新系统所有的需要更新的软件包。
3.3.4 yum安装的生命周期
1、执行yum install zsh -y
2、会去 /etc/yum.repos.d/ 目录下找以 .repo 结尾的文件
3、通过 .repo 文件中的链接,找到对应的软件仓库
4、在对应的软件仓库中下载指定的软件包
5、缓存至 /var/cache/yum/
6、根据缓存,安装下载好的软件包
7、删除对应软件包(如果不想删除可以修改/etc/yum.conf keepcache=1)
注:/etc/yum.conf 是yum的配置文件;
其中的keepcache表示是否保存缓存,0代表不保存 , 1代表保存;
3.3.5 yum私有仓库搭建(重点)
- 本地版搭建步骤
1、下载必须的软件包
yum install yum-utils createrepo -y
2、创建软件仓库
mkdir -p /opt/repos (自定义仓库路径)
3、下载对应的软件
mkdir -p /opt/repos/Packages # 在仓库路径下创建Pcakages目录(这里名字固定)
然后把对应的软件包复制到 Packages 目录中(为方便已将上面的zsh软件包复制进去)
4、初始化软件仓库
createrepo /opt/repos
5、添加yum源
cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv *.repo backup/ # 目的:1、备份原有的.repo源文件 2、不影响测试
[root@localhost ~]# yum-config-manager --add-repo=file:///opt/repos
[root@localhost yum.repos.d]# cat opt_repos.repo
[opt_repos] # 源的名称
name=added from: file:///opt/repos # 源的简介
baseurl=file:///opt/repos # 源的下载地址
enabled=1 # 是否启用:1启用 , 0不启用
6、生成缓存
yum clean all
yum makecache
7、测试
yum install zsh
能下载成功并且在提示的信息中显示源为opt_repos,即为私有仓库创建成功。
- 远程版搭建步骤
1 - 6 :参考本地版搭建步骤前6步
7、安装远程访问软件(Nginx)
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
[root@localhost ~]# yum-config-manager --add-repo=https://repo.huaweicloud.com/epel/7/x86_64/
[root@localhost ~]# yum install nginx --nogpgcheck
8、修改nginx的配置文件
[root@localhost ~]# vim /etc/nginx/nginx.conf
# include /etc/nginx/conf.d/*.conf; # 注释该行
root /opt/repos; # 修改为私有仓库路径
autoindex on; # 添加该语句
# 测试更改是否成功;出现successful即为成功
[root@localhost ~]# nginx -t
# 启动nginx
[root@localhost ~]# systemctl start nginx
# 关闭selinux和firewalld
[root@localhost ~]# systemctl disable --now firewalld
[root@localhost ~]# setenforce 0
9、测试前准备(第9,10步需使用另外一台测试机)
[root@localhost yum.repos.d]# yum install yum-utils -y
# 备份源
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv *.repo backup/
# 添加源
[root@localhost yum.repos.d]# yum-config-manager --add-repo=http://192.168.15.101/
# 刷新缓存
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum makecache
10、测试
[root@localhost ~]# yum install zsh -y
可以成功下载安装即表示搭建远程版私有仓库成功。
- 还原之前仓库步骤
1、还原yum源
cd /etc/yum.repos.d/
mv backup/* .
2、删除私有仓库.repo源文件或将私有仓库.repo源文件中的enabled=1 改为enabled=0
3.3.6 扩展yum源信息优化
yum install sl cowsay -y
四、系统安全优化
4.1 关闭selinux安全服务功能(selinux由美国国家安全局创建)
-
永久关闭selinux功能(重启系统生效)
vim /etc/selinux/config SELINUX=disabled 功能永久开启:enforcing 功能临时关闭:permissive 功能永久关闭:disabled
运维修改文件规范三步曲:
- 编辑文件进行备份
- 编辑文件进行修改
- 编辑文件进行检查
sed "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config -i grep "=disabled" /etc/selinux/config
-
临时关闭selinux功能(设置立即生效)
setenforce [ enforcing | permissive | 1 | 0 ] 功能永久开启:enforcing / 1 功能临时关闭:permissive / 0
4.2 关闭firewalld安全服务功能
-
服务器防火墙运行状态建议
-
建议开启:服务器可以被外界访问(公网/外网ip)
centos7中操作方法: systemctl start firewalld.service systemctl status firewalld.service systemctl is-active firewalld.service centos6中操作方法: /etc/init.d/iptables start /etc.init.d/iptables status
-
建议关闭:服务器可以被内部访问(私网/内网ip)
centos7中操作方法: systemctl stop firewalld.service systemctl status firewalld.service systemctl is-active firewalld.service centos6中操作方法: /etc/init.d/iptables stop /etc.init.d/iptables status
-
建议关闭:服务器处于高并发状态(公网/外网ip)
centos7中操作方法: systemctl stop firewalld.service systemctl status firewalld.service systemctl is-active firewalld.service centos6中操作方法: /etc/init.d/iptables stop /etc.init.d/iptables status
-
-
服务器防火墙避免开机自启
-
centos6操作系统说明
-
查看开机自启动服务信息
查看所有服务启动状态信息: chkconfig/chkconfig --list 查看指定服务启动状态信息: chkconfig|grep "ipt"
-
修改开机自启动服务状态
查看所有服务启动状态信息: chkconfig/chkconfig --list 修改指定服务启动状态信息: chkconfig iptables off/on
-
-
centos7操作系统说明
-
查看开机自启动服务信息
查看所有服务启动状态信息: systemctl status firewalld.service 查看指定服务启动状态信息: systemctl is-enabled firewalld.service
-
修改开机自启动服务状态
修改服务自动启动状态信息: systemctl enable firewalld.service 修改服务自动关闭状态信息: systemctl disable firewalld.service
-
-
-
防护墙优化四步曲
五、防止系统乱码优化
5.1 出现乱码情况设置
export LANG=en.US-gb2312
echo $LANG
5.2 解决乱码情况设置
-
临时修改系统字符集信息
1、查看系统当前使用字符集 echo $LANG 2、查看系统连接软件字符集 Xshell/SecureCRT 3、确保系统和连接软件一致 export LANG=en_US.utf8
-
永久修改系统字符集信息
1、备份配置信息 cp /etc/locale.conf /etc/locale_bak.conf 2、编写配置文件 echo LANG="en_US.UTF-8"' >/etc/locale.conf source /etc/locale.conf 3、查看配置信息 echo $LANG
-
同时临时永久修改字符集
localectl set-locale LANG=en_US.utf8 source /etc/locale.conf
5.3 设置系统显示中文
-
临时修改中文字符集信息
1、查看系统当前使用字符集 echo $LANG 2、查看系统连接软件字符集 Xshell/SecureCRT 3、确保系统和连接软件一致 export LANG=zh_CN.UTF-8
-
永久修改中文字符集信息
1、备份配置信息 cp /etc/locale.conf /etc/locale_bak.conf 2、编写配置文件 echo 'LANG="zh_CN.UTF-8"' >/etc/locale.conf source /etc/locale.conf 3、查看配置信息 echo $LANG
-
同时临时永久修改字符集
localectl set-locale LANG=zh_CN.UTF-8