当前位置: 首页 > news >正文

七、安装Centos7+8系统+超级优化

文章目录

  • 自动化优化集合
    • 虚拟机一次安装组件命令
    • CentOS8命令补全
    • CentOS8替yum换源
    • CentOS8禁用SELINUX、防火墙
    • CentOS8网络管理
      • 修改网卡配置文件
      • 配置虚拟机网卡为NAT模式
      • 使用network管理网络
      • 修改网卡名为eth0
        • 安装系统之前修改
        • 安装系统之后修改
    • CentOS8修改时区
      • 修改前后效果对比
        • 修改前
        • 修改后
  • 系统安装与优化
    • vmware workstation的使用
    • 安装Centos
    • 分区方案:
    • xshell
    • 安装系统后的优化
    • 单用户模式
    • Linux系统目录结构

自动化优化集合

虚拟机一次安装组件命令

yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml2-dev libxslt-devel gd-devel perl-devel perl-ExtUtils-Embed GeoIP GeoIP-devel GeoIP-data pcre-devel make zlib-devel gcc-c++ libtool openssl openssl-devel htop net-tools.x86_64 python3 python2 httpd-tools rpcbind

CentOS8命令补全

dnf install bash-completion -y
source /etc/profile.d/bash_completion.sh

CentOS8替yum换源

若无CentOS-Base.repo会提示找不到文件,忽略即可

# 替换base源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
dnf install -y wget
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

# 替换epel源
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

# 重建缓存
yum makecache

# 解决使用yum时【Module yaml error: Unexpected key in data: static_context [line 9 col 3]】的报错
yum update libmodulemd

CentOS8禁用SELINUX、防火墙

# 防火墙
systemctl disable --now firewalld.service

# SELINUX
# 关闭
setenforce 0
# 禁用
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

CentOS8网络管理

修改网卡配置文件

网卡配置(网关要与宿主机一致,ip要与网关在同一网段)

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.120
GATEWAY=10.0.0.254
NETMASK=255.255.255.0
DNS=114.114.114.114
DNS=223.5.5.5

image-20220921163337776

image-20220921163304623

配置虚拟机网卡为NAT模式

参考:准备虚拟机网络环境

网关的地址是192.168.88.2为什么不是192.168.88.1呢,因为这个ip地址被你的电脑虚拟网卡用掉了,用来和物理机通信的。配置静态ip地址的时候,千万记住网关要配置成跟这里一模一样才可以上网

image-20220921163429199

image-20220921163448473

使用network管理网络

不用自带的nmcli命令(NetworkManager服务),使用原来的systemctl命令(network服务)

# 安装启动network
dnf install -y -q network-scripts
systemctl enable --now network

# 关闭NetworkManager
systemctl disable --now NetworkManager

# 卸载NetworkManager(非必须)
dnf remove -y NetworkManager

修改网卡名为eth0

修改网卡名为eth0
PS:需在安装系统之前,第一次打开虚拟机时才可以,若安装完系统,则需进入系统修改,见下面教程

安装系统之前修改

出现安装界面时使用键盘上下键移动,到第一行即Install Centos Linux 7然后按tab键,传递内核参数修改,以更改网卡名称为eth0

net.ifnames=0 biosdevname=0 

安装系统之后修改

# 备份配置文件
\cp /etc/default/grub /etc/default/grub.bak
# 修改配置文件
sed -i 's/rhgb/net.ifnames=0 &/' /etc/default/grub
# 生成启动文件
grub2-mkconfig -o /boot/grub2/grub.cfg

# 重启系统生效
reboot

CentOS8修改时区

修改默认时区为北京,时间显示且为24小时

rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
yum install wntp

# 修改时区
tzselect

#更新时间
ntpdate -d 182.92.12.11

# 重新创建软连接
rm /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

修改前后效果对比

修改前

[root@localhost ~]# date
2022年 09月 21日 星期三 06:04:22 EDT

修改后

[root@localhost ~]# date
2022年 09月 21日 星期三 18:09:10 CST

系统安装与优化

vmware workstation的使用

.iso结尾的镜像文件:镜像文件就是一种“特殊格式的压缩包”

三种连接模式:

​ 桥接:与真机处于同一个LAN中(容易与真机ip冲突)自动连接到真机以太网

​ NAT:vmnet8

​ 仅主机:vm只能与宿主机以及其他vm通信(不能与外网通信)vmnet1

安装Centos

准备工具:

一台装有操作系统的计算机

光盘/U盘/移动硬盘

Centos7-64.iso镜像压缩包

老毛桃系统盘制作工具

1、将U盘插入装有操作系统的计算机,用老毛桃工具将镜像文件写到U盘,拔下U盘;

