Linux课程知识点总结(二)
Linux课程知识点总结(二)
七、Shell实用功能
7.1 命令行自动补全
在Linux系统中,有太多的命令和文件名称需要记忆,使用命令行补全功能[Tab]可以快速的写出文件名和命令名
7.2 命令历史记录
在操作Linux系统的时候,每一个操作的命令都会记录到命令历史中,在以后可以通过命令历史查看和使用以前操作的命令。
bash启动的时候会读取/.bash_history文件,并将其载入到内存中,$HISTFILE变量就用于设置/.bash_history文件,bash退出时也会把内存中的历史记录回写到~/.bash_history文件中。
使用history命令可以查看命令历史记录,每一条命令前面都会有一个序列号标示。
命令语法:
history [选项]
7.3 命令排列
如果希望一次执行多个命令,Shell允许在不同的命令之间,放上特殊的排列字符。
(1)使用“;”
使用“;”命令时先执行命令1,不管命令1是否出错,接下来就执行命令2。
命令语法:
命令1; 命令2;命令3;命令4
(2)使用“&&”
使用“&&”命令时只有当命令1正确运行完毕后,才能执行命令2 。
命令语法:
命令1 && 命令2 && 命令3 && 命令4
(3)使用“||”
命令1 || 命令2 ||命令3 || 命令4
7.4 命令替换
在Linux系统中,Shell命令的参数可以由另外一个命令的结果来替代,这种称之为命令替换。
1.使用“$( )”
命令语法:
命令1 $(命令2)
2.使用 ““
命令语法:
命令1`命令2
7.5 命令别名
在需要执行某一个非常长的命令时,所有的命令以及命令的选项、参数都要一一输入,很枯燥也容易出现错误。可以为常用命令定义快捷方式,这些快捷方式可以用比较简单的命令别名来定义。
1、创建别名
使用alias命令可以为命令定义别名。如果命令中有空格的话,就需要使用双引号(比如在命令与选项之间就有空格)。
命令语法:
alias [别名]=[需要定义别名的命令]
2.取消别名
当用户需要取消别名的定义时,可以使用unalias命令。
命令语法:
unalias [别名]
7.6 文件名匹配
文件名匹配使得用户不必一一写出文件名称就可以指定多个文件。这将用到一些特殊的字符,称之为通配符。
1.通配符“*”
“*”可匹配一个或多个字符。
2.通配符“?”
在匹配时,一个问号只能代表一个字符。
7.7 管道
Linux系统的理念是汇集许多小程序,每个程序都有特殊的专长。复杂的任务不是由大型软件完成,而是运用Shell 的机制,组合许多小程序共同完成。管道就在其中发挥着重要的作用,它可以将某个命令的输出信息当作某个命令的输入,由管道符号“|”来标识。
命令语法:[命令1] | [ 命令2] | [ 命令3]
7.8 重定向
希望将命令的输出结果保存到文件中,或者以文件内容作为命令的参数,这时就需要用到重定向。重定向不使用系统的标准输入端口、标准输出端口或是标准错误端口,而是进行重新的指定。
重定向有四种方式:输出重定向、输入重定向、错误重定向以及同时实现输出和错误的重定向。
错误重定向,即将某一命令执行的出错信息输出到指定文件中。
命令语法:
[命令] 2> [文件]
另外一种特殊的错误重定向是错误追加重定向,即将某一命令执行的出错信息添加到已经存在的文件中。
命令语法:
[命令] 2>> [文件]
同时实现输出和错误的重定向,即可以同时实现输出重定向和错误重定向的功能。
命令语法:
[命令] &> [文件]
八、Vi编辑器
进入插入模式:
命令 | 功能 |
---|---|
i | 从光标当前所在位置之前开始插入 |
a | 从光标当前所在位置之后开始插入 |
I | 在光标所在行的行首插入 |
A | 在光标所在行的行末尾插入 |
o | 在光标所在的行的下面新开一行插入 |
O | 在光标所在的行的上面新开一行插入 |
s | 删除光标位置的一个字符,然后进入插入模式 |
S | 删除光标所在的行,然后进入插入模式 |
光标移动:
命令 | 功能 |
---|---|
↑键(向上箭头 ) | 使光标向上移动一行 |
↓键(向下箭头 ) | 使光标向下移动一行 |
←键(向左箭头) | 使光标向左移动一个字符 |
→键(向右箭头 ) | 使光标向右移动一个字符 |
k | 使光标向上移动一行 |
j | 使光标向下移动一行 |
h | 使光标向左移动一个字符 |
l | 使光标向右移动一个字符 |
nk | 使光标向上移动n行,n代表数字 |
nj | 使光标向下移动n行,n代表数字 |
---|---|
nh | 使光标向左移动n个字符,n代表数字 |
nl | 使光标向右移动n个字符,n代表数字 |
H | 使光标移动到屏幕的顶部 |
M | 使光标移动到屏幕的中间 |
L | 使光标移动到屏幕的底部 |
Ctrl+b | 使光标往上移动一页屏幕 |
Ctrl+f | 使光标往下移动一页屏幕 |
Ctrl+u | 使光标往上移动半页屏幕 |
Ctrl+d | 使光标往下移动半页屏幕 |
0(数字0) | 使光标移到所在行的行首 |
$ | 使光标移动到光标所在行的行尾 |
---|---|
^ | 使光标移动到光标所在行的行首 |
w | 使光标跳到下一个字的开头 |
W | 使光标跳到下一个字的开头,但会忽略一些标点符号 |
e | 使光标跳到下一个字的字尾 |
E | 使光标跳到下一个字的字尾,但会忽略一些标点符号 |
b | 使光标回到上一个字的开头 |
B | 使光标回到上一个字的开头,但会忽略一些标点符号 |
( | 使光标移动到上一个句首 |
) | 使光标移动到下一个句首 |
{ | 使光标移动到上一个段落首 |
} | 使光标移动到下一个段落首 |
G | 使光标移动到文件尾(最后一行的第一个非空白字符处) |
gg | 使光标移动到文件首(第一行第一个非空白字符处) |
space键(空格键) | 使光标向右移动一个字符 |
---|---|
Backspace键 | 使光标向左移动一个字符 |
Enter键 | 使光标向下移动一行 |
Ctrl+p | 使光标向上移动一行 |
Ctrl+n | 使光标向下移动一行 |
n| | 使光标移动到第n个字符处,n代表数字 |
nG | 使光标移动到第n行首,n代表数字 |
n+ | 使光标向下移动n行,n代表数字 |
n- | 使光标向上移动n行,n代表数字 |
n$ | 使光标移动到以当前行算起的第n行尾,n代表数字 |
命令模式命令: