linux系统虚拟机环境准备(各版本linux系统部署、常用环境变量、图像界面安装、数据库安装)

虚拟机环境准备

Linux6

CentOS 6.x

1)安装一套OS,装好后关机
2)通过虚拟机克隆多套
3)开机,改IP,改主机名,改hosts文件

#改主机名:
vi /etc/sysconfig/network
#改hosts文件配置
vi /etc/hosts
#修改IP配置文件信息 
vi /etc/sysconfig/network-scripts/ifcfg-eth0
#修改IP信息,同时删除对应的UUID
#重启网络服务
service network restart

​ 很多Linux使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。这样由于基本系统的虚拟机已经记录了该虚拟机的网卡mac地址对应于网卡eth0,在克隆出的虚拟机中由于mac地址发生改变,udev会自动将该mac对应于网卡eth1。而其实kernel仅仅只识别到一张网卡,跟网卡名相关的网络配置也未发生任何变化。

​ 最快速解决方法是:把/etc/udev/rules.d/70-persistent-net.rules删除,再把eth0配置文件里的HWADDR和UUID删掉,然后重新启动。这样系统会重新发现网卡硬件,重新产相关配置文件。

#删掉网卡和MAC地址绑定文件
rm -rf /etc/udev/rules.d/70-persistent-net.rules 
vi /etc/sysconfig/network-scripts/ifcfg-eth0
#删掉HWADDR和UUID这两行
HWADDR=00:0C:29:8A:3D:4F
UUID=89028113-7eae-4643-9182-373000731d2c
#重启操作系统
reboot

Oracle Linux 6.x

1)安装一套OS,装好后关机
2)通过虚拟机克隆多套
3)开机,改IP,改主机名,改hosts文件
#改主机名:
vi /etc/sysconfig/network
#改hosts文件配置
vi /etc/hosts
#修改IP配置文件信息 
vi /etc/sysconfig/network-scripts/ifcfg-eth0
#修改IP信息,同时删除对应的UUID
#重启网络服务
service network restart

Linux7

RHEL 7.x

1)安装一套OS,装好后关机
2)通过虚拟机克隆多套
3)开机,改IP,改主机名,改hosts文件
#改主机名:
#echo testos1 > /etc/hostname
hostnamectl set-hostname testos1

#改hosts文件配置
cat >> /etc/hosts << EOF
192.168.1.101 testos1
EOF

#修改IP配置文件信息 
sed -i '/IPADDR/s/192.168.1.100/192.168.1.101/' /etc/sysconfig/network-scripts/ifcfg-ens33
#修改IP信息,同时删除对应的UUID
sed -i '/^UUID/d' /etc/sysconfig/network-scripts/ifcfg-ens33
#重启网络服务
systemctl restart network

CentOS 7.x

1)安装一套OS,装好后关机
2)通过虚拟机克隆多套
3)开机,改IP,改主机名,改hosts文件
#改主机名:
#echo testos1 > /etc/hostname
hostnamectl set-hostname testos1

#改hosts文件配置
cat >> /etc/hosts << EOF
192.168.1.101 testos1
EOF

#修改IP配置文件信息 
sed -i '/IPADDR/s/192.168.1.100/192.168.1.101/' /etc/sysconfig/network-scripts/ifcfg-ens33
#修改IP信息,同时删除对应的UUID
sed -i '/^UUID/d' /etc/sysconfig/network-scripts/ifcfg-ens33
#重启网络服务
systemctl restart network

Oracle Linux 7.x

1)安装一套OS,装好后关机
2)通过虚拟机克隆多套
3)开机,改IP,改主机名,改hosts文件
#改主机名:
#echo testos1 > /etc/hostname
hostnamectl set-hostname testos1

#改hosts文件配置
cat >> /etc/hosts << EOF
192.168.1.101 testos1
EOF

#修改IP配置文件信息 
sed -i '/IPADDR/s/192.168.1.100/192.168.1.101/' /etc/sysconfig/network-scripts/ifcfg-ens33
#修改IP信息,同时删除对应的UUID
sed -i '/^UUID/d' /etc/sysconfig/network-scripts/ifcfg-ens33
#重启网络服务
systemctl restart network

