Linux期末复习-ch1-ch3
作者:互联网
ch1
Linux作者,应用领域,组成,各种概念(内核,发行版等等)
Linux系统的内核最早是由芬兰大学生Linus Torvalds开发,并于1991年8月发布。
内核
内核是操作系统的核心,具有很多最基本的功能,如虚拟内存、多任务、共享库、需求加载、可执行程序和TCP/IP网络功能。
Linux内核的主要模块分为存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信、系统的初始化和系统调用等几个部分。
ch2
分区,如何分区,分区命名,交换分区作用,关机重启的常用命令
如何分区
自动配置分区方式用户无需进行设置,系统会自动对磁盘进行分区,默认创建/分区、/boot分区、/home分区和swap分区。
手动配置分区
创建标准分区时各分区字段的含义及其使用方法:
挂载点:输入分区的挂载点。如果这个分区是根分区,输入“/”;如果是“/boot”分区,输入“/boot”。如果是swap分区则无需挂载点。也可以通过下拉菜单为磁盘分区选择正确的挂载点。
文件系统类型:使用下拉菜单,选择用于该分区的合适的文件系统类型,如swap或xfs。
设备:包括用户计算机上安装的磁盘列表。如果一个磁盘的列表突出显示,那么在该磁盘上可以创建分区。
期望容量:输入分区的大小。
设备类型:指定标准分区。
加密:将磁盘分区进行加密。
标签:分区的卷标。
交换分区
-
直接从物理内存读写数据要比从硬盘读写数据快的多,而物理内存是有限的,这样就使用到了虚拟内存。虚拟内存是为了满足物理内存的不足而提出的一种策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换分区(swap分区)。
-
内核会将暂时不用的内存块信息写到交换分区,这样一来,物理内存得到了释放,这块内存就可以用于其它用途,当需要用到原始的内容时,这些信息会被重新从交换分区读入物理内存。
-
Linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。
-
Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么操作需要使用内存,Linux也会交换出暂时不用的内存页面,这可以避免等待交换所需的时间。
-
Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存,Linux内核根据“最近最常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存。
ch3
字符界面的切换,Linux下获取帮助(man, help等),运行级别,控制台组合键,特殊字符,命令自动补全(tab),命令历史保存,命令排列,命令替换,管道,重定向,vi
虚拟控制台
Linux系统可以同时接受多个用户同时登录,还允许用户进行多次登录,这是因为Linux系统提供了虚拟控制台的访问方式。
在字符界面下,虚拟控制台的选择可以通过按下[Alt]键和一个功能键来实现,通常使用F1~F6键。比如用户登录后,按下[Alt+F2]键,用户可以看到“login:”提示符,说明用户进入了第二个虚拟控制台。然后只需按[Alt+F1]组合键,就可以回到第一个虚拟控制台。
如果用户在图形界面下,那么可以使用[Ctrl+ Alt+F2]~[Ctrl+ Alt+F6]组合键切换字符虚拟控制台,使用[Ctrl+Alt+F1]可以切换到图形界面。
1.shutdown命令
shutdown命令可以安全地关闭或重启Linux系统。
命令语法:
shutdown [选项] [时间] [警告信息]
【例3.1】 立即关闭计算机系统。
[root@rhel ~]# shutdown -h now
【例3.2】 定时45分钟后关闭计算机系统。
[root@rhel ~]# shutdown -h +45
【例3.3】 立即重新启动计算机系统,并发出警告信息。
[root@rhel ~]# shutdown -r now "system will be reboot now."
【例3.4】 定时在1点38分重新启动计算机系统。
[root@rhel ~]# shutdown -r 01:38
2.halt命令
使用halt命令就是调用“shutdown –h
”命令执行关机任务。
命令语法:
halt [选项]
【例3.5】 使用halt命令关闭系统。
[root@rhel ~]# halt
3.reboot命令
reboot命令的工作过程与halt相似,不过reboot是引发计算机重启,而halt是引发计算机关闭。它的选项与halt相似。
【例3.6】 使用reboot命令重启计算机系统。
[root@rhel ~]# reboot
特殊字符
符号 | 功能 |
---|---|
~ | 用户主目录 |
` | 反引号,用来命令替代(在Tab键上面的那个键) |
# | 注释 |
$ | 变量取值 |
& | 后台进程工作 |
( | 子Shell开始 |
) | 子Shell结束 |
\ | 使命令持续到下一行 |
| | 管道 |
< | 输入重定向 |
> | 输出重定向 |
>> | 追加重定向 |
’ | 单引号(不具有变数置换的功能) |
" | 双引号(具有置换的功能) |
/ | 路径分隔符 |
; | 命令分隔符 |
命令历史记录
在操作Linux系统的时候,每一个操作的命令都会记录到命令历史中,在以后可以通过命令历史查看和使用以前操作的命令。
bash启动的时候会读取~/.bash_history
文件,并将其载入到内存中,$HISTFILE
变量就用于设置~/.bash_history
文件,bash退出时也会把内存中的历史记录回写到
~/.bash_history
文件中。
使用history命令可以查看命令历史记录,每一条命令前面都会有一个序列号标示。
命令语法:
history [选项]
使用命令历史举例
举例 | 描述 |
---|---|
!! | 运行上一个命令 |
!6 | 运行第6个命令 |
!8 /test | 运行第8个命令并在命令后面加上/test |
!?CF? | 运行上一个包含CF字符串的命令 |
!ls | 运行上一个ls命令(或以ls开头的历史命令) |
!ls:s/CF/G | 运行上一个ls命令,其中把CF替换成G |
fc | 编辑并运行上一个历史命令 |
fc 6 | 编辑并运行第6条历史命令 |
bootroot^ | 快速替换。将最后一个命令中的boot替换为root后运行 |
!-5 | 运行倒数第5个命令 |
!$ | 运行前一个命令最后的参数 |
【例3.11】 使用命令历史记录功能键。
[root@rhel ~]# mkdir /root/aaa
//创建目录/root/aaa
[root@rhel ~]# cd !$
cd /root/aaa
//!$是指重复前一个命令最后的参数,参数是/root/aaa
[root@rhel aaa]# pwd
/root/aaa
//显示用户当前目录是/root/aaa
搜索历史命令
快捷键 | 描述 |
---|---|
↑(向上方向箭) | 查看上一个命令 |
↓(向下方向箭) | 查看下一个命令 |
Ctrl+p | 查看历史列表中的上一个命令 |
Ctrl+n | 查看历史列表中的下一个命令 |
Ctrl+r | 向上搜索历史列表 |
Alt+p | 向上搜索历史列表 |
Alt+> | 移动到历史列表末尾 |
命令排列
如果希望一次执行多个命令,Shell允许在不同的命令之间,放上特殊的排列字符。
1. 使用“;”
使用“;”命令时先执行命令1,不管命令1是否出错,接下来就执行命令2。
命令语法:
命令1; 命令2
【例3.15】 使用排列命令“;”同时执行两个命令。
[root@rhel ~]# ls -l /boot;du -hs /root
2. 使用“&&”
使用“&&”命令时只有当命令1正确运行完毕后,才能执行命令2 。
【例3.16】 使用排列命令“&&”同时执行两个命令。
[root@rhel ~]# ls -a /root/bogusdir&&du -hs
ls: 无法访问/root/bogusdir: 没有那个文件或目录
//将返回“ls: 无法访问/root/bogusdir: 没有那个文件或目录”,而“du –hs”命令根本没有运行,因为没有/root/bogusdir目录
命令替换
在Linux系统中,Shell命令的参数可以由另外一个命令的结果来替代,这种称之为命令替换。
1.使用“$( )”
命令语法:
命令1 $(命令2)
2.使用“`”(位于Tab键上面那个键)
命令语法:
命令1 \`命令2`
[root@rhel ~]# pidof less
7552
//less进程号为7552
Kill -9 7552
使用命令替换功能杀死less进程。
kill -9 $(pidof less)
或者
kill -9 `pidof less`
管道
Linux系统的理念是汇集许多小程序,每个程序都有特殊的专长。复杂的任务不是由大型软件完成,而是运用Shell 的机制,组合许多小程序共同完成。管道就在其中发挥着重要的作用,它可以将某个命令的输出信息当作某个命令的输入,由管道符号“|”来标识。
命令语法:
[命令1]|[ 命令2]|[ 命令3]
【例3.22】 使用简单的管道。
[root@rhel ~]# ls /etc|more
abrt
acpi
adjtime
akonadi
--More--
//命令ls /etc显示/etc目录的内容,命令more是分页显示内容
【例3.23】 使用复杂的管道。
[root@PC-LINUX ~]# rpm -qa|grep a|more
//命令rpm -qa显示已经安装在系统上的RPM包,命令grep a是过滤软件包,命令more是分页显示这些信息
3.6 重定向
希望将命令的输出结果保存到文件中,或者以文件内容作为命令的参数,这时就需要用到重定向。重定向不使用系统的标准输入端口、标准输出端口或是标准错误端口,而是进行重新的指定。
重定向有四种方式:输出重定向、输入重定向、错误重定向以及同时实现输出和错误的重定向。
输出重定向
输出重定向,即将某一命令执行的输出保存到文件中,如果已经存在相同的文件,那么覆盖源文件中的内容。
命令语法:
[命令] > [文件]
【例3.24】使用输出重定向将/boot目录的内容保存到/root/abc文件中。
[root@rhel ~]# ls /boot > /root/abc
【例3.25】使用echo命令和输出重定向创建/root/mm文件,文件内容是hello。
[root@rhel ~]# echo Hello > /root/mm
[root@rhel ~]# cat /root/mm
Hello
//显示文件/root/mm,可以看到文件的内容是Hello
另外一种特殊的输出重定向是输出追加重定向,即将某一命令执行的输出添加到已经存在的文件中。
命令语法:
[命令] >> [文件]
【例3.26】使用输出追加重定向将数据写入文件/root/ao。
[root@rhel ~]# echo Hello > /root/ao
//先创建文件/root/ao,文件内容是Hello
[root@rhel ~]# echo Linux >> /root/ao
//向文件/root/ao中追加数据Linux
[root@rhel ~]# cat /root/ao
Hello
Linux
输入重定向
输入重定向,即将某一文件的内容作为命令的输入。
命令语法:
[命令] < [文件]
【例3.27】使用输入重定向将文件/root/mm
的内容作为输入让cat命令执行。
[root@rhel ~]# cat < /root/mm
Hello
//可以看到文件/root/mm的内容是Hello
另外一种特殊的输入重定向是输入追加重定向,这种输入重定向告诉Shell,当前标准输入来自命令行的一对分隔符之间的内容。
命令语法:
[命令] << [分隔符]
> [文本内容]
> [分隔符]
【例3.28】使用输入追加重定向创建/root/bc文件。
[root@rhel ~]# cat > /root/bc <<EOF
> Hello Linux
> EOF
//一般使用EOF作为分隔符
错误重定向
错误重定向,即将某一命令执行的出错信息输出到指定文件中。
命令语法:
[命令] 2> [文件]
【例3.29】 查看根本不存在的/root/kk
文件,出现报错信息,将其保存到文件/root/b
中。
[root@rhel ~]# cat /root/kk 2> /root/b
[root@rhel ~]# cat /root/b
cat: /root/kk: 没有那个文件或目录
//使用cat命令查看/root/b文件,可以看到其内容就是执行命令cat /root/kk的报错信息
另外一种特殊的错误重定向是错误追加重定向,即将某一命令执行的出错信息添加到已经存在的文件中。
命令语法:
[命令] 2>> [文件]
【例3.30】 使用错误追加重定向,将执行命令的多次出错信息保存到文件/root/b
中。
[root@rhel ~]# cat /root/kk 2> /root/b
[root@rhel ~]# cat /root/kk 2>> /root/b
[root@rhel ~]# cat /root/b
cat: /root/kk: 没有那个文件或目录
cat: /root/kk: 没有那个文件或目录
同时实现输出和错误重定向
同时实现输出和错误的重定向,即可以同时实现输出重定向和错误重定向的功能。
命令语法:
[命令] &> [文件]
【例3.31】 同时使用输出和错误重定向。
[root@rhel ~]# ls /boot &> /root/kk
[root@rhel ~]# cat /root/kk
config-3.3.4-5.fc17.i686.PAE
grub
grub2
initramfs-3.3.4-5.fc17.i686.PAE.img
lost+found
System.map-3.3.4-5.fc17.i686.PAE
tboot.gz
tboot-syms
vmlinuz-3.3.4-5.fc17.i686.PAE
//因为/boot目录下有文件,所以最终使用了输出重定向
【例3.32】 同时使用输出和错误重定向。
[root@rhel ~]# ls /nn &> /root/oo
[root@rhel ~]# cat /root/oo
ls: 无法访问/nn: 没有那个文件或目录
//因为没有/nn目录,所以最终使用了错误重定向
3.7 vi编辑器
1.命令模式
进入vi编辑器之后,系统默认处于命令模式。命令模式控制屏幕光标的移动,字符、
字或行的删除,某区域的移动、复制等。
在命令模式下,按冒号键“:”可以进入末行模式,按字母键“a”就可以进入插入模式。
2.插入模式
只有在插入模式下,才可以进行文本编辑。在插入模式下按“Esc”键可回到命令模式。
3.末行模式
将文件保存或退出vi编辑器,也可以设置编辑环境、替换字符或删除字符。
在末行模式下按“Esc”键可以回到命令模式。
进入插入模式命令
命令 | 功能 |
---|---|
i | 从光标当前所在位置之前开始插入 |
a | 从光标当前所在位置之后开始插入 |
I | 在光标所在行的行首插入 |
A | 在光标所在行的行末尾插入 |
o | 在光标所在的行的下面新开一行插入 |
O | 在光标所在的行的上面新开一行插入 |
s | 删除光标位置的一个字符,然后进入插入模式 |
S | 删除光标所在的行,然后进入插入模式 |
光标移动(1)
命令 | 功能 | 重点 |
---|---|---|
↑键(向上箭头 ) | 使光标向上移动一行 | |
↓键(向下箭头 ) | 使光标向下移动一行 | |
←键(向左箭头) | 使光标向左移动一个字符 | |
→键(向右箭头 ) | 使光标向右移动一个字符 | |
k | 使光标向上移动一行 | |
j | 使光标向下移动一行 | |
h | 使光标向左移动一个字符 | |
l | 使光标向右移动一个字符 | |
nk | 使光标向上移动n行,n代表数字 | * |
光标移动(2)
nj |
nh |
nl |
H |
M |
L |
Ctrl+b |
Ctrl+f |
Ctrl+u |
Ctrl+d |
0(数字0) |
光标移动(3)
命令 | 功能 | 重点 |
---|---|---|
$ | 使光标移动到光标所在行的行尾 | * |
^ | 使光标移动到光标所在行的行首 | * |
w | 使光标跳到下一个字的开头 | |
W | 使光标跳到下一个字的开头,但会忽略一些标点符号 | |
e | 使光标跳到下一个字的字尾 | |
E | 使光标跳到下一个字的字尾,但会忽略一些标点符号 | |
b | 使光标回到上一个字的开头 | |
B | 使光标回到上一个字的开头,但会忽略一些标点符号 | |
( | 使光标移动到上一个句首 | * |
) | 使光标移动到下一个句首 | * |
{ | 使光标移动到上一个段落首 | * |
} | 使光标移动到下一个段落首 | * |
G | 使光标移动到文件尾(最后一行的第一个非空白字符处) | * |
gg | 使光标移动到文件首(第一行第一个非空白字符处) | * |
命令模式命令(1)
删除
命令 | 功能 |
---|---|
x | 删除光标所在位置的字符 |
X | 删除光标所在位置的前面一个字符 |
nx | 删除光标所在位置开始的n个字符,n代表数字 |
nX | 删除光标所在位置前面n个字符,n代表数字 |
dd | 删除光标所在行 |
ndd | 从光标所在行开始删除n行,n代表数字 |
db | 删除光标所在位置的前面一个单词 |
ndb | 删除光标所在位置的前面n个单词,n代表数字 |
dw | 从光标所在位置开始删除一个单词 |
ndw | 从光标所在位置开始删除几个单词,n代表数字 |
d$ | 删除光标到行尾的内容(含光标所在处字符) |
D | 删除光标到行尾的内容(含光标所在处字符) |
dG | 从光标位置所在行一直删除到文件尾 |
命令模式命令(2)
复制和粘贴
命令 | 功能 | 重点 |
---|---|---|
yw | 复制光标所在位置到单词尾的字符 | |
nyw | 复制光标所在位置开始的n个单词,n代表数字 | |
yy | 复制光标所在行 | * |
nyy | 复制从光标所在行开始的n行,n代表数字 | |
y$ | 复制光标所在位置到行尾内容到缓存区 | |
y^ | 复制光标前面所在位置到行首内容到缓存区 | |
YY | 将当前行复制到缓冲区 | * |
nYY | 将当前开始的n行复制到缓冲区,n代表数字 | |
p | 将缓冲区内的内容写到光标所在的位置 |
命令模式命令(3)
类型 | 命令 | 功能 | 重点 |
---|---|---|---|
替换 | r | 替换光标所在处的字符,按[r]键之后输入要替换的字符 | * |
替换 | R | 替换光标所到之处的字符,直到按下[ESC]键为止,按[R]键之后输入要替换的字符 | * |
撤销和重复 | u | 撤销上一个操作。按多次u可以执行多次撤销 | * |
撤销和重复 | U | 取消所有操作 | * |
撤销和重复 | . | 再执行一次前面刚完成的操作 | |
列出行号 | Ctrl+g | 列出光标所在行的行号 | * |
保存和退出 | ZZ | 保存退出 | * |
保存和退出 | ZQ | 不保存退出 | * |
查找字符 | /关键字 | 先按[/]键,再输入想查找的字符,如果第一次查找的关键字不是想要的,可以一直按[n]键会往后查找下一个关键字,而按[N]键会往相反的方向查找 | |
查找字符 | ?关键字 | 先按[?]键,再输入想查找的字符,如果第一次查找的关键字不是想要的,可以一直按[n]键往前查找下一个关键字,而按[N]键会往相反的方向查找 | |
合并 | nJ | 将当前行开始的n行进行合并,n代表数字 | |
合并 | J | 清除光标所在行与下一行之间的换行,行尾没有空格的话会自动添加一个空格 |
末行模式命令(1)
类型 | 命令 | 功能 | 重点 |
---|---|---|---|
运行Shell命令 | :!command | 运行Shell命令,command代表命令 | |
运行Shell命令 | :r!command | 将命令运行的结果信息输入到当前行位置,command代表命令 | |
运行Shell命令 | :n1,n2 w !command | 将n1到n2行的内容作为命令的输入,n1和n2代表数字,command代表命令 | |
查找字符 | :/str/ | 从当前光标开始往右移动到有str的地方,str代表字符 | * |
查找字符 | :?str? | 从当前光标开始往左移动到有str的地方,str代表字符 | * |
替换字符 | 标签:文件,重定向,命令,字符,ch1,ch3,Linux,root,光标 来源: https://blog.csdn.net/m0_37302219/article/details/110717695 |