2、将U盘插入需要装系统的计算机,开机,按下F2进入bios,boot选项栏,将U盘启动调至首位,F10保存重启;

3、重启后进入系统安装界面,一路傻瓜式

配置选项部分:

语言可选中文,只用于当前配置系统的设置过程

网络设置打开开关,后期在系统内手动配置即可

时区位置手动填写shanghai即可

安装模式最小化,选项选前三+后1,勾选如图:

image-20220921170116160

分区:手动分区,方案往下看;

分区方案:

# 推荐方案
/boot	256MB
swap	768MB
/		19GB

说明
# 方案1>常规
/boot:建议大小300M-500M,放引导程序,相当于Windows的c盘
swap:虚拟内存,保命用,占用的硬盘空间,物理内存的1.5-2倍,物理内存4g就分8g,勿超过8g
/:根分区,剩余的所有空间

# 方案二>数据库及存储角色的服务器(本方案其实就是把重要数据数据单独分区,便于备份和管理)

/boot:建议大小300M-500M,放引导程序,相当于Windows的c盘
swap:虚拟内存,保命用,占用的硬盘空间,物理内存的1.5-2倍,物理内存4g就分8g,勿超过8g
/:根分区,50-200g,只存放系统相关文件,网站业务数据不放于此
/data:剩余的所有硬盘空间


# 方案三>此方法灵活,比较适合业务线,需求较多或不确定的大企业使用
/boot:建议大小300M-500M,放引导程序,相当于Windows的c盘
swap:虚拟内存,保命用,占用的硬盘空间,物理内存的1.5-2倍,物理内存4g就分8g,勿超过8g
/:根分区,50-200g,只存放系统相关文件,网站业务数据不放于此
剩余空间不分区,保留,将来分配给部门,由他们根据需求再分


# 注意:
root密码杜绝弱密码

xshell

用来远程登录连接虚拟机或主机的远程连接工具,可远程控制操作Linux系统,便于管理

PS:需要输入以下信息:

ip+端口

用户名+密码

 xhell(ssh客户端)------------网络(socket套接字)-----------服务器openssh-server 端口22

安装系统后的优化

​ 1、根据经验,选择安装包时应该按最小化原则,既不需要的或不确定的就不安装,这样可以最大程度上确保系统安全;

​ 2、如果安装过程忘记勾选某些包组,可通过以下命令来直接安装补上:

​ 包组补充安装:

yum groupinstall "Compatibility libraries" "Base" "Development tools" yum groupinstall "debugging Tools" "Dial-up Networking Support" 

​ PS:可通过yum groupinfo包组查看具体安装的组件,查看选包情况

​ PS:不要使用yum来删除软件,会删除相关依赖,导致意外问题

​ 系统还有一些基本的工具没装,这时可以根据需求用yum来装

​ 安装系统补装工具命令:

yum -y install tree nmap sysstat lrzsz dos2unix telnet bash-completion bash-completion-extras vim lsof net-tools rsync ntpdate nfs-utils

​ 如果需要更新补丁:yum update(一般在刚装完系统后检查更新,后期需谨慎升级!保证稳定性)

​ 修改网络配置文件:vim /etc/sysconfig/network-scripts/ifcfg-eth0

单用户模式

单用户下修改root密码

方式一:

1、开机时进入grub启动菜单界面,按下E键

2、找到ro一行,将ro替换为rw,段落末尾追加enforcing=0 init=/bin/bash,ctrl+x保存跳转

image-20220921165736666

3、输入passwd root,输入两次新密码,输入exec /sbin/init,回车重启,成功修改root密码。

image-20220921165757174

方式二:

image-20220921165841375

image-20220921165912446

image-20220921165942960

Linux系统目录结构

