欢迎来到【一个大西瓜】的博客

不曾为梦想奋斗,拿什么去燃烧青春。有梦之人亦终将老去,但少年心气如昨。
太阳每一个时刻都同时是夕阳和朝阳,每天她沉入西边,意味着她同时从另一面土地升起。
扩大
缩小

Virtual Box虚拟机Ubuntu18.X系统安装及Mysql基本开发配置

Linux简介

什么是 Linux

  Linux:世界上不仅只有一个 Windows 操作系统,还有 Linux、mac、Unix 等操作系统。桌面操作系统下 Windows 是霸主,而 Linux 的桌面操作系统用的人很少,因为 Windows 有的很多软件在 Linux 下没有或者很弱;服务器操作系统则反之。Linux 有一个强大的服务器软件生态系统:Docker、Redis、MySQL、Nginx、Hadoop 等等。

Linux Windows 有哪些不一样?

  1. 使用 Windows 倾向于 GUI 操作,Linux 虽然也可以安装图形界面,但是 Linux 倾向于命令行操作。用 Linux 就要用命令提示符操作,命令行操作的优点慢慢就会体会了(可以自动化、可以精确控制、可以组合命令)。
  2. 底层 api 不一样,因此可执行程序不互通;有一些软件同时在 windows 和 linux 下作了移植;
  3. windows 下的命令到了 linux 下不一定能用;
  4. windows 下主要根据文件的扩展名区分文件类型,linux 中可以没有扩展名;
  5. Linux 不同版本使用方法、配置文件可能变化很大,要自己查、反复试;
  6. 易错的地方:Linux 中文件名是区分大小写的

Linux 内核和 Linux 发行版

  Linux 内核由 Linus 及开源社区维护,内核包含内存管理、存储管理、进程管理、网络通讯等基础模块。很多公司、开源组织基于 Linux 内核打包出了很多“发行版”,不同的发行版的内核版本可能不一致,包含的软件也不一致,界面差别较大,但是命令行操作都是互通的,大部分程序也是互通的。

  内核和发行版的关系就像 Android 内核和“小米手机系统、华为手机系统”的关系一样。

  常用的发行版有 RedHat、CentOS、Debian、Ubuntu 等等。这里我们用 Ubuntu,因为 Ubuntu 内置的软件最适合程序员,其他发行版要自己装。当然也有一些人钻木取火的人瞧不起用Ubuntu 的人。

虚拟机

什么是虚拟机?

  使用 Linux 最好是在计算机上直接安装 Linux 系统,最起码也是双系统启动。不过担心初学者搞砸了自己的电脑,而且 Linux 不太适合日常使用。因此我们使用虚拟机软件在

  Windows 上虚拟出一台电脑出来,在这台虚拟的电脑上安装 Linux。

  使用虚拟机的好处:不破坏物理电脑是,随便搞。坏处:不真实、操作卡。

  Windows 下的虚拟机软件有 VMWare、Virtual Box、HypverV 等。这里我们使用开源免费的 Virtual Box。

  电脑如果配置太差跑不起虚拟机,只能升级电脑,加内存就差不多。

Virtual Box 的安装

  1. 下载地址:https://www.virtualbox.org/

     

  2. 一路 Next 就可以。
  3. 新建一个虚拟机

    需要选 64 位 Ubuntu,不要选成 32 位,因为一些软件不支持 32 位系统。  如果不能选择 32 位的版本,那么说明你的电脑主板没有启用虚拟化,需要进入电脑 bios 设置启用虚拟化。不同版本主板的启用虚拟化的方法不一样,具体请根据你主板的型号去网上搜索。有部分老电脑主板不支持虚拟化,这就没办法了

  4. 虚拟电脑内存至少 2G 才不卡
  5. 创建虚拟硬盘

     

  6. 配置虚拟机,加载 iso 虚拟光盘文件

    有的同学运行 VirtualBox 的时候会出现“该内存不能为 writtern”的错误,请看后续的“虚拟机故障排除”这一章。

 下载 Ubuntu iso 文件

  1. https://www.ubuntu.com/下载 Desktop 版(Desktop 版是内置了图形界面以及常用桌面软件;Server 版默认没有安装图形界面。当然也可以在 Server 版装图形界面。)。

    如果在物理机上安装,只要用 UltraISO 等软件把 iso 刻录到光盘上或者制作可启动 U 盘就可以。

  2. 把 iso 文件加载到光驱中(相当于 Linux 安装光盘插入光驱),然后启动虚拟机

    直到运行到 Linux 安装画面

    启动虚拟机的时候如何截图?用 windows 的“截图工具”。

