3. 操作系统优化

Posted j-chao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3. 操作系统优化相关的知识,希望对你有一定的参考价值。

1. 课程知识回顾

1) 什么是挂载

  • PS: 在挂载的时候,尽量不要使用已经有数据的目录作为挂载点

2) 系统 / 目录下面常见的目录信息

  • /bin /sbin /home /root ...

3) /etc目录中内容 (保存系统或服务的配置文件)

4) /usr/local目录 (保存安装的程序文件)

5) /var (保存的日志文件)

  • messages (系统或服务运行情况 错误信息)
  • secure (用户登录情况)

6) /proc 进程信息 硬件信息 i5 i7

  • PS: /proc 目录中的数据文件是不能随意修改

2. vi命令使用方法--vim?

2.1 vi命令基本用法

1. vi oldboy.txt  --- 利用vi命令打开一个文件
2. 输入i          --- 进入编辑状态
3. 编辑文件内容
4. esc            --- 退出编辑状态
5. :wq            --- 保存退出文件

2.2 vi命令详细使用方式

1. vi有三种模式(互相切换)

 a. 命令模式
 b. 插入模式(编辑模式)
 c. 低行模式


2. 使用技巧
 vi 文件信息
 i   --- 进入编辑模式
 esc --- 退出编辑模式
 :wq --- 保存并退出
 :w
 :q
 :wq!--- 强制保存退出
 :q! --- 强制退出

3. 命令模式-->插入模式
 i   --- 表示从光标所在位置进入编辑状态    
 I   --- 表示将光标移动到一行的行首,再进入编辑状态
 o   --- 在光标所在行的下面,新起一行进行编辑
 O   --- 在光变所在行的上面,新起一行进行编辑
 a   --- 将光标移动到右边的下一个字符,进行编辑
 A   --- 将光标移动到一行的行尾,进入到编辑状态
 C   --- 将光标到行尾内容进行删除,并进入编辑状态
 cc  --- 将整行内容进行删除并进入编辑状态
 总结:移动光标位置,并进入编辑状态方法

4. 只移动光标,不进入编辑状态
 大写字母G   将光标快速切换尾部
 小写字母gg  将光标快速切换首部
 ngg         n表示移动到第几行,例如4gg 移动到第四行
 $           将光标移动到一行的结尾
 0或者^       将光标移动到一行的行首

5. 命令模式--底行模式
 :           输入一些命令
 /           进入搜索状态(向下搜索 n依次向下)
 ?           进入搜索状态(向上搜索 n依次向上)


6. 特殊使用技巧:
 将一行内容进行删除(剪切)   	deletedelete=dd
 将多行内容进行删除(剪切)   	3dd
 将内容进行粘贴              	p
 粘贴多次内容               	3p
 复制一行内容               	yy
 复制多行内容               	3yy	
 操作错误如何还原     	   	小写字母u  undo

3. 系统信息查看方法

3.1 了解系统环境

# 了解系统环境的两个命令:
    1. [root@oldboyedu ~]# cat /etc/redhat-release 
       centos Linux release 7.5.1804 (Core)   --- 获得系统发行版本和具体系统版本信息

    2. [root@oldboyedu ~]# uname -a
       Linux oldboyedu.com 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

PS: 记忆一下centos7系统的内核信息

# 以前你用的linux系统是什么环境的?
centos7 具体型号7.5 内核3.10 64位的

3.2 用户身份

a.老员工/经理     root用户身份管理
b.规范企业新员工  普通用户身份管理

root    --- 皇帝
oldboy  --- 老百姓

# 1. 普通用户如何创建
    useradd  oldgirl
    passwd oldgirl

# 2. 普通用户如何切换
    [oldgirl@oldboyedu ~]$ su - root
    Password: 
    Last login: Mon Apr  8 09:04:09 CST 2019 from 10.0.0.1 on pts/1
    [root@oldboyedu ~]# 

# 3. 普通用户如何查看身份
    3.1查看用户是否存在
    [root@oldboyedu ~]# id oldboy
    uid=1000(oldboy) gid=1000(oldboy) groups=1000(oldboy)
    [root@oldboyedu ~]# id old
    id: old: no such user
    
    3.2查看此时用户身份
    [oldboy@oldboyedu ~]$ whoami
    oldboy

4. 命令提示符优化

优化方法:修改PS1环境变量

  • PS1:定义提示符的信息或格式
# 1. 默认配置: 
    [root@oldboyedu oldboy]# echo $PS1
    [u@h W]$

    u    --- 显示当前登录用户名称
    h    --- 显示系统主机名称
    W    --- 显示当前所在目录信息(目录结构的最后结尾信息)	


