Linux
Liunx
你在追光的时候,光也在向你靠近!
虚拟机
虚拟机的概念
- 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能运行在一个完全隔离环境中的完整计算机系统,即一台虚拟出来的电脑允许任意操作且不影响本体电脑
虚拟机的好处
- 安装各种演示环境,便于制作各种例子
- 保证主机快速运行,减少垃圾安装程序
- 测试不熟悉的应用,以免伤害本体系统
- 体验不同操作系统,如:
Linux
、Mac
等 - 避免每次重新安装,将不常用且要求保密较好的工具(银行)单独放在一个环境下面运行
虚拟机的产品
- VMware
VMware
允许多个操作系统可同时运行在主系统平台上适合学习和测试,首推荐 - VirtualBox
VirtualBox
是开源软件,次推荐VirtualBox
本名Innotek VirtualBox
VirtualBox
再名Sun xVM VirtualBox
VirtualBox
终名Oracle VM VirtualBox
- Virtual PC
Virtual PC
在Windows
版本上使用电脑本身的处理器,不推荐Virtual PC
的模拟机使用Intel Pentium 4
处理器及440BX
系列的主板
- Windows XP Mode
Windows XP Mode
可在Wind7
上轻松运行多个在WinXP
上运行的生产应用程序,不推荐
虚拟机的安装
虚拟机安装操作系统和真实计算机无区别(虚拟机用光盘镜像或软盘镜像作为虚拟机的光驱或软驱)
虚拟机的杀毒
虚拟机杀毒技术指在电脑中创造虚拟CPU
环境,将病毒在其中激活,据其行为特征判断是否是病毒
VMware
VMware Workstation Pro 17官网地址
https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html
VMware Workstation Pro 17程序下载
https://download3.vmware.com/software/WKST-1701-WIN/VMware-workstation-full-17.0.1-21139696.exe
VMware Workstation Pro 17激活密钥
JU090-6039P-08409-8J0QH-2YR7F 或者 MC60H-DWHD5-H80U9-6V85M-8280D
Linux概述
Linux的本质
Linux
是一种自由和开放源码的类UNIX
操作系统,英文解释为Linux is not Unix
Linux的创始
Linux
是由林纳斯·托瓦兹于1991年在赫尔辛基大学上学时创立的,主要受Minix
和Unix
思想的启发
Linux的特点
开源(遵循GNU GPL
通用公共许可证)、多用户、多任务、多线程、多CPU
、类Unix
Linux发行版
Linux
发行版指将Linux
内核与应用软件打包,主流有:Debian
、Fedora
、SUSE
- SUSE
SLES
、openSUSE
- Debian
Ubuntu
、Linux Mint
- Fedora
RHEL
、CentOS
、RedHat
、Oracle Linux
、Enterprise Linux
Linux的应用
Linux
应用在嵌入式设备、超级计算机、服务器(LAMP + LNMP)
LNMP
:Linux + Nginx+ MySQL + PHPLAMP
:Linux + Apache + MySQL + PHP
Linux的优势
Linux
比Winodws
有更简单图形界面、系统构造更简单且深入学习更易、可自由获取大部分软件
Linux的安装
Linux
的安装需有Linux
发行版镜像文件(Windows
需将镜像文件添加到VMware
中)
- Linux的安装方式
Linux
可在本地电脑(本地服务器、本地Windows系统)或云电脑(云服务器)上部署
- CentOS镜像文件官网下载
CentOS
最新版官网下载地址:https://www.centos.org/download/CentOS
旧版本官网下载地址:https://wiki.centos.org/Download/
- CentOS镜像文件类型详解
CentOS-7.0-x86_64-KdeLive-1503-01.iso
:KDE
桌面版CentOS-7.0-x86_64-GnomeLive-1503-01.iso
:GNOME
桌面版CentOS-7.0-x86_64-minimal-1503-01.iso
: 精简版,自带的软件最少CentOS-7.0-x86_64-livecd-1503-01.iso
: 光盘上运行的系统,类拟于Win PE
CentOS-7.0-x86_64-DVD-1503-01.iso
: 标准安装版,一般下载这个就可以了(推荐)CentOS-7.0-x86_64-NetInstall-1503-01.iso
: 网络安装镜像(从网络安装或救援系统)CentOS-7.0-x86_64-Everything-1503-01.iso
: 完整版安装盘的补充,集成了所有的软件
Linux的启动
Linux
的启动过程可分为5个阶段:内核引导、运行init
、系统初始化、建立终端、用户登录系统
- 内核引导
- 打开电源后,首先
BIOS
开机自检, - 然后按
BIOS
设置的启动设备(硬盘)来启动 - 操作系统接管硬件后,最后读入
/boot
目录下的内核文件
- 打开电源后,首先
- 运行 init
init
程序首先是需要读取配置文件/etc/inittab
init
进程是系统所有进程的起点,若无系统中任何进程都不会启动
- 系统初始化
- 系统初始化主要完成激活交换分区、检查磁盘、加载硬件模块、其它一些需要优先执行任务
- 建立终端
rc
执行完毕后返回init
,init
打开6个终端以便用户登录系统(守护进程已启动)
- 用户的登录系统
- 用户的登录系统方式有
SSH
登录、命令行登录、图形界面登录
- 用户的登录系统方式有
- init程序的类型
SysV
:init, CentOS 5之前, 配置文件:/etc/inittabUpstart
:init,CentOS 6, 配置文件:/etc/inittab, /etc/init/*.confSystemd
:systemd,CentOS 7,配置文件:/usr/lib/systemd/system、/etc/systemd/system
Linux的登录
Linux
的登录方式有图形模式、文字模式
- Linux文字模式
- 文字模式预设六个命令窗口终端机(tty1~tty6),默认
tty1
,按Ctrl+Alt+F1~F6
切换
- 文字模式预设六个命令窗口终端机(tty1~tty6),默认
- Linux图形模式
- 若安装了图形界面则默认进入图形界面,可按
Ctrl + Alt + F1 ~ F6
进入命令窗口 - 当进入命令窗口界面后,再返回图形界面,须按下
Ctrl + Alt + F7
VMware
命令窗口切换按Alt + Space + F1~F6
- 若在图形界面下按
Alt+Shift+Ctrl+F1~F6
切换至命令窗口
- 若安装了图形界面则默认进入图形界面,可按
- 运行级别
init
进程一大任务是去运行开机启动的程序- 开机启动的程序在
Windows
中叫"服务"(Service),在Linux
叫守护进程(Daemon) - 运行级别(RunLevel)指为不同场合分配不同开机启动程序,即启动时据运行级别确定要运行的程序
- Linux系统的7个运行级别(runlevel):
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,
root
权限,用于系统维护,禁止远程登录 - 运行级别2:多用户状态(没有
NFS
) - 运行级别3:完全的多用户状态(有
NFS
),登录后进入控制台命令行模式 - 运行级别4:系统未使用,保留
- 运行级别5:
X11
控制台,登录后进入图形GUI
模式 - 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
Linux的关机
Linux
大多用在服务器上(服务器无止境跑服务)因此很少关机,除非特殊情况不得已才关机
- Linux关机流程
- sync > shutdown > reboot > halt
- Linux关机帮助
- 可用
man shutdown
查看shutdown
关机命令的帮助文档
- 可用
- Linux关机指令(shutdown)
halt
:立马关机init 0
:立马关机poweroff
:立马关机shutdown –h now
:立马关机shutdown –r now
:立马重启shutdown –r +10
:十分钟后重启shutdown –h +10
:十分钟后关机shutdown –h 20:25
:在今天20:25关机shutdown –h 10 'This server will shutdown after 10 mins'
:十分钟后关机且文字提示
- Linux重启指令(reboot)
init 6
:立马重启reboot
:立马重启(等同于shutdown –r now
)
- Linux关机注意
- 不管是重启还是关闭系统,首先要运行
sync
命令把内存中的数据写到磁盘中
- 不管是重启还是关闭系统,首先要运行
Linux目录
Linux系统目录
/usr/bin
:存放系统用户使用的应用程序
/srv
:存放一些服务启动后需要提取的数据
/usr/src
:存放内核源代码(默认放置目录)
/media
:存放Linux
识别的设备(U盘、光驱)
/tmp
:Temporary(临时) 的缩写,存放临时文件
/root
:系统管理员,也称超级权限者的用户主目录
/bin
:Binaries (二进制文件) 的缩写,存放最常用命令
/usr/sbin
: 存放超级用户使用的比较高级的管理程序和系统守护程序
/lost+found
:存放系统非法关机后生成的文件(此目录一般情况下为空)
/boot
:存放启动Linux
时用的一些核心文件,包括连接文件、镜像文件
/etc
:Etcetera(等等) 的缩写,存放所有系统管理所需要的配置文件和子目录
/var
:Variable(变量) 的缩写,存放在不断扩充的东西即经常被修改的目录(日志文件)
/home
:用户的主目录,在Linux
中每个用户都有一个自己的目录,一般该目录名以用户账号命名
/run
:一个临时文件系统,存储系统启动以来的信息(当系统重启时此目录下的文件应被删掉或清除)
/mnt
:让用户临时挂载别的文件系统(将光驱挂载在/mnt/
上,然后进入该目录就可查看光驱的内容)
/sbin
:Superuser Binaries (超级用户的二进制文件) 的缩写,存放系统管理员使用的系统管理程序
/dev
:Device(设备) 的缩写,存放Linux
外部设备,在Linux
中访问设备的方式和访问文件的方式相同
/sys
:该目录下安装了2.6内核新出现的文件系统sysfs
,其集成了proc
进程、devfs
设备、devpts
伪终端
/selinux
:Redhat/CentOS
特有目录,Selinux
是安全机制类似于Windows
防火墙,存放selinux
相关文件
/usr
:Unix Shared Resources(共享资源) 的缩写,存放用户的应用程序和文件,类似windows
的program files
/proc
:Processes(进程) 缩写,/proc
是伪文件系统即虚拟文件系统,存储当前内核运行状态的特殊文件,是内存映射
/opt
:Optional(可选) 缩写,这是给主机额外安装软件所摆放目录,如:安装Oracle
数据库就可放到此目录,默认为空
/lib
:Library(库) 缩写,存放系统最基本的动态连接共享库类似Win
的DLL
文件,几乎所有应用程序都需用这些共享库
Linux忘记密码
重置密码步骤
- 第一步:在开机界面三秒内按
回车
,进入GRUB界面 - 第二步:在引导程序菜单上选择后按
e
,进入编辑页面 - 第三步:在编辑页面将
ro
修改为rw
且在LANG=en_US.UTF-8
后加init=/bin/sh
- 第四步:在编辑页面按
Ctrl+X
,进入单用户模式 - 第五步:在单用户模式输入
vi /etc/selinux/config
,进入selinux的配置编辑页面 - 第六步:在selinux的配置编辑页面将SELINUX修改为
SELINUX="disabled"
- 第七步:在selinux的配置编辑页面按
:wq
退出并保存,退出配置编辑页面 - 第八步:在单用户模式输入
vi etc/passwd
,进入selinux的配置编辑页面 - 第九步:在selinux的配置编辑页面删除
root
或adm
的占位符x
,按:wq
退出并保存,退出配置编辑页面 - 第十步:在单用户模式输入
passwd admin
(admin用户)、passwd root
(root用户)、passwd
(root用户) - 十一步:重新修改用户密码(用户密码不显示),直到提示成功修改才为正常修改
- 十二步:在单用户模式输入
touch /.autorelabel
,让selinux更新系统信息,以便重启后密码生效 - 十三步:在单用户模式输入
exec /sbin/init
,等待系统重启即可
Linux远程登录
Linux远程登录的端口
Linux
系统中是通过SSH
服务实现的远程登录功能,默认SSH
服务端口号为22
SSH
是建立在应用层和传输层基础上的安全协议SSH
是Secure Shell
的缩写,由IETF
的网络工作小组(Network Working Group)所制定
Linux远程登录的原因
Linux
一般作为服务器使用而它一般放在机房,因此不可能在机房操作Linux
服务器,此时需远程登录操作
Linux远程登录客户端
Window
上的Linux
远程登录客户端有Putty
、SecureCRT
、SSH Secure Shell
等
Linux文件属性
对不同用户访问同一文件(包括目录文件)的权限做不同规定,让不同用户处于不同地位拥有不同权限,以便保护系统安全
Linux文件属性相关命令
chgrp
(change group):更改文件属组chmod
(change mode):修改用户的权限chown
(change owner):修改所属用户与组ll
或ls –l
:显示一个文件的属性及文件所属的用户和组
Linux文件属性相关权限
-
Linux
中文件的第一个字符代表文件类型,这个文件是目录、文件或链接文件等等(如下所示:)- 若为
d
代表目录 - 若为
-
代表文件 - 若为
l
代表链接文档(link file) - 若为
b
代表装置文件里的可供储存的接口设备(可随机存取装置) - 若为
c
代表装置文件里的串行端口设备,如:键盘、鼠标(一次性读取装置)
- 若为
-
Linux
中文件的属性由左边第一部分的10个字符来确定(如下图)r
(read)代表可读、w
(write)代表可写、x
(execute) 代表可执行- 以三个为一组,且均为
rwx
的三个参数组合,三个权限的位置不会改变,若无权限则出现减号-
代表
Linux文件目录管理
Linux
目录结构为树状结构,最顶级目录为根目录/
,其他目录通过挂载将它们添加到树中,通过解除挂载移除它们
Linux两种路径写法
路径分为相对路径和绝对路径
- 绝对路径:由根目录
/
写起,如:/usr/share/doc
- 相对路径:不是由
/
写起以某个路径作为参考标准即起点,如:/usr/share/man
可写成cd ../man
Linux目录相关命令
rm
(remove): 删除文件或目录
cp
(copy file): 复制文件或目录
cd
(change directory):切换目录
ls
(list files): 列出目录及其文件名
mkdir
(make directory):创建一个新的目录
rmdir
(remove directory):删除一个空目录
pwd
(print work directory):显示目前的目录
man [命令]
:查看各命令的使用文档,如:man ls
mv
(move file): 移动文件与目录,或修改文件与目录的名称
Linux文件相关命令
head
: 只看头几行
tail
: 只看尾几行
nl
:显示时同时输出行号
more
:一页一页的显示文件内容
cat
:由第一行开始显示文件内容
tac
:从最后一行开始显示,tac
是cat
的倒写
less
:与more
类似,但比more
更好的是可往前翻页
Linux用户和用户组管理
Linux
系统是多用户多任务分时操作系统,任何要用系统资源的用户都须首先向管理员申请账号,然后以账号身份进入
Linux用户账号过程
对用户账号的管理主要完成的工作有:用户账号的增删改、用户口令的管理、用户组的管理
Linux用户账号好处
帮助系统管理员对使用系统的用户进行跟踪并控制其对系统资源的访问、帮助用户组织文件并为用户提供安全性保护
Linux用户账号特点
每个用户账号都拥有一个唯一的用户名和各自的口令,登录时只有键入正确的用户名和口令后才能进入系统和自己的主目录
Linux用户账号命令
passwd 选项 用户名
:修改密码
useradd 选项 用户名
:添加用户
userdel 选项 用户名
:删除用户
usermod 选项 用户名
:修改用户
groupadd 选项 用户组
:添加用户组
groupdel 选项 用户组
:删除用户组
groupmod 选项 用户组
:修改用户组
用户账号相关系统文件
用户和用户组相关的信息都存放在以下系统文件中,如:/etc/passwd
、/etc/shadow
、/etc/group
等
- /etc/passwd
/etc/passwd
文件对所有用户都可读,存放用户口令
/etc/passwd
中每一行记录对应着一个用户,每行记录又被冒号分隔为7个字段
/etc/passwd
的文件格式是用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
- /etc/shadow
/etc/shadow
存放分离出的加密口令,超级用户才拥有该文件读权限,从而保证了用户密码的安全性
/etc/shadow
的记录行与/etc/passwd
的全部对应,它是由pwconv
命令根据/etc/passwd
的数据自动产生
/etc/shadow
格式登录名:加密口令:末次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- /etc/group
/etc/group
文件存放用户组的所有信息,以便对用户进行管理及控制访问权限
/etc/group
的每个用户都属于某个用户组,一个组中可有多个用户,一个用户也可属于不同组
/etc/passwd
的文件格式是组名:口令:组标识号:组内用户列表
(与/etc/passwd文件相类似)
Linux磁盘管理
Linux
磁盘管理好坏直接影响整个系统的性能,常用命令为df
、du
、fdisk
Linux磁盘管理相关命令
mount
:磁盘挂载
umount
:磁盘解挂
fdisk
:用于磁盘分区
du
(disk used):检查磁盘空间使用量
mkfs
(make filesystem):磁盘格式化
df
(disk free):列出文件系统的整体磁盘使用量
fsck
(file system check):磁盘检验,用来检查和维护不一致的文件系统(适用于系统掉电或磁盘发生问题)
Linux vi/vim
所有Unix Like
系统(Linux
)会内建vi
文书编辑器,但目前用的较多的是vim
编辑器
Linux vim
- Vim特点
Vim
具有程序编辑能力,可主动以字体颜色辨别语法正确性,方便程序设计
- Vim概念
Vim
是从vi
发展出的一个文本编辑器,在程序员中被广泛使用,vim
是一个程序开发工具而不是文字处理软件
- Vim官网
- Vim键盘图
Linux vi/vim的使用
Linux vi/vim
模式共分三种,分别是命令(Command mode)、输入(Insert mode)、底线(Last line mode)
- 命令模式
- 命令模式只有最基本的命令,底线命令模式才能输入更多命令
- 启动
vi/vim
时进入命令模式,此状态下敲击键盘动作会被识别为命令而非输入字符 - 常用命令有:
i
切换到输入模式、x
删除当前光标所在处的字符、:
切换到底线命令模式,以便在最后一行输入命令
- 输入模式
- 在命令模式下按下
i
进入输入模式 - 输入模式的常用按键:
字符按键+Shift
输入字符、Enter
换行、Esc
退出输入模式切换到命令模式
- 在命令模式下按下
- 底线命令模式
- 在命令模式下按下
:
(英文冒号)进入底线命令模式 - 在底线命令模式可输入单个或多个字符命令且可用命令非常多
- 底线模式常用命令:
q
退出程序、w
保存文件、wq
保存并退出、Esc
退出底线命令模式
- 在命令模式下按下
- 三种模式的示意图
Linux yum
yum
(Yellow dog Updater, Modified)是一个在Fedora
和RedHat
及SUSE
中的Shell
前端软件包管理器
yum特点
基于RPM
包管理即能从指定服务器自动下载RPM
包并安装、可自动处理依赖性关系并一次安装所有依赖软件包
yum语法
yum
语法是:yum [options] [command] [package ...]
package
:必选项,安装的包名command
:必选项,进行的操作options
:可选项,包括-h
(帮助)、-y
(将安装过程的提示选择全变为yes)、-q
(不显示安装过程)等等
yum命令
yum update
:更新所有软件
yum list
:列出所有可安裝软件清单
yum search <keyword>
:查找软件包
yum remove <package_name>
:删除软件包
yum clean packages
: 清除缓存目录下的软件包
yum clean headers
: 清除缓存目录下的headers
yum check-update
:列出所有可更新的软件清单
yum update <package_name>
:仅更新指定软件
yum install <package_name>
:仅安装指定软件
yum clean oldheaders
: 清除缓存目录下旧headers
yum clean,yum clean all (=yum clean packages;yum clean oldheaders)
:清除缓存的软件包及旧headers
yum国内镜像源
yum国内镜像源
有网易(163)、华为云、阿里云、中科大
- 网易(163)
- 网易(163)是国内较好的
yum
源之一 ,其速度或软件版本都非常不错 - 将
yum
源设置为163 yum
,可提升软件包安装和更新的速度同时避免常见软件版本无法找到
- 网易(163)是国内较好的
- 华为云
- 华为云地址: mirrors.huaweicloud.com
- 阿里云
- 中科大
- 网易yum设置步骤
- 第一步进入/etc/yum.repos.d目录
cd /etc/yum.repos.d
- 第二步用wget在线下载CentOS镜像
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
- 第三步备份到/etc/yum.repos.d/CentOS-Base.repo.backup
mv CentOS7-Base-163.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- 第四步替换/etc/yum.repos.d/CentOS-Base.repo中的配置文件
mv CentOS7-Base-163.repo /etc/yum.repos.d/CentOS-Base.repo
- 第五步清除以前使用的yum缓存
yum clean all
- 第六步建立一个缓存,以后方便在缓存中搜索
yum makecache
- 参考资源
网易镜像网址
配置网易镜像
- 第一步进入/etc/yum.repos.d目录
yum注意的问题
yum
的命令执行需要root
权限,普通用户切换root输入su
,root切换普通用户输入su 用户名
Linux apt
apt
(Advanced Packaging Tool)是一个在Debian
和Ubuntu
中的Shell
前端软件包管理器
apt特点
apt
命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,命令简洁好记
apt注意
apt
命令执行需要超级管理员权限(root)
apt语法
apt语法为:apt [options] [command] [package ...]
package
:安装的包名command
:进行的操作options
:可选,选项包括-h
(帮助),-y
(当安装过程提示选择全部为"yes"),-q
(不显示安装过程)等等
apt命令
列出所有可更新的软件清单命令:sudo apt update
升级软件包:sudo apt upgrade
列出可更新的软件包及版本信息:apt list --upgradeable
升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
安装指定的软件命令:sudo apt install <package_name>
安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
更新指定的软件命令:sudo apt update <package_name>
显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
删除软件包命令:sudo apt remove <package_name>
清理不再使用的依赖和库文件: sudo apt autoremove
移除软件包及配置文件: sudo apt purge <package_name>
查找软件包命令: sudo apt search
列出所有已安装的包:apt list --installed
列出所有已安装的包的版本信息:apt list --all-versions