目录
一、Shell概述
1.什么是shell?
- Shell是操作系统中用户与内核(kernel)进行交互的一种接口,它接收用户输入的命令并把它送入操作系统去执行,然后将执行结果返回给用户。
- Shell也被称为命令行界面或终端。
- Shell 不仅仅是一个命令行解释器,它也是一种强大的编程语言,允许用户编写脚本来自动化执行一系列命令。
2.shell功能
命令解释:Shell 接收用户输入的命令,并解释这些命令,然后将其传递给操作系统内核去执行。Shell是操作系统中用户与内核(kernel)进行交互的一种接口,它接收用户输入的命令并把它送入操作系统去执行,然后将执行结果返回给用户。
程序执行:Shell 可以直接执行程序,也可以作为程序的解释器来执行脚本。脚本是一系列命令的集合,Shell 可以按照脚本中的顺序执行这些命令。
输入输出重定向:Shell 允许用户将命令的输入重定向到文件,或将命令的输出保存到文件中,从而实现数据的自动化处理。
管道(Pipeline):Shell 支持管道功能,可以将一个命令的输出作为另一个命令的输入,从而实现命令的串联执行。
3.如何完成命令解释?
例如,ls命令会被Shell解析并解释为列出当前目录下的文件和文件夹的命令,然后Shell会调用相应的系统调用来执行这个操作。
Shell不仅可以执行系统内置的命令,还可以执行外部程序或脚本。用户可以直接在Shell中输入程序的路径来执行它,或者通过Shell脚本自动执行一系列程序。例如,./test.sh 命令会在Shell中执行名为test.sh的脚本。
#!/bin/bash
echo “hello npp”
Shell允许用户将命令的输入重定向到文件,或将命令的输出保存到文件中。这通过>(输出重定向)和<(输入重定向)等符号实现。例如,ls > files.txt命令会将ls命令的输出(即当前目录下的文件和文件夹列表)保存到files.txt文件中,而不是显示在屏幕上。
Shell允许用户将命令的输入重定向到文件,或将命令的输出保存到文件中。这通过>(输出重定向)和<(输入重定向)等符号实现。例如,ls > files.txt命令会将ls命令的输出(即当前目录下的文件和文件夹列表)保存到files.txt文件中,而不是显示在屏幕上。
<
while IFS= read -r line; do echo "$line" ; done < ch.txt
这个脚本使用while循环和输入重定向来逐行读取ch.txt文件的内容。对于文件中的每一行,它都会将该行赋值给变量line,并打印出来。这里使用了IFS=(内部字段分隔符设置为空)和-r(避免反斜杠转义)选项来确保read命令按预期工作。
输出重定向是将一个程序的标准输出写到一个文件中,而管道是直接将一个程序的标准输出与另一个程序的标准输入相连接,不需要经过任何中间文件,通过|符号实现。例如,cat ch.txt | grep "a"命令会先使用cat命令读取ch.txt文件的内容,然后通过管道将这些内容传递给grep命令,grep命令再从中搜索包含"a"的行。
二、vim编辑器
vi是visual interface的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是编辑程序所没有的。vi不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等属性进行编排,它只是一个文本编辑程序。vi是全屏幕文本编辑器,它没有菜单,只有命令。
vim是vi的进阶版本,vim可以用颜色或底线等方式来显示一些特殊的信息。例如,当使用vim去编辑一个C语言程序的文件,或者是shell script程序时,vim会依据文件的扩展名或者是文件内的开头信息来判断该文件的内容,从而自动调用该程序的语法判断式,再以颜色来显示程序代码与一般信息。也就是说, vim是一个“程序编辑器”。甚至一些 Linux基础配置文件内的语法都能够用vim来检查。
在系统提示符后输入vim和想要编辑(或建立)的文件名,便可进入vim,如:
$vim myfile $vim
如果只输入vim,而不带文件名,也可以进入vim。
在命令模式下输入:q,:q!,:wq或:x(注意:号),就会退出vim。其中:wq和:x是存盘退出,而:q是直接退出。如果文件已有新的变化,vim会提示保存文件,而:q命令也会失效,这时可以用:w命令保存文件后再用:q退出,或用:wq或:x命令退出,如果不想保存改变后的文件,需要用:q!命令,这个命令将不保存文件而直接退出vim,例如:
vim有三种基本工作模式:编辑模式、插入模式和命令模式。考虑到各种用户的需要,采用状态切换的方法实现工作模式的转换,切换只是习惯性的问题,一旦能熟练使用vim,就会觉得它很好用。
进入vim之后,首先进入的就是编辑模式,进入编辑模式后,vim等待编辑命令输入而不是文本输入,也就是说,这时输入的字母都将作为编辑命令来解释。
进入编辑模式后,光标停在屏幕第一行首位,用_表示,其余各行的行首均有一个“~”符号,表示该行为空行。
在编辑模式下输入插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入插入模式。
在编辑模式下,用户按“:”键即可进入命令模式,此时vim会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为命令模式的提示符,等待用户输入命令。
当进行查找和替换时,我们要按Esc键,进入命令模式;输入/或?就可以进行查找了。例如在一个文件中查找swap单词,首先按Esc键,进入命令模式,然后输入:
/swap 或 ?swap
若把光标所在行中的所有单词the替换成THE,则需:
:s /the/THE/g
这些编辑指令基本上是由指令与范围构成。而且需要注意的是,这里采用PC的键盘来说明vim的操作,但在具体的环境中还要参考相应的资料。