Linux8

CentOS 8.x

1)安装一套OS,装好后关机
2)通过虚拟机克隆多套
3)开机,改IP,改主机名,改hosts文件
#改主机名:
hostnamectl set-hostname testos
#改hosts文件配置
vi /etc/hosts
#修改IP配置文件信息 
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#删除对应的UUID

#添加静态IP地址
nmcli con show
nmcli con add con-name static ifname ens33 type ethernet ipv4.addresses 192.168.1.68/24 ipv4.gateway 192.168.1.1 ipv4.method manual
nmcli con up static

#dhcp自动获取IP地址
nmcli con add con-name dhcp type ethernet ifname ens33
nmcli con up dhcp

相关操作

修改主机名

hostnamectl set-hostname nodename
#修改hosts文件
cat >> /etc/hosts << EOF
192.168.1.101 testos1
192.168.1.102 testos2
192.168.1.103 testos3
EOF

虚拟内存设置

mkdir -p /data/swap
cd /data/swap
#设置8G虚拟内存
dd if=/dev/zero of=/data/swap/swapfile1 bs=1M count=8192
#查看创建文件大小
du -sh /data/swap/swapfile1
#将目标文件标识为swap分区文件
mkswap /data/swap/swapfile1
#激活swap文件
swapon /data/swap/swapfile1
#写进配置文件
echo '/data/swap/swapfile1 swap swap defaults 0 0' >>/etc/fstab
#查看是否挂载成功
swapon -s

#删除swap空间
swapoff /data/swap/swapfile1
#同时删除/etc/fstab文件中的相关信息
#查看swap使用比例情况
cat /proc/sys/vm/swappiness
#临时修改使用比例
sysctl vm.swappiness=60
#内存在使用到100-60=40%的时候,就开始出现有交换分区的使用。
#注意:临时修改后,重启操作系统会重置默认值。
#永久修改使用比例
#vim  /etc/sysctl.conf
#在sysctl.conf文件中最后一行加入
vm.swappiness=60

常用环境变量

Linux系统

#grep带颜色
cat >> ~/.bash_profile << EOF
export PATH
#set grep color
export GREP_COLORS='ms=38;5;214;48;5;30'
# alias
alias grep="grep --color=always"
#alias grep="grep --color=always -E"
EOF
source ~/.bash_profile


#vim *.sh文件自动加注释
cd
cat > .vimrc << EOF
set ignorecase
set cursorline
set autoindent
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1,"#!/bin/bash")
call setline(2,"#********************************************************************")
call setline(3,"#Author: 小徍")
call setline(4,"#Email: kahnyao@163.com")
call setline(5,"#Date: ".strftime("%Y-%m-%d"))
call setline(6,"#FileName: ".expand("%"))
call setline(7,"#Description: Annotated script")
call setline(8,"#********************************************************************")
call setline(9,"")
endif
endfunc
autocmd BufNewFile * normal G
EOF

图像界面安装

###############CentOS图形界面安装###############
#Centos 7.6
yum groupinstall -y "X Window System"
yum groupinstall -y "GNOME Desktop" "Graphical Administration Tools"

#Centos 8.2
yum groupinstall -y "Server with GUI"

语言环境变量

#英文
echo 'LANG=en_US.UTF-8' >> ~/.bash_profile
source ~/.bash_profile
export LANG="en_US.UTF-8"


#中文
echo 'LANG=zh_CN.UTF-8' >> ~/.bash_profile
source ~/.bash_profile
export LANG="zh_CN.UTF-8"

设置本地字符集

localectl set-locale LANG=en_GB.utf8

https://blog.csdn.net/liaowenxiong/article/details/116399481

设置时区

#通过软连接修改时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

常用软件

#htop
wget https://gitcode.net/myneth/tools/-/raw/master/tool/htop-3.2.0.tar.xz
xz -dk htop-3.2.0.tar.xz
tar xvf htop-3.2.0.tar
cd htop-3.2.0
./autogen.sh && ./configure && make && make install

OR:
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum install -y htop