安装 Linux

 

  我测试环境密码用的是 123456,一定要把用户名和密码记住!有一些发行版是禁止简单密码的。

 

记得把光盘从光驱中取出(卸载 iso 文件),防止再次安装系统。

 

虚拟机故障解决

VirtualBox 的时候会出现“该内存不能为 writtern”的错误

可以依次尝试下面的方法,哪个解决了就不用再试其他的方法了:

方法 1

  1. 首先确保虚拟机中的系统处于关机状态,如果没有关机,则在终端中执行“shutdown now” 关机。

     

  2. 打开 VirtualBox 主程序,打开虚拟机的【设置】


    勾选【系统】→【处理器】中的【启用 PAE】

     

 方法 2:VirtualBox 管理器的主菜单【管理】→【全局设定】去掉【热键】中的【自动独占键盘】中的勾去掉。

 方法 3:在你的 windows 系统中,以管理员权限运行 cmd,执行 sfc /scannow,执行完成后重启电脑。

配置 Linux

输入安装 Linux 时候设定的密码

图形化的程序尽量不要用。在桌面上点右键→打开终端。在很多生产服务器下,是没有装图形化程序的,就是直接命令行界面操作,根本就进不了图形界面。

尽量不要用图形界面,所有操作都可以在“终端”中完成。因此后续操作都尽量在“终端”中进行。也忘了鼠标,别妄想在终端中用鼠标。不要想“终端中听歌、看电影、上网”,场景不对。

 

使用习惯

  其实是可以“共享文件夹”在虚拟机和宿主机之间共享文件等操作。但是虚拟机使用 linux 的时候,不要想着还有“宿主机(Host)”,不要想着怎么“共享文件夹”,就把当成两台电脑就可以。共享文件的方式就通过经典的 ftp 跨服务器的等方式,就像两台电脑一样。

  可以“共享粘贴板”,但是别这么懒,那就是一台单独的电脑,你怎么复制粘贴?  虚拟硬盘、虚拟光盘(iso)、虚拟内存、虚拟 cpu。虚拟出来的电脑和主机(Host)之间没有直接的联系,也不会互相干扰。

备份

  VBox 安装完成后可以做一个“备份”(主菜单【控制】→【生成备份】),这样万一把虚机系统搞乱了还可以还原回来,可以创建多个“备份”,相当于“还原点”。

锁屏

  为了避免反复锁屏,在设置→亮度和锁屏中关闭“锁屏”;VBox 窗口可以调整大小,虚拟机中的系统会自动调整分辨率,有的电脑不支持。

网卡

  虚拟机的网卡有时候会有问题连不上网,这时候就要在虚拟机的设置中先取消网卡再重新选择网卡,相当于插拔网线。

 

Linux 的基本命令

文件操作

  • Windows 是多根的文件系统,物理上是 1 到多块硬盘,逻辑上分为 C、D、E……盘,每个盘都是一棵树。Linux 是单根的文件系统,不分 CDE 盘,多块硬盘/U 盘/光盘也是相当于多个文件夹。不同硬盘/U 盘/光盘对应的文件夹叫做“挂载点”,把外部存储设备放到文件系统树的过程又叫做“挂载(mount)”
  • Linux 下无论是文件还是命令都是大小写敏感的。
  • 小白说“文件夹”,专业人士说“目录”(Directory) 

Linux 常用根目录的作用

  • boot  存放用于系统引导时使用的各种文件
  • bin  存放二进制可执行文件(ls,cat,mkdir 等)
  • sbin 存放二进制可执行文件,只有 root 才能访问
  • usr  用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
  • opt  额外安装的可选应用程序包所放置的位置
  • dev 用于存放设备文件
  • etc  存放系统配置文件
  • home 存放所有用户文件的根目录
  • lib  存放跟文件系统中的程序运行所需要的共享库及内核模块
  • tmp  用于存放各种临时文件
  • var  用于存放运行时需要改变数据的文件
  • mnt  安装临时文件系统的安装点

 常用文件操作命令

  • 工作目录(working directory)就是“当前目录” l 显示当前工作目录 pwd (print work directory)
  • 显示当前目录下的文件、目录 ls 或者 dir
  • 切换工作目录  cd  (Change Directory):cd ./test  切换工作目录到当前目录下的 test 目录(cd 后不要忘了空格);cd .. 到上一级目录;cd /很显然就是返回根目录
  • 新建目录 mkdir   (Make Directory):mkdir test 有的系统目录下是没有权限创建文件夹的。用户的文件一般放到 home 的自己的用户名下
  • 删除目录:rmdir (Remove Directory) 删除空目录;rm(Remove)删除文件;rm -r  testA 删除目录及其下所有文件(-r 就是 recursive 的简写。*坑人的指令:rm -rf /)。
  • mv 移动文件
  • cp  复制文件
  • 查看文本文件内容:cat(一下子全显示,适合小文件);more(分页显示,q 退出)
  • 查找文件:find   -name 'a*'     在当前目录下查找文件名以 a 开始的文件。不要丢了''

