Linux学习笔记(一):命令类型与常用命令

内部命令与外部命令

内部命令是 shell 程序的一部分,其中包含的是一些比较简单的 linux 系统命令,这些命令由shell程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。内部命令是写在 bash 源码里面的,其执行速度比外部命令快,因为解析内部命令 shell不需要创建子进程。比如:exit, history, cd, echo等。 外部命令是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。通常外部命令的实体并不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。shell 程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。外部命令是在 bash 之外额外安装的,通常放在/bin, /usr/bin, /sbin,/usr/sbin 等位置。 使用type命令可以区分内部命令

继续阅读Linux学习笔记(一):命令类型与常用命令

Linux学习笔记(十一)——sed命令

sed 是 Linux 下的一种流编辑器(Stream Editor),用以处理编辑输入流(文件、管道等)。在使用时,sed 将输入流逐行读进一个叫做模式空间的缓存区,进行编辑处理后再输出。
sed 的命令语法如下
sed [options] ‘AddressCommand’ FILE

参数
-n 静默模式,不显示模式空间中的内容
-i 直接修改源文件
-e SCRIPT 执行脚本,可以同时执行多个( -e SCRIPT -e SCRIPT …)
-f /PATH/TO/SCRIPT/ 从文件读取脚本
-r 使用扩展正则表达式 在引号间,可以使用以下定址来决定处理哪些行

  • StartLine,Endline    从startLine到Endline之间的行数,$代表最后一行
  • /RegExp/  成功匹配RegExp的行
  • /Pattern1/,/Pattern2/ 第一次匹配Pattern1开始到第一次匹配Pattern2间的行
  • LineNumber 指定行
  • StartLine,+N 从StartLine开始向后N行

在定址之后,便可以用命令来决定如何处理刚刚选定的行
d: 删除符合条件的行
p: 显示符合条件的行
a \string: 在符合条件的行后追加内容为 string 的新行
i \string: ~前
r FILE 将指定文件的内容添加到符合条件的行后
w FILE 将地址指定的行另存到指定文件中
s/pattern/replacement 查找并替换,默认只替换每一行第一次被匹配到的字符串修饰符g: 全局替换i: 忽略大小写