yum install -y mlocate
yum install -y net-tools
yum install -y vim
yum install -y python3
yum install -y expect
yum install -y lsof
yum install -y wget
yum install -y lvm2
yum install -y lrzsz



#rlwrap
wget https://gitcode.net/myneth/tools/-/raw/master/tool/rlwrap_0.42.tar.gz
tar -zxvf rlwrap_0.42.tar.gz
rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
rpm -ivh readline-devel-6.2-10.el7.x86_64.rpm
tar -zxvf rlwrap-0.42.tar.gz
cd rlwrap-0.42
./configure
make
make install
echo 'alias sqlplus="rlwrap sqlplus"' >> ~/.bash_profile
source ~/.bash_profile

编译Python3

tar -xf Python-3.6.8.tar.xz 
cd Python-3.6.8
./configure --prefix=/data/software/python3.6.8 --enable-shared --enable-optimizations --with-ssl 
make -j 12 
make install 
ln -s /data/software/python3.6.8/bin/python3 /usr/bin/python3 
ln -s /data/software/python3.6.8/bin/python3.6-config /usr/bin/python3-config 
cp /data/software/python3.6.8/lib/libpython3.6m.so.1.0 /usr/lib64 
chmod -R 755 /usr/lib64/libpython3.6m.so.1.0 
ln -s /usr/lib64/libpython3.6m.so.1.0 /usr/lib64/libpython3.6m.so

Java环境变量

#java下载路径
https://www.oracle.com/java/technologies/downloads/archive/

tar -zxvf jdk-8u351-linux-x64.tar.gz

#环境变量配置
vim /etc/profile
JAVA_HOME=/software/jdk1.8.0_351
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

source /etc/profile

#查看版本
[root@centos7 ~]# java -version
java version "1.8.0_351"
Java(TM) SE Runtime Environment (build 1.8.0_351-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.351-b10, mixed mode)

Debian系统

# Debian系统 配置软件源  安装软件
https://www.codenong.com/cs107121218/
https://mirrors.tuna.tsinghua.edu.cn/help/debian/


#一般情况下,将 /etc/apt/sources.list 文件中 Debian 默认的源地址 http://deb.debian.org/ 替换为镜像地址即可。
#Debian Buster 以上版本默认支持 HTTPS 源。如果遇到无法拉取 HTTPS 源的情况,请先使用 HTTP 源并安装:
sudo apt install apt-transport-https ca-certificates

cat > /etc/apt/sources.list <<"EOF"
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
# deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
deb https://security.debian.org/debian-security bullseye-security main contrib non-free
# deb-src https://security.debian.org/debian-security bullseye-security main contrib non-free
EOF


#更新软件源
apt-get update
#安装ps命令
apt-get install procps -y
#安装常用命令
apt-get install vim lsof tree -y

数据库

oracle

#sqlplus显示设置
$ORACLE_HOME/sqlplus/admin/glogin.sql

set serveroutput on
set pagesize 5000
column plan_plus_exp format a80
column global_name new_value gname
set termout off
define gname=SQL
column global_name new_value gname
select lower(user)||'@'||lower(instance_name)||'('||(select distinct sid from v$mystat)||')' global_name from v$instance;
set sqlprompt '&gname> '
set termout on


set serveroutput on size 1000000
set trimspool on				--去除重定向(spool)输出每行的拖尾空格,缺省为off
set timing on					--显示执行sql语句耗时信息,默认是off状态
set long 5000
set pagesize 5000
set linesize 1024
column plan_plus_exp format a80
column global_name new_value gname
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
set termout off				--显示脚本中的命令的执行结果,缺省为on
define gname=none
column global_name new_value gname
select lower(user)||'@'||lower(instance_name)||'('||(select distinct sid from v$mystat)||')' global_name from v$instance;
set sqlprompt '&gname> '
set termout on







#oracle环境变量
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";export NLS_DATE_FORMAT
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"


#rpm安装的环境变量
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export ORACLE_SID=ORCLCDB
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"

PostgreSQL

su - postgres
cd
cat >.psqlrc<<EOF
\set PROMPT1 '%n@%M:%>/%/(%p)%R%#'
EOF