其他常用命令

  • ps  查看当前用户当前运行的进程;查看所有运行中的进程 ps –ef
  • reboot 重启 7、 shutdown  now立即关机(备注:课程中写错了,写成了shutdown –now,应该是shutdown now)
  • 退出终端:exit
  • clear 清理当前显示或者快捷键:ctrl+L
  • 上下键可以快速恢复历史命令。可以通过 tab 键完成当前目录下文件或者子目录的自动填充,如果遇到多个前一部分一样的会自动完成一样的前一部分。ctrl+c 取消当前输入的命令重新开始。
  • tar 命令,将文件夹打包成一个文件,同时可进行压缩命令格式,打包  tar  -c -f  归档文件   需要打包的文件,解开  tar -x  -C 解开到指定目录  -f  归档文件
  • man 命令,各个命令的手册,比如 man dir;按 q 退出。linux 命令非常多、参数非常多,只要会搜就行,慢慢记住的越来越多。
  • Linux 管道命令:一个软件或一个命令 要想完成一件事情,通常都需要输入原始数据 , 处理后 , 再把处理的结果输出到一个地方(保存到文件或者显示在屏幕上),Linux 的管道是这样一个东西,它可以把上一个命令的处理结果作为下一个命令的输入数据,供下一个命令使用。例如:
    ps -ef | grep bash
    netstat -a  |  more 3) 因此 cat 1.txt|more 也可以达到 more 1.txt 的效果
  • sudo:基于安全考虑,一般不建议使用超级用户权限登录 linux;而是平时使用低权限用户访问,需要高权限的操作再用 sudo 后跟着指令。比如在/下无法创建文件夹,但是 sudo mkdir a 就可以,当然需要输入密码。su 就是“super user”的简写,sudo 就是“用超级用户权限执行命令”

VI 编辑器

VI 简介

  如果使用 linux 桌面,也有一些图形化文本编辑器(类似于记事本),但 linux 的神级编辑器是 vi,如果连 vi 都不会用就别说会用 linux。

  在很多环境下是没有图形界面的,只能用 vi。VI 是全键盘操作,不能用鼠标。当然日常开发还是在图形界面下使用 VS 等开发,使用 vi 一般是进行简单的修改或者配置文件的修改。

  vi 刚接触感觉很痛苦,用熟了也挺爽的,vi 命令非常多,初学掌握基本的操作即可。vim 是 vi 的加强版。

vi 的运行模式

  

命令模式下可以进行行删除等命令的输入(相当于快键键);插入模式下可以进行文本的输入;末行模式下是执行保存、退出等指令用。   易混:插入模式下如果直接输入:就是输入:了,因此要先 esc 退出插入模式

末行模式的指令

  • :wq 保存然后退出   w→write,q→quit    如果是“vi 文件名”方式执行的,则直接写入到指定的文件名中,否则要“:wq 文件名”。
  • :q! 不保存退出
  • :w 保存不退出
  • 在末行模式中输入“!shell 指令”可以不离开 vi 执行 shell 指令

命令模式的命令

  • 移动输入光标,不能在插入模式下按上下左右键。要 esc 先回到命令模式下;
  • shift+^移到行首;shift +$移到行尾。联想一下正则表达式中就好记了;
  • ctrl+b:上滚一屏;ctrl+f 下滚一屏;  b→backward;f→forward
  • dd:删除当前一行;x 删除当前字符
  • 撤销:上一次的操作 u;undo 的简写
  • o:在当前行下新增一行(因为如果移动到行尾再回车的话还是在最后一个字符前回车)自动进入插入模式。
  • i:在当前光标前面插入,a:在当前光标后面插入。a→append(附加)也是自动进入插入模式。

 还有一个傻瓜化字符界面编辑器 nano,底下提示信息中^X 的意思就是 ctrl+X。不是每个Linux 上都安装 nano,有时候需要自己装。

