声明

  • 此操作仅仅只是适合个人学习使用,在vmware中建立虚拟机后,将虚拟机文件压缩打包,只需vmware版本兼容,即可在其他电脑上的vmware中操作和使用

关闭selinux以及firewalld

  1. [root@localhost ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
  2. [root@localhost ~]# systemctl disable firewalld --now

修改终端前缀显示

  1. [root@localhost ~]# vi /etc/profile
  2. export PS1='\[\e[0;35m\]\u@\h:\[\e[0m\]\[\e[0;35m\]$(pwd) \[\e[0m\]\[\e[0;35m\]\t\[\e[0m\]\n\[\e[0;36m\]> \[\e[0m\]'
  3. [root@localhost ~]# source /etc/profile

修改默认网卡名称为eth0

  1. localhost:~ # cp /etc/sysconfig/network-scripts/ifcfg-ens33{,.bak}
  2. "先备份当前的网卡配置文件,方便失败的时候回滚"
  3. localhost:~ # sed -i 's/ens33/eth0/g' /etc/sysconfig/network-scripts/ifcfg-ens33
  4. localhost:~ # grep eth0 /etc/sysconfig/network-scripts/ifcfg-ens33
  5. NAME="eth0"
  6. DEVICE="eth0"
  7. localhost:~ # mv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0
  1. "CentOS7采用grub2引导,需要修改grub2文件"
  2. localhost:~ # grep GRUB_CMDLINE_LINUX /etc/default/grub
  3. GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
  4. localhost:~ # sed -i 's#^GRUB_CMDLINE_LINUX=.*#GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0"#' /etc/default/grub
  1. localhost:~ # grub2-mkconfig -o /boot/grub2/grub.cfg
  • 为了将selinux=disabled生效,以及网卡名称生效,此时需要重启CentOS

替换yum源

  • CentOS安装完成后,默认的yum源是官方的,国外服务器在国内会比较慢,因此将yum源改为国内的,以此来提高yum的安装速度
  1. "备份原来的repo文件"
  2. localhost:~ # mkdir /etc/yum.repos.d/bak
  3. localhost:~ # mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
  1. "这里使用的是阿里的centos源"
  2. localhost:~ # curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  3. "创建本地元数据"
  4. localhost:~ # yum makecache

安装常用工具

  1. "安装epel源"
  2. localhost:~ # yum -y install epel-release
  1. "epel提供的yum并行下载插件"
  2. localhost:~ # yum -y install yum-axelget
  1. "终端命令补全工具,退出终端重新连接后,才会生效"
  2. localhost:~ # yum -y install bash-completion
  1. "最小化安装默认不带vim和wget"
  2. localhost:~ # yum -y install vim wget net-tools
  1. "免交互expect"
  2. localhost:~ # yum -y install expect
  1. "源码包安装软件常用的gcc环境,以及辅助工具make、cmake"
  2. localhost:~ # yum -y install gcc gcc-c++ make cmake
  1. "常用的解压软件"
  2. localhost:~ # yum -y install p7zip unzip unar
  1. "git版本控制器"
  2. localhost:~ # yum -y install git
  1. "树形查看目录结构工具"
  2. localhost:~ # yum -y install tree
  1. "python系列"
  2. localhost:~ # yum -y install python-devel python3 pip3 pip
  1. "jdk"
  2. localhost:~ # tar xf jdk-8u281-linux-x64.tar.gz -C /usr/local/
  3. localhost:~ # vim /etc/profile
  4. export JAVA_HOME=/usr/local/jdk1.8.0_281
  5. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
  6. localhost:~ # source /etc/profile
  7. -bash: HISTTIMEFORMAT: readonly variable
  8. localhost:~ # java -version
  9. java version "1.8.0_281"
  10. Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
  11. Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
  1. "node.js"
  2. localhost:~ # cd /usr/local/
  3. localhost:/usr/local # wget https://npm.taobao.org/mirrors/node/v14.15.4/node-v14.15.4-linux-x64.tar.xz
  4. localhost:/usr/local # tar xf node-v14.15.4-linux-x64.tar.xz
  5. localhost:~ # ln -s /usr/local/node-v14.15.4-linux-x64/bin/node /usr/bin/node
  6. localhost:~ # node -v
  7. v14.15.4
  1. "时间同步服务器"
  2. localhost:~ # yum -y install chrony.x86_64
  1. "docker"
  2. localhost:~ # cat > /etc/yum.repos.d/docker.repo <<EOF
  3. [docker-ce]
  4. name=docker-ce
  5. baseurl=https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/
  6. gpgcheck=0
  7. enable=1
  8. EOF
  9. localhost:~ # yum repolist
  10. localhost:~ # yum -y install docker docker-compose.noarch
  1. "打开yum缓存,可以不打开"
  2. Linux:~ # sed -i 's/keepcache=.*/keepcache=1/' /etc/yum.conf

优化history

  1. localhost:~ # cat > /etc/profile.d/history.sh <<EOF
  2. #!/bin/bash
  3. export HISTFILE=$HOME/.bash_history
  4. export HISTSIZE=1200
  5. export HISTFILESIZE=1200
  6. export HISTCONTROL=ignoredups
  7. export HISTCONTROL=erasedups
  8. export HISTTIMEFORMAT="`whoami` %F %T "
  9. shopt -s histappend
  10. PROMPT_COMMAND="history -a"
  11. typeset -r HISTTIMEFORMAT
  12. EOF
  13. localhost:~ # source /etc/profile.d/history.sh

配置回收站

  1. localhost:~ # cat << 'eof' >> /etc/profile.d/trash.sh
  2. ####### trash #######
  3. mkdir -p ~/.trash # 路径可以自己创建和命名,不受限制,修改路径名后,记得修改下面三个函数里面的路径
  4. alias rm=trash # 将rm别名成trash,调用trash函数
  5. alias ur=undelfile # 使用别名定义一个ur命令,调用undelfile函数,作用是还原文件
  6. function undelfile(){ # 通过$@将ur后面的参数逐一传给mv移动到当前目录下
  7. mv -i ~/.trash/$@ ./ # mv -i 当目标文件存在时,提示是否覆盖
  8. }
  9. function trash(){ # 在终端输入的rm命令,会通过别名alias调用trash函数,再通过$@将rm后面的参数逐一传给mv移动到.trash目录下
  10. mv $@ ~/.trash/
  11. }
  12. function cleartrash(){ # 在终端输入 cleartreash ,就会调用这里的函数,输入'y 或 Y',就会清空.trash目录下的内容
  13. read -p "clear sure?[n]" confirm
  14. [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/* # /bin/rm 不受别名的限制,会直接删除文件
  15. }
  16. ####### trash end #######
  17. eof
  18. localhost:~ # source /etc/profile.d/trash.sh

迎宾显示

  1. localhost:~ # cat << 'eof' > /etc/profile.d/ssh-login-info.sh
  2. #!/bin/sh
  3. # 输出一个图像
  4. echo -e "\033[1;35m
  5. ██████╗ ██████╗
  6. ██╔══██╗ ██╔══██╗
  7. ██████╔╝ ██║ ██║
  8. ██╔══██╗ ██║ ██║
  9. ██████╔╝ ██████╔╝
  10. ╚═════╝ ╚═════╝\033[0m"
  11. # 获取系统运行的时间(uptime命令看到的时间单位是分钟,/proc/uptime里面看到的时间单位是秒,需要做换算)
  12. upSeconds="$(cut -d. -f1 /proc/uptime)"
  13. secs=$((${upSeconds}%60))
  14. mins=$((${upSeconds}/60%60))
  15. hours=$((${upSeconds}/3600%24))
  16. days=$((${upSeconds}/86400))
  17. UPTIME_INFO=$(printf "%d days, %02dh %02dm %02ds" "$days" "$hours" "$mins" "$secs")
  18. # 判断linux发行版
  19. if [ -f /etc/redhat-release ] ; then
  20. PRETTY_NAME=$(< /etc/redhat-release)
  21. elif [ -f /etc/debian_version ]; then
  22. DIST_VER=$(</etc/debian_version)
  23. PRETTY_NAME="$(grep PRETTY_NAME /etc/os-release | sed -e 's/PRETTY_NAME=//g' -e 's/"//g') ($DIST_VER)"
  24. else
  25. PRETTY_NAME=$(cat /etc/*-release | grep "PRETTY_NAME" | sed -e 's/PRETTY_NAME=//g' -e 's/"//g')
  26. fi
  27. # 判断当前操作系统是否是虚拟机或容器
  28. if [[ -d "/system/app/" && -d "/system/priv-app" ]]; then
  29. model="$(getprop ro.product.brand) $(getprop ro.product.model)"
  30. elif [[ -f /sys/devices/virtual/dmi/id/product_name ||
  31. -f /sys/devices/virtual/dmi/id/product_version ]]; then
  32. model="$(< /sys/devices/virtual/dmi/id/product_name)"
  33. model+=" $(< /sys/devices/virtual/dmi/id/product_version)"
  34. elif [[ -f /sys/firmware/devicetree/base/model ]]; then
  35. model="$(< /sys/firmware/devicetree/base/model)"
  36. elif [[ -f /tmp/sysinfo/model ]]; then
  37. model="$(< /tmp/sysinfo/model)"
  38. fi
  39. MODEL_INFO=${model} # 获取操作系统所在的硬件环境
  40. KERNEL=$(uname -srmo) # 获取内核版本
  41. USER_NUM=$(who -u | wc -l) # 获取连接终端的用户数量
  42. RUNNING=$(ps ax | wc -l | tr -d " ") # 获取运行的进程数量
  43. # 获取磁盘信息:磁盘总量以及使用率
  44. totaldisk=$(df -h -x devtmpfs -x tmpfs -x debugfs -x aufs -x overlay --total 2>/dev/null | tail -1)
  45. disktotal=$(awk '{print $2}' <<< "${totaldisk}")
  46. diskused=$(awk '{print $3}' <<< "${totaldisk}")
  47. diskusedper=$(awk '{print $5}' <<< "${totaldisk}")
  48. DISK_INFO="\033[0;33m${diskused}\033[0m of \033[1;34m${disktotal}\033[0m disk space used (\033[0;33m${diskusedper}\033[0m)"
  49. # 获取CPU信息:cpu型号、核心数、逻辑数、
  50. cpu=$(awk -F':' '/^model name/ {print $2}' /proc/cpuinfo | uniq | sed -e 's/^[ \t]*//')
  51. cpun=$(grep -c '^processor' /proc/cpuinfo)
  52. cpuc=$(grep '^cpu cores' /proc/cpuinfo | tail -1 | awk '{print $4}')
  53. cpup=$(grep '^physical id' /proc/cpuinfo | wc -l)
  54. CPU_INFO="${cpu} ${cpup}P ${cpuc}C ${cpun}L"
  55. # 获取系统负载情况:1分钟、5分钟、15分钟
  56. read one five fifteen rest < /proc/loadavg
  57. LOADAVG_INFO="\033[0;33m${one}\033[0m / ${five} / ${fifteen} with \033[1;34m$(( cpun*cpuc ))\033[0m core(s) at \033[1;34m$(grep '^cpu MHz' /proc/cpuinfo | tail -1 | awk '{print $4}')\033 MHz"
  58. # 获取内存信息:内存总量以及使用率
  59. MEM_INFO="$(cat /proc/meminfo | awk '/MemTotal:/{total=$2/1024/1024;next} /MemAvailable:/{use=total-$2/1024/1024; printf("\033[0;33m%.2fGiB\033[0m of \033[1;34m%.2fGiB\033[0m RAM used (\033[0;33m%.2f%\033[0m)",use,total,(use/total)*100);}')"
  60. # 获取服务器IP地址
  61. # extranet_ip=" and $(curl -s ip.cip.cc)"
  62. IP_INFO="$(ip a | grep glo | awk '{print $2}' | head -1 | cut -f1 -d/)${extranet_ip:-}"
  63. # 远程连接后,将一下信息输出到终端
  64. echo -e "
  65. \033[0;1;31mInformation as of\033[0m..: \033[1;34m$(date +"%Y-%m-%d %T")\033[0m
  66. \033[0;1;31mProduct\033[0m............: ${MODEL_INFO}
  67. \033[0;1;31mOS\033[0m.................: ${PRETTY_NAME}
  68. \033[0;1;31mKernel\033[0m.............: ${KERNEL}
  69. \033[0;1;31mCPU\033[0m................: ${CPU_INFO}
  70. \033[0;1;31mHostname\033[0m...........: \033[1;31m$(hostnamectl | grep 'Static hostname' | awk -F ': ' '{print $2}')\033[0m
  71. \033[0;1;31mIP Addresses\033[0m.......: \033[1;31m${IP_INFO}\033[0m
  72. \033[0;1;31mUptime\033[0m.............: \033[0;33m${UPTIME_INFO}\033[0m
  73. \033[0;1;31mMemory\033[0m.............: ${MEM_INFO}
  74. \033[0;1;31mLoad Averages\033[0m......: ${LOADAVG_INFO}
  75. \033[0;1;31mDisk Usage\033[0m.........: ${DISK_INFO}
  76. \033[0;1;31mUsers online\033[0m.......: \033[1;34m${USER_NUM}\033[0m
  77. \033[0;1;31mRunning Processes\033[0m..: \033[1;34m${RUNNING}\033[0m
  78. "
  79. eof
  1. localhost:~ # chmod +x /etc/profile.d/ssh-login-info.sh

优化vim

  1. localhost:~ # vim /etc/vimrc
  2. set nu
  3. set ts=2
  4. syntax on
  5. set cursorline
  6. hi CursorLine cterm=bold ctermbg=DarkGrey ctermfg=NONE
  7. set paste
  8. set expandtab
  9. set ruler

set nu显示行号
set ts=2tab键默认空格的数量
syntax on开启语法高亮
set cursorline高亮当前行
hi CursorLine cterm=bold ctermbg=DarkGrey ctermfg=NONE配置当前行的颜色
set paste粘贴模式[vim自动缩进很多时候会影响到从外部黏贴进来的文本格式,会导致格式错乱]
set expandtab以空格键代替tab键[写yaml文件很好用,因为yaml文件不支持tab键,一次敲多个空格多难受]
set ruler右下角显示当前所在的行数

清空yum缓存

  1. "减少磁盘的空间占用"
  2. Linux:~ # yum clean all

清空历史操作

  1. Linux:~ # history -c
  • 清空完历史操作后,关机快照,压缩当前虚拟机的数据目录做备份

打造一款属于自己的CentOS操作系统的更多相关文章

  1. 【FastDFS】如何打造一款高可用的分布式文件系统?这次我明白了!!

    写在前面 前面我们学习了如何基于两台服务器搭建FastDFS环境,而往往在生产环境中,需要FastDFS做到高可用,那如何基于FastDFS打造一款高可用的分布式文件系统呢?别急,今天,我们就一起来基 ...

  2. 【ASP.NET程序员福利】打造一款人见人爱的ORM(一)

          “很多人都不太认可以第三方ORM,因为考虑的点不够全面,没有大用户群体的ORM有保证,这点是不可否认确是事实.但是往往用户群体大的ORM又有不足之处,今天我们就来聊聊关于ORM的话题,打造 ...

  3. 【ASP.NET程序员福利】打造一款人见人爱的ORM(二)

    上一篇我已经给大家介绍AntORM的框架[ASP.NET程序员福利]打造一款人见人爱的ORM(一),今天就来着重介绍一下如何使用这套框架 1>AntORM 所有成员 如果你只想操作一种数据库,可 ...

  4. 打造一款属于自己的web服务器——开篇

    JVM总结慢慢来吧,先插播一篇水文,来介绍下最近业余一直在写的一个小项目——easy-httpserver(github).适合新手学习,大神们路过即可^_^. 一.这是个什么玩意? easy-htt ...

  5. 如何打造一款五星级的 APP ?

    移动互联网大潮来袭!据统计,2015 年平均每天有 1000 个新的应用上架,而这些应用的现状可以说是鱼龙混杂,同是每个人的眼光.品味.意识和利益都不同,因此每人眼中的应用也是不同的.在巨大的市场竞争 ...

  6. jquery+css3打造一款ajax分页插件

    原文:[原创]jquery+css3打造一款ajax分页插件 最近公司的项目将好多分页改成了ajax的前台分页以前写的分页插件就不好用了,遂重写一个 支持IE6+,但没有动画效果如果没有硬需求,个人认 ...

  7. Centos操作系统在虚拟机VMware上的安装

    1.下载centos操作系统,提供百度云盘链接:http://pan.baidu.com/s/1pLHOR03 2.打开上篇在VMware中新建好的空白虚拟机,将centos安装在此空白虚拟机上,步骤 ...

  8. 在VM虚拟机中安装Centos操作系统

    首先我们要下载  Centos https://www.centos.org/ 这个是Centos官方 最新版本 7 https://www.centos.org/download/ 提供有 DVD安 ...

  9. Tsung CentOS 操作系统下搭建tsung性能测试环境_Part 2

    CentOS 操作系统下搭建tsung性能测试环境_Part 2 by:授客 QQ:1033553122 --------------------接CentOS 操作系统下搭建tsung性能测试环境_ ...

随机推荐

  1. Word2010制作收款单

    原文链接:https://www.toutiao.com/i6488255406136099342/ 页面设置 选择"页面布局"选项卡,"页面设置"功能组,&q ...

  2. LINUX学习-PHP安装

    一.安装环境 操作系统CentOS6.8 关闭SeLinux和iptables防火墙 二.网络yum源 将下面的软件下载到  /etc/yum.repos.d/   的目录下 官方基础:http:// ...

  3. spring-data-jpa -hibernate --specificationExecutor

    Specifications动态查询 在查询某个实体的时候,给定的条件是不固定的,这时就需要动态构建相应的查询语句,在Spring Data JPA中可以通过JpaSpecificationExecu ...

  4. 树莓派和荔枝派,局域网socket 通信

    在虚拟机上面实现了socket 之间的通信之后,突发奇想,想要实现树莓派和 荔枝派zero之间的通信. 1.直接将虚拟机下面的程序复制过来,重新编译并且运行.发现是没有办法进行通信的.客户端一直报错: ...

  5. 局域网内部怎么安全接入U盘?

    准备工具: 内部专用U盘一个: 能连接外网的电脑(暂称"安全机")一个. 第一.安全机上安装360杀毒.360安全卫士或其它安全软件.并经常更新病毒库.木马库. 第二.外来U盘先通 ...

  6. LCT小记

    不用说了,直接上怎么 die( 千万不要和 Treap 一样写左旋 zig 和右旋 zag,莫名死亡.Splay 只支持一个 rotate 上旋一个节点即可. splay() 之前记得弄一个栈存储 u ...

  7. [学习分享] 在Windows操作系统下如何安装RMySQL包

    最近在做股票的高频交易数据分析,需要用到数据库,而我只对MySQL比较熟悉,于是就安装了MySQL.当我安装好了MySQL后,正兴冲冲地准备安装RMySQL包时,问题来了:RMySQL包不支持wind ...

  8. 微信小程序-国际化(miniprogram-i18n)

    前情提要 最近维护了一个微信小程序的老项目,维护的其中一项是添加国际化.由于踩了蛮多坑,所以就有了这篇文档!!! miniprogram-i18n 对除小程序外的其他框架开发做过国际化的朋友来说i18 ...

  9. 计算机视觉3-> yolov5目标检测1 |从入门到出土

    本来就想着是对自己第一次跑yolov5的coco128的一个记录,没想到现在准备总结一下的时候,一方面是继续学习了一些,另一方面是学长的一些任务的要求,挖出了更多的东西,所以把名字改为了"从 ...

  10. LaTex用法笔记(一)——LaTex源文件的基本结构

    首先打开TeXstudio,创建一个新文件并保存 用\documentclass{article}引入一个文档类,也可以引用book/report/letter 然后用\begin{}和\end{}输 ...