关于 GPL 协议具体内容感兴趣的大家可以:
观看:https://www.gnu.org/licenses/licenses.html#GPL
中文翻译: (https://jxself.org/translations/gpl-3.zh.shtml)
1)Red Hat Enterprise Linux(简称 RHEL)
由著名的 Red Hat 公司提供,是一个商业发行版 Red Hat 公司会向自己的付费客户提供客户服务(理所当然的收费),那有人说我硬是不付费可以使用吗?用是可以用,但是有很多限制,对于学习来说不太方便。
2)CentOS
由于 RHEL 是采用 GPL 协议发布的,所以必须需要发布 RHEL 的源码,CentOS 就是拿RHEL 的源码编译而来的,只是很少的地方稍有改动,比如去掉了 RHEL 的 logo 等专利的事物,以及一些专利软件。2014 年,CentOS 宣布与 Red Hat 合作,但 CentOS 将会在新的委员会下继续运作,并不受RHEL 的影响。
3)Fedora 由红帽公司赞助,Fedora 对于用户而言,是一套功能完备、更新快速的免费操作系统;而对赞助者RedHat 公司而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到 Red Hat Enterprise Linux 中。
4)Ubuntu
5)Debian
6)SUSE
等等…
RHEL 是 Red Hat 公司推出的针对企业的 Linux 发行版,可以免费下载,不过想要获取官方授权必须要购买授权(毕竟人家 Red Hat 公司会根据你付的费用提供各种服务的),具体价格请查看别人官网:www.redhat.com,由于RHEL如果未授权在使用上有很多限制,非常不便,所以这里我们推荐大家使用 CentOS 这个发行版,因为他绝大部分和RHEL几乎一样,
的是越来越多的中小公司和大公司使用 CentOS 而不是收费的 RHEL,所以我们本课程所使用的Linux 发行版就是CentOS,这样可以更好的和企业的需求无缝接轨!
PS:学习了 CentOS 之后再去使用其他的 Linux 发行版也是迎刃而解,所以不用再纠结学习哪个发行版了!
我们的大部分实验都是在 Centos7 下完成,但是由于很多的企业依然在使用 CentOS6(毕竟已经部署好的产品,如果不是现有系统有重大问题或不能满足新的需求,否则企业不会吃饱了无事生非有新版本就立刻升级的),所以对于CentOS6 内比较重要的且与 CentOS7 不同部分我们会单独拿出来再说下的,CentOS 7 与 CentOS 6 在某些地方改动其实是蛮大的,当然 Linux 最基本的管理操作,不管是哪个版本都是相同的所以不用多想了,跟着一起学习就OK 了!
我们会在当前操作系统上安装虚拟机软件,通过虚拟机软件来虚拟出一个或者多个操作系统(与实际的服务器操作起来一样),这样大家在学习时会更加方便!
1)虚拟机软件比较常见的有:
VMware:这个公司有很多关于虚拟化的产品,大部分是收费的,适合企业使用。(见附录1)VirtualBox:唯一一款可以在 GNU 通用公共许可证(GPL)第 2 版中作为开源软件免费获得的专业解决方案、并且苹果的电脑也可以安装这个软件哦,非常不错,感兴趣的可以试试哦!(见附录 2)
2)我们的选择:
我们选择 VMware 提供的 VMware Workstation Player 这个软件,因为这个虚拟软件比较小(当然VirtualBox也非常小,感 兴趣的可以自己去试试),并且可免费的用于个人非商业用途,比较简单但是足够我们这边学习使用。注:Workstation Player 需要配备 64 位处理器和 64 位操作系统,64 位处理器以及 64 位操作系统早就是主流了,如果万一您是 32 位的操作系统可以去试试使用 VirtualBox
3)下载 VMware Workstation Player
下载地址在本课件结尾附录中(见附录 3),大家也可以很容易的自行搜索获得这个软件!
4)安装 VMware Workstation Player
在安装的时候可以按照提示进行立刻重启,不过不立刻重启也不影响我们后面创建虚拟机的工作
5)创建虚拟机
注意网络连接模式:
■ 桥接模式:虚拟机和物理机连接在同一个网络,虚拟机与物理机的关系类似于家里的电脑、手机、都是连接在同一个路由器提供的 Wi-Fi 上。
■ NAT 模式:类似于虚拟机将物理机当成路由器,即虚拟机用过物理机来上网,兼容性很好,不用担心,物理机的
使用环境,只要物理机能上网,虚拟机就能上网,在初步学习 Linux 时建议使用此模式,等后面学完Linux网络设置再使用桥接模式比较利于后面的测试。
■ 仅主机模式:比 NAT 模式更加封闭的的网络连接模式,它将创建完全包含在主机中的专用网络。仅主机模式的虚拟网络适配器仅对主机可见。默认情况下,使用仅主机模式网络连接的虚拟机无法连接到Internet。。。。。。。一顿操作之后。。。。。。
PS:当然配置完成后也是可以随意修改刚才对于虚拟机的硬件信息的!
恭喜!配置完成之后你等于是多了一台与实际电脑几乎一模一样的电脑哦!
6)尝试启动
如果在启动我们创建的虚拟机时看到类似的提示:(没有这个提示的就直接跳过这点吧,跟你没半毛钱关系!)
解决:
BIOS 需要设置为开启 CPU 虚拟化支持(大部分机器默认都是开启的,如果万一没有开启),否则可能会仅允许虚拟出 32 位的操作系统修改方法很简单,重新启动计算机,在刚启动时,根据电脑提示按DEL 或ESC或F12之类的键(不同电脑方法稍有不同,请看开机时的提示或者百度),进入 BIOS,然后进行设置!设置选项类似于下图(不同主板,界面会不同,反正到 CPU 设置那块仔细找)
或者可能是这种界面:
现在启动刚才创建的虚拟机来进行安装操作系统的步骤了!
步骤一:启动虚拟机
步骤二:选择安装 Centos 7
步骤三:选择语言(初学者可以选中文,对系统的各方面认识很有好处!)
步骤四:选择安装软件(初学者请选择一个图形界面,这对你的学习会很有帮助)、设置网络(打开)
PS:手动分区等我们在后面的学习过一些基本概念后再和大家介绍,免得什么概念都不知道,一通操作大家也不能理解!
步骤五:安装等待…(设置root 账户密码)、设置 root 账户密码
步骤七:重启后设置接受许可、网络打开(如果之前的 步骤四 里未打开)等等
. 界面:
如果大家安装好后的界面不是中文的可以这样去设置:
如果大家之前没有设置好网络可以确保虚拟机网络设置的是 NAT 模式之后这样去设置:
服务器通常是纯文字界面的,我们现在刚开始学习使用的是图形界面,那想感受下纯文字界面该怎么切换呢?
通常我们称文本模式为终端机界面(terminal),CentOS7 预设的情况下会提供六个terminal 来让使用者登入(不同的
CentOS 版本略有不同)
切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6]的组合按钮
六个终端界面如何命名呢 ?
系统会将[F1] ~ [F6]命名为 tty1 ~ tty6 的操作界面环境。
我们这边默认是启动图形界面的,因此这个XWindow将会出现在tty1界面中。
如果你的 Linux 预设使用纯文字界面(虽然安装了图形界面但是并未开启),那么tty1~tty6就会全文字界面占用。
若你在纯文字环境中启动 X视窗,那么图形界面就会出现在当时的那个 tty 上面。
举例来说,你在tty2登入系统,然后输入startx启动个人的图形界面(前提是你必须安装了图形界面), 那么这个图形界面就会产生在tty2上。
常见命令格式:命令名称 [-选项] [参数 1] [参数 2] … 说明:
1)这只是常见的命令的大概使用格式,并不是一定就这样的,不过最前面的总归是命令名称或可执行文件,中间用空格隔开(空几格与空一格效果一样)
2)敲下 Enter 键该命令则立刻执行
3)命令太长可以通过\转义 Enter,即可在下一行继续输入。
4)Linux 下严格区分大小写!
5)选项可以连着写,也可以分开来写
PS:这边的命令格式先有个印象即可,无需深究!
PS:先了解下 不用深究!
注:做关机或重启前最好执行 who 命令查看有哪些用户目前正在登录这个系统
shutdown -h now 立刻关机
shutdown -h 10 10 分钟后关机
shutdown -h 16:16 16:16 分关机
shutdown -h +10 10 分钟后关机
shutdown -r now 立刻重启
shutdown -r +10 10 分钟后重启
shutdown -c 取消进行中的 shutdown 内容
shutdown -k 假装要关机,只发送警告消息
reboot 重启
halt -p 关机
poweroff 关机
cat /etc/redhat-release
rpm -q centos-release
lsb_release -r|-a
注:如果提示命令不存在,请先安装 yum -y install redhat-lsb
uname -a
查看 CPU 信息(原版完整信息):
cat /proc/cpuinfo
查看 CPU 型号:
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
查看物理 CPU 个数:
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
查看每物理 CPU 中核数(cores):
cat /proc/cpuinfo | grep "cpu cores" | uniq
逻辑 CPU 总数
cat /proc/cpuinfo | grep -c 'processor'
注:
1)一般情况下 物理 CPU 个数*核数=逻辑 CPU 个数,如果不等,则说明服务器的CPU 支持超线程技术
2)我们在使用或配置 Linux 服务器上的各种服务时都是以逻辑 CPU 的个数为准,即有几个逻辑CPU我们就认为我们的服务器有几个 CPU
free -m
Tab 键:自动补全,不仅仅是命令,在 CentOS7 中很多新增的命令连参数都可以自动补全!Ctrl+l:清屏,同 clear
Ctrl+c:终止当前命令
Ctrl+d:输入结束(EOF) 或者 删除光标所在处的字符 或者 退出当前终端(同 exit)Ctrl+z:暂停当前进程,如何恢复以后再说
Ctrl+u/Ctrl+k:删除光标前/后的命令(记忆私房小技巧:u 在键盘里是在 k 的上面,所以删的是前面)
Ctrl+a/Ctrl+e:将光标移动到命令的最前/后面
很多同学很奇怪,在 Linux 下怎么看磁盘容量以及使用量呢?怎么看不到 C、D、E、F 盘呢?先说下基本的计算机知识,大家可一定要知道哦:
■ 我们先看 windows 下面的思维:
磁盘分区:我们看到的 C、D、E、F 盘等等这些其实是我们在安装操作系统的时候划分出来的磁盘分区,C、D、E、F 这些就是 磁盘分区的名字,磁盘分区在划分的时候是要指定容量大小的,比如我的娱乐机 C 盘截图,它的容量空间是被里面建 立的目录和文件占用的。
而目录呢:目录的作用是有组织的存放文件,目录和文件之间是逻辑上关系,可以无限极的分类。
■ 那 Linux 下面呢?
Linux 下磁盘同样需要分区,和上面的概念是一样的!Linux 下的目录同样,作用也是有组织的存放文件,目录和文件之间是逻辑上关系,可以无限极的分类。
重点来了:有人可能会说:“说了这么多不同的概念点在哪里呢?” Windows 下使用时先看到分区比如 C 盘,然后可以打开,在里面可以新建文件夹或者新建文件。所以windows里所有的目录以及文件宏观上来看并不是一棵树,而是有几个磁盘分区就是有几棵树!画图解释
Linux 下是这样子的:Linux 下的所有目录以及文件宏观上看就是一棵树!这棵树的最顶层,也就是树的根目录,我们用/表示!这时有人会问:那难道 Linux 下只有一个分区就是根分区?这里大家就不能用 Windows 下面的思维来看待 Linux 了!
Linux 下面是这样的:
■ 只有一棵目录树
■ 磁盘分区我们看成现实生活中的存放物品的容器
■ 磁盘分区和目录之间可以看成是用管子接起来的关系!
■ 这个管子接起来的动作 在 Linux 里面有个专业的术语叫挂载
■ 接在哪个目录下,那个目录就称为“挂载点”!
画图解释!
那问一个问题,Linux 下如何知道某个文件到底存放在哪个分区里面(从原理思路上回答即可)?思考一下。。。。。。
df -h
通常我们称呼一个可被挂载的数据为一个文件系统(初学者可以简单的理解为就是分区)
这边介绍的是系统里面各个目录里面大概放的是什么东西,先做个了解,走马观花,有个印象即可!
PS:不同的 Linux 发行版这方面会略有不同,相同发行版的不同版本比如这边的 CentOS7 与之前的CentOS版本也会略有不同,不过大部分目录结构是相似的(因为会基本遵循 FHS 也就是文件系统层次结构标准),所以不要奇怪!
/bin
Binary 的缩写,面向所有用户,存放着最经常使用的命令
/sbin
存放 Super User(系统管理员)使用的系统管理命令(程序)
/boot
引导程序文件存放目录(启动 Linux 时使用的一些核心文件)
/dev
Device(设备)的缩写,设备文件目录
/etc
系统配置文件存放目录
/home
用户的家目录
/lib 和/lib64
共享库文件(类似于 Windows 里面的 DLL 文件)存放目录
/media
可移除媒体(如 CD-ROM)的挂载点
/mnt
用于临时挂载设备的目录
/opt
额外安装软件的地方(可选应用软件包存放目录)
/proc
虚拟文件系统,将内核与进程状态归档为文本文件。是系统内存的映射,这里面的内容都是内存里的信息(不占用磁盘空间)
/root
超级系统管理员的家目录
/run
代替/var/run 目录
/srv
是一些服务启动之后,这些服务所需要取用的资料目录,比如 www 服务的网页文件可以放在这里
/tmp
临时存放文件,重要的文件请不要放在这个目录里面
/usr
Unix System Resource 缩写,即 Unix 系统软件资源的放置目录,相当重要!类似windows 下的ProgramFiles 目录
/usr/sbin
非必要的系统二进制文件,例如:大量网络服务的守护进程
/var
/var 就是在系统运作后才会渐渐占用硬碟容量的目录,比如一些日志、MySQL 等软件的数据文件
/var/run
自最后一次启动以来运行中的系统的信息,例如:当前登录的用户和运行中的守护进程。现已经被/run 代替
注:不要厌烦,请把自己当成行走在之前从来没去过的步行街一样,观光下就可以了,不要多想!
man 命令是 manual 的简写,这个命令相当牛 X,他就是一个字典,可以查到各种命令的使用格式、选项、参数、作用等等!总之遇到没见过的命令或者忘记某个命令怎么拼了直接用 man 来查询即可!
常见用法: man 命令 查阅指定命令的说明文档
注:
按 q 键退出帮助文档的查阅
Page down、Page up 翻页
Home 键回到第一页
End 键去最后一页
/关键字 向下查询该关键字,按 n 继续下一个查询,按 N 是反向
?关键字 向上查询该关键字,按 n 继续上一个查询,按 N 是反向
man -f 命令:列出与指定命令有关的说明文档
man 代号 命令: 可以用来查阅指定的帮助文档
man -k 命令的某个部分:列出那些包含指定关键字的命令的文档
注意:如果是 shell 内置命令用 man 查看帮助可能不直观,比如 cd 命令,这时可以通过 help 命令来查看,这个等
我们讲到 shell 基础那边再详细说吧!
附录 1)VMware
官网:www.vmware.com/cn.html
附录 2)VirtualBox
官网:www.virtualbox.org
附录 3)VMware Workstation Player
官方介绍:https://www.vmware.com/cn/products/workstation-player.html
下载:https://my.vmware.com/cn/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/14_0