软件的安装

  linux 下很多软件都是自己下载源代码、自己编译的,有点痛苦。因此很多发行版都有自己的安装包格式。比如 RedHat 使用*.rpm 的文件,Ubuntu 使用*.deb 文件。

  自己查找、下载安装还是很麻烦。因此很多发行版中都提供了类似于应用市场、NuGet 的东西。

  Ubuntu 推荐使用 apt 进行下载、安装。会从 ubuntu 官网下载(中国区镜像),如果下载速度慢的话,可以设置从其他镜像下载,具体搜索“Ubuntu apt-get  镜像” 执行某些程序的时候,如果程序没安装,还会提示你,比如执行 vim、tree 等。

  安装软件需要 sudo 执行。如下:

  • 安装 “sudo apt-get install 程序名”,比如“sudo apt-get install vim”
  • 卸载“sudo apt-get remove 程序名”

重要配置

网络配置

  • 使用 ifconfig 命令查看网络配置信息,查看 ip 地址和网卡物理地址(MAC 地址)
    要先执行 sudo apt install net-tools 命令安装 net-tools 
  • 如果出现无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
    解决办法:
    sudo rm /var/cache/apt/archives/lock
    sudo rm /var/lib/dpkg/lock
  •  

  • 虚拟机和主机之间组建了一个局域网,虚拟机通过主机上网。虚拟机的设置的“网络”中可以设置不同的连接方式。主机可以通过 ifconfig 看到的 ip 地址连接虚拟机的网络。

  • 虚拟机的网络连接方式有很多种,最主要有三种:HostOnly 、NAT、桥接(Bridge)。HostOnly 配置较麻烦,需要懂很多网络工程的东西;NAT 是虚拟机借助于主机网卡访问网络,藏在主机后面,网络中其他设备不能这个虚拟机,连主机都不能,但是虚拟机能连接主机的网络,能上外网;桥接(Bridge)方式则是把虚拟主机也暴露为网络中的一个设备,主机和虚拟主机在网络内是平等的,可以互相访问,但是要求网络中没有设备访问的限制(比如 Mac 地址绑定或者终端个数限制),如果有限制要改路由器的配置。因为咱们需要主机和虚拟机互相访问,除非网络有限制,否则最好配置为桥接(Bridge),配置桥接(Bridge)要选择通过哪个网卡上外网,不能选错了,否则就无法访问外网了。后面我们都配置为桥接(Bridge)。

  • 虚拟机的 ip 地址可能变化,注意。

SSH 服务

  运维人员是怎么远程连接到机房上的服务器,很少使用图形界面(卡,无法自动化)远程登录有专门的通信协议 telnet, telnet 就是通过网络进行命令行操作服务器。只有服务器端开始了远程登录服务,客户端才能通过 telnet 协议控制服务器端。

  但 telnet 协议使用明文传输数据,这会造成严重的安全性问题,所以现在几乎不推荐使用, 而替代协议是 SSH。SSH 通讯过程数据是加密的。

Linux 安装使用 OpenSSH

  • Ubuntu 默认只安装了客户端 openssh-client
  • 安装服务器: sudo apt-get install openssh-server
  • 查看服务器是否开启:netstat -tlp 
  • 启动 sudo /etc/init.d/ssh start 
  • 重启 sudo  /etc/init.d/ssh restart
  • ssh 服务默认端口 22,可通过修改配置文件修改端口/etc/ssh/sshd_config 

windows 下如何通过 ssh 连接到 linux  :下载运行 putty,免安装。

linux下重启网络服务: /etc/init.d/network restart 或者是 /etc/init.d/networking restart 

putty登录SSH终端出现的“Access Denied”提示:只要在Putty的configuration里面Connection-》SSH-》Auth【认证】-》GSSAPI的配置中,去掉默认的Attempt GSSAPI authentication(ssh-2 only) 一项前面的对勾

如果显示中文乱码,则在 putty 标题栏点击右键,选【change settings】点【Translation】,选 UTF8 编码

新显示会不乱码,旧显示还会乱码。

后续都通过 ssh 连接操作,这也是平时连接服务器时候的常规操作:windows 下开发,然后部署到 linux 下运行。

使用 mysql

