Linux系统优化

一、 系统信息查看方法

  1. 查看系统名称信息
cat /etc/redhat-release

CentOS Linux release 7.9.2009 (Core)
  1. 查看系统内核版本
uname -r

3.10.0-1160.el7.x86_64
  1. 查看系统硬件位数
uname -m

x86_64

二、 系统基础优化

2.1 添加系统普通用户

  • 添加用户
useradd oldboy
  • 设置用户密码(设置的密码信息不能明文显示)
有交互方式:
passwd oldboy

免交互方式:
echo 123456|passwd --stdin oldboy
  • 切换用户信息(普通用户在删除不属于自己的文件时会提示权限阻止)
root用户切换到普通用户不需要输入密码:
su - oldboy

普通用户切换到root用户需要输入密码:
su - root

Linux系统优化
* 查看用户信息
whoami  : 当前窗口登录的用户
who     : 当前用户登录系统的终端

2.2 命令提示信息优化

  • 变量说明
  • 设置变量相当于编辑书的目录
Info=oldboy
  1. 读取变量相当于读取书的内容
echo $Info
  • 环境变量

    环境变量:表示大部分情况都会用到的变量 系统默认的为大写方式书写变量:

    Linux系统优化
  • 修改调整
  • 临时设置环境变量:
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上增加了自动解决依赖的功能;
源代码安装:通过编译源代码获得软件包;优点是可以定制软件包,缺点是比较复杂。

[En]

Source code installation: get the software package by compiling the source code; the advantage is that the software package can be customized, but the disadvantage is that it is more complex.

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

运维人员修改档案规格分为三步:

[En]

There are three steps for operation and maintenance staff to modify the file specification:

1. 编辑文件进行备份
2. 编辑文件进行修改
3. 编辑文件进行检查

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安全服务功能

  • 对服务器防火墙运行状态的建议
    [En]

    recommendation on the running status of the server firewall*

  • 建议开启:服务器可以被外界访问(公网/外网ip)
centos7中操作方法:systemctl start firewalld.servicesystemctl status firewalld.servicesystemctl is-active firewalld.servicecentos6中操作方法:/etc/init.d/iptables start/etc.init.d/iptables status
  • 建议关闭:服务器可以被内部访问(私网/内网ip)
centos7中操作方法:systemctl stop firewalld.servicesystemctl status firewalld.servicesystemctl is-active firewalld.servicecentos6中操作方法:/etc/init.d/iptables stop/etc.init.d/iptables status
  • 建议关闭:服务器处于高并发状态(公网/外网ip)
centos7中操作方法:systemctl stop firewalld.servicesystemctl status firewalld.servicesystemctl is-active firewalld.servicecentos6中操作方法:/etc/init.d/iptables stop/etc.init.d/iptables status
  • 服务器防火墙,避免自启动
    [En]

    Server firewall to avoid self-booting*

  • centos6操作系统说明
    • 查看开机自启动服务信息
查看所有服务启动状态信息:<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>View all service startup status information:</font>*</details>chkconfig/chkconfig --list查看指定的服务启动状态信息:<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>View the specified service startup status information:</font>*</details>chkconfig|grep "ipt"
+ 修改开机自启动服务状态
查看所有服务启动状态信息:<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>View all service startup status information:</font>*</details>chkconfig/chkconfig --list修改指定的服务启动状态信息:<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>Modify the specified service startup status information:</font>*</details>chkconfig iptables off/on
  • centos7操作系统说明
    • 查看开机自启动服务信息
查看所有服务启动状态信息:<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>View all service startup status information:</font>*</details>systemctl status firewalld.service查看指定的服务启动状态信息:<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>View the specified service startup status information:</font>*</details>systemctl is-enabled firewalld.service
+ 修改开机自启动服务状态
修改服务的自动启动状态信息:<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>Modify the automatic startup status information of the service:</font>*</details>systemctl enable firewalld.service修改服务的自动关机状态信息:<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>Modify the automatic shutdown status information of the service:</font>*</details>systemctl disable firewalld.service

Linux系统优化

五、防止系统乱码优化

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

