一、Linux
1.1 Linux 的应用领域
1.1.1 个人桌面领域的应用
- 此领域是 Linux 比较薄弱的环节
- 但是随着发展,近几年 linux 在个人桌面领域的占有率在逐渐提高
1.1.2 服务器领域
linux 在服务器领域的应用是最高的
linux 免费、稳定、高效等特点在这里得到了很好的体现
尤其在一些高端领域较为广泛
1.1.3 嵌入式领域
- linux 运行稳定,对网络的支持也特别好
- 并且可以根据需要进行软件裁剪,内核最小可以达到几百 KB
- 因为内核比较小,所以可以很轻松的将内核移植到嵌入式的环境下进行运行
1.2 Linux 入门
1.2.1 Linux 概述
linux 是一个开源、免费的操作系统
其稳定性、安全性、处理多并发已经得到业界的认可
linux 的主要发行版:Ubuntn(乌班图)、RedHat(红帽)、CentOS
linux 和发行版的关系
- linux 主要是一个内核
- 在这个内核上有不同的人对这个内核进行包装
- 或是在内核的基础上软件包或工具
- 包装后的就被称为 linux 的发行版
1.3 VM 和 Linux 的安装
- 学习 Linux 需要一个环境
- 需要创建一个虚拟机,然后再虚拟机上安装 Linux 操作系统
- VM 指的就是虚拟机
- 而下面我所用的 Linux 发行版 为 CentOS系统
1.3.1 VM 和 Linux 的关系
- 先在我们自己的电脑上安装 VM虚拟机
- 之后再在 VM虚拟机上 安装 Linux操作系统
- VM虚拟机上可以安装多个操作系统
1.3.2 安装 vmware (虚拟机)
官网下载地址:https://www.vmware.com/cn.html
进入官网主页,点击上方的
资源
, 之后在点击下方的产品下载
在上方的搜索框内搜索要下载的版本:
vmware workstation pro 17 for linux
回车键搜索
根据自己的需要进行下载
不需要一定下载 17.0 版本的,也可以根据自己的需要进行不同版本的下载
1.3.3 VM 安装步骤
安装之前需要先在 BIOS 里修改设置,开启虚拟化设备支持(某些设备不开启会安装不上)
开启虚拟化设备支持具体参考:https://jingyan.baidu.com/article/ab0b56305f2882c15afa7dda.html
下载好安装包后,右键以管理员身份运行
无脑下一步即可安装成功
1.3.4 Linux 操作系统 CentOS 下载
CentOS-7-x86_64-DVD-2009.iso 安装地址: http://mirrors.aliyun.com/centos/7/isos/x86_64/
CentOS-8.3.2011-x86_64-dvd1.iso 安装地址: http://mirrors.aliyun.com/centos/8/isos/x86_64/
根据自己所需要的版本,进行下载
只需要下载一个后缀为
.iso
的即可
1.3.5 在虚拟机中安装 CentOS 操作系统
打开 VM虚拟机,点击文件 -> 新建虚拟机
选择 典型,然后点击下一步
选择 稍后安装操作系统,然后点击下一步
客户机操作系统选择 Linux
**版本选择 红帽7,因为 CentOS 本身就是红帽的一个分支 **
为虚拟机命名,之后在设置虚拟机所存放的位置(尽量选择内存比较的磁盘)
然后点击下一步
设置虚拟机的磁盘空间
设置的内存并不会一下全部占完,它会根据你使用的内存慢慢占用
这里选择
将虚拟磁盘拆分成多个文件
然后点击下一步
这边选择 自定义硬件
内存选择 2GB 即可
处理器数量 以及 每个处理器的内核数量 根据自己的电脑 CPU 进行分配
网络适配器我们这边先选择
NAT模式
之后会针对网络适配器专门做讲解
设置完后点击 关闭 即可
然后点击完成即可
右键刚刚创建好的虚拟机
点击设置
选择刚刚安装好的后缀为
.iso
的文件然后点击确定即可
选择你的虚拟机,点击 开启此虚拟机
鼠标双击黑色区域,进入虚拟机选择
使用上下键,选择第一个
Install CentOS 7
然后按下回车键进入此界面,再次按一下回车键,进行等待即可
进入此界面,选择语言
滑到下方,选择 中文 -> 简体中文,然后点击继续
进入此界面,不要乱点!!!慢慢等待
等待图标颜色从灰色变成黑色即可(不包括右下角那个
KDUMP
)点击软件选择
在开发过程中我们一般选择最小安装
在此刻是学习过程,需要安装一些环境
所以需要选择
GNOME 桌面
然后选择
传统 X Windows 系统的兼容性
、兼容性程序库
、开发工具
选择上开发工具后,他就会默认帮你安装 gcc,JDK,MySQL
然后点击完成
点完完成后,进入此界面不要乱点!!!,等待这两个从灰色变成黑色
因为此时正在检查软件依赖和关系,需要等待
等待变成这个样子即可
点击 安装位置,对磁盘进行分区
选择
我要配置分区
,之后点击完成
linux 分区一般分为三部分
- boot分区
- 一般为 1个g的大小
- 交换分区 swap
- 交换分区可以临时的充当内存
- 当实际内存被占满时,会先将程序放在交换分区当中
- 一般跟你分配的类型大小一致
- 例如刚刚我们分配的是 2g
- 根分区
- 将剩余的内存全部分配给根分区
- 例如我们的磁盘的内存为20g,则这里为 17g
- boot分区
点击左下角的 + 添加分区 -> 挂载点选择
/boot
-> 期望内容为 1G => 添加挂载点设备类型选择
标准分区
文件系统选择
ext4
点击左下角的 + 添加分区 -> 挂载点选择
swap
-> 期望内容为 2G => 添加挂载点设备类型选择
标准分区
文件系统选择
swap
点击左下角的 + 添加分区 -> 挂载点选择
/
-> 期望内容为 17G(剩余内存全部分配给它) => 添加挂载点设备类型选择
标准分区
文件系统选择
ext4
点击完成,之后点击接收更改
点击 KDUMP
取消 启用 Kdump,然后点击完成
一般在工作中,正在的生成环境中,会开启
但是现在只是用于学习,以防占内存,所以取消了
选择 网络和主机名
打开以太网
重新命名一下主机名,如图,然后点击应用
最后点击完成
点击开始安装
之后设置一个 ROOT 密码
设置完后点完成即可
在实际工作中要将密码设置的复杂一些
生成的密码自己一定要记住!
之后再创建一个新的用户
设置完后,点击完成即可
现在我们就已经存在两个用户了
- 第一个 ROOT 用户
- 即上面你设置的 ROOT 密码
- 用户名为 ROOT
- 密码为你自己设置的密码
- 第二个用户则是你新创建的用户
- 例如我自己的
- 用户名为 qiaoer
- 密码为我自己设置的密码
- 第一个 ROOT 用户
ROOT 用户的权限比较高一点
然后等待安装完成
安装完成后点击重启
接受一下许可
点击完成配置
这边使用的是你刚刚创建的普通用户,可以使用普通用户登录
如果想使用 ROOT 用户,则点击下面的未列出
输入root 用户名和你设置的 root 密码 点击登录即可
如果有这个图标,则代表你的网络以及成功连接
1.4 网络适配器的三种模式
在上方设置网络适配器时,有三种网络连接的模式
桥接模式,NAT模式,仅主机模式
1.4.1 桥接模式
- 虚拟系统可以和外部系统通讯
- 但容易造成网络 IP 冲突
1.4.2 NAT 模式
- 网络地址转换模式
- 虚拟系统可以和外部系统通讯
- 不会造成 IP 冲突
1.4.3 主机模式
- 独立的系统
- 不和外部发生联系
1.5 虚拟机的一些操作
1.5.1 虚拟机的克隆
如果你已经安装了一台 linux 操作系统,还需要更多的话,只需要使用克隆即可
- 方法一:
- 直接拷贝一份安装好的虚拟机文件
- 然后用 VM 打开即可
- 方法二
- 使用 vmware 的克隆操作
- 克隆前需要先关机虚拟机
- 右键你需要克隆的虚拟机 -> 管理 -> 克隆 即可
1.5.2 虚拟机快照
虚拟机快照可以回到原先的某一个状态
也就是说你担心可能有些误操作造成系统异常,需要回到某个原先正常运行的状态
vmware提供了这样的功能,就叫做快照管理
应用示例
1、安装好系统后,先做一个快照A
右键操作的虚拟机 -> 快照 -> 拍摄快照
2、进入系统,创建一个文件夹,再保存快照 B
3、回到系统刚刚安装好的状态,即快照 A
4、然后再试着跳转到快照B
1.5.3 虚拟机的迁移和删除
虚拟系统安装好了,它的本质就是文件(放在文件夹的)。
因此虚拟系统的迁移很方便,你可以把安装好的虚拟系统这个文件夹整体烤考贝或者剪切到另外位置使用。
删除也很简单,用vmware进行移除,再点击菜单->从磁盘删除即可
或者直接手动删除虚拟系统对应的文件夹即可。
1.6 安装 vmtools
1.6.1 vmtools介绍
- 可以让我们在 windows 下更好的管理 vm虚拟机
- 可以设置 windows(主机) 和 centos(虚拟机) 共享文件夹
1.6.2 安装 vmtools 步骤
安装 vmtools 前需要有 gcc
gcc 在前面安装 CentOS 操作系统的进行软件选择时,选择的开发工具就有包含 gcc 所以不用担心
在终端输入
gcc -v
判断是否有安装 gcc,如果没有安装,则会提示找不到下面开始进行 vmtools 的安装
打开虚拟机,centos
右键 centos -> 弹出
点击 vm 菜单的 install vmware tools
如果你的 install vmware tools 是灰色的,先把 cd改为自动检测
设置cd为自动检测,先把虚拟机关机
点击你的虚拟机 -> CD/DVD 双击打开
选择物理驱动
然后再重新打开虚拟机,安装 install vmware tools
如果开机之后还是灰色,那么就在点击开机后,虚拟机还没完全开机时安装
桌面上出现 VMware Tools 文件则代表安装成功
打开 VMware Tools 光盘,将里面的一个名为 VMware tools 文件拷贝到 /opt 目录下
复制该文件夹
打开主文件夹 -> 其他位置 -> 计算机
打开 opt 文件,将刚刚复制的 VMware Tools 文件粘贴进去
使用解压命令 tar,得到一个安装文件
首先在桌面右键,打开终端 -> 使用指令
cd /opt
进入到 /opt 文件夹使用
tar -zxvf 刚刚复制的那个文件的文件名
例如tar -zxvf VMwareTools-10.3.23-17030940.tar.gz
解压文件使用
ls
指令查看 /opt 目录下的文件vmware - tools -distrib 目录就是刚刚解压的目录
**进入到刚刚解压的目录 vmware - tools -distrib 下 **
使用
ls
指令查看 vmware - tools -distrib 目录下的文件vmware-install.pl 文件就是安装文件
使用
./
指令安装这个文件使用
./vmware-install.pl
指令进行安装,然后一直点回车即可中间有些地方可能需要等待一会
1.6.3 设置共享文件夹(测试是否安装成功)
首先在 windows(你的主机)上创建一个文件夹
在文件夹内创建一个文件,并随意写入一些数据
我这边是在 D盘中创建了一个 myshare 文件夹
在创建好的文件夹下创建一个文件,随意写入一些数据
设置虚拟机中的共享文件夹
右键我们要设置的虚拟机 -> 设置
点击选项 -> 共享文件夹 -> 总是启用 ->添加
设置你刚刚在主机中创建的文件夹的路径
在虚拟机中找到在主机中创建的共享文件夹
主文件夹 -> 其他位置 -> 计算机
找到 mnt文件夹 -> hgfs文件夹 ->你创建的共享文件夹
里面的文件夹就是共享文件夹
你在主机对这个文件夹内进行的读写操作,在虚拟机也会看到,反之也一样
1.7 Linux 目录结构
1.7.1 linux 目录结构介绍
- linux 的文件系统采用层级的树状目录结构
- 此结构中最上层的是根目录
/
- 然后在此目录下在创建其他的目录
- linux 的文件目录中每个文件都由它的作用,所以你的文件不能随意存放
- linux 文件一定要背熟,因为在实际开发中我们并不能看到页面,只有控制台
1.7.2 linux 目录具体结构
具体的目录结构(了解即可)
目录 | 说明 |
---|---|
/bin 常用 |
存放一些经常使用的指令 |
/sbin |
存放系统管理员使用的系统管理程序 |
/home 常用 |
存放普通用户的主目录 在 linux 中每个用户都有一个自己的目录,一般该目录以用户的账户名命名 |
/root 常用 |
为系统管理员,也称作超级权限者的用户主目录 |
/lib |
系统开机所需要最基本的动态连接共享库 类似于 Windows 里的 DLL 文件 几乎所有的程序都要用到这个共享库 |
/lost + found |
一般情况下该目录为空 当非法关机时,会存放一些文件 |
/etc 常用 |
所有的系统管理员所需要的配置文件和子目录 比如安装了 mysql数据库,那么mysql的配置文件则会放在该目录下 |
/usr 常用 |
用户的应用程序和文件放在该目录下 |
/boot 常用 |
存放的是启动 linux 时使用的一些核心文件,包括一些连接文件和镜像文件 |
/proc |
一个虚拟目录 它是系统内存的映射,访问这个目录来获取系统信息 |
/srv |
该目录存放一些服务启动后需要提取的数据 |
/sys |
该目录下安装了 linux2.6 内核中新出现的一个文件系统 sysfs |
/tmp |
这个目录用来存放一些临时文件 |
/dev |
类似于 windows 的设备管理器,把所有的硬件以文件的形式存储 |
/media 常用 |
linux 系统会自动识别一些设备,例如 U盘、光驱等 linux 会把识别的设备挂载到这个目录下 |
/mnt 常用 |
系统提供该目录是为了让用户临时挂载别的文件系统 该目录可以查看用户挂载的外部存储 |
/opt |
主机安装额外软件所存放的目录 存放的是软件的安装包 |
/user/local 常用 |
这是另一个给主机额外安装软件所安装的目录 存放最终安装成功后的软件 |
/var |
存放着不断扩充着的东西 习惯将经常修改的目录放在这个目录下 包括各种日志文件 |
/selinux |
用来保证系统安全的目录 |
1.8 远程登录到 linux 服务器
1.8.1 为什么需要远程登录 linux
实际开发中,liunx 开发是小组共享的,是小组的人共同在使用
正式上线的项目是运行在公网的
因此程序要需要远程登录到 linux 进行项目管理或开发
远程登录的客户端有 Xshell,Xftp
- Xshell 用于远程登录
- Xftp 用于文件传输
因为这两个软件是免费的,所以学习的时候使用,其他软件大同小异
1.8.2 远程登录Linux-Xshell
首先在主机上安装 Xshell
下载地址:Free for Home/School - Xshell and Xftp Free Licensing (netsarang.com)
下载完成后无脑下一步即可
远程连接之前,需要先知道 linux 系统的 ip 地址
使用指令
ifconfig
查看知道 linux系统的 ip 地址后,还需要查看主机是否可以ping通 linux 系统
在主机终端使用
ping linux系统ip地址
来查看打开 Xshell 软件进行远程连接
文件 -> 新建
随意起个名字,并输入刚刚的 linux系统的ip地址
一次性接收 表示以后每次访问都要输入用户名和密码
接收并保存 表示之后不用在输入用户名和密码
这个时候就可以远程操作 linux 系统了
1.8.3 远程传输文件 Linux-Xttp
在主机上安装 Xttp
下载地址:https://www.netsarang.com/en/free-for-home-school/
下一步即可
输入名字和邮箱提交即可
进入 Xttp 软件
点击文件 -> 新建
随便起个名字
主机输入你的 linux 系统的ip地址(ip地址是什么上面有讲到)
协议最好选择 SFTP
输入你 Linux 系统的登录名和密码
如果是乱码的话,像这样
点击左上角文件 -> 当前会话属性 -> 选择 -> 编码换成 UTF-8
左边就是 Windows,右边就是 Linux
想要传输某个文件,直接右键 ->传输 即可
这边也可以切换要传输的文件位置
1.9 vi 和 vim
1.9.1 vi 和 vim 介绍
- Linux 系统内会内置 vi 文本编辑器
- vi 文本编辑器 类似于 windows 的记事本
- Vim 具有编程的能力,可以看作是 vi 的加强版
- Vim 可以主动的以字体颜色辨别语法的正确性,方便程序设计,代码补全
1.9.2 vi 和 vim 常用的三种模式
- 正常模式
- 以 vim 打开一个档案直接就会进入正常模式
- 正常模式中,可以使用 上下左右 按键来移动光标
- 也可以使用 删除字符 或 删除整行 来 整理文档
- 也可以使用 复制 粘贴 来处理文件的数据
- 插入模式
- 按下
i
、I
、o
、O
、a
、A
、r
、R
等任何一个字母之后才会进入编辑模式 - 一般来说按下
i
即可 - 插入模式简单来说就是你可以在文档中写你入你的内容
- 按下
- 命令行模式
- 点击 esc,然后在输入冒号,则会进入命令行模式
- 在这个模式中,你可以提供你相关的指令
- 指令可以完成读取、存盘、替换、离开 Vim、显示行号等操作
1.9.3 vi 和 vim 的基本使用
使用 Vim 开发一个 Hello.java 程序,输出 Hello Word,并且保存
我们这边使用软件 Xshell 来模拟远程编写
打开 Xsehll,连接你的 Linux 系统
在终端输入指令
vim Hello.java
,表示使用 vim 开发 Hello.java的一个程序然后我们输入
i
键,从正常模式进入插入模式,才可以编写内容编写程序,输出 Hello word
编写完后需要进行保存
保存的前提需要先进入命令行模式
按下 esc ,然后输入冒号,从插入模式进入 命令行模式
然后在输入 wq
命令行模式中 ,wq 代表,写入并且退出,即保存
进入命令行模式**
- 在这个模式中,你可以提供你相关的指令
- 指令可以完成读取、存盘、替换、离开 Vim、显示行号等操作
1.9.3 vi 和 vim 的基本使用
使用 Vim 开发一个 Hello.java 程序,输出 Hello Word,并且保存
我们这边使用软件 Xshell 来模拟远程编写
打开 Xsehll,连接你的 Linux 系统
在终端输入指令
vim Hello.java
,表示使用 vim 开发 Hello.java的一个程序[外链图片转存中…(img-I9YESYGR-1705476896210)]
[外链图片转存中…(img-zBllnGK9-1705476896210)]
然后我们输入
i
键,从正常模式进入插入模式,才可以编写内容[外链图片转存中…(img-WWcK3OJ7-1705476896210)]
编写程序,输出 Hello word
[外链图片转存中…(img-m1wUTslE-1705476896210)]
编写完后需要进行保存
保存的前提需要先进入命令行模式
按下 esc ,然后输入冒号,从插入模式进入 命令行模式
[外链图片转存中…(img-AQ5Ns5Ax-1705476896211)]
然后在输入 wq
命令行模式中 ,wq 代表,写入并且退出,即保存
[外链图片转存中…(img-pGmwHaaU-1705476896211)]