• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

系统优化

开发技术 开发技术 4周前 (09-01) 24次浏览

第1章       系统优化部分

1.1   系统版本      重要

  查看当前的系统版本信息

 方法1: cat /etc/redhat-release

[root@oldboyedu-lnb ~]# cat /etc/redhat-release

 CentOS Linux release 7.5.1804 (Core)

方法2: hostnamectl

[root@oldboyedu-lnb ~]# hostnamectl        # 查看系统的信息
 Static hostname: oldboyedu-lnb
 Icon name: computer-vm
 Chassis: vm
 Machine ID: 1f9751f60a184bb0b6d17d091ffb421a
 Boot ID: 082d427cc7a84f61a095047f5941e325
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)    # 系统版本
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-862.el7.x86_64        # 内核版本
 Architecture: x86-64

  方法3:内核及系统版本

      [root@oldboyedu-lnb ~]# uname -a
 Linux oldboyedu-lnb 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
      [root@oldboyedu-lnb ~]# uname -r
        3.10.0-862.el7.x86_64

1.2  系统时间同步

Linux中有两个时间  对外的服务器 时间必须相同

 系统时间   内核的时间      在系统中进行配置调试
 硬件时间   主板bios的时间    可以在bios中进行调试 在重启后读取系统时间进行同步

  第一个步骤:

  a)如何查看系统时间

  [root@oldboyedu-lnb ~]# date                  # 重点

  Tue Jul 28 10:58:05 CST 2020

  b)如何查看硬件时间

 

 [root@oldboyedu-lnb ~]# clock                 # 重点
Tue 28 Jul 2020 10:58:52 AM CST  -0.649260 seconds
 [root@oldboyedu-lnb ~]# hwclock
 Tue 28 Jul 2020 10:58:59 AM CST  -0.881400 seconds

 第二个步骤:

手动修改系统时间  在测试中会用到 工作中不使用

[root@oldboyedu-lnb ~]# date -s '20180520'       # 重点
Sun May 20 00:00:00 CST 2018

手动修改硬件时间  了解 扩展

[root@oldboyedu-lnb ~]# timedatectl

     第三个步骤:

自动同步当前系统的时间:                                           # 重点

       服务器的域名: ntp1.aliyun.com

      1) 安装ntpdate命令

[root@oldboyedu-lnb ~]# yum -y install ntpdate

      2) 使用ntpdate命令进行时间同步

  [root@oldboyedu-lnb ~]# ntpdate ntp1.aliyun.com
 28 Jul 11:10:08 ntpdate[1745]: step time server 120.25.115.20 offset 69159722.035484 sec

  第四个步骤: 了解 工作中出现问题快速的时间修改正确

                     硬件时间去同步系统时间  以系统时间为主

[root@oldboyedu-lnb ~]# hwclock -w         # -w  --systohc
[root@oldboyedu-lnb ~]# clock
Sun 20 May 2018 12:00:22 AM CST  -0.352920 seconds

系统时间去同步硬件时间  以硬件时间为主

 先更新一下当前的系统时间 硬件的不变

[root@oldboyedu-lnb ~]# ntpdate ntp1.aliyun.com
28 Jul 11:19:24 ntpdate[1774]: step time server 120.25.115.20 offset 69160628.535427 sec
[root@oldboyedu-lnb ~]# hwclock -s        # -s --hctosys
[root@oldboyedu-lnb ~]# date   
Sun May 20 00:02:40 CST 2018

1.3  系统用户  

       用户分为两类:

                     管理员      windows admin  Linux root

                     普通用户     姓名           Linux 姓名

           在工作中尽量不使用root用户 使用普通用户 提高系统的安全性

           第一个步骤: 创建用户 useradd

                     语法:

                     useradd 用户名称(不存在的用户名)

                     useradd: user ‘oldboy’ already exists

                     useradd这个命令: 用户 oldboy 已经存在

          第二个步骤: 如何查看用户是否被创建 使用 id命令

                     语法:

                     id  用户名

[root@oldboyedu-lnb ~]# id alex
id: alex: no such user      # 用户不存在的提示信息
[root@oldboyedu-lnb ~]# id oldboy
uid=1000(oldboy) gid=1000(oldboy) groups=1000(oldboy) # 用户存在提示的信息

 第二种方法查看用户是否创建   

 [root@oldboyedu-lnb ~]# grep oldboy /etc/passwd
 oldboy:x:1000:1000::/home/oldboy:/bin/bash

 第三个步骤: Linux中用户必须有密码才能登陆 配置密码使用passwd          直接使用xshell登陆

语法:

passwd  直接回车   # 修改当前系统用户的密码 当前登陆用户是谁 就修改谁的密码  比如 root 就是修改的root的密码

 passwd  用户名     # 指定修改某个用户的密码

