1、Linux入门和安装
1.1、vm、Linux和主机的关系
vm虚拟机软减安装在主机上,而Linux安装在虚拟机软件上。
1.2、虚拟机软件和CentOS7.6的安装
安装步骤请查看:
1.3、网络连接的三种方式
1. 桥接模式
- 如果使用桥接模式的话,虚拟系统的IP地址的前三个十进制数字和该主机相同且和外界主机也相同,所以虚拟系统可以和外界系统通讯,但是会造成IP地址冲突。
2. NAT模式
- 如果是NAT模式,其实也就是
网络地址转换模式
。虚拟系统的IP地址的后两位和外部的主机不同,但它也可以通过主机代理和外部通讯(单向的),不会造成IP冲突。
3. 主机模式
- 其实就是独立的系统。
1.4、虚拟机的克隆
- 方式一:直接赋值拷贝一份虚拟机文件。
- 方式二:使用vmware的克隆操作。
注意:克隆时,需要关闭Linux系统
。
- 创建链接克隆:其实就是
创建一个相关的已经创建好的虚拟机文件的链接
,其实指向的还是同一个系统。 - 创建完整克隆:创建完整克隆其实就是
相应的虚拟机的文件的拷贝一份
。
1.5、虚拟机快照
如果你在使用虚拟机系统的时候(比如Linux),你想回到原先的某一个状态,也就是说你担心可能会有些误操作造成系统异常,需要回到原先的某个状态,
vmware也提供了这样的功能,就叫快照管理。
应用实例
- 安装好系统以后,先做一个快照A。
- 进入到系统,做了一些修改后(可以是新建了文件夹或者安装了一些软件),在保存一个快照B。
- 通过
快照管理
可以进行相应的状态转换。
- 快照也会占据一定的内存。
1.6、虚拟机的迁移和删除
- 一个安装好的虚拟系统其实就是一个文件,所以对虚拟机的迁移和删除其实就是虚拟系统文件的拷贝复制和删除。
- 如果在vmware中进行移除,仅仅是移除了相关的引用,只有将其文件删除后才算真正的删除。
1.7、vmtools的安装
1. vmtools的作用
vmtools安装后,可以让我们在windows下更好的管理vm虚拟机,可以设置windows和centos的共享文件夹
。
2. 安装vmtools的步骤
- 进入centos
- 点击vm菜单的 - > install vmware tools
- centos会出现一个vm的安装包,xx.tar.gz
- 拷贝到/opt目录下
- 使用解压命令进行解压,得到一个安装文件
cd /opt
[进入到opt目录]tar -zxvf xx.tar.gz
解压命令
- 进入该vm解压的目录,/opt 目录下
cd /vmware-tools-distrib
- 安装
./vmware-install.pl
- 然后全部默认设置即可,就可以安装成功
- 注意:安装vmtools 需要使用gcc。
3. 设置共享文件夹
2、目录结构
2.1、目录结构简介
- Linux的文件系统是采用级层式的树状目录结构,
在此结构中的最上层是“/”
,然后在此目录下再创建其他的目录。 - 在Linux的世界里,
一切皆为文件
。(硬件也会被映射为一个文件进行管理)。
2.2、目录详解
- bin:是Binary的缩写,这个目录存放着最经常使用的命令。
- sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- home:存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一般该目录是以用户的账号命名。
- root:该目录为系统管理员,也称作超级权限者的用户目录。
- lib:系统开机所需要最基本的动态连接共享库,其作用类似于 windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
- lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
在图形界面中被隐藏,我们可以通过终端命令行进行查看。
- etc:所有的系统管理所需要的配置文件和子目录。
- usr:用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/local:这是一个给主机额外安装软件(软件)所安装的目录。一般是通过编译源码方式安装的程序。
- boot:存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
- proc:这是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息(该目录不能动)。
- srv:service 的缩写,该目录存放一些服务启动之后所需要提取的数据(该目录不能动)。
- sys:这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs(该目录不能动)。
- tmp:用来存放一些临时文件的目录。
- dev:类似于 windows 的设备管理器,把所有的硬件用文件的形式存储。
- media:Linux 系统会自动识别一些设备,例如 U 盘、光驱等等,识别之后,Linux 会把识别的设备挂载到这个目录下。
- mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在 mnt 上,然后进入该目录就可以查看里面的内容了。
- opt:这是给主机额外安装软件(安装包)所存放的目录,默认为空。
- var:这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日常文件
- selinux [sercurity-enhanced linux]:SELinux 是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置。
可能我们的根目录下没有看到这个目录,因为它没有被启用,启用后就可以看到了。
- run:是系统运行时所需要的文件,重启后会重新生成对应的目录数据。
3、远程登录和远程文件传输
- linux服务器是开发小组共享的
- 正式上线的项目是运行在公网的。
- 因此程序员需要远程登录到centos进行项目管理或者开发。
3.1、远程登录
Xshell
是目前最好的远程登录到Linux操作的软件,流畅的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。
3.2、远程文件传输
Xftp
是一个基于windows平台的功能强大的SFTP、FTP文件传输软件。使用了Xftp以后,windows用户能安全地在UNIX/Linux和Windows PC之间传输文件。
4、vi 和 vim
4.1、基本介绍
- Linux 系统会内置 vi 和 vim 文本编辑器
- vim具有程序编写能力,可以看作是 vi 的增强版,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
4.2、三种模式的介绍和转换
1. 介绍
- 正常模式:以 vim 打开一个文档就直接进入正常模式。在这个模式中,可以使用【上下左右】按键来移动光标,可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【赋值、粘贴】来处理文件数据。
- 插入模式:按下 i、I、o、O、a、A、r、R 等任何一个字母之后才会进入编辑模式,一般来说按 i 即可。点击 Esc 退出该模式进入一般模式。
- 命令行模式:输入冒号 “:” 或者斜杠 “ / ”,切换到命令行模式。在这个模式当中,可以提供你相关指令,完成读取。存盘、替换、离开 vim、显示行号等的动作。
- wq:保存退出
- q:退出
- q!:强制退出并且不保存
2. 模式转换
4.3、vi和vim常用快捷键
- 在正常模式下,拷贝当前行:
yy
,拷贝当前行向下的5行:5yy
,并粘贴(输入:p
) - 在正常模式下,删除当前行:
dd
,删除当前行向下的5行:5dd
- 在文档中查找某个单词:在命令行模式下通过
: /关键字
,回车 ,输入n
查找下一个出现的位置(如果要查找别的直接斜杠关键字查找就行) - 设置文件的行号:在命令行模式下
:set nu
,取消文件的行号:set nonu
- 编辑 /etc/profile 文件,到该文档的最末行的快捷键是
G
,和最首行是gg
【在正常模式下】 - 在一个文件中输入 “hello”,撤销掉它的快捷键是
u
【在正常模式下】 - 编辑 /etc/profile 文件,输入:
20
,再输入:shift+g
【在正常模式下】
5、关机、重启和用户管理
5.1、关机和重启
shutdown -h now
:立即进行关机。shutdown -h 1
:设置1分钟后关机shutdown -r now
:立即重启halt
:关机reboot
:立即重启sync
:将内存的数据同步到磁盘。
- 老韩提醒我们无论是重启还是关闭系统,最好首先要运行 sync 命令,将内存中的数据写到磁盘中。虽然目前的
shutdown/reboot/halt
等命令均是已经在关机前自动进行了 sync 。
5.2、注销和切换用户
1. 基本介绍
- 登陆时少用 root 账号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用
su - 要切换的用户名
命令来切换成系统管理员身份 - 在提示符下输入
logout
可以注销用户。
2. 注意
- logout 注销指令在图形运行级别无效,在运行级别3(非图形界面) 下有效
3. 特殊说明
通过普通用户进入 root 后,输入 logout 退回到 普通用户,再输入 logout 退出系统。
5.3、添加用户
- Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号身份进入系统。
- 添加用户指令:
useradd + 要创建的用户名
(要先到 /home/目录下再输入指令)。
注意
- 在创建之后,
会自动创建跟用户名同名的家目录
,默认创建的目录在家目录下/home/下。 - 也可以通过
useradd -d 指定的目录名 新的用户名
,给新创建的用户指定家目录。
5.4、密码相关指令
指令:passwd + 用户名
5.5、删除用户
- 指令1 :
userdel 用户名
(删除用户,但保留家目录)。 - 指令2:
userdel -r 用户名
(删除用户以及家目录)
注意
- 如果你要删除一个用户,那么你需要在root权限下。
- 在大多数情况下,
要保留相关用户的家目录
,因为里面会保留一些员工的工作信息。
5.6、查询用户信息
基本语法
id + 用户名
5.7、切换用户
- 在Linux中,如果当前用户的权限不够,可以通过
su - 用户名
指令切换到高权限的用户。
细节说明
- 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
- 当需要返回到原来用户时,使用exit/logout指令。
5.8、查看当前用户
基本语法
who am i
5.9、用户组
- 类似于角色,系统可以
对有共性权限的多个用户进行统一的管理
。
常用命令
- 新增组:
groupadd 组名
- 删除组:
groupdel 组名
- 增加用户时直接加上组:
useradd -g 用户组 用户名
- 修改用户的组:`usermod -g 用户组 用户名
`
5.10、用户和组相关文件
/etc/passwd
文件:用户(user)的配置文件,记录用户的各种信息。每行的含义:用户名:口令:用户标识号(uid):组标识号(gid):注释性描述:主目录:登录 Shell
/etc/shadow
文件:口令的配置文件。每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group
文件:组(group)的配置文件,记录 Linux 包含的组的信息。每行的含义:组名:口令:组标识号:组内用户列表
6、运行级别介绍
- 0: 关机
- 1: 单用户(可以通过单用户找回丢失密码)
- 2: 多用户状态没有网络服务
- 3: 多用户状态有网络服务
- 4: 系统未使用保留给用户
- 5: 图形界面
- 6: 系统重启
常用运行级别是 3 和 5,也可以指定默认运行级别。
- 切换运行级别指令:
init 要切换的运行级别
。 - 查看当前运行级别指令:
systemctl get-default
。
在CentOS7之前
我们在在 /etc/inittab
文件中进行默认运行级别的设置
在CentOS7之后
multi-user.target
等价于原来的analogous to runlevel 3
graphical.target
等价于原来的analogous to runlevel 5
- 并且也有新的切换运行级别的指令:
systemctl set-default 新的要切换到运行级别
7、找回密码
- 首先,启动系统,进入开机界面,在界面中按
“e”
进入编辑界面。
- 进入编辑界面,使用键盘上的上下键往下移动,找到“Linux16开头内容所在的行数”,在行的最后面输入:
init=/bin/sh
。 - 接着,输入完成后,直接按快捷键:
ctrl + x
进入单用户模式。
- 接着,在光标的闪烁的位置中输入:
mount -o remount,rw /
(注意各个单词间有空格),完成后按键盘的回车键。 - 在新的一行最后输入passwd,完成后按回车键,然后再次输入密码。密码修改成功后,会显示passwd...的样式,说明修改成功。
- 接着,在鼠标闪烁的位置输入:
touch /.autorelabel(注意:touch 与 / 之间有一个空格)
,完成后按键盘的回车键 - 继续在光标闪烁的位置中输入:
exec /sbin/init(注意:exec 与 / 后面有一个空格)
,完成后按回车键,等待系统自动修改密码。这个过程时间可能有点长请耐心等待。完成后系统会自动重启,那么新的密码生效。
8、帮助指令
1. main 获得帮助信息
指令:main [命令或配置文件]
例如:
查看 ls 命令的帮助信息:
main ls
2. help 获得 shell 内置命令的帮助信息
指令:help 命令