前言

上次跟运维去行方安装行内环境,发现linux命令还是不是很熟练。特别是用户权限分配以及vi下的快捷操作。于是决定在本地安装一个CentOS虚拟机,后面有时间就每天学习一点Linux常用命令。

作为一个小白正式入坑CentOS了,于是就有了CentOS摸索系列。后续我会根据自己的摸索情况不间断更新。


安装

  • 安装VMWare WorkStation:直接百度搜索下载安装即可,我这里安装的版本是VMware® Workstation 14 Pro。正版需要序列号,否则只能试用30天。这里我给出一些该版本的序列号:
CG54H-D8D0H-H8DHY-C6X7X-N2KG6
ZC3WK-AFXEK-488JP-A7MQX-XL8YF
AC5XK-0ZD4H-088HP-9NQZV-ZG2R4
ZC5XK-A6E0M-080XQ-04ZZG-YF08D
ZY5H0-D3Y8K-M89EZ-AYPEG-MYUA8
  • 安装CentOS: 直接进入CentOS官网https://www.centos.org/, 点击上方的Get CentOS.并且选择DVD版,我这里下载的版本是: CentOS-7-x86_64-DVD-1708.iso
  • 创建新的虚拟机: 打开VMWare WorkStation, 点击“创建新的虚拟机”---》典型---》选择"安装程序光盘映像文件",选择刚刚下载的iso镜像文件,后续安装过程这里直接跳过

修改root密码

​ 前面迷迷糊糊的安装完成之后,我需要下载一个东西,于是我使用yum install命令,发现需要root权限,于是我使用su root命令进行用户切换,需要输入root密码,我输入我创建的用户密码一致显示认证失败,完了。看来必须要改一次密码了......

​ 好在修改密码并不复杂,这里给出一个正确可行的链接:https://linux.cn/article-3962-1.html。 总结了下,基本步骤也就包含以下几个:

  • 启动的时候按e进入grab模式
  • 找到fi后面那一行,将ro替换为rw init=/sysroot/bin/sh
  • 按下Control + X 键,使用单用户模式启动
  • 执行chroot命令,然后执行passwd开始进行密码修改
  • 执行touch /.autorelabel更新系统信息,并执行exit退出chroot模式
  • 执行reboot重启即可

网络连接不上

​ 修改了root密码之后,切换到root模式下,我想使用yum install 命令下载,发现报了个网络连接不上的错误。于是我试了下: ping www.baidu.com, 竟然报了个name or service not know。无赖继续搜索解决方案,最终发现https://www.cnblogs.com/Lin-Yi/p/7787392.html所说的方案能够正常解决我的问题,这里将关键点列举一下:

  • 添加DNS服务器: root用户执行vi /ect/resolv.conf, 在文件中添加如下两行:

    nameserver 8.8.8.8
    nameserver 8.8.4.4

    保存退出后重启虚拟机

  • 修改网络配置: 执行命令vi /etc/sysconfig/network-scprits/ifcfg-ens33(文件名称ifcfg-ens33后面的数字可能不同,最好先进到对应目录ls看下),将文件中的onboot=no替换成onboot=yes .保存并退出

  • 重启网络: root下执行service network restart 重启网络

  • 注意网络配置: 一般情况下执行完前面步骤之后应该可以正常ping通,如果还不行的话,需确认虚拟机的网络适配器配置的是NAT模式


无法鼠标选中复制

​ 这些基本的问题解决之后,发现鼠标在centOS中无法选中复制文字,于是继续搜索解决。最终解决方案如下:

  • 安装gpm: 执行yum install gpm*
  • 启动gpm服务: 执行service gpm start
  • 将gpm服务添加为后台服务: 执行systemctl enable gpm.service
这里给出CentOS服务启用停用的相关方法:
systemctl start [服务文件名]
systemctl restart [服务文件名]
systemctl stop [服务文件名]
systemctl status [服务文件名] 设置开机启动
systemctl enable [服务文件名]
systemctl disable [服务文件名]

安装VMTools

​ 安装了gpm之后文字可以在CentOS内部复制粘贴了,但是无法在虚拟机和主机之间进行复制。网上搜索说要安装VMTools,好吧开始安装。

主要参考下面两个链接: https://blog.csdn.net/warnerwu/article/details/73718901 https://www.cnblogs.com/mylinux/p/5612168.html

本地XShell连接虚拟机