[root@oldboyedu-lnb ~]# passwd alexdsx
Changing password for user alexdsx.         # 改变alexdsx的密码
New password:                               # 输入新密码
BAD PASSWORD: The password is a palindrome
Retype new password:                        # 重新输入新密码
  passwd: all authentication tokens updated successfully. # 密码更改成功

扩展: 面交互配置密码

[root@oldboyedu-lnb ~]# echo 1|passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.
错误的使用方式: passwd 1 oldboy

  第四个步骤: 用户和用户之间进行切换

1) root 切换到普通用户  su命令  root切换到任意用户 不需要密码

     语法:

      su – 普通用户 – 两端必须有空格

 [root@oldboyedu-lnb ~]# su - alexdsx
 Last login: Tue Jul 28 12:02:22 CST 2020 from 10.0.0.1 on pts/0
[alexdsx@oldboyedu-lnb ~]$

  2) 退出到root用户

[alexdsx@oldboyedu-lnb ~]$ exit
logout
[root@oldboyedu-lnb ~]#      

 3) root—> oldboy —>alexdsx

 

   [root@oldboyedu-lnb ~]# su - oldboy
    Last login: Tue Jul 28 12:01:40 CST 2020 on pts/0
    [oldboy@oldboyedu-lnb ~]$ su - alexdsx
    Password:
    Last login: Tue Jul 28 12:08:51 CST 2020 on pts/1
    [alexdsx@oldboyedu-lnb ~]$ exit
   logout
   [oldboy@oldboyedu-lnb ~]$ exit
    logout

 

 4) 远程使用alexdsx连接 执行exit

  [alexdsx@oldboyedu-lnb ~]$ exit        # 直接退出到xshell远程连接界面

    logout

 第五个步骤: 普通用户切换到root用户 需要密码     

   [alexdsx@oldboyedu-lnb ~]$ su - root               # 普通用户切换到root用户
   Password:                                           # root用户的密码
   Last login: Tue Jul 28 12:15:02 CST 2020 from 10.0.0.1 on pts/1
   [root@oldboyedu-lnb ~]#
   [root@oldboyedu-lnb ~]# exit                       # 退出到alexdsx普通用户
    logout
    [alexdsx@oldboyedu-lnb ~]$    

1.4 SElinux   Linux操作系统中的一个安全服务  工作中必须关闭

作用: 为了让系统更加安全

          美国国家安全局开发

          第一个步骤: 查看当前selinux的状态

          Enforcing | Permissive

          开启                             关闭

[root@oldboyedu-lnb ~]# getenforce
Permissive

第二个步骤: 临时关闭selinux                 # 装完操作系统、服务已经运行 不能关闭重启服务器 只能使用临时方式关闭

setenforce [ Enforcing | Permissive | 1 | 0 ]
Enforcing  ===== 1
Permissive ===== 0
[root@oldboyedu-lnb ~]# setenforce 0 # 临时关闭selinux 重启失效 和 setenforce  Permissive 相同

 第三个步骤: 永久关闭selinux

selinux的配置文件 /etc/selinux/config

 [root@oldboyedu-lnb ~]# cat /etc/selinux/config
enforcing           # 完全开启状态
 permissive        # 临时关闭状态 提示警告信息
disabled            # 关闭状态
SELINUX=disabled      # 状态修改成disabled

第四个步骤: 重启操作系统  reboot

PS: 在修改配置文件前 一定要备份cp  file  file.bak |  把原来的配置注释掉 复制一行进行修改PS: 在Linux操作系统中大部分的中括号都是表示 可选项 里面的参数都是或者

PS: centos6.x 关闭selinux的方法和centos7.x相同

1.5  Firewalld  防火墙  系统中的一个服务 大部分服务都是被systemctl进行管理

 作用: 控制数据流

1.5.1   centos6.x操作系统  iptables

1.5.2  centos7.x操作系统  firewalld

           centos7.x 防火墙的启动关闭

1.5.3   如何查看当前防火墙的状态

 [root@oldboyedu-lnb ~]# systemctl status firewalld
active (running)      # 当前状态运行中

1.5.4   如何临时关闭防火墙

[root@oldboyedu-lnb ~]# systemctl stop firewalld.service # 临时关闭 重启失效

1.5.5  如何永久关闭防火墙

 [root@oldboyedu-lnb ~]# systemctl disable firewalld.service

1.5.6  启动防火墙

 [root@oldboyedu-lnb ~]# systemctl start firewalld.service
 systmctl管理服务的动作:
     start            # 开启 启动
     stop             # 停止
    restart          # 重启
    status            # 查看状态
    enable            # 开机自动启动
    disable        # 开机禁止启动
    reload         # 重新加载

  centos6.x管理服务的方法:

   /etc/init.d/服务名  动作

   例:

   /etc/init.d/sshd stop                  

   开机禁止和自启动的管理方法 

   chkconfig 服务 off|on           