Original: https://www.cnblogs.com/JZjuechen/p/15694849.html
Author: JZEason
Title: Linux系统优化

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524291/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 线段树扫描线(一) 矩形面积 以hdu 1542为例

    还是老规矩,传送门 hdu 1542 不做过多解释了,就是给出n个矩形,求出这些矩形所覆盖的面积和。由于n很小,因而这道题不是必须用线段树 先想想怎么办,先来一个例图(稍微有点复杂…

    Linux 2023年6月6日
    0108
  • 嵌入式软件架构设计-消息交互

    1、前言 在熟悉任务调度、程序分层和模块化编程关于软件架构、分层和模块设计后,除了函数调用设计中出现的情况外,还会遇到同层模块之前如何进行消息交互,通常是应用层之间。 比如一个设备…

    Linux 2023年6月7日
    0105
  • 【实操填坑】在树莓派上编译 EtherCAT IgH Master 主站程序

    官网下载地址:https://etherlab.org/download/ethercat/ (可list查看文件列表)https://etherlab.org/download/…

    Linux 2023年6月7日
    0124
  • ​Linux知识点总结(内附思维导图,建议收藏)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0102
  • 【证券从业】金融基础知识-第四章 股票03

    注1:后续学习并整理到第八章,全书完结后再合并成一个笔记进行源文件分享 注2:本章内容巨多,大约分为三篇文章记录消化 posted @2022-06-08 01:28 陈景中 阅读…

    Linux 2023年6月13日
    097
  • shell 下载aliplayer 的视频

    #!/bin/bash url="http://v.example.com/8dedaec32ca9415eaa8ccd423ee33bf3/" #下载视频索引…

    Linux 2023年5月28日
    0100
  • 多级缓存-redis缓存预热

    冷启动:服务刚刚启动时,Redis中并没有缓存,如果所有商品数据都在第一次查询时添加缓存,可能会给数据库带来较大压力。 缓存预热:在实际开发中,我们可以利用大数据统计用户访问的热点…

    Linux 2023年5月28日
    086
  • LRU原理和Redis实现——一个今日头条的面试题(转载)

    很久前参加过今日头条的面试,遇到一个题,目前半部分是如何实现 LRU,后半部分是 Redis 中如何实现 LRU。 我的第一反应是操作系统课程里学过,应该是内存不够的场景下,淘汰旧…

    Linux 2023年5月28日
    085
  • clang 分四步编译main.c

    这里用的clang/clang++ 分四步编译main.c/main.cpp文件 1.1 C++源文件 #include int main() { std::cout <&l…

    Linux 2023年6月13日
    071
  • kafka-部署

    kafka部署 版本选择: Scala 2.12-kafka_2.12-2.7.0.tgz #版本格式 kafka_scala版本_kafka版本 部署三台服务器的高可用kafka…

    Linux 2023年6月14日
    0103
  • Docker异常时区问题

    Docker异常时区问题 在使用 docker 部署 elastalert 时,查看日志发现默认是 UTC 时间,比我们的现有的时间慢了八小时,通过 date命令查看,也是 UTC…

    Linux 2023年6月8日
    0104
  • 5.7 Linux Vim可视化模式

    相信大家都使用过带图形界面的操作系统中的文字编辑器,用户可以使用鼠标来选择要操作的文本,非常方便。在 Vim 编辑器中也有类似的功能,但不是通过鼠标,而是通过键盘来选择要操作的文本…

    Linux 2023年6月7日
    0118
  • CentOS-7配置fastDFS文件服务器和安装Nginx

    配置步骤实在是很繁琐,听我慢慢道来! 主要是配置管理(tracker)和存储(storage)返回地址样式 –> 域名/组名/磁盘名/目录名/文件名 &#8211…

    Linux 2023年6月13日
    092
  • FusionAccess模板制作并发放

    FusionAccess安装并对接 具体安装步骤欢迎参照我的博客:https://www.cnblogs.com/kongshuo/p/16333561.html 在FC上创建wi…

    Linux 2023年6月8日
    0137
  • 定时任务调度

    一、crond任务调度 概述: 使用crontab 指令进行定时任务的设置,任务调度是指系统在某个时间端执行的特定任务或程序,例如:病毒扫描,数据库备份等 基本语法: cronta…

    Linux 2023年6月6日
    0129
  • jmeter beanshell 从文件中获取随机参数

    loadruner 参数化有个功能,可以设置在脚本每次出现参数时,自动更换参数值。在做jmeter自动化测试过程中,同一个请求中出现多个参数值,如一个接口可以添加n个信息的请求 […

    Linux 2023年5月28日
    0211
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球