Linux 系统优化
Linux 系统优化
1、系统信息查看方法
-
查看系统名称信息:
# cat /etc/redhat-release CentOS release 7.5.1804
-
查看系统内核版本
# uname -r 3.10.0-862.el7.x86_64
-
查看系统硬件位数
# uname -m x86_64
-
查看系统所有信息
- 参数 :
-a
[root@localhost ~]# uname Linux [root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
- 参数 :
2、系统基础优化
2.1、添加系统普通用户
-
添加系统普通用户:
useradd [用户名]
-
设置用户密码 :
passwd [用户名]
- 免交互模式:
echo [密码]|passwd --stdin [用户名]
(一般用在脚本文件中)
- 免交互模式:
-
切换用户信息:
su
和su -
- 二者区别就是
su
是切换用户,但是切换后的用户缺少相应的文件或环境变量;su -
相当于重新登录,切换后的用户携带环境变量或相应文件 - 通过
pwd
和echo $PATH
两个命令查看超管和普通用户切换后的区别 - root用户切换到普通用户不需要输入密码
- 普通用户切换到root用户需要输入密码
- 二者区别就是
用户切换原理图:
-
查看当前登录用户信息:
whoami
命令[root@localhost ~]# whoami root
-
查看当前用户登录系统的终端 :
who
命令[root@localhost ~]# who root tty1 2021-12-15 08:50 root pts/0 2021-12-15 15:14 (192.168.15.1) root pts/2 2021-12-15 16:52 (192.168.15.1) # tty和pts的含义 tty ---- 代表虚拟机开的窗口 pts ---- 代表此时Xshell开的窗口
2.2、命令提示信息优化
- 通过
echo $PS1
命令修改显示命令行提示符格式信息
临时切换提示
-
大写方式
[root@localhost ~]# echo $PS1 [\u@\h \W]\$ # 大写方式只能显示路径基名,不显示完全路径 [root@localhost ~]#cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]#
-
小写方式
[root@localhost ~]# PS1='[\u@\h \w]\$' # 通过小写方式这样就能显示完整路径了 [root@localhost ~]#cd /etc/sysconfig/network-scripts/ [root@localhost /etc/sysconfig/network-scripts]#
永久设置切换提示
- 相关文件:
/etc/profile
- 在profile文件内添加
export PS1='[\u@\h \w]\$ '
- 重载文件命令:
source
- 重载文件:
source /etc/profile
,设置成功+
- 在profile文件内添加
2.3、下载的源信息更新
2.3.1、 Linux中安装软件
-
安装软件的三种方式
-
rpm
安装 -
yum
安装 -
源代码编译安装
-
区别:
rpm
安装:类似于windows中的安装包,下载下来之后直接安装。rpm
缺点:不能解决依赖
yum
安装:基于rpm安装,也就是在rpm
安装上增加了自动解决依赖的功能源代码安装
:通过编译源代码,得到软件包- 优点:可以自定制软件包
- 缺点:是比较复杂
注:
依赖
通俗理解为,如果下载wps,那么在下载的同时,wps就会自动下载了word/excel/ppt等必备软件,这样就是解决了依赖,如果下载了wps没有自动下载word等软件,就是没有解决依赖*
2.3.2、三种安装详细操作
RPM安装
- 命令:
- 安装:rpm -ivh [软件包名称]
- 卸载:rpm -e [软件包名称]
- 升级:rpm -Uvh [软件包名称]
- 查看软件包配置文件:rpm -qc [软件包名称]
- 查看是否安装某软件:rpm -q [软件包名称]
- 查看当前系统安装了哪些软件:rpm -qa [软件包名称]
- 查看软件的安装路径内的内容:rpm -ql [软件包名称]
-
安装前戏:
-
执行上传与下载命令:
yum install lrzsz -y
-
lrzsz:上传和下载从Windows到Linux服务器直接的一个工具包,作用是下载好的安装包可以直接托到linux中
-
👉[华为开源镜像站](华为开源镜像站_软件开发服务_华为云 (huaweicloud.com))
这样就是从base源上下载好了lrzsz工具包!
- 安装、卸载、更新操作如下:
1、下载安装包(我是用的是华为源)
- 打开华为镜像源网站,选择base源下载
我的是CentOS 7,找到7/-->os/-->x86_64/Packages/,然后去搜索要下载的安装包!(路径显示:/mirrors_os/centos/7/os/x86_64/Packages/)
下载好直接拖拽进Xshell框中即可,下载安装包就完成了!
2、安装
# 安装命令
[root@localhost ~]# rpm -ivh zsh-5.0.2-34.el7_8.2.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:zsh-5.0.2-34.el7_8.2 ################################# [100%]
[root@localhost ~]# zsh
3、卸载
# 卸载命令
[root@localhost]~# rpm -e zsh
[root@localhost]~# zsh
zsh: command not found: zsh
4、更新
# 更新命令
[root@localhost]~# rpm -Uvh zsh-5.0.2-34.el7_8.2.x86_64.rpm
Preparing... ################################# [100%]
package zsh-5.0.2-34.el7_8.2.x86_64 is already installed
[root@localhost]~# zsh
5、软件包名称解释
zsh-5.0.2-34.el7_8.2.x86_64.rpm
软件包名称:zsh
版本号:5.0.2
第多少次编译:34
适用的平台:el7_8(CentOS 7)
适用的系统位数:x86_64
扩展名:rpm
6、补充操作
# 查看软件包的配置文件有哪些
[root@localhost]~# rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc
# 查看是否安装某软件
# 有的话显示软件包信息
[root@localhost]~# rpm -q zsh
zsh-5.0.2-34.el7_8.2.x86_64
# 没有安装输出未安装
[root@localhost]~# rpm -q asfgghl
package asfgghl is not installed
# 查看当前系统安装了哪些软件
[root@localhost]~# rpm -qa
#查看软件的安装路径内的内容
[root@localhost ~]# rpm -ql zsh
yum安装命令介绍
-
格式:yum [参数][进行的操作][软件包名称]
-
参数 :
-y
,安装,卸载,更新使用-y参数是免交互模式,不需要确认y/N,--nogpgcheck
:忽略公钥认证安装
-
yum命令:
- 安装:yum install [软件包的名称]
- 卸载:yum remove [软件包的名称]
- 更新:yum update [软件包的名称]
- 查看软件源中是否有此软件:yum list [软件包的名称]
- 清空yum缓存:yum clean all
- 生成缓存:yum makecache
- 列出设定yum源的信息:yum repolist
- 清除缓存目录下的软件包:yum clean packages
-
yum安装的生命周期(从下载到结束):
-
执行
yum install [软件包名称]
-
去
/etc/yum.repos.d/
目录 找以.repo
(yum源)结尾的文件 -
通过
.repo
文件中的链接,找到对应的软件仓库
-
在对应的
软件仓库
中下载指定的软件包
-
缓存到
/var/cache/yum/
-
根据缓存,安装软件包
-
删除软件包(在/etc/yum.conf中有参数
keepcache
代表是否保存缓存,0 代表不保存 , 1 代表保存)
注:rpm其实就是只执行了最后一步
-
-
相关文件:
-
yum的配置文件:
/etc/yum.conf
-
安装包缓存目录:
/var/cache/yum/
-
软件仓库目录 :/etc/yum.repos.d/
-
注:如果跟具体的软件包名称,就会更新指定软件包;如果没有指定,则更新系统所有的需要更新的软件包。
yum私有仓库构建
私有仓库分类:本地版、远程版
本地版构建步骤
本地版是本机使用
-
下载必须的软件包
yum install yum-utils createrepo -y
注:使用'yum-utils'来维护YUM并提高其性能,[yum-utils包详解]((29条消息) 怎么让linux支持yum,如何安装和使用'yum-utils'来维护Yum并提高其性能_火车合鸟子的博客-CSDN博客)
-
创建软件仓库
[root@localhost opt]# mkdir -p /opt/repos [root@localhost repos]# pwd /opt/repos
-
初始化软件仓库
- 命令:createrepo [软件仓库路径]
# 初始化仓库 [root@localhost ~]# createrepo /opt/repos/ Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete # 切换路径查看初始化结果,多了一个repodata目录 [root@localhost ~]# cd /opt/repos/ [root@localhost repos]# ll total 4 drwxr-xr-x 2 root root 4096 Dec 16 20:47 repodata # repodata目录内存储的是对应关系,不要修改
-
初始化后创建
Packages
目录,下载对应的软件包,我用zsh做例子(华为源提前下载好的)[root@localhost repos]# mkdir /opt/repos/Packages [root@localhost repos]# ll total 4 drwxr-xr-x 2 root root 6 Dec 16 20:51 Packages drwxr-xr-x 2 root root 4096 Dec 16 20:47 repodata # 此时/repos里面就有两个目录,Packages下存放安装包,移动准备好的软件安装包(zsh举例) [root@localhost repos]# mv /root/zsh-5.0.2-34.el7_8.2.x86_64.rpm Packages/ [root@localhost repos]# ll /opt/repos/Packages/ total 2440 -rw-r--r-- 1 root root 2497380 Dec 16 15:37 zsh-5.0.2-34.el7_8.2.x86_64.rpm
-
再次初始化尝试验证是否成功,不报错为成功
[root@localhost repos]# createrepo /opt/repos/ Spawning worker 0 with 1 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete # 没有报错代表成功了
-
添加yum源
# 防止原有的源影响测试本地源结果 # 去yum源,做备份 [root@localhost repos]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# mkdir backup [root@localhost yum.repos.d]# mv *.repo backup/ [root@localhost yum.repos.d]# ll total 4 drwxr-xr-x 2 root root 237 Dec 16 21:04 backup # 添加本地yum源 [root@localhost ~]# yum-config-manager --add-repo=file:///opt/repos Loaded plugins: fastestmirror adding repo from: file:///opt/repos [opt_repos] name=added from: file:///opt/repos baseurl=file:///opt/repos enabled=1 # 切换目录,查看是否添加yum源 [root@localhost repos]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ll total 4 drwxr-xr-x 2 root root 268 Dec 16 21:07 backup -rw-r--r-- 1 root root 85 Dec 16 21:09 opt_repos.repo # 成功添加opt_repos.repo # 查看,发现源下载链接变为本地的file:// [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为不启用
-
清理缓存,生成缓存
# 清理 [root@localhost yum.repos.d]# yum clean all Loaded plugins: fastestmirror Cleaning repos: opt_repos Cleaning up list of fastest mirrors Other repos take up 664 M of disk space (use --verbose for details) # 生成 [root@localhost yum.repos.d]# yum makecache Loaded plugins: fastestmirror Determining fastest mirrors opt_repos | 2.9 kB 00:00:00 (1/3): opt_repos/filelists_db | 5.7 kB 00:00:00 (2/3): opt_repos/other_db | 1.6 kB 00:00:00 (3/3): opt_repos/primary_db | 2.5 kB 00:00:00 Metadata Cache Created
-
测试
[root@localhost yum.repos.d]# yum install zsh
现在下载已经是本地添加的源下载,
opt_repos
远程版构建
优化本地版,其他机器可以用,接下来用克隆机尝试使用本机的
- 下载必须的软件包
- 创建软件仓库
- 下载对应的软件
- 初始化软件仓库
- 添加yum源
- 生成缓存
上面列出这几步和本地版完全一样参考上面,下面步骤续上步骤
-
获取华为开源网站中Base源url内容
# 本地只有一个安装包,去华为开源网站获取,执行以下命令 [root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
注:curl 是一种命令行工具,作用是发出网络请求,然后获取数据,显示在"标准输出"(stdout)上面。
- 如果要把这个网页保存下来,可以使用
-o
参数:- curl -o [文件名] [URL]
-
添加yum源:
-
命令:yum-config-manager --add-repo=[yum源url根路径]
-
注意:yum源根路径为含有Packages和repodata两个目录
-
# 添加yum源
[root@localhost yum.repos.d]# yum-config-manager --add-repo=https://repo.huaweicloud.com/epel/7/x86_64/
Loaded plugins: fastestmirror
adding repo from: https://repo.huaweicloud.com/epel/7/x86_64/
[repo.huaweicloud.com_epel_7_x86_64_]
name=added from: https://repo.huaweicloud.com/epel/7/x86_64/
baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
enabled=1
-
安装远程访问软件(Nginx)
# 忽略公钥安装 [root@localhost yum.repos.d]# yum install nginx --nogpgcheck
-
修改nginx的配置文件
[root@localhost yum.repos.d]# rpm -qc nginx /etc/logrotate.d/nginx /etc/nginx/fastcgi.conf /etc/nginx/fastcgi.conf.default /etc/nginx/fastcgi_params /etc/nginx/fastcgi_params.default /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/mime.types /etc/nginx/mime.types.default /etc/nginx/nginx.conf /etc/nginx/nginx.conf.default /etc/nginx/scgi_params /etc/nginx/scgi_params.default /etc/nginx/uwsgi_params /etc/nginx/uwsgi_params.default /etc/nginx/win-utf # 只修改/etc/nginx/nginx.conf文件 注释掉:include /etc/nginx/conf.d/*.conf; 修改路径: root /opt/repos; 添加索引:autoindex on; ---# 作用是目录索引
vim /etc/nginx/nginx.conf 文件
-
测试
- 命令:nginx -t
[root@localhost yum.repos.d]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # 测试成功
-
启动nginx
[root@localhost yum.repos.d]# systemctl start nginx
-
关闭selinux和firewalld
[root@localhost ~]# systemctl disable --now firewalld [root@localhost ~]# setenforce 0
-
浏览器测试
浏览器查看本机http://192.168.15.100/
-
克隆机测试
[root@localhost ~]# cd /etc/yum.repos.d/ # 装yum-utils扩展 [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]# ll total 0 drwxr-xr-x. 2 root root 268 Dec 16 22:18 backup # 添加yum源 [root@localhost yum.repos.d]# yum-config-manager --add-repo=http://192.168.15.100/ Loaded plugins: fastestmirror adding repo from: http://192.168.15.100/ [192.168.15.100_] name=added from: http://192.168.15.100/ baseurl=http://192.168.15.100/ enabled=1 # 清理缓存、生成缓存 [root@localhost yum.repos.d]# yum clean all [root@localhost yum.repos.d]# yum makecache # 测试下载 [root@localhost yum.repos.d]# yum install zsh
注.下次不能在网页打开本机ip地址,重启nginx服务就可!
3、系统安全优化
3.1 关闭selinux安全服务功能
-
相关文件:/etc/selinux/conf
-
永久关闭 :vim /etc/selinux/conf
- 临时关闭/开启(设置立即生效):setenforce 0 /1(0代表临时关闭,1代表开启).
[root@localhost]~# setenforce 0
[root@localhost]~# setenforce 1
3.2关闭防火墙
-
防火墙底层:
- firewalld 底层 --> iptables -->系统安全框架
-
查看防火状态:
- systemctl status firewalld
-
暂时关闭防火墙
- systemctl stop firewalld
-
永久关闭防火墙
- systemctl disable firewalld
-
重启防火墙
- systemctl enable firewalld
-
启动防火墙
- systemctl start firewalld
4、防止系统乱码优化
4.1 出现乱码情况设置
# 查看字符集
[root@localhost ~]# echo $LANG
en_US.UTF-8
# 设置字符集
export LANG=en.US-gb2312
# 查看字符集
[root@localhost ~]# echo $LANG
en.US-gb2312
4.2 解决乱码 情况设置
- 临时修改系统字符集信息
# 查看系统当前使用字符集
echo $LANG
# 设置字符集
export LANG=en.US-gb2312
# 设置中文的
export LANG=zh_CN.UTF-8
- 永久修改系统字符集信息
# 备份配置信息
cp /etc/locale.conf /etc/locale.conf
# 编写配置文件
echo 'LANG="en_US.UTF-8"' >/etc/locale.conf
source /etc/locale.conf
# 查看配置信息
echo $LANG
补充知识:
- 什么是源?
源就是来源,就是你安装软件时,程序从哪里获取软件包(安装程序在你的机器上,但需要安装的东西却在软件源服务器上)。
什么是软件源?
软件源就相当于软件库,需要安装什么软件,只需要简单使用命令来进行安装,其实你可以把他称为
软件仓库
。安装软件时,就是从仓库里面调取数据放在你的机器上。
什么是镜像?
镜像,原意是光学里指的物体在镜面中所成之像。引用到电脑网络上,一个网站的镜像是指对一个网站内容的拷贝。镜像通常用于为相同信息内容提供不同的源,特别是在下载量大的时候提供了一种可靠的网络连接。制作镜像是一种文件同步的过程。“镜像网站”(英文:Mirror sites [1] ),又译作“镜像站点” ,亦即把一个互联网上的网站数据“拷贝”到本地服务器,并保持本地服务器数据的同步更新,因此也称为“复制网络站点” 。
镜像源就是把官方的源做一个镜像,你可以在这下载软件。
官方源如果在国外,下载软件可能会很慢,这时候就需要换成国内的镜像源。
👉[源概念参考博文]((29条消息) 什么是源,什么是镜像_xiaoxiannv666的博客-CSDN博客_镜像源是什么意思)
【总结不易,顶一下吧各位老板!】