​ 开始准备在CentOS中安装各种软件以方便虚拟机操作,后续一搜才发现,可以直接通过XShell连接CentOS。那直接通过XShell连接CentOS操作比打开丑陋的CentOS操作不是要爽的多。于是开始摸索XShell连接CentOS。

​ 本来想通过固定虚拟机的IP,这样每次连接CentOS就不用修改IP。但是参照了网上的固定IP教程之后,蛋疼的事情发生了: 虚拟机连接不到网络......而且本机telnet虚拟机的22端口一直不通!!

​ 只有最后还原网络设置,折腾了几个小时终于又能ping通百度了。。

​ 这里总结下XShell连接CentOS的相关设置:

  • 开启CentOS的SSH服务: 默认情况下CentOS是默认自带SSH的,使用命令rpm -qa|grep ssh查看 是否安装了SSH,如果安装了话输出会大致如下:

    openssh-7.4p1-11.el7.x86_64
    openssh-server-7.4p1-11.el7.x86_64
    openssh-clients-7.4p1-11.el7.x86_64
    libssh2-1.4.3-10.el7_2.1.x86_64

    如果未安装则执行yum install openssh*安装对应的ssh服务。安装完成后通过命令systemctl status sshd查看该服务是否开启。如果未开启,则执行命令service sshd restart . 启动之后通过命令 netstat -ant | grep 22进一步确认是否开启ssh的22号端口是否开启

  • 关闭防火墙:

    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
  • 关闭iptables: 如果未安装iptables这里直接跳过,如果安装了iptables这使用下面命令来关闭iptables:

    systemctl stop iptables.service #重启防火墙使配置生效
    systemctl disable iptables.service #设置防火墙开机启动

​ 之后就可以愉快地使用XShell来连接CentOS了


安装rzsz软件

​ 刚安装的CentOS是不支持rz/sz命令的,这里直接使用yum install lrzsz进行安装


安装JDK

​ 网上一般给的安装步骤如下:

  • 查找有哪些可安装的JDK: 执行命令 yum search jdk|grep java
  • 安装JDK: 找到想要装的JDK版本,用对应的yum命令进行安装,我这里执行的是yum install java-1.8.0-openjdk.x86_64

​ 需要注意的是这种情况下,只是安装了JRE。此时不管怎样都是无法启用javac命令的。这里还需要正确安装jdk:

  • 使用rpm -qa | grep jdk查找刚刚安装的jdk,我这里查询的结果如下

    java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
    java-1.8.0-openjdk-headless-1.8.0.161-0.b14.el7_4.x86_64
  • 针对刚刚查询出来的jdk依次删除:

    yum -y remove java java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
    yum -y remove java java-1.8.0-openjdk-headless-1.8.0.161-0.b14.el7_4.x86_64
  • 使用yum install java-devel直接安装原生的jdk即可

  • 配置环境变量: sudo vi /ect/profile, 在文件最后两行之前加入如下配置:

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$JAVA_HOME/bin:$PATH
  • 重新启用配置文件: 执行命令 source /etc/profile


安装tomcat

  • 安装wget支持: 执行yum install wget
  • 下载tomcat安装包: 直接去tomcat官网找到tomcat的下载链接,然后通过wget命令去获取,我这里执行的命令如下:wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz
  • 解压刚下载的tomcat: 执行命令tar -zxvf apache-tomcat-9.0.7.tar.gz
  • 验证: 进入tomcat的bin目录执行:sh startup.sh, 本机通过虚拟机IP:端口访问看是否成功

修改目录的所有者

​ 在开始安装tomcat的过程中,我开始在创建tomcat目录是在root用户下操作的。后续我切换到tomcat用户发现wget没有权限写这个tomcat目录。于是通过以下命令将该目录以及其下的子目录权限全部改为tomcat用户:

chown -R tomcat:tomcat tomcat 其中-R表示递归旗下的所有子目录


如何返回上一次输入的目录

​ 直接执行cd - 即可返回上一次操作的目录。输入cd或者cd ~ 即可进入当前用户的根目录

