linux 在服务器领域的应用是最高的
linux 免费、稳定、高效等特点在这里得到了很好的体现
尤其在一些高端领域较为广泛
linux 是一个开源、免费的操作系统
其稳定性、安全性、处理多并发已经得到业界的认可
linux 的主要发行版:Ubuntn(乌班图)、RedHat(红帽)、CentOS
linux 和发行版的关系
- 学习 Linux 需要一个环境
- 需要创建一个虚拟机,然后再虚拟机上安装 Linux 操作系统
- VM 指的就是虚拟机
- 而下面我所用的 Linux 发行版 为 CentOS系统
官网下载地址:https://www.vmware.com/cn.html
进入官网主页,点击上方的 资源
, 之后在点击下方的 产品下载
在上方的搜索框内搜索要下载的版本:vmware workstation pro 17 for linux
回车键搜索
根据自己的需要进行下载
不需要一定下载 17.0 版本的,也可以根据自己的需要进行不同版本的下载
安装之前需要先在 BIOS 里修改设置,开启虚拟化设备支持(某些设备不开启会安装不上)
开启虚拟化设备支持具体参考:https://jingyan.baidu.com/article/ab0b56305f2882c15afa7dda.html
下载好安装包后,右键以管理员身份运行
无脑下一步即可安装成功
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
的即可
打开 VM虚拟机,点击文件 -> 新建虚拟机
选择 典型,然后点击下一步
选择 稍后安装操作系统,然后点击下一步
客户机操作系统选择 Linux
**版本选择 红帽7,因为 CentOS 本身就是红帽的一个分支 **
为虚拟机命名,之后在设置虚拟机所存放的位置(尽量选择内存比较的磁盘)
然后点击下一步
设置虚拟机的磁盘空间
设置的内存并不会一下全部占完,它会根据你使用的内存慢慢占用
这里选择 将虚拟磁盘拆分成多个文件
然后点击下一步
这边选择 自定义硬件
内存选择 2GB 即可
处理器数量 以及 每个处理器的内核数量 根据自己的电脑 CPU 进行分配
网络适配器我们这边先选择 NAT模式
之后会针对网络适配器专门做讲解
设置完后点击 关闭 即可
然后点击完成即可
右键刚刚创建好的虚拟机
点击设置
选择刚刚安装好的后缀为 .iso
的文件
然后点击确定即可
选择你的虚拟机,点击 开启此虚拟机
鼠标双击黑色区域,进入虚拟机选择
使用上下键,选择第一个 Install CentOS 7
然后按下回车键
进入此界面,再次按一下回车键,进行等待即可
进入此界面,选择语言
滑到下方,选择 中文 -> 简体中文,然后点击继续
进入此界面,不要乱点!!!慢慢等待
等待图标颜色从灰色变成黑色即可(不包括右下角那个 KDUMP
)
点击软件选择
在开发过程中我们一般选择最小安装
在此刻是学习过程,需要安装一些环境
所以需要选择 GNOME 桌面
然后选择 传统 X Windows 系统的兼容性
、兼容性程序库
、开发工具
选择上开发工具后,他就会默认帮你安装 gcc,JDK,MySQL
然后点击完成
点完完成后,进入此界面不要乱点!!!,等待这两个从灰色变成黑色
因为此时正在检查软件依赖和关系,需要等待
等待变成这个样子即可
点击 安装位置,对磁盘进行分区
选择 我要配置分区
,之后点击 完成
linux 分区一般分为三部分
点击左下角的 + 添加分区 -> 挂载点选择 /boot
-> 期望内容为 1G => 添加挂载点
设备类型选择 标准分区
文件系统选择 ext4
点击左下角的 + 添加分区 -> 挂载点选择 swap
-> 期望内容为 2G => 添加挂载点
设备类型选择 标准分区
文件系统选择 swap
点击左下角的 + 添加分区 -> 挂载点选择 /
-> 期望内容为 17G(剩余内存全部分配给它) => 添加挂载点
设备类型选择 标准分区
文件系统选择 ext4
点击完成,之后点击接收更改
点击 KDUMP
取消 启用 Kdump,然后点击完成
一般在工作中,正在的生成环境中,会开启
但是现在只是用于学习,以防占内存,所以取消了
选择 网络和主机名
打开以太网
重新命名一下主机名,如图,然后点击应用
最后点击完成
点击开始安装
之后设置一个 ROOT 密码
设置完后点完成即可
在实际工作中要将密码设置的复杂一些
生成随机密码 - 密码生成器 - 密码批量生成器 (bmcx.com)
生成的密码自己一定要记住!
之后再创建一个新的用户
设置完后,点击完成即可
现在我们就已经存在两个用户了
ROOT 用户的权限比较高一点
然后等待安装完成
安装完成后点击重启
接受一下许可
点击完成配置
这边使用的是你刚刚创建的普通用户,可以使用普通用户登录
如果想使用 ROOT 用户,则点击下面的未列出
输入root 用户名和你设置的 root 密码 点击登录即可
如果有这个图标,则代表你的网络以及成功连接
在上方设置网络适配器时,有三种网络连接的模式
桥接模式,NAT模式,仅主机模式
如果你已经安装了一台 linux 操作系统,还需要更多的话,只需要使用克隆即可
虚拟机快照可以回到原先的某一个状态
也就是说你担心可能有些误操作造成系统异常,需要回到某个原先正常运行的状态
vmware提供了这样的功能,就叫做快照管理
应用示例
1、安装好系统后,先做一个快照A
2、进入系统,创建一个文件夹,再保存快照 B
3、回到系统刚刚安装好的状态,即快照 A
4、然后再试着跳转到快照B
虚拟系统安装好了,它的本质就是文件(放在文件夹的)。
因此虚拟系统的迁移很方便,你可以把安装好的虚拟系统这个文件夹整体烤考贝或者剪切到另外位置使用。
删除也很简单,用vmware进行移除,再点击菜单->从磁盘删除即可
或者直接手动删除虚拟系统对应的文件夹即可。
安装 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
指令进行安装,然后一直点回车即可
中间有些地方可能需要等待一会
首先在 windows(你的主机)上创建一个文件夹
在文件夹内创建一个文件,并随意写入一些数据
我这边是在 D盘中创建了一个 myshare 文件夹
在创建好的文件夹下创建一个文件,随意写入一些数据
设置虚拟机中的共享文件夹
右键我们要设置的虚拟机 -> 设置
点击选项 -> 共享文件夹 -> 总是启用 ->添加
设置你刚刚在主机中创建的文件夹的路径
在虚拟机中找到在主机中创建的共享文件夹
主文件夹 -> 其他位置 -> 计算机
找到 mnt文件夹 -> hgfs文件夹 ->你创建的共享文件夹
里面的文件夹就是共享文件夹
你在主机对这个文件夹内进行的读写操作,在虚拟机也会看到,反之也一样
/
具体的目录结构(了解即可)
目录 | 说明 |
---|---|
/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 |
用来保证系统安全的目录 |
实际开发中,liunx 开发是小组共享的,是小组的人共同在使用
正式上线的项目是运行在公网的
因此程序要需要远程登录到 linux 进行项目管理或开发
远程登录的客户端有 Xshell,Xftp
因为这两个软件是免费的,所以学习的时候使用,其他软件大同小异
首先在主机上安装 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 系统了
在主机上安装 Xttp
下载地址:https://www.netsarang.com/en/free-for-home-school/
下一步即可
输入名字和邮箱提交即可
进入 Xttp 软件
点击文件 -> 新建
随便起个名字
主机输入你的 linux 系统的ip地址(ip地址是什么上面有讲到)
协议最好选择 SFTP
输入你 Linux 系统的登录名和密码
如果是乱码的话,像这样
点击左上角文件 -> 当前会话属性 -> 选择 -> 编码换成 UTF-8
左边就是 Windows,右边就是 Linux
想要传输某个文件,直接右键 ->传输 即可
这边也可以切换要传输的文件位置
i
、I
、o
、O
、a
、A
、r
、R
等任何一个字母之后才会进入编辑模式i
即可:
,则会进入命令行模式/
,也会进入命令行模式:
和 /
的使用场景是不一样的,因为有些指令需要使用 :
,而有些则需要使用 /
:
开头的,而有些则是以 /
开头的使用 Vim 开发一个 Hello.java 程序,输出 Hello Word,并且保存
vim Hello.java
,表示使用 vim 开发 Hello.java的一个程序i
键,从正常模式进入插入模式,才可以编写内容Esc
键 即可Esc
键 ,然后按下 :
键,然后删除命令行输入的命令即可下面这些快捷键是在不同的模式下使用的
快捷键 | 说明 |
---|---|
yy(正常模式) | 拷贝当前行 |
nyy(正常模式) | 拷贝当前向下的n行 n表示要拷贝的行数 例如 5yy 则表示拷贝当前向下的5行 |
p(正常模式) | 粘贴复制的数据 |
dd(正常模式) | 删除当前行 |
ndd(正常模式) | 删除当前向下的n行 n表示要删除的行数 例如 5dd 表示删除当前向下的5行 |
/关键字 (命令行模式) | 在文件中查找某个单词 关键字则为你要查找的单词 按下回车查找,输入 n 就是查找下一个 |
:set nu (命令行模式) | 设置文件的行号 |
:set nonu (命令行模式) | 取消文件的行号 |
G(正常模式) | 直接定位到文件的最末尾行 |
gg(正常模式) | 直接定位到文件的首行 |
u(正常模式) | 撤销 比如在文件中输入了一个 “hello” 在正常模式下按下 u 键则会撤回这个动作 |
n shift+g(正常模式) | 定位到指定的行号 n 代表你要定位的行号 例如你要定位到 55行 则先按下55,在按下 shift + g 即可 |
命令 | 说明 |
---|---|
shutdown -h now | 立刻执行关机 |
shutdown -h n | n分钟之后再执行关机 n代表几分钟后 例如五分钟后关机 shutdown -h 5 |
shutdown -r now | 立刻重启计算机 |
shutdown - r n | n分钟之后再执行重启 n代表几分钟后 例如五分钟后重启 shutdown -r 5 |
halt | 立刻执行关机 |
reboot | 立刻重启计算机 |
sync | 把内存的数据同步到磁盘 |
sync
指令,把内存中的数据读写到磁盘上命令 | 说明 |
---|---|
su - 用户名 | 将当前用户切换为指定用户 切换的时候需要输入用户的密码 例如 su - root ,则是切换到 root 用户 |
logout | 注销当前用户 如果你使用 su - 指令切换过用户,那么则会用户则会变为你切换前的用户 |
Linux 是一个多用户多任务的操作系统
任何一个要使用系统资源的用户,都必须先向系统管理员申请一个账号
然后以这个账号的身份进入系统
添加用户,指定密码的一些指令
指令 | 说明 |
---|---|
useradd 用户名 | 添加一个新用户 |
useradd -d 指定目录名 新的用户名 | 添加一个新用户,并且指定用户的家目录 例如在 home 目录下创建一个新用户 king,用户目录名为 text useradd -d /home/text king |
passwd 用户名 | 为指定的用户设置密码 |
pwd | 显示当前用户所在的目录 |
useradd -d 指定目录名 用户名
来给新创建的用户指定家目录删除用户的一些指令
指令 | 说明 |
---|---|
userdel 用户名 | 删除指定用户,但会保留家目录 |
userdel -r 用户名 | 删除指定用户,包括用户的家目录 |
与用户信息操作相关的一些指令
指令 | 说明 |
---|---|
id 用户名 | 查询用户信息 会显示用户的 id 、用户组id 以及所在的用户组 |
su - 用户名 | 切换用户 低权限的用户切换高权限用户需要输入密码 高权限的用户向低权限的用户切换不需要输入密码 |
who am i | 查看当前的登录用户 如果你使用 su - 指令切换了用户那么显示的用户是你第一次登录的用户信息 |
类似于角色,系统可以对具有共性的多个用户进行统一管理
简单来说就是,可以将多个用户放进一个用户组,进行统一管理
在创建用户时,如果没有指定用户组,那么会生成一个与用户名相同的用户组
用户组操作的相关指令
指令 | 说明 |
---|---|
groupadd 组名 | 新增用户组 |
groupdel 组名 | 删除已存在的用户组 |
useradd -g 用户组 用户名 | 在创建用户时指定用户的用户组 |
usermod -g 用户组 用户名 | 修改用户的用户组 |
1、/etc/passwd 文件
:
来分隔):
2、/etc/shadow
:
来分隔):
3、/etc/group
:
来分隔):
1、/etc/passwd 文件
:
来分隔):
2、/etc/shadow
:
来分隔):
3、/etc/group
:
来分隔):