学习时间是2020年3月下旬,疫情居家隔离期间。 学习视频是,学堂在线上,颜晨阳老师讲的Linux系统管理。
引言
linux 之父, Linus Torvalds
自由软件之父 Richard Stallman
GNU项目的创立,标志着自由软件运动的兴起。
1992年正式诞生了Linux系统。
linux发行版本可能存在较大差异,但是并不是系统内核的差异,而是功能侧重点的差异。
选择合适的linux版本
版本,有两个概念,分别是内核版本和发行版本。linux内核版本源代码可以在官网下载。
发行版本,指的是公司或者个人发行的linux版本,发行版本不是linux内核上的区别,而是外部应用以及功能侧重点上的区别。
常见的五个发行版本的比较
- ubuntu
- 优点:易用,可靠
- 缺点:技术支持和更新服务要付费,生态稍弱
-
Debian
- 精简 免费 稳定
- 更新较慢,无技术支持,中文支持不完善
-
suse
- 非常可靠
- 中国用户很少
-
redhat
- 稳定可靠 生态有活力 中国用户极多
- 技术支持和更新服务付费较高
-
centos
- 完全支持redhat
- 不提供专门的技术支持 更新相对滞后
对于linux初学者,首先要免费,第二资料丰富,第三要用户较多,综合选择centos发行版本。
下载操作
-
打开镜像网站– 点击6.6-点击isos目录 – 点击 X86_64– 只需要下载其中的DVD1.iso和MD5sum.txt即可。在下载完成后,校验MD5码确保下载的是完整文件,并且是源文件,没有被第三方改动过。
-
下载MD5码校验工具,下载链接 ,下载解压后双击即免安装运行,点击浏览,找到刚下载的dvd1.iso文件,软件即开始计算。然后打开刚下载MD5码文件,将MD5码粘贴到软件的verify框中,待软件计算完成后,点击verify,如果弹出窗口显示 matched,就表示下载的安装文件是完整的,并且没有被第三方改动过。
实践记录
我学习时在网易镜像上Centos6.6版本已经废弃,7及以后的8版本可以下载。所以我下载了CentOS-8-x86_64-1905-dvd1.iso
。在接着下载MD5文件时,发现页面中没有MD5.txt的文件,只有 CHECKSUM 文件和CHECKSUM.asc文件,我均下载了)。下载系统文件时,使用的迅雷,而不是浏览器,因为浏览器下载可能丢失文件。因为没有MD5.txt文件,我查看了CHECKSUM 和CHECKSUM.asc文件,发现其中均有SHA256码,搜索发现SHA256也是一种校验文件完整性的方法,并且windows命令行即可计算SHA256码,而且不需要再下载MD5码校验工具了,十分方便(其实是 C:\Windows\SysWOW64 路径下有certutil.exe程序)。
cmd, 输入
certutil -hashfile xxx SHA256
其中,xxx表示将验证文件的绝对路径。
然后我检查,命令行计算得到的SHA256码和 CHECKSUM 文件中的完全一样,所以判断下载的文件完整。
然后在vmware workstation15中建立虚拟机时发现,最新只能安装centos 7-64位的系统,没有centos 8 ,所以我重新下载了centos 7.7(CentOS-7-x86_64-DVD-1908.iso),并按照进行了SHA256校验。
建立一台虚拟机
下载vmware workstation 9官方安装软件,然后安装vmware workstation。
实践记录
我下载安装了最新的下载vmware workstation 15 Pro,然后填写了一个密钥并开始使用软件。
创建虚拟机:启动软件 - 新建虚拟机 - typical - 选择第三个创建一个空白虚拟机稍后再安装系统 - linux Centos 7 64-bit - 虚拟机名称(my_centos7) 并选择D盘下新创建的一个目录作为虚拟机的存放目录 (D盘下新建一个vm 目录) - 设置虚拟硬盘大小,我设置了30G,选择store virtual disk as a single file - next - 完成。
安装linux系统
安装centos 7系统: 打开 my_centos7 虚拟机下的CD/DVD ,使用iso,选择下载的iso安装文件,确定,
选择install or upgrade an , 检测安装光盘界面,选择语言中文简体,选择美国英语式键盘,选择基本存储设备,点击下一步提示将进行分区,接着创建主机名和域名(默认设置为localhost.localdomain),选择时区为亚洲/上海,注意不要勾选UTC时间,接着创建根用户密码(根用户即为管理员用户,十分重要,密码设置要求至少6位以上,并且同时包含大写和小写字母)。接着进行磁盘分区,前四个选项均会自动分区,出于学习目的,选择第5个选项,创建自定义布局。
linux硬盘分区的介绍
要清楚linux的硬盘分区规定和linux文件系统。没有分区的硬盘就相当于没有分割的超大仓库。因为字节限制,每个硬盘最多只能划分成4个主分区,但是第4个主分区,可以被替换为为扩展分区,而扩展分区没有个数限制,扩展分区继续划分,这些分区就被命名为逻辑分区。机器中的第一块硬盘命名为sda,第二块硬盘命名为sdb,依次类推。sda中第一个主分区命名为sda1,第二个主分区命名为sda2,第三个主分区命名为sda3,第4个主分区即扩展分区命名为sda4,要注意的是逻辑分区的起始号码是5。
分区之后的硬盘需要格式化之后才能使用,格式化类似于往分区后的仓库中放置货架,才能再存放货物。格式化操作为硬盘创建一种文件系统。
windows中的文件系统为FAT32 和NTFS, centos中的文件系统为EXT4 和SWAP文件系统。
linux中文件系统没有盘符的概念,而是一个树的结构。树根就是根目录。要强调的是,linux中必须要有一个SWAP分区(也叫做交换分区),SWAP可以理解为硬盘上的虚拟内存空间,即将内容空间不足时,将内存中未使用的应用转移到硬盘上,等要用的时候再取回。SWAP分区也不能挂到某个目录上,所以目录中看不到SWAP分区。SWAP分区的大小有一定的规定,实际内存小于等于4G的时候,推荐交换空间大于等于2G。
接下来进行创建分区,比较简单,创建一个根分区,一个SWAP分区。我们虚拟机中只有一个硬盘sda,首先创建SWAP分区,点击选中sda硬盘,然后选择swap文件系统,输入大小4092M,点击确定创建完毕。接着创建根分区,选择标准分区,文件系统选择ext4,挂载点选择斜杠,大小是使用全部可用空间,创建完毕。不满意还可以点击重设进行更改。点击下一步,两次确认分区,开始格式化磁盘。
接着进入GRUB引导装载器,可以使用默认选项。GRUB引导器,是在内核和内存中间的交流功能。接着我们选择Basic Server (安装的基本系统的平台支持,不包含桌面) 和Web Server (基本系统平台,加上PHP,Web server,还有MySQL和PostgreSQL数据库的客户端,无桌面)。然后在下一步的web服务中勾选四个选项,数据库点击前两个选项,在左栏中选择桌面,在右栏中勾选除KDE桌面外的所有选项,然后下一步。
安装完成后,进行初始化设置。创建用户(即为普通用户),创建一个stu,全名为student 的用户,输入密码。时间配置界面,可以勾选网络时间。kdump界面,是收集系统使用信息,提供给内存开发者,但是会浪费内存,所以不勾选。系统自动提示重启,然后提示输入创建的用户名和密码。至此系统安装完成。
实践记录
centos7 的系统安装过程已经十分智能化,但是基于上面讲解的知识内容,也可以理解安装过程中的选项选择。
打开my_centos7 虚拟机下的CD/DVD ,然后使用iso,选择下载的iso安装文件centos 7 。之后点击绿色按钮开启虚拟机。一分钟倒计时后开始安装,首先进行check。接着提示选择,安装过程中使用的语言,这里为了准确理解含义,所以还是选择了english.然后下一步的过程中就提示了几个图标的内容,几个图标都变亮之后,理论上就可以进入下一步操作了。这里基于上述的知识讲解,对这些图标再做一些选择。
Date/Time 选择亚洲上海;
键盘是默认的english/US
Language这里选择中文简体
installation source是默认的local media
Software selection,这一部分我每个选项都点开看了一下,理解为linux上你可以选择你想要的应用,并且我看网上显示系统安装之后还可以再安装想要的应用,所以我就先暂时自己选择了几个应用。
installation destination,默认是已经自动分区了。这里为了实践,也为了和教学老师的分区一致,尝试自己再分区。
KDUMP不勾选
Network&hostname,是默认的localhost.localdomain,勾选自动连接网络,勾选所有用户均可连接本网络
SECURITY POLICY选择【No profile selected,并且是选择关闭。
然后点击begin installation之后,即进入Configuration界面,提示设置root 密码(我设置为保密)和创建一个user账户 (我创建了一个账户stu,密码为保密)。Done,继续系统安装。
然后我安装完了之后,发现系统中没有桌面,分析就是之前自己选择的软件中没有包含桌面,百度经验Linux CentOS 7的图形界面安装参考解决了问题,安装上了桌面,不过耗时也比较久一些。
与Linux进行交互
linux shell,外壳,是对应于kernal 内核的,shell就是方便用户和linux对话的工具。
图形界面让简单任务易行
命令行则让艰难任务可行。
Bash 是linux默认的shell。
打开terminal 就进入了Bash。命令提示符,就包含了用户名,登陆的主机名,~ 表示当前所处的工作目录,$为普通用户的命令提示符,#是根用户的命令提示符。
命令,可以加选项(是行为的开关),可以加参数(一般是一个字符串,是命令的执行对象组成部分)。三个命令小试牛刀
whoami
echo #实践发现不能打印感叹号
nano
shell 中上下箭头为查看历史命令
shell中tab按一下可以自动补全命令,如果有多个相同开头的命令,tab按两下就列出所有相同开头的shell 命令。
用好帮助文档man
man 命令,可以查看系统中自带的各种帮助文档。
如man echo
在打开的man文档中,可以通过上下箭头上下移动一行查看,可以pgdn pgup翻页,可以斜线进行查找内容,q进行退出。
关闭和重启linix
linux中关机和重启,尤其是对于服务器来说,是需要很严谨的操作。
-
首先要查看在线用户和在线服务
-
通知用户关机或重启原因和时间安排
-
下达关机或重启命令
shutdown 即为关机命令
shutdown -h 10
shutdown -h 10:00
shutdown -h now
shutdown -h 10 系统将在十分钟后关机,请保存好手头的工作。
shutdown -c 即为取消关机命令
shutdown -r即为重启命令
还有其他关机重启的命令:
reboot 等价于 shutdown -r now
halt 等价于 shutdown -h now
poweroff 等价于halt + 切断电源指令(这个命令需要系统是支持ACPI指令的)
但是以上三个命令都不是安全的命令,因为可能会造成其他在使用中的用户的数据丢失。推荐还是使用shutdown - r 和shutdown -h 命令。