Linux探索之路1---CentOS入坑笔记整理的更多相关文章

  1. react 入坑笔记(四) - React 事件绑定和传参

    React 事件处理 建议:在了解 js 的 this 取值后食用更佳. 一.react 与 Html 中用法的异同和注意点 html 中的绑定事件的写法: <button onclick=&q ...

  2. es6 入坑笔记(三)---数组,对象扩展

    数组扩展 循环 arr.foreach(){ //回调函数 function(val,index,arr){ //val:当前读取到的数组的值,index:当前读取道德数组的索引,arr:当前的数组名 ...

  3. centOS填坑笔记(一)

    第一次使用centOS安装软件时,对二进制包的./configure进行配置时(./configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,)报错:WARNING: failed ...

  4. react 入坑笔记(三) - Props

    React Props props - 参数. 组件类 React.Component 有个 defaultProps 属性,以 class xxx extend React.Component 形式 ...

  5. es6 入坑笔记(二)---函数扩展,箭头函数,扩展运算符...

    函数扩展 1.函数可以有默认值 function demo( a = 10,b ){} 2.函数可以使用解构 function demo( { a = 0,b = 0 } = {} ){ } 3.函数 ...

  6. es6 入坑笔记(一)---let,const,解构,字符串模板

    let  全面取代var 大概相似于C++的定义,一个变量必须得先定义后使用,没有预编译 注意let的作用域,一个{}就是一个作用域,上述规则须在一个作用于内 坑:for(let i =0;i < ...

  7. 《Scala入坑笔记》缘起 3天就搞了一个 hello world

    有小伙伴向我咨询 play framework 的问题,我就想了解一下 play framework ,按照官方的文档,要使用 SBT 安装,就掉进了 SBT 的坑. 第一坑:国外仓库太慢 安装完成后 ...

  8. react 入坑笔记(六) - 组件的生命周期

    React 组件生命周期 详细参考: react 组件生命周期 组件的生命周期可分为三个状态: 1.Mounting:已经挂载/插入到真实 DOM 树上: 2.Updating:正在被重新渲染: 3. ...

  9. react 入坑笔记(五) - 条件渲染和列表渲染

    条件渲染和列表渲染 一.条件渲染 条件渲染较简单,使用 JavaScript 操作符 if 或条件运算符来创建表示当前状态的元素,然后让 React 根据它们来更新 UI. 贴一个小栗子: funct ...

随机推荐

  1. 功能性AI术语表

    算法:一套计算机要遵循的指令.一个算法可以是一个简单的单步程序也可以是一个复杂的神经网络,但是通常被用来指一个模型. 人工智能:这是一个统称.广义上说,软件意味着模仿或取代人类智能的各个方面.人工智能 ...

  2. 目标检测网络之 YOLOv2

    YOLOv1基本思想 YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体. 每个格子预测B个bounding b ...

  3. C++基于范围循环(range-based for loop)的陷阱

    C++的基于范围的循环是C++11出现的新特性,很方便,一定程度上替代了使用迭代器的for循环用法.不过基于范围的for循环有一个隐藏的陷阱,如果不注意可能会出现严重的内存错误. 举例说明 看下面这个 ...

  4. 19.C++-(=)赋值操作符、智能指针编写(详解)

    (=)赋值操作符 编译器为每个类默认重载了(=)赋值操作符 默认的(=)赋值操作符仅完成浅拷贝 默认的赋值操作符和默认的拷贝构造函数有相同的存在意义 (=)赋值操作符注意事项 首先要判断两个操作数是否 ...

  5. 后端Nodejs利用node-xlsx模块读取excel

    后端Nodejs(利用node-xlsx模块) /** * Created by zh on 16-9-14. */ var xlsx = require("node-xlsx") ...

  6. oracle--dba和表的备份与恢复

    数据库管理员 每个oracle数据库应该至少有一名数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分别担负不同的管理职责,那么一个数据库管理员的主 ...

  7. 查看Linux内核版本之lsb_release

    lsb_release命令LSB是Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息,可通过yum -y install redhat-lsb命 ...

  8. Sublime 、NotePad++中查找匹配中文字符

    在Sublime .NotePad++中可以使用正则表达式 [\x{4e00}-\x{9fa5}] 查找匹配中文字符.

  9. Item 15: 只要有可能,就使用constexpr

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果说C++11中有什么新东西能拿"最佳困惑奖" ...

  10. 解决办法:由于oracle版本不同导致导入数据时失败

    在向一个数据库导入dmp文件时,出现了如下错误 经查询,是由于"导出的dmp文件与导入的数据库的版本不同造成的" 用notepad查看dmp文件的版本,看看是否和数据库版本一致 解 ...