1.5.7  centos6.x 防火墙的启动和关闭

        查看防火墙状态

/etc/init.d/iptables status 

         临时关闭防火墙

 /etc/init.d/iptables stop

   启动防火墙

 /etc/init.d/iptables start

 重启防火墙

 /etc/init.d/iptables restart

 禁止开机启动 永久关闭

chkconfig iptables off   # 开机禁止启动iptables  on是开机自动启动

1.5.8  centos6.x 7.x 共同查看防火墙是否开启的命令

 iptables-save    # 查看当前防火墙的配置策略 如果有说明开启状态 没有说明关闭状态

1.5.9   在工作中iptables常用

   centos7.x 使用iptables服务

1.5.9.1   关闭并且禁止开机启动 firewalld   

systemctl stop firewalld
systemctl disable firewalld
 

1.5.9.2   安装iptables服务

 yum -y install iptables-services

1.5.9.3  配置使用iptables即可 

1.5.10   什么情况下开启和关闭防火墙

1.5.10.1 开启的情况:

a. 当服务器有公网IP的情况
b. 当服务器上有对外的服务
c. 阿里云、腾讯云、百度云、亚马逊云等开启防火墙

1.5.10.2 关闭的情况:

        a. 内部测试服务器

        b. 没有公网 没有对外的服务 用户访问不到

        c. 并发(同一时间内 有多少个人同时访问你的服务器)

         安全如保障:

         采用硬件防火墙  成本高

1.6  YUM源 作用: 下载并安装软件的软件仓库

         /etc/yum.repos.d/            # 配置文件的目录

         安装完操作系统 默认随机生成的一个仓库 和配置的DNS有关

1.6.1   更换默认的仓库为阿里云的YUM仓库

1.6.1.1     查看当前的yum仓库  # yum repolist    

[root@oldboyedu-lnb ~]# yum repolist         # 查看当前软件仓库的信息
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com                     
* extras: mirrors.163.com
* updates: mirrors.163.com
repo id                                  repo name                                  status
!base/7/x86_64                           CentOS-7 - Base                            10,070
!extras/7/x86_64                         CentOS-7 - Extras                             412
!updates/7/x86_64                        CentOS-7 - Updates                            900
repolist: 11,382                # 当前软件仓库总弄的软件包的个数

1.6.1.2    备份默认的YUM仓库

 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

1.6.1.3    下载阿里云的YUM仓库 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/

 CentOS 7

 PS: 如果使用wget进行下载 则需要提前安装wget命令 yum -y install wget

1) wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo或者
2) curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

1.6.1.4    查看是否修改成功

 [root@oldboyedu-lnb ~]# yum repolist

Loaded plugins: fastestmirror

 Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com

1.6.2   下载过程或者安装软件过程出错原因

1.6.2.1   服务器不能上网 ping http://www.baidu.com 网络延迟

1.6.2.2   命令复制错误

1.6.2.3    使用wget下载但是提示 wget命令不存在 需要提前安装

1.6.2.4    有其他仓库的缓存 需要清理  yum clean all 清空缓存

1.6.2.5    如果命令 网络 仓库都正常 提示没有可用的包 下载epel仓库 在尝试.

1.6.3    安装额外的软件包 在当前的软件仓库中不存在 需要安装额外的仓库

       sl cowsay  # 当前的YUM仓库中不存在这两个命令

            epel      # 企业额外的常用安装

1.6.3.1   备份(如有配置其他epel源)

1.6.3.2   下载新repo 到/etc/yum.repos.d/

 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

1.6.3.3    安装sl cowsay命令

1.6.3.4    查看当前的所有的YUM仓库

              yum repolist

              PS: yum list # 列出当前软件仓库所有的软件包

1.7    字符集  文字在Linux系统中的一种表示方式

1.7.1   centos 7 字符集修改

            xshell和操作系统的字符集不统一 会产生乱码 xshell默认的字符集 UTF-8

            GBK   国标     

            UTF-8万国码  

            第一步: 查看字符集 使用变量LANG 查看

[root@oldboyedu-lnb ~]# echo $LANG
 en_US.UTF-8

         第二步: 临时修改当前系统的语言

[root@oldboyedu-lnb ~]# export LANG='zh_CN.UTF-8'

         第三步: 查看是否修改成功

[root@oldboyedu-lnb ~]# useradd --help       # 看结果是否中文的

 用法useradd [选项] 登录

第四步: 永久修改 修改配置文件  只要在配置文件中修改的 重启系统肯定生效

[root@oldboyedu-lnb ~]# cat /etc/locale.conf    # 字符集的配置文件

LANG="en_US.UTF-8"

