Linux零基础速成篇二(理论+实操)
前言:本教程适合Linux零基础学习,也适合Linux期末考试的小伙伴,从头到尾理论与实操相结合,让你快速对Linux进行了解和掌握。
(后续再出一个题目总结,可以嘎嘎提分,避免挂科)
目录
前言:本教程适合Linux零基础学习,也适合Linux期末考试的小伙伴,从头到尾理论与实操相结合,让你快速对Linux进行了解和掌握。
1.2vim编辑器工作模式(没详细写,对这块感兴趣可以自己去研究)
3.1进程的定义(简略一写,详细的进程概念大家可以自行了解)
补充案例:通过kill命令停止(杀死)Apache(httpd)启动进程
五、补充内容shell编程(我之前已经写过相关文章,这里就不再继续叙述了,感兴趣的看我之前的文章即可)
一、vim编辑器
1.1vim编辑器的启动、保存和退出
启动vim
启动非常简单,直接在命令行输入vim和文件名即可,格式如下:
vim 文件名
如果文件存在,则是打开文件,如果文件不存在,则系统会创建一个新文件。
我们先使用cat a.sh,查看是否有这个文件。然后使用vim a.sh,回车后会出现下面这种 画面:
如图所示,左下角显示“a.sh”[新],表示a.sh是一个新文件,这个时候是无法写入内容,按一下i键,左下角会出现插入:
然后可以写入echo "hello world"
保存和退出vim
在我们编辑文件之后,需要保存相关内容。在保持时我们可以先按Esc键,再使用:wq命令(注意冒号要手敲),再按Enter键即可保存退出。
再使用cat a.sh查看以及sh a.sh运行查看效果(shell脚本编写可以查看我之前写的文章泷羽sec:shell编程(1)脚本创建执行与变量使用-CSDN博客)
1.2vim编辑器工作模式(没详细写,对这块感兴趣可以自己去研究)
vim编辑器提供了三种工作模式,分别是命令模式、编辑模式和末行模式。每种模式又分别支持不同的命令快捷键,极大地提高了工作效率。
1.2.1、命令模式
命令模式是 vim 编辑器的基础模式,用于执行各种操作。在此模式下,输入的字符会被视为命令。
常用快捷键
-
移动光标:
-
h
:向左移动光标。 -
j
:向下移动光标。 -
k
:向上移动光标。 -
l
:向右移动光标。 -
gg
:将光标移动到文件首行。 -
G
:将光标移动到文件末行。 -
nG
:移动到第n
行(n
为具体数字)。
-
-
文本编辑:
-
x
:删除光标所在字符。 -
dd
:删除光标所在行。 -
dw
:删除光标所在单词。 -
d$
:删除光标所在行光标至行尾的内容。 -
u
:撤销上一步操作。 -
Ctrl + r
:恢复撤销的操作。
-
-
查找与替换:
-
/
:查找指定字符串。例如输入/hello
,会查找hello
字符串。 -
n
:查找下一个匹配项。 -
N
:查找上一个匹配项。 -
:%s/old/new/g
:全局替换old
为new
(%
表示整个文件,g
表示全局替换)。
-
1.2.2、编辑模式
编辑模式用于对文本进行插入、修改等操作。在命令模式下输入i
(插入)、a
(追加)、o
(另起一行插入)等命令进入编辑模式。
常用快捷键
-
插入:
-
i
:在光标当前位置插入文本。 -
I
:在当前行首插入文本。 -
a
:在光标当前位置后追加文本。 -
A
:在当前行尾追加文本。 -
o
:在当前行下方另起一行插入文本。 -
O
:在当前行上方另起一行插入文本。
-
-
修改:
-
r
:替换光标所在字符。 -
R
:进入替换模式,连续替换字符直至按下 Esc 键。
-
1.2.3、末行模式
末行模式用于执行一些特殊命令,如保存文件、退出程序等。进入末行模式只需在命令模式下输入:
。
常用快捷键
-
文件操作:
-
:w
:保存文件。 -
:w newfile
:将文件保存为newfile
。 -
:q
:退出 vim 编辑器。 -
:q!
:强制退出,不保存文件。 -
:wq
:保存并退出。
-
-
执行外部命令:
-
:!command
:执行外部命令。例如:!ls
,会执行系统的ls
命令。
-
-
设置参数:
-
:set nu
:显示行号。 -
:set nonu
:取消行号显示。
-
通过熟练掌握 vim 编辑器这三种工作模式及其快捷键,能够显著提高文本编辑效率,在不同场景下灵活应对各种需求。
1.3vim模式之间的转换
二、软件包管理
2.1Linux(centos)软件包安装方式
2.2RPM命令管理软件包
2.2.1安装软件
rpm命令安装RPM软件包的基本格式如下:
格式 rpm 选项 RPM软件包
rpm命令常用安装选项
案例5-1:在CentOS 操作系统中安装JDK软件包。
2.2.2查询软件
格式 rpm 选项 RPM软件包
rpm命令常用查询选项
选项 | 说明 |
-q | 查询软件包信息 |
-a | 查询已安装的软件包 |
-c | 显示软件包的配置文件列表(后面是已经安装的软件名称) |
-d | 显示软件包的文本文件列表(后面是已经安装的软件名称) |
-p | 查询软件包文件,通常和其他选项组合使用 |
-g | 查询所属组的软件包 |
-f | 查询文件属于哪个软件包 |
-l | 列出已安装的软件包内所有文件(后面是已经安装的软件名称) |
-s | 列出软件包内所有文件状态(后面是已经安装的软件名称) |
案例5-3:查询jdk是否已经安装。
2.2.3升级软件
格式 rpm 选项 RPM软件包
rpm命令常用的升级选项
选项 | 说明 |
-U | 升级指定软件包 |
-v | 显示升级过程 |
-h | 以#好显示升级进度 |
2.2.4卸载软件
rpm命令使用-e选项卸载软件。rpm命令可以一次卸载多个软件,如果卸载成功,rpm命令没有输出结果;如果卸载失败,rpm命令会给出提示信息。
2.3yum方式安装软件包
yum的安装命令为install,使用install安装软件时,系统会查询软件仓库。如果软件仓库有相应的软件包,则检查软件包的依赖关系,如果没有依赖关系冲突,则下载安装软件包;如果有依赖关系冲突,则询问用户是否要安装依赖,或删除有冲突的软件包。
YUM源
软件仓库中保存软件下载地址的文件都存储在/etc/yum.repos.d目录下,使用ls命令可查看该目录下的软件源文件。
以CentOS-Base.repo文件为例,该文件中的一个源如下所示。
案例:
三、进程管理
3.1进程的定义(简略一写,详细的进程概念大家可以自行了解)
在 Linux 系统中,进程是正在执行的一个程序实例的抽象。可以把进程看作是一个独立的实体,它包含了程序执行时所需要的各种资源,如程序代码、数据、打开的文件描述符、信号处理函数以及内核内部用于进程管理的各种数据结构等。
例如,当你在 Linux 终端中运行一个命令(如ls
命令来列出文件列表),系统就会为这个ls
程序创建一个进程。这个进程会有自己独立的内存空间来存储程序代码和相关数据,并且会在系统内核的调度下占用 CPU 时间来执行。
3.2进程查看命令
3.2.1ps命令
ps命令用于静态查看当前系统中正在运行的进程信息,包括进程状态、占用的资源等,它是最基本也最强大的进程查看命令。
格式 ps 选项 参数
ps命令常用选项
选项 | 说明 |
-a | 显示除会话组长之外的所有进程,包括其他用户的进程 |
-e | 显示所有进程,包括系统进程、父进程 |
-f | 显示进程更多详细信息,多与其他选项组合使用 |
-u | 以用户的形式显示进程信息,CPU使用情况等 |
-x | 显示没有控制终端的进程 |
-l | 使用详细的格式显示进程信息 |
--pid | 显示指定PID的进程信息 |
案例6-1:使用-aux选项显示所有用户有关进程详细信息。
ps -aux
3.2.2 top命令
ps命令查看的进程结果不是动态的、连续的,它相当于快照功能,只显示当前时刻进程的状态信息。如果想要动态地显示进程状态信息,则可以使用top命令。
格式 top 选项 参数
top命令常用选项
选项 | 说明 |
-b | top命令默认只显示一屏信息,该选项可以通过批处理方式显示进程信息 |
-d | 自定义刷新时间间隔 |
-i | 忽略任何空闲进程或僵死进程 |
-p | 监视指定的PID进程 |
-c | 显示进程命令行,包括路径 |
top命令可以实时查观察系统的整体运行情况 显示结果默认每隔3s刷新一次,类似于Windows系统的任务管理器,是一个很实用的系统性能监测工具。
3.3进程终止命令
除了查看进程,有时还会终止一些无用的进程。针对进程的终止,Linux提供了kill和killall两个命令。
3.3.1kill命令
kill命令可以终止指定的进程。kill命令的工作原理是发送某个信号给指定进程,以改变进程的状态。
格式 kill 选项 参数
kill命令的选项一般是信号,参数为PID。Linux提供了很多预定义的信号,可以使用kill -l命令查看这些预定义的信号。
案例6-4:终止PID为3794的进程。
补充案例:通过kill命令停止(杀死)Apache(httpd)启动进程
3.3.2killall命令
killall命令用于终止某个服务所对应的全部进程。通常,复杂程序会有多个进程协调同为用户提供服务,当要终止服务时,如果使用kill命令逐个结束进程会比较麻烦,此时可以使用killall命令批量结束该服务的所有进程。
格式 killall 选项 参数
killall命令的选项通常也是信号,参数一般为服务名称。
3.4任务的前台与后台调度
Linux系统中的进程可以分为前台进程与后台进程。
前台进程:用户在屏幕上进行操作的进程。
后台进程:在不需要用户干预的情况下运行的进程,通常用于执行如日志记录、系统监测、作业调度、用户提醒等任务。
前台进程需要和用户交互,一般优先级稍微高一些,后台进程基本上不和用户交互,优先级稍微低一些。
3.4.1jobs命令
jobs命令用于显示系统中暂停的任务列表及任务状态,包括后台任务。jobs命令的语句格式如下:
格式 jobs 选项 参数
jobs命令常用选项
选项 | 说明 |
-l | 显示进程号 |
-p | 只显示任务PID |
-s | 只显示停止状态的任务 |
3.4.2bg命令
bg命令用于将前台任务调度至后台执行。
格式 bg 参数
bg命令的参数是任务标识号。
3.4.3fg命令
fg命令用于将后台任务调度到前台执行。
格式 fg 参数
fg命令的参数也是任务标识号
3.5计划任务
在使用Linux系统过程中,有时需要执行一些周期性、规律性的任务,如定时维护系统资源、定期备份数据库等。这些任务可以提前制定好计划,到特定时间系统会自动执行,这样可以提高系统的管理效率。
3.5.1at命令
at命令用于执行一次性计划任务,一般用于满足临时性的工作需求。
格式 选项 参数
at命令常用选项
选项 | 说明 |
-l | 查看计划任务。at -l功能与atq命令相同 |
-f | 从文件中读取任务 |
-d | 删除计划任务,参数为任务编号。at -d功能与atrm命令相同 |
案例6-9:制定计划任务,18点重启http服务。
首次使用at需要进行安装
at 18:00
systemctl restart httpd
ctrl+d
3.5.2crontab命令
at命令只能执行一次性的计划任务,如果想让周期性地重复执行某一任务,可以使用crontab命令制定计划任务。使用crontab命令制定计划任务时,通常将任务命令写在一个文件中,这个任务文件叫作crontab文件。 使用crontab命令加载这个文件,到指定时间系统会自动执行文件中的命令。 crontab文件可以使用vim命令编辑,也可以使用crontab命令直接编辑。
格式 crontab 选项 参数
crontab命令常用选项
选项 | 说明 |
-e | 编辑crontab文件 |
-l | 查看当前的计划任务 |
-r | 删除计划任务 |
-u | 编辑其他用户的计划任务,通常root使用该参数 |
crontab命令的计划任务也需要指定时间日期与执行命令。
格式 分 时 日 月 星期 任务命令
crontab命令任务格式各参数字段含义
crontab命令的用法与at命令类似,但是在制定crontab计划任务时,有以下几点需要注意:
(1)如果有些时间日期字段没有设置,需要使用“*”符号占位。例如,30 18 * * 7,表示每周日18:30执行任务,没有设置日、月字段。
(2)如果一个字段设置多个值,多个值之间使用“,”分隔,例如,30 18 * * 1,3,5表示每周一、周三、周五的18:30执行任务。如果多个字段的数值是连续的,可以使用“-”符号连接起来,表示一段连接的时间,例如,30 18 8-10 10 *表示10月8号到10月10号的18:30执行任务。此外,还可以使用“/”符号表示间隔时间,例如,/10 * * * 7表示星期日每隔10分钟执行一次任务。
四、磁盘管理
4.1查看磁盘使用情况
4.1.1df命令
df命令可以查看磁盘的使用情况,包括磁盘容量、已用空间大小、可用空间大小、磁盘使用率等信息。
格式 df 选项 磁盘设备
df命令常用选项
案例7-1:查看/dev/dri的使用情况
df -h /dev/dri
4.1.2du命令
du命令用于查看文件或目录的磁盘占用情况。
格式 du 选项 磁盘设备
du命令常用选项
案例7-2:查看当前目录先所有子目录的大小。
du -h
4.1.3df与du相比较
4.2磁盘分区
无论是Windows系统还是Linux系统,一块新的磁盘无法直接使用,需要先对磁盘进行分区。磁盘分区有利于数据的分类存储,管理员可以根据文件类型、文件数量和文件大小等因素,合理规划磁盘空间,以提高磁盘使用率与读取速率。Linux系统有两种常用的磁盘分区方式,分别是MBR和GPT。
4.2.1MBR分区规则
MBR全称为Master Boot Record,即主引导记录,在MBR分区方式中,第一个扇区是最重要的,它记录了3部分信息,分别是主引导记录、分区表信息和结束符。
主引导记录:包括引导代码和磁盘签名两部分,共占用446字节空间。
分区表:占用64字节空间,记录了磁盘分区信息,每记录一个分区信息就需要占用16字节空间,因此第1扇区中最多只能写入4个分区信息,这4个分区就是主分区。
结束符:占用2字节空间。
4.2.2MBR分区管理
在Linux系统中,如果使用MBR方式创建分区,可以通过fdisk命令对磁盘分区进行管理。
fdisk命令的功能包括创建分区、删除分区、查看分区等。
格式 fdisk 选项 磁盘
fdisk命令常用选项
fdisk命令通过选项只能实现磁盘分区的简单管理,若要使用fdisk命令创建、删除磁盘分区等,需要进入fdisk命令的交互界面。在终端输入“fdisk 磁盘”即可进入交互界面。
在fdisk命令的交互界面,通过命令快捷键m可以获取帮助信息,帮助信息中包含此界面可执行的命令快捷键。
fdisk交互界面常用的命令快捷键
选项 | 说明 |
d | 删除分区 |
F | 列出未分区的空闲区 |
l | 列出已知分区类型 |
n | 添加新分区 |
p | 打印分区表 |
i | 打印某个分区的相关信息 |
w | 将分区表写入磁盘并退出 |
q | 退出而不保存更改 |
4.2.3格式化分区
磁盘分区完成之后,需要在分区上创建文件系统以规定数据的存储方式,在分区上创建文件系统就是格式化分区。
格式 mkfs 选项 文件系统 分区
mkfs命令常用选项
4.3挂载与卸载
4.3.1挂载
挂载就是将磁盘分区(或其他硬件设备)与一个目录进行关联,这样就可以在磁盘分区中存储数据了。 Linux系统提供了mount命令用于实现磁盘分区的挂载,mount命令的用法格式如下所示。
格式 mount 分区名称 挂载目录
4.3.2查看挂载信息
当用户挂载的设备比较多时,往往不清楚设备的具体挂载信息,如磁盘分区挂载到了哪个目录。为此。Linux提供了两个常用的查看挂载信息的命令findmnt和lsblk。
findmnt命令
findmnt命令用于快速查看设备的挂载信息。
格式 findmnnt 设备名称
lsblk命令
lsblk命令用于列出除RAM盘之外所有可用的块设备信息,包括硬盘、闪存盘、CD-ROM等。
格式 lsblk 选项 设备名称
lsblk命令常用选项
选项 | 说明 |
-a | 显示所有设备信息 |
-f | 显示设备文件系统信息 |
-m | 显示设备权限信息 |
-l | 以列表形式显示设备信息 |
4.3.3卸载
卸载就是取消磁盘分区与目录的关联关系。
格式 umount 磁盘分区/挂载目录
4.4 RAID概述
RAID(Redundant Arrays of Independent Disks,即磁盘阵列)的核心思想是将多个独立的物理磁盘按照某些方式组合成一个磁盘阵列,然后按一定的算法把数据分散存储到不同的磁盘上,这样就起到了很好的数据冗余备份效果。RAID磁盘阵列不仅降低了数据因磁盘损坏而丢失的风险,而且还提高了磁盘的读写速度,因此很多企业都采用RAID磁盘阵列技术保存数据。
4.4.1RAID0
RAID0是把多块磁盘(至少两块)串联在一起,组成一个大的卷组,将数据依次存储在各个磁盘中。
RAID0存储机制
优势: 多个磁盘并行执行数据存取,磁盘的性能会得到显著提升。
不足: 不具备容错能力,若一块磁盘损坏,会导致所有数据的存储,因此RAID0适用于对数据读写效率要求较高,但数据可靠性较低的领域。
4.4.2RAID1
RAID1技术是把多块磁盘设备(至少两块)进行绑定,在存储数据时,将数据同步存储到多块磁盘中。
RAID1存储机制
优势: 在RAID1技术中,某一块磁盘设备损坏,并不影响数据的正常读写。RAID1可在一定程度上保证数据的安全性与完整性。
不足: 磁盘利用率与写入效率都比较低。
4.4.3RAID10
RAID10由RAID0和RAID1结合而成,兼具RAID0与RAID1高效与安全的特点。RAID10至少需要4块磁盘,首先按照创建RAID1磁盘阵列,按照RAID1方式存储数据,以保证数据的安全性,然后再对RAID1磁盘阵列实施RAID0技术,进一步提高磁盘的读写速度。
RAID10存储机制
优势: RAID10继承了RAID0和RAID1的优点,具有高可靠性、高效率特点。
不足: 成本高,并且磁盘利用率较低。
4.4.4.RAID5
RAID5将数据以块为单位分别存储到不同的磁盘中,并将磁盘的数据奇偶校验信息分散存储在磁盘中,这样存储的优势是,当某一块磁盘设备损坏后,利用其他磁盘的校验信息可以恢复丢失的数据。
RAID5存储机制
优势: 可在一定程度上实现数据的并行存取。
不足: 在读写数据时,RAID5需要产生4项读写操作,包括两次旧数据与校验信息的读取,两次新数据与校验信息的写入。RAID5兼顾了数据安全性、读写速度与存储成本,但每个方面的表现都不突出。
五、补充内容shell编程(我之前已经写过相关文章,这里就不再继续叙述了,感兴趣的看我之前的文章即可)
泷羽sec:shell编程(1)脚本创建执行与变量使用-CSDN博客
泷羽sec:shell编程(2)永久环境变量和字符串相关操作-CSDN博客
泷羽sec:shell (3)脚本参数传递与数学运算-CSDN博客
shell编程(4)脚本与用户交互以及if条件判断-CSDN博客
shell编程(5)字符串运算符和逻辑运算符_.sh 字符串书写规则-CSDN博客
shell编程(6)if条件判断与for循环结构_shell脚本for判断变量小于某个值-CSDN博客
泷羽sec:shell编程(7)for循环与while循环-CSDN博客
泷羽sec:shell编程(8)until循环以及函数基本创建调用-CSDN博客
泷羽sec:shell编程(9)不同脚本的互相调用和重定向操作-CSDN博客
原文地址:https://blog.csdn.net/m0_74190241/article/details/144761282
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!