# 2. 修改优化方法:
  a. 修改命令提示符的内容:
       [root@oldboyedu.com /etc/sysconfig/network-scripts]# tail -5 /etc/profile
       export PS1=‘[u@H w]$ ‘
       
  b. 命令提示符如何修改颜色:
       Linxu系统中如何给信息加颜色

    [e[F;Bm] 文字内容 e[m

    ”[[e[31;40m]ue[m @h W]$ “

    [root@oldboyedu ~]# tail -5 /etc/profile
    export PS1=‘[e[32;1m][u@h W]$ [e[0m]‘
                 设置颜色    内容         结束     

    export PS1=‘[e[30;1m][u@h W]$ [e[0m]‘  -- 黑色提示符
    export PS1=‘[e[31;1m][u@h W]$ [e[0m]‘  -- 红色提示符
    export PS1=‘[e[32;1m][u@h W]$ [e[0m]‘  -- 绿色提示符
    export PS1=‘[e[33;1m][u@h W]$ [e[0m]‘  -- 黄色提示符
    export PS1=‘[e[34;1m][u@h W]$ [e[0m]‘  -- 蓝色提示符
    export PS1=‘[e[35;1m][u@h W]$ [e[0m]‘  -- 粉色
    export PS1=‘[e[36;1m][u@h W]$ [e[0m]‘  -- 浅蓝 
    export PS1=‘[e[37;1m][u@h W]$ [e[0m]‘  -- 白色

技术图片

5. yum下载源优化

# 1. yum软件优势: 简单 快捷
    a. 不需要到官方网站单独下载软件包(yum仓库)
    b. 可以解决软件的依赖关系


# 2. yum优化方法:
   # a.优化基础的yum源文件
       通过阿里镜像源进行优化: curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
   # b.优化扩展的yum源文件
       通过阿里镜像源进行优化: wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo


# 3. 检查可用的yum源信息
	yum repolist


# 4. 实际下载软件
    yum install sl cowsay -y  --- 需要优化epel扩展源
    sl
    cowsay    oldboy-sz-01
    animalsay oldboy-sz-01
    
=======================================
 
# 如何确认软件是否安装
    1.重新再yum安装一遍
    2.利用rpm命令也可以管理检查软件是否安装
  
# 查看软件是否安装: 
 [root@oldboyedu ~]# rpm -qa sl    -q表示查询 -a表示所有
  sl-5.02-1.el7.x86_64
 
# 查看软件包中有哪些信息
  [root@oldboyedu ~]# rpm -ql cowsay  -l表示列表显示
  /usr/bin/animalsay
  /usr/bin/cowsay
  /usr/bin/cowthink
  
# 查看文件信息属于哪个软件包
 [root@oldboyedu ~]# which ssh
  /usr/bin/ssh
  [root@oldboyedu ~]# rpm -qf /usr/bin/ssh
  openssh-clients-7.4p1-16.el7.x86_64

  [root@oldboyedu ~]# rpm -qf `which ssh`
  openssh-clients-7.4p1-16.el7.x86_64
  
  # PS: 有些命令名称和软件包的名称是不相同的

# 补充: linux和windows软件安装程序区别
    xxx.exe -- windows 安装程序
    xxx.rpm -- linux   安装程序

课程知识重点总结

1. vi命令使用技巧
   a vi命令的三种模式以及切换方法
   b 如何快速移动光标进入编辑状态
   c 如何快速移动光标但不进入编辑状态
   d 如何快速编辑文档内容(删除==剪切 复制 粘贴)
2. 如何查看系统信息
   cat /etc/redhat-release
   uname -a 
3. 如何设置系统用户信息
   a 创建用户并设置密码  useradd passwd
   b 如何切换用户信息    su - 用户名称
   c 查看用户信息方法    id whoami
4. 如何修改命令提示符信息
   如何修改PS1环境变量
   1. 修改命令提示符内容
   2. 修改命令提示符颜色
5. yum源的优化方法
   1. 基础yum源如何优化
   2. 扩展yum源如何优化
      如何进行检查确认: yum repolist --- 查看可用的yum源信息 

6. 课程知识回顾

1. vi的使用方法技巧
2. 系统的信息查看方法 文件/命令
3. 系统用户创建 用户切换 以及查看确认
4. 系统的命令提示符优化
   a 命令提示符格式进行优化
   b 命令提示符颜色优化
   如何让命令提示符是彩色的:
   export PS1=‘[e[32;1m]  [u@h W]$   [e[0m]‘
               开始设置颜色    设置颜色的信息   结束颜色设置
   export PS1=‘[[e[32;1m]u@[e[33;1m]h[e[34;1m] W[e[0m]]$ ‘
5. 系统的yum源文件优化
    a 将yum基础的源进行了优化 (阿里云--清华源)
    b 将yum扩展的源进行了优化 (阿里云--清华源)

7. 将一些安全服务关闭

7.1 防火墙服务程序

centos6
    #查看防护墙服务状态
    /etc/init.d/iptables status

    #临时关闭防火墙服务
    /etc/init.d/iptables stop
    /etc/init.d/iptables status

    #永久关闭防火墙服务
    chkconfig iptables off

centos7
    #查看防火墙服务状态
    systemctl status firewalld

    #临时关闭防火墙服务
    systemctl stop firewalld
    systemctl status firewalld  -- 操作完确认

    #永久关闭防火墙服务
    systemctl disable firewalld


# 补充: 查看服务状态信息简便方法
systemctl is-active firewalld   --- 检查服务是否正常运行
systemctl is-enabled firewalld  --- 检查确认服务是否开机运行

7.2 系统的selinux服务程序

selinux服务 对 root用户 权限进行控制

很多企业中:selinux服务默认关闭

centos6==centos7 

#临时关闭:
    检查确认: 
        getenforce    --- 确认selinux服务是否开启或是关闭的

    如何关闭:  
        [root@oldboyedu ~]# setenforce 
        usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
        Enforcing   1  --- 临时开启selinux
        Permissive  0  --- 临时关闭selinux

        setenforce 0   --- 临时关闭selinux服务

#永久关闭:
    enforcing 	- SELinux security policy is enforced.  
                  selinux服务处于正常开启状态
    permissive 	- SELinux prints warnings instead of enforcing.
                  selinux服务被临时关闭了
    disabled 	- No SELinux policy is loaded.
                  selinux服务彻底关闭
    
    vi /etc/selinux/config
    SELINUX=disabled
    
PS: 如果想让selinux配置文件生效,重启系统

8. 字符编码优化

什么是字符编码:

  • 可以实现对非英文字符的支持

计算机操作系统是谁发明的?

  • --美国人--英语

支持中文比较好的编码:

  • UTF-8 比较通用
  • GBK 比较国际通用

8.1 出现乱码的原因:

  • 系统字符集设置有问题

  • 远程软件字符集设置有问题

  • 文件编写字符集和系统查看的字符集不统一

# 系统中字符集编码设置方法
centos6 
    # 查看默认编码信息:
    [root@oldboyedu ~]# echo $LANG      --- LANG用于设置字符编码信息
    en_US.UTF-8

    # 临时修改:
    [root@oldboyedu ~]# echo $LANG
    en_US.UTF-8
    LANG=XXX

    # 永久修改:
    方法一:
    [root@oldboyedu ~]# tail -5 /etc/profile
    export LANG=‘en_US.UTF-8‘

    方法二:
    vi /etc/sysconfig/i18n
    LANG=‘en_US.UTF-8
    source /etc/sysconfig/i18n

centos7 
    # 查看默认编码信息
    [root@oldboyedu ~]# echo $LANG
    en_US.UTF-8

    # 临时修改:
    [root@oldboyedu ~]# echo $LANG
    en_US.UTF-8
    LANG=XXX

    # 永久修改:
    方法一: 更加有先
    [root@oldboyedu ~]# tail -5 /etc/profile
    export LANG=‘en_US.UTF-8‘
    方法二:
    [root@oldboyedu ~]# cat /etc/locale.conf 
    LANG="zh_CN.UTF-8"

补充:一条命令即临时设置,又永久设置
localectl set-locale LANG=zh_CN.GBK

9. 使xshell远程连接速度加快

第一个步骤:修改ssh服务配置文件
vi /etc/ssh/sshd_config
79  GSSAPIAuthentication no
115 UseDNS no

第二个步骤:修改hosts文件
[root@oldboyedu ~]# vi /etc/hosts
10.0.0.200  oldboyedu.com

第三个步骤:重启ssh远程服务
systemctl restart sshd

10. 系统基础优化总结

1)命令提示符优化 
2)下载yum源优化
3)安全相关优化
   防火墙优化  selinux优化
4)字符集优化
   可以显示中文
   避免出现乱码
5)SSH远程连接优化

作业:

基础作业:
    1. 如何每次登陆系统都提示小牛信息
    2. 课程内容命令总结 快捷方式 符号

	1. 一个软件安装好了,如何利用rpm命令进行卸载
	2. 总结第一个阶段课程知识
	3. 进行一天课程内容复述,录音(全民K歌)

扩展作业:
    1. 如何实现提示符是彩色
       用户信息是红色  主机名信息是绿色  目录信息是蓝色的
    export PS1=‘[[e[31;1m]u@[e[32;1m]h[e[34;1m] W[e[0m]]$ ‘
    1. 如何创建多个用户(创建50个用户 oldboy1..oldboy100)

以上是关于3. 操作系统优化的主要内容,如果未能解决你的问题,请参考以下文章

如何优化C ++代码的以下片段 - 卷中的零交叉

从JVM的角度看JAVA代码--代码优化

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段

solr 学习片段

操作栏标签片段中的片段?

Elasticsearch笔记九之优化