[root@oldboyedu-lnb ~]# cat /etc/locale.conf

#LANG="en_US.UTF-8"

LANG="zh_CN.UTF-8"

    第五步: 让配置文件及时生效

   source. 重新加载运行变量可执行配置文件

[root@oldboyedu-lnb ~]# source /etc/locale.conf

[root@oldboyedu-lnb ~]# cat /etc/locale.conf

#LANG="en_US.UTF-8"

LANG="zh_CN.UTF-8"

[root@oldboyedu-lnb ~]# #source /etc/locale.conf ==== LANG="zh_CN.UTF-8"

[root@oldboyedu-lnb ~]#

[root@oldboyedu-lnb ~]# LANG="zh_CN.UTF-8"

[root@oldboyedu-lnb ~]# LANG="zh_CN.UTF-8"

[root@oldboyedu-lnb ~]# echo $LANG

zh_CN.UTF-8

[root@oldboyedu-lnb ~]# cat 2.txt

echo hehe

[root@oldboyedu-lnb ~]# source 2.txt

hehe

[root@oldboyedu-lnb ~]# echo hehe

hehe

[root@oldboyedu-lnb ~]# . 2.txt

 hehe

第六步: 使用命令永久+临时的方式修改语言

1) 使用localectl命令修改语言

[root@oldboyedu-lnb ~]# localectl set-locale LANG='en_US.UTF-8'

[root@oldboyedu-lnb ~]# echo $LANG

zh_CN.UTF-8

[root@oldboyedu-lnb ~]# cat /etc/locale.conf

 LANG=en_US.UTF-8

2) 重新执行配置文件的内容

    [root@oldboyedu-lnb ~]# source /etc/locale.conf
    [root@oldboyedu-lnb ~]# echo $LANG
    en_US.UTF-8

1.7.2  centos6.x修改字符集

1.7.2.1     临时修改

export LANG=’zh_CN.UTF-8′

1.7.2.2     修改配置文件

/etc/sysconfig/i18n  # centos6.x的字符集配置文件

1.8  系统提示符  命令提示符 我们在什么情况下可以输入命令 工作中很少改动PS1变量

 PS1变量

  [root@oldboyedu-lnb ~]#

       u    h          W

 PS1的常用参数以及含义:

h :仅取主机名中的第一个名字

 t :显示时间为24小时格式,如:HH:MM:SS

 u :当前用户的账号名称

 w :完整的工作目录名称

 W :利用basename取得工作目录名称,只显示最后一个目录名

 第一步: 查看当前的提示符PS1

 [root@oldboyedu-lnb ~]# echo $PS1
 
 [u@h W]$

 第二步: 修改PS1

       W  # 显示当前所在的目录

        w  # 显示当前所在的绝对路径

[root@oldboyedu-lnb ~]# PS1='[u@h w]$'

 第三步: 修改PS1的颜色

临时修改当前提示符的颜色

[root@oldboyedu-lnb ~]# PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@h [e[36;40m]w[e[0m]]\$ "

 永久修改PS1的颜色

 写入/etc/profile

1.9  Vim  增加内容

1.9.1   批量修改文件

    ctrl+v 选中行或列 删除或增加内容

       x  删除选中的内容

       ctrl+v 选中列—> 大写的I 进入插入模式—>输入想要添加的内容—>按两次esc键

1.9.2  使用命令复制粘贴了解

:1copy4              复制第一行到第4行的后面 简写co
:1,2co3              复制1-2行的内容到3行
:1move4             移动第一行的内容到第4行 简写mo

1.9.3  替换文件内容

       格式:底行模式

      s/要替换谁/替换的内容/  s@@@ s###

1.9.3.1   :s/root/oldboy/           # 替换光标所在行的第一个单词

1.9.3.2  :s/root/oldboy/g         # 替换光标所在行的所有的root

1.9.3.3   全局替换                    常用   sed命令

:%s/root/oldboy/g                    # 文件中所有的root都被替换

1.9.4  vim中使用帮助

: help  nu

 退出:q 退出帮助到vim

  PS:Linux中所有的命令都支持直接调用变量

 [root@oldboyedu-lnb ~]# dir=/tmp
 [root@oldboyedu-lnb ~]#
 [root@oldboyedu-lnb ~]# echo $dir
 /tmp
 [root@oldboyedu-lnb ~]# cd $dir
 [root@oldboyedu-lnb tmp]# cd
 [root@oldboyedu-lnb ~]# mkdir $dir/test
 [root@oldboyedu-lnb ~]# ll -d $dir/test 

 


程序员灯塔 , 版权所有
转载请注明原文链接:https://www.wangt.cc/2020/09/%e7%b3%bb%e7%bb%9f%e4%bc%98%e5%8c%96/
喜欢 (0)