鸟哥的Linux私房菜基础学习篇 第3章与第4章的重点探索
目录前言一、安装CentOS 7.x1.注意事项2.操作流程1.刻录2.安装虚拟机3.正式安装二、使用步骤1.引入库2.读入数据总结前言在第三、四章的学习中,为配合后期任务的需要,笔者这里尝试并且成功的发行版为以下两个镜像文件:鸟哥要求安装的CentOS-7-x86_64-Everything-2009.iso(虚拟机)、笔者后期需要使用的ubuntukylin-20.04.1-enhanced-
目录
前言
在第三、四章的学习中,为配合后期任务的需要,笔者这里尝试并且成功的发行版为以下两个镜像文件:鸟哥要求安装的CentOS-7-x86_64-Everything-2009.iso(虚拟机)、笔者后期需要使用的ubuntukylin-20.04.1-enhanced-amd64.iso,鉴于第三、四章多为实践性操作,笔者这里也分享一些安装时遇到的问题及解决方案
一、安装CentOS 7.x
1.注意事项
1.Linux默认使用MBR分区表格式,由于练习时仅分出40GB的磁盘来玩,即还达不到2TB,所以默认上会以MBR来配置,得在安装的时候加上某些参数,强制系统使用GPT的分区表来配置磁盘
2.练习机的启动引导程序使用CentOS 7.x默认的grub2,并且安装于MBR,也必须安装到MBR上
3.本练习机使用“带GUI的服务器”的软件方式来安装,在后期选择软件模式时留意
4.由于LBA0仅提供第一阶段的启动引导程序代码,因此如果使用类似grub的启动引导程序,就得额外划分出一个BIOS boot 的分区,这个分区才能够防止其他开机过程所需的程序
2.操作流程
(1).刻录
因为笔者没有采用书上所说的DVD或CD刻录Linux,而是直接将镜像文件刻录到U盘上,这里也提供给需要的朋友相关的软件链接。
刻录:
ISOtoUSBlink
DELLlink提取码:nj4y
用USB设备来安装Linux速度更快
特别注意:自己的U盘格式,如果在刻录前U盘格式为FAT32,但最后安装的时候发现设备文件类型全都是ntfs格式,就要回去先右键格式化U盘,改变其格式为ntfs再重新刻录,否则会有报错说“安装程序向硬盘复制文件时遇到错误”等
(2).安装虚拟机
笔者初次尝试,不敢拿自己的电脑开刀,还是在进入到安装界面时选择放弃(正式上手要进入BIOS的设置界面,让U盘优先启动来进行安装),而采用安装虚拟机来学习,鸟哥的书上介绍的流程为有Linux基础的Linux KVM,笔者之前本就是windows操作系统,所以安装了另一款比较出名的Virtual Boxlink
流程上基本相同:
1.新建虚拟电脑(不要选导入)
2.名称、文件夹、类型、版本、占用内存的选择,内存要适当选择,太大会影响电脑其他程序的正常运行,也可能导致虚拟机打不开
3.创建虚拟硬盘,文件大小40GB,文件夹要选一个剩余空间相对充裕的硬盘,当然现在的虚拟机的磁盘驱动器,大多使用qcow2这个虚拟磁盘格式,这种格式是“用多少记录多少”,与你的实际使用量相关,但以防后期出现问题,笔者外接了一个移动硬盘,把文件夹放在其中
4.添加镜像文件,选中创建好的虚拟机,进入设置-存储-没有盘片-选择你要添加的iso文件即可
5.启动虚拟机,发现显示屏幕过小,可以回到设置-显示-缩放率,自行调整
(3).正式安装
正式安装的详细步骤按照鸟哥指导的操作即可,安装CentOS 7.x的模式至少有两种,鸟哥主要给出教程的是图形用户界面模式(命令行模式的介绍少)这里仅列出其中设置的重点部分。
1.强制使用GPT分区表(择Install CentOS 7然后按下Tab键,输入inst.gpt)
2.软件选择时选择带GUI的服务器(GUI就是用户图形用户界面模式,默认搭载GNOME,GNOME桌面是Linux常见的图形用户界面软件,而还有一个常见的图形用户界面软件是KDE Plasma Workspaces)
3.安装位置选项中选择我要配置分区,biosboot-2M,/boot-1G,/-10G,/home-5G,swap-1~2G(/、/home、swap都采用LVM的磁盘管理方式)(如果系统内存很大可以不要交换分区)
4.三种设备类型:标准分区(类似/dev/vda1的分区),LVM(一种可以弹性增加或缩小文件系统容量的分区),LVM精简配置(LVM高级版,让磁盘充分利用空间做更多的数据存储)
5.文件系统选项:ext2/ext3/ext4(Linux早期使用的文件系统类型,后两个还有日志功能,对于系统的恢复比较快速,但因为磁盘容量上涨,ext系列似乎不够用了),swap(磁盘模拟为内存的交换分区,岂不是用目录树挂载,无指定挂载点),BIOS boot(GPT分区表特有,由于LBA0仅提供第一阶段的启动引导程序代码,如果使用类似grub的启动引导程序,就得额外划分出一个来,这个分区防止其他开机过程所需的程序),xfs(目前CentOS 7默认的文件系统,最早是为大型服务器所开发,对大容量磁盘管理极好,格式化速度很快),vfat(同时被Linux和Windows所支持的文件系统类型,双系统的朋友为了数据的交换,确实可以创建一个)
6.不关心KDUMP的设置,其更偏向开发者除错之用
7.务必设置Root密码,并创建用户,通常建议将管理员直接登录的权限拿掉,有需要时才切换成管理员身份
8.刚刚前面所选择的所有选项都在/root/anaconda-ks.cfg这个文件内有记录,以便为了需要创建一个一模一样的系统时有参考
9.烧机测试,在最开始安装的启动界面选择trouble shooting、run a memory test的选项,让系统在高负载的情况下运行一些比较号系统资源的程序,以测试系统稳定性
10.使用台式机用的DVD来安装Linux时,选择Install CentOS 7然后按下Tab键,设置
nofb apm=off acpi=off pci=noacpi
APM是早期电源管理模块,ACPI是最近的电源管理模块,nofb是取消显卡上面的缓存检测,这些在启动的时候加入的参数称内核参数
11.多重引导留给进阶之后再去研读
二、首次登录与在线求助
1.认识图形化界面
1.登录个人账号后显示有上方任务栏(左侧有应用程序与位置,右侧有输入法切换、声音、网络、日期账号相关设置切换等)、桌面(一个该账号的家目录,在/home/xxxx,一个垃圾桶)与下方任务栏(右侧有四个虚拟桌面)
2.位置即文件资源管理器,中间包含的项目类同从桌面的家目录进入后的
3.位置-计算机中有一堆目录文件夹,有箭头的是文件夹中有链接文件的数据,有x的是本账号没有权限进入的目录,更多的是一般目录
4.“<”这个键不能代表回到上一层目录,而单指“上一个目录”
5.中文输入法的设置:应用程序-系统工具-设置-区域和语言
6.更改虚拟桌面:应用程序-附件-优化工具-工作区
7.重启X Window界面:应用程序-附件-优化工具-键盘和鼠标-其他布局选项(键盘里面)-杀死X服务器的按键序列,从“已禁用”设置成“Ctrl+Alt+Backspace”
8.关闭GNOME默认的界面切换到动画功能:应用程序-系统工具-终端,输入gsettings set org.gnome.desktop.interface enable-animations false
9.直接注销,重新登录即可重启X Window,或者利用刚设置好的快捷键重启,这类操作在修改完X Window的配置文件后常用
10.X Window切换到命令行模式:Ctrl+Alt+F1~F6,可能有时还需要加上Fn,Linux默认情况下会提供6个终端,Ctrl+Alt+F1返回图形用户界面模式(CentOS 7默认是在tty1),在命令行界面输入startx可在该终端下(tty2~tty6)启动个人的图形界面,事实上,所谓的图形环境就是命令行界面加上X Window软件
2.认识命令行模式
命令行模式登录后所运行的程序被称为壳(Shell),这是因为这个程序负责最外面跟用户沟通。
1.进入命令行模式的终端后,输入账号,输入密码,此时密码的输入不会显示,登入成功后[xxxx@study ~]$,最左边的xxxx显示的是目前用户的账号,而@之后接的study则是主机名,最右边的波浪线则是指目前所在的目录,代表当前用户的家目录,而[]外的则是提示字符,这个是一般用户的提示字符,如果是#,则为root用户的提示字符
2.注销Linux:
[xxxx@study ~]$ exit
仅代表注销不代表关机,Linux本身有相当多的任务正在进行,我们的登录也只是其中一个任务
3.命令输入:
[xxxx@study ~]$ command [options] parameter1 parameter2 ...
(1)一行命令第一个输入的部分绝对是命令(command)或可执行文件(如Shell脚本),command即命令的名称
(2)[ ]并不真实存在,其中的选项前多带-号,有时候使用选项的完整全面,带–号,有时带+号
(3)参数1、2为依附在选项后的参数,或是command的参数
(4)命令、选项、参数之间用空格来区分,不论几格shell都视为一格
(5)回车键在哪行按下,代表那一行的命令开始执行
(6)命令太长可使用 \来转义回车键,使命令连续到下一行,\需紧跟特殊字符才可转义
(7)Linux区分英文大小写
(8)在什么目录下操作该目录相关的命令时,可省略在参数中重申该目录名
[xxxx@study ~]$ ls -al ~
[xxxx@study ~]$ ls -al
[xxxx@study ~]$ ls -al
[xxxx@study ~]$ ls -a -l
如上是同样的操作
4.语系的支持:
为避免输入命令之后的乱码显示,常得更改支持语系为英文
[xxxx@study ~]$ locale #显示目前所支持的语系
LANG=zh_CN.utf8 #目前的语系为简体中文的UTF-8
...
[xxxx@study ~]$ LANG=en_US.utf8
[xxxx@study ~]$ export LC_ALL=en_US.utf8
#LANG只改变输出信息,更改其他不同的信息,需要同步更新LC_ALL
但是这次登录注销后,查看英文信息的命令就又没有用了
3.基础命令初试
1.两种输入命令后的情况:
显示日期的命令:date(情况一)
显示日历的命令:cal(情况一)
[xxxx@study ~]$ cal [month] [year]
如输入错误的参数,命令会有错误信息提示
简单好用的计算器:bc(情况二)
默认输出整数,如果要输出小数点下位数,要执行scale=number命令,number是想保留的小数点位数
要离开bc界面需输入quit
情况一是该命令会直接显示结果,然后回到命令提示字符等到下一个命令的输入
情况二是进入到该命令的环境,指导结束该命令才回到命令行界面的环境
2.几个重要热键:
(1)Tab:[Tab]接在一串命令的第一个字段后面,则为命令补全;[Tab]接在一串命令的第二个字段后面,则为文件补齐;安装了Bash-completion软件的,在某些命令后使用[Tab],可以进行“选项/参数的补齐”
[xxxx@study ~]$ ca[tab][tab]
#显示所有以ca 开头的命令
[xxxx@study ~]$ ls -al ~/.Bash[tab][tab]
#显示所有以.Bash开头的文件名
[xxxx@study ~]$ date --[tab][tab]
#列出date这个命令可使用的参数
(2)[Ctrl]+c:可以将当前正在运行中的命令中断
(3)[Ctrl]+d:代表键盘输入结束(EOF),也可以用来取代exit的输入
(4)[Shift]+[Page UP]|[Page Down]:前后翻页时使用
3.输入命令找不到:
这个命令不存在,因为软件没有安装
这个命令所在的目录没有将它加入命令查找路径中
打错字了
4.强大的 man page 与 info page
1.- -help求助:只能用在协助你查询曾经使用的命令所具备的选项与参数,如果要使用从未使用过的命令,或是要查询到根本不是命令而是文件格式,就得通过man page命令了
[xxxx@study ~]$ date --help
#有基本语法,重要格式,还有范例等
2.man page:man是manual(操作说明)的简写,可以按下[空格键]向下翻页,按下q离开
[xxxx@study ~]$ man date
DATE(1) User Commands DATE(1)
#会出现比--help界面更详细的说明
man page的第一行出现[DATE(1)]这类命令名后带着数字的,数字具有特殊的含义
上表还可以通过man man命令来更详细地取得说明。
man page大致分为以下几个部分:
先查看NAME,大致看一下意思,再详读DESCRIPTION,了解相关的数据与使用时机,熟悉后查询OPTIONS,指导每个选项的意义,以方便执行比较详细的命令内容,最后再看看还有哪些可以使用,比如SEE ALSO部分
man page界面有自己的使用按键:
查找特定命令/文件的man page说明文件:
[xxxx@study ~]$ man -f man
man(1) -an interface to the on-line reference manuals
man(1p) -display system documentation
man(7) -macros to format man pages
[xxxx@study ~]$ man 1 man
[xxxx@study ~]$ man 7 man
使用 -f这个选项可以获得更多与man相关的信息,但一般输入man man通常都会先找到数字较小的那个,即man 1 man,而使用man -f命令时,man只会找数据中与要找命令(或文件)完全相同的。
[xxxx@study ~]$ man -k man
fallocate (2) -manipulate fule space
zshall (1) -the Z shell meta-man page
...
yum-utils(1) -tools for manipulating repositories and Extended package management
使用 -k这个选项,会列出所有含man这个关键词的命令。
[xxxx@study ~]$ whatis [命令或是文件] <==相当于man -f[命令或是文件]
[xxxx@study ~]$ apropos[命令或是文件] <==相当于man -k[命令或是文件]
要使用这两个命令得在root身份下建立whatis数据库(旧版)/mandb
3.info page:将文件数据拆成一个一个的段落,每个段落用自己的页面编写,还有类似网页的超链接来跳到各不同的页面中,每个独立的页面也被称为一个节点(Node)
[xxxx@study ~]$ info info
File: info.info, Node:Top, Next:Getting Started, Up: (dir)
#File: 代表这个页面时属于Top节点,Next(N): 下一个节点,Up(U):回到上一层的节点总揽,Prev:前一个节点,第一个节点没有Prev节点
Info: An Introduction
...
节点更像是可以快速翻页这样的功能,帮助准确定位要找的内容,在任何时候直接按下h,系统就能够提供一些基本按键功能的介绍辅助你在info page界面的操作。使用上下左右按键将光标移动到Menu列表的文字或*上,按下Enter即可前往该小结,按下Tab键可以快速的将光标在画面中的节点间移动。
总结上面的:在命令行模式,如果知道某个命令但忘记了相关选项与参数,先用- -help查询,如果是不知道的命令或文件格式,用man或info来查询,如果想要假设其他服务,或想要利用一整组软件来完成某项功能时,请到/usr/share/doc下面查一查有没有该服务的说明文件。
5.nano文本编辑器
[xxxx@study ~]$ nano text.txt
#进入文本编辑器界面,存在就打开,不存在就新建
^代表Ctrl键,M代表Alt键
几个重要的组合键:
Ctrl+G:取得联机帮助(help)
Ctrl+X:离开nano,若有修改过的我呢见会提示是否需要保存
Ctrl+O:保存文件
Ctrl+R:从其他文件读入数据,获奖某个文件的内容贴在本文件中
Ctrl+W:查找字符串
Ctrl+C:说明目前光标所在的行数与列数等的信息
Ctrl+_:直接输入行号以快速移动到该行
Alt+Y:语法校验功能开启或关闭
Alt+M:支持鼠标来移动光标的功能
6.正确关机
1.观察系统的使用状态:
目前在线用户-who
网络的联机状态-netstat -a
查看后台执行的程序-ps -aux
2.通知在线用户关机的时刻
3.几个关机与重新启动相关的命令:
将数据同步写入硬盘中的命令:sync(一般在系统关机或重启前多执行几次)
常用的关机命令:shutdown(远程管理工具的关机权只有root才有)(可以自由选择关机模式,即关机还是重启;可以设置关机时间;可以自定义关机信息;可以发出警告信息)
重新启动、关机:reboot、halt、poweroff
4.注意一般只有root才能够执行这样的重大系统操作
5.多功能的shutdown:
[root@study ~]$ /sbin/shutdown [-krhc] [时间] [警告信息]
-k:不要真的关机,只是发送警告信息
-r:在将系统的服务停掉之后就重新启动
-h:将系统的服务停掉后就关机
-c:取消已经在进行的shutdown命令内容
时间:没有指定系统的关机时间,这里就默认时1分钟后自动进行
三、在安装优麒麟时遇到的问题
为了最后搭建tensorflow训练模型,只有虚拟机是不够用的,笔者的队长提出了安装优麒麟操作系统的方案。在安装过程中遇到的主要问题如下:
1.U盘格式与硬盘格式不一致,无法做启动盘,报错如下:
在刻录前改变U盘格式可以解决
2.不一定所有的U盘都能做成启动盘,不行的时候可以换U盘尝试
3.刚开始进入all filesystem checks的界面等待时间长,需要耐心等待
4.Easy BCD提取码:osjk,这个是在windows界面中进行操作以添加Linux的引导菜单,这样可以实现双系统
5.安装界面的磁盘分区需要有1个1000M 的/boot,一个按用户需要定制大小的/,为逻辑分区,注意分完区的引导其设备选/boot所在的设备名
6.使用lenovo Thinkpad x230i的朋友如果磁盘分区里有一个盘是Lenovo_Recovery需要将其改成逻辑分区(使用傲梅分区助手)
7.在Easy BCD中添加新条目-Linux/BSD-类型GRUB驱动器选953MiB的(应该就是/boot所在)-按下添加条目
8.编辑引导菜单,加长倒计时,以便开机时留有选择的时间
其实很多原理笔者自己也不太明白,一番摸索和咨询下来确实是成功安装了,如上的选择仅供参考。
总结
第三、四章算是正式的学习和上手操作了,尽管学习过程更加艰难,但鸟哥的讲解确实非常有帮助,希望正在一起学习的小伙伴们都能坚持下来。
更多推荐
所有评论(0)