目录说明
/处于Linux系统树形结构的顶端,它是Linux文件系统的入口,所有的目录、文件、设备都在/之下
/binBin****是Binary的缩写。常用的二进制命令目录。比如ls、cp、mkdir、cut等;和/usr/bin类似,一些用户级gun工具
/boot存放系统启动相关的文件,例如:kernel.grub(引导装载程序)
/devdev是Device的缩写。设备文件目录,比如声卡、磁盘。在Linux中一切都被看做文件,包括终端设备、磁盘等等设备文件:/dev/sda,/dev/sda1./dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero,/dev/null,/dev/cdrom
/etc常用系统或二进制安装包配置文件默认路径和服务器启动命令目录****passwd 用户信息文件****shadow 用户密码文件****group 存储用户组信息****fstab 系统开机自动挂载分区列表****hosts 设定用户自己的IP与主机名对应信息
/home普通用户默认的家目录
/lib库文件存放目录,函数库目录
/lost+found****只在CentOS6中有默认为空,被FSCK**(file system check用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,** **可利用fsck命令对文件系统进行检查)用来放置零散文件(没有名称的文件)当系统非法关机后,这里就会存放一些文件。**在 centos6 版本下,每个分区的挂载点下会有些目录
/mnt**/media**一般用来临时挂载存储设备的挂载目录,比如cdrom、U盘等目录
/opt表示的是可选择的意思,有些软件包也会被安装在这里
/proc操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如CPU、硬盘分区、内存信息等)存放在这里。/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。因此,这个目录是一个虚拟目录,它是系统内存的映射,我们可以通过直接访问这个文件来获取系统信息。也就是说,这个目录的内存不再硬盘上而是在内存里。查看CPU信息cat /proc/cpuinfo
/sys系统目录,存放硬件信息的相关文件
/run运行目录,存放的是系统运行时的数据,比如进程的PID文件
/srv服务目录,存放的是我们本地服务的相关文件
/sbin大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,凡是目录sbin中包含的命令都是root权限才能执行的。
/tmp用于存放临时文件,又是用户运行程序的时候会产生一些临时文件。/tmp就是用来存放临时文件的。/var/tmp目录和该目录的作用是类似的,不能存放重要数据,它的权限比较特殊。[xf@xuexi ~]$ ls -ld /tmpdrwxrwxrwt. 27 root root 4096 12月 23 19:18 /tmpt****粘滞位(sticky bit)目录的sticky位表示这个目录里的文件只能被owner和root删除
/var系统运行和软件运行时产生的日志信息,该目录的内容是经常变动的,存放的是一些变化的文件。比如 /var/log目录用来存放系统日志,还有/var/mail、/var/spool/cron
/usr存放应用程序和文件**/usr/bin** 普通用户使用的应用程序**/usr/sbin** 管理员使用的应用程序**/usr/lib** 库文件Glibc(32位)****/usr/lib64 库文件Glibc
/lib**/lib64****都在/usr/目录下**这个目录里存放着系统最基本的动态链接共享库,白喊许多倍/bin和/sbin中的程序使用的库文件,目录/usr/lib中含有更多用于用户程序的库文件。作用类似于windows里的dll文件,几乎所有的应用程序都需要用到这些共享库注:lib**.a是静态库Lib**.so是动态库静态库在编译时被加载到二进制文件中动态库在运行时加载到进程的内存空间中简单的说:这些库视为了让你的程序能过正常编译运行的

相关文章:

  • Kali-登录暴力破解器工具-medusa使用
  • 除砷树脂HP-776
  • 矿产行业供应链协同系统解决方案:构建数智化平台,保障矿产资源安全供应
  • 申请专利流程及费用。
  • HTML+CSS期末网页设计前端作品(大三)
  • java-php-python-ssm-民航售票管理系统-计算机毕业设计
  • 学生台灯用led灯好还是荧光灯好?推荐几款高品质的LED灯
  • RabbitMQ安装
  • 为啥3次握手4次挥手
  • 前端promise理解
  • node fs createReadStream读取大文件,配置参数highWaterMark
  • Google Earth Engine(GEE)——一个简单的多指数影像的加载和下载以北京市为例
  • 【Docker】docker+Nginx部署前端项目
  • Vue.js 组件通信——父组件向子组件通过props传值
  • 微软官方操作系统(需空U盘)
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2017年终总结、随想
  • angular组件开发
  • Codepen 每日精选(2018-3-25)
  • es的写入过程
  • java概述
  • js操作时间(持续更新)
  • JS基础之数据类型、对象、原型、原型链、继承
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • React+TypeScript入门
  • scrapy学习之路4(itemloder的使用)
  • win10下安装mysql5.7
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 构建工具 - 收藏集 - 掘金
  • 两列自适应布局方案整理
  • 区块链将重新定义世界
  • 如何设计一个比特币钱包服务
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 微信开源mars源码分析1—上层samples分析
  • 一道闭包题引发的思考
  • 一个SAP顾问在美国的这些年
  • 一天一个设计模式之JS实现——适配器模式
  • 一些关于Rust在2019年的思考
  • 2017年360最后一道编程题
  • Android开发者必备:推荐一款助力开发的开源APP
  • 阿里云移动端播放器高级功能介绍
  • ​​​​​​​​​​​​​​Γ函数
  • (6)添加vue-cookie
  • (Git) gitignore基础使用
  • (二)c52学习之旅-简单了解单片机
  • (六)激光线扫描-三维重建
  • (四)汇编语言——简单程序
  • (转)jQuery 基础
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料