linux系统管理学习笔记1-初识linux

2020-05-15

学习时间是2020年3月下旬,疫情居家隔离期间。 学习视频是,学堂在线上,颜晨阳老师讲的Linux系统管理

引言

linux 之父, Linus Torvalds

自由软件之父 Richard Stallman

GNU项目的创立,标志着自由软件运动的兴起。

1992年正式诞生了Linux系统。

linux发行版本可能存在较大差异,但是并不是系统内核的差异,而是功能侧重点的差异。

选择合适的linux版本

版本,有两个概念,分别是内核版本和发行版本。linux内核版本源代码可以在官网下载。

发行版本,指的是公司或者个人发行的linux版本,发行版本不是linux内核上的区别,而是外部应用以及功能侧重点上的区别。

常见的五个发行版本的比较

  • ubuntu
    • 优点:易用,可靠
    • 缺点:技术支持和更新服务要付费,生态稍弱
  • Debian

    • 精简 免费 稳定
    • 更新较慢,无技术支持,中文支持不完善
  • suse

    • 非常可靠
    • 中国用户很少
  • redhat

    • 稳定可靠 生态有活力 中国用户极多
    • 技术支持和更新服务付费较高
  • centos

    • 完全支持redhat
    • 不提供专门的技术支持 更新相对滞后

对于linux初学者,首先要免费,第二资料丰富,第三要用户较多,综合选择centos发行版本。

下载操作

  1. 打开镜像网站– 点击6.6-点击isos目录 – 点击 X86_64– 只需要下载其中的DVD1.iso和MD5sum.txt即可。在下载完成后,校验MD5码确保下载的是完整文件,并且是源文件,没有被第三方改动过。

  2. 下载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中关机和重启,尤其是对于服务器来说,是需要很严谨的操作。

  1. 首先要查看在线用户和在线服务

  2. 通知用户关机或重启原因和时间安排

  3. 下达关机或重启命令

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 命令。