#psql显示设置
Windows配置:
	%APPDATA%\postgresql\psqlrc.conf
Linux:
	psql会尝试依次从系统级的启动文件(psqlrc)和用户的个人启动文件(~/.psqlrc)中读取并且执行命令。
	修改postgres用户home(cd ~)路径下的隐藏文件.psqlrc(没有就手动创建一个)

\set PROMPT1 '%n@%M:%>/%/(%p)%R%#'				--用户名@IP:Port/数据库名(PID)

--测试
psql -h localhost -U postgres


%n
	数据库会话的用户名(在数据库会话期间,这个值可能会因为命令SET SESSIONAUTHORIZATION的结果而改变)。
%M
数据库服务器的完整主机名(带有域名),或者当该连接是建立在一个 Unix 域套
接字上时则是[local],或者当 Unix 域套接字不在编译在系统内的默认位置上时则
是[local:/dir/name]。
%>
	数据库服务器正在监听的端口号。
%/
	当前数据库的名称。
%m
	数据库服务器的主机名称(在第一个点处截断),或者当连接建立在一个 Unix 域套接字上时是[local]。
%p
	当前连接到的后端的进程 ID。
%R
	在提示符1下通常是=,但如果会话位于一个条件块的一个非活动分支中则是@,如果会话
	处于单行模式中则是^,如果会话从数据库断开连接(\connect失败时会发生这种情况)
	则是!。在提示符 2 中,根据为什么psql期待更多的输入,%R会被一个相应的字符替
	换:如果命令还没有被终止是-,如果有一个未完的/* ... */注释则是*,如果有一个未
	完的被引用字符串则是一个单引号,如果有一个未完的被引用标识符则是一个双引号,
	如果有一个未完的美元引用字符串则是一个美元符号,如果有一个还没有被配对的左圆
	括号则是(。在提示符 3 中%R不会产生任何东西。
%#
	如果会话用户时一个数据库超级用户,则是#,否则是一个>(在数据库会话期间,这个
	值可能会因为命令SET SESSION AUTHORIZATION的结果而改变)。
%~
	和%/类似,但是如果数据库是默认数据库时输出是~(波浪线)。
%x
	事务状态:当不在事务块中时是一个空字符串,在一个事务块中时是*,在一个失败的事
	务块中时是!,当事务状态是未判定时(例如因为没有连接)为?。
%l
	当前语句中的行号,从1开始。

#PostgreSQL环境变量

export LANG=en_US.UTF8
export PS1="[`whoami`@`hostname`:"'$PWD]$'
export PGPORT=5432
export PGDATA=/postgresql/pgdata
export PGHOME=/postgresql/pg12
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export PATH=$PGHOME/bin:$PATH:.
export DATE=`date +"%Y%m%d%H%M"`
export MANPATH=$PGHOME/share/man:$MANPATH
export PGHOST=$PGDATA
export PGUSER=postgres
export PGDATABASE=postgres
alias psql="rlwrap psql"

openGauss

#openGauss提示符
#简单设置:(username@dbname=#)
cd
cat >.gsqlrc <<EOF
\set PROMPT1 '%n@%~%R%#'
\pset border 2
EOF

#带会话ID:(username@dbname(sessid)=#)
cd
cat >.gsqlrc <<EOF
\set PROMPT1 '%n@%~(`gsql -p 12347 -d postgres -A -t -c 'select pg_current_sessid()'`)%R%#'
\pset border 2
EOF

#以下为错误的设置,待研究 
cd
cat >.gsqlrc <<EOF
\set sessid `gsql -p 12347 -d postgres -A -t -c 'select pg_current_sessid()'`
\set PROMPT1 '%n@%~(%:sessid)%R%#'
\pset border 2 
EOF



#如下设置连接数据库可不加端口(子用户设置)
echo "export PGPORT=`gs_om -t view|awk -v FS=':' '/datanodePort/{print $2}'`" >> /home/$USER/env 
source /home/$USER/env

MySQL

https://blog.51cto.com/it3246/1869837
prompt 设置 -登陆MySQL显示用户名和主机以及当前数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值