安装 mysql 服务器

  • sudo apt-get install mysql-server
  • 根据提示设置 root 用户的密码,测试时候设置为 123456(安装mysql5.7未提示输入密码,安装后修改mysql密码默认密码)
  • sudo apt-get install mysql-client 安装管理客户端
  • mysql -uroot -p123456 通过管理 客户端连接 mysql,如果不报错就 ok。mysql –u 用户名 –p 密码。mysql –uroot –p123456
  • mysql 客户端中执行(不要在 shell 中直接执行)show databases;(不要丢了结尾的英文分号)查看有哪些数据库; 执行一下 select now();正确执行。执行“quit;” 退出 mysql 客户端。
  • 基于安全考虑,mysql 默认只能本机连接。如果想通过其他电脑连接(比如主机访问虚拟机中的 mysql),就需要配置。最好不要配置成任意电脑都可以连接,因为危险。要配置成只允许某些 ip 访问。

设置Mysql密码

  • 进入到etc/mysql 目录下,查看debian.cnf文件 sudo cat /etc/mysql/debian.cnf 
  • 找到用户名,密码 ,使用此账号登录mysql

    用户名:debian-sys-maint

    密码:BdA9Uyv0QDfFlzuP

    登录:mysql -udebian-sys-maint -pBdA9Uyv0QDfFlzuP

  • 修改root用户的的密码
    这里是关键点,由于mysql5.7没有password字段,密码存储在authentication_string字段中,password()方法还能用
    在mysql中执行下面语句修改密码
    复制代码
    use mysql;
    // 下面这句命令有点长,请注意。
    update mysql.user set authentication_string=password('123456') where user='root' and Host ='localhost';
    update user set plugin="mysql_native_password"; 
    flush privileges;
    quit;
    复制代码
  • 修改完密码,需要重启mysql
    /etc/init.d/mysql restart;
    //或者
    sudo service mysql restart
  • 再次登录
    mysql -u root -p密码;
  • 卸载:
    sudo apt purge mysql-*
    sudo rm -rf /etc/mysql/ /var/lib/mysql
    sudo apt autoremove
  • 安装:
    复制代码
    # 安装的时候会提示要设置root密码,如果你没有在卸载的时候去清理残留数据是不会提示你去设置root密码的 ,我的就没提示,可以用上面的方法修改密码
    sudo apt-get install mysql-client mysql-server
     
     
    #检查mysql是不是在运行
    sudo service mysql status
     
     
    #一般安装完成之后都是会自动运行的,如果没有运行可以start
    sudo service mysql start
    复制代码

     

 

配置 MySQL 远程访问(需要网络配置为桥接网络)

  • 编辑 mysql 的配置文件 mysqld.cnf ,由于 mysql 是系统服务,因此需要以 su 运行 vi,才有权限,执行  sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 。由于不同 mysql 版本配置文件的位置可能不一样,因此最好的找路径的方式就是 cd、dir 一级级的看看。(linux 下不同版本差异性很大,之前查资料都是改/etc/mysql /conf.d/mysql.cnf,但是使用 status;命令查询 mysql 版本之后搜索“mysql 5.7 远程访问”才找到正确的做法。)
  • 把 bind-address = 127.0.0.1 注释掉。
  • 执行 sudo /etc/init.d/mysql restart 重启mysql服务
  • 在主机上执行 ifconfig (Linux下是ifconfig、Windows下是ipconfig),查看主机的ip 地址是多少(别看错了,也别看成虚拟机的ip),假如是192.168.0.11
  • 执行 mysql -uroot -p123456 (-u后面的是用户名、-p后面的是密码,根据你的配置做修改。不要在-u和-p输入空格)进入mysql服务器后
  • 执行 grant all privileges on *.* to root@"192.168.0.11" identified by "这里换成密码" with grant option;       注意:不要丢了末尾的分号,不要直接在命令行下输入,要进入mysql再执行。
  • 再执行  flush privileges;    注意:不要丢了末尾的分号,不要直接在命令行下输入,要进入mysql再执行。

主机上连接虚拟机内的 mysql 一定要连接虚拟机的 ip,别连错了。

主机的 ip 如果变了就要重新配置。

 

安装vsftp服务器

安装

什么是 ftp。通过 ftp 进行文件的上传下载

执行 sudo apt-get install vsftpd 命令进行安装

配置

这时候可以用 linux 用户登录,能够访问/home/用户名的文件夹下。但是没有上传权限。需要 sudo vi /etc/vsftpd.conf  将 write_enable=YES 前面的#取消,然后执行  sudo /etc/init.d/vsftpd restart  重启

Windows 下可以使用 FileZilla FTP Client 等 FTP 客户端上传下载

中文会有乱码,不用处理,上传下载比较多的文件都压缩。linux 解压使用 unzip“unzip a.zip”。不要传 rar 等格式。

 

posted on 2018-10-27 16:49  一个大西瓜咚咚咚  阅读(1515)  评论(0编辑  收藏  举报

导航