Linux 系统优化

Linux 系统优化

image

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 [用户名] (一般用在脚本文件中)
  • 切换用户信息:susu -

    • 二者区别就是su是切换用户,但是切换后的用户缺少相应的文件或环境变量;su -相当于重新登录,切换后的用户携带环境变量或相应文件
    • 通过pwdecho $PATH两个命令查看超管和普通用户切换后的区别
    • root用户切换到普通用户不需要输入密码
    • 普通用户切换到root用户需要输入密码

用户切换原理图:

image


  • 查看当前登录用户信息: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,设置成功+

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 [软件包名称]

image

这样就是从base源上下载好了lrzsz工具包!


  • 安装、卸载、更新操作如下:

1、下载安装包(我是用的是华为源)

  • 打开华为镜像源网站,选择base源下载

image

image

我的是CentOS 7,找到7/-->os/-->x86_64/Packages/,然后去搜索要下载的安装包!(路径显示:/mirrors_os/centos/7/os/x86_64/Packages/)

image

下载好直接拖拽进Xshell框中即可,下载安装包就完成了!

image

image


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安装的生命周期(从下载到结束):

    1. 执行yum install [软件包名称]

    2. /etc/yum.repos.d/目录 找以 .repo (yum源)结尾的文件

    3. 通过 .repo 文件中的链接,找到对应的软件仓库

    4. 在对应的软件仓库中下载指定的软件包

    5. 缓存到/var/cache/yum/

    6. 根据缓存,安装软件包

    7. 删除软件包(在/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
    
    

image

  • 再次初始化尝试验证是否成功,不报错为成功

    [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

image

image


远程版构建

优化本地版,其他机器可以用,接下来用克隆机尝试使用本机的

  • 下载必须的软件包
  • 创建软件仓库
  • 下载对应的软件
  • 初始化软件仓库
  • 添加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
    

image

注:curl 是一种命令行工具,作用是发出网络请求,然后获取数据,显示在"标准输出"(stdout)上面。

  • 如果要把这个网页保存下来,可以使用 -o 参数:
  • curl -o [文件名] [URL]
  • 添加yum源:

    • 命令:yum-config-manager --add-repo=[yum源url根路径]

    • 注意:yum源根路径为含有Packages和repodata两个目录

image

# 添加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 文件

image

  • 测试

    • 命令: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/
    

image

  • 克隆机测试

    [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 
    
    

image

注.下次不能在网页打开本机ip地址,重启nginx服务就可!


3、系统安全优化

3.1 关闭selinux安全服务功能

  • 相关文件:/etc/selinux/conf

  • 永久关闭 :vim /etc/selinux/conf

image

  • 临时关闭/开启(设置立即生效):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博客_镜像源是什么意思)


image


【总结不易,顶一下吧各位老板!】

posted @ 2021-12-16 22:53  HammerZe  阅读(705)  评论(0编辑  收藏  举报