第 9 章、vim 程序编辑器
-
Linux 底下的配置文件多为文本文件,故使用 vim 即可进行设定编辑。
-
vim 可视为程序编辑器,可用以编辑 shell script, 配置文件等,避免打错字。
-
vi 为所有 unix like 的操作系统都会存在的编辑器,且执行速度快速。
-
vi 有三种模式,一般指令模式可变换到编辑与指令列模式,但编辑模式与指令列模式不能互换。
-
常用的按键有 i, [Esc],:wq 等。
-
vi 的画面大略可分为两部份,(1)上半部的本文与(2)最后一行的状态+指令列模式。
-
数字是有意义的,用来说明重复进行几次动作的意思,如 5yy 为复制 5 列之意。
-
光标的移动中,大写的G经常使用,尤其是 1G, G 移动到文章的头/尾功能!
-
vi 的取代功能也很棒! :n1,n2s/old/new/g 要特别注意学习起来。
-
小数点「.」为重复进行前一次动作,也是经常使用的按键功能!
-
进入编辑模式几乎只要记住: i,o,R 三个按钮即可!尤其是新增一列的 o 与取代的 R。
-
vim 会主动的建立 swap 暂存档,所以不要随意断线!
-
如果在文章内有对齐的区块,可以使用 [ctr]-v 进行复制/贴上/删除的行为。
-
使用:sp 功能可以分区窗口。
-
若使用vim来撰写网页,若需要CSS元素数据,可透过 [crt]+x, [crt]+o 这两个连续组合按键来取得关
键词。 -
vim 的环境设定可以写入在 ~/.vimrc 文件中。
-
可以使用 iconv 进行文件语系编码的转换。
-
使用 dos2unix 及unix2dos 可以变更文件每一列的行尾断行字符。
第 10 章、认识与学习 BASH
-
由于核心在内存中是受保护的区块,因此我们必须要透过「Shell 」将我们输入的指令与 Kemel 沟通,好
让 Kernel 可以控制硬件来正确无误的工作。 -
学习 shell 的原因主要有:文字接口的 shell 在各大 distribution 都一样;远程管理时文字接口速度较快;
shell 是管理 Linux 系统非常重要的一环, 因为 Linux 内很多控制都是以 shell 撰写的。 -
系统合法的shell 均写在/etc/shells 文件中。
-
用户默认登入取得的shell 记录于/etc/passwd 的最后-一个字段。
-
bash 的功能主要有:命令编修能力;命令与文件补全功能;命令别名设定功能;工作控制、前景背景控制;程序化脚本;通配符。
-
type 可以用来找到执行指令为何种类型,亦可用于与 which 相同的功能。
-
变量就是以一组文字或符号等,来取代一些设定或者是一串保留的数据。
-
变量主要有环境变量与自定义变量,或称为全局变量与局部变量。
-
使用 env 与 export 可观察环境变量,其中 export 可以将自定义变量转成环境变量。
-
可以观察目前 bash 环境下的所有变量。
-
$? 亦为变量,是前一个指令执行完毕后的回传值。在 Linux 回传值为 0 代表执行成功。
-
locale 可用于观察语系资料。
-
可用 read 让用户由键盘输入变量的值。
-
ulimit 可用以限制用户使用系统的资源情况。
-
bash 的配置文件主要分为 login shell 与 non-login shell. login shell 主要读取 /etc/profile 与 ~/.bash profile,non-login shell 则仅读取 ~/.bashrc。
-
在使用 vim 时,若不小心按了 [rtl]+s 则画面会被冻结。你可以使用 [tul]+q 来解除冻结。
-
通配符主要有: *,2,[] 等等。
-
数据流重导向透过 >, 2>,< 之类的符号将输出的信息转到其他文件或装置去。
-
连续命令的下达可透过 ;&&|| 等符号来处理。
-
管线命令的重点是:「 管线命令仅会处理 standard output,对于 standard ertor output 会予以忽略」[管线
命令必须要能够接受来自前一个指令的数据成为 standard input 继续处理才行。」 -
本章介绍的管线命令主要有:cut, grep, sort, wc, uniq, tee, tr, col, join, paste, expand, split, xargs 等。
第 11 章、正则表达式与文件格式化处理
-
正规表示法就是处理字符串的方法,他是以行为单位来进行字符串的处理行为。
-
正规表示法透过–些特殊符号的辅助,可以让使用者轻易的达到「搜寻/删除/取代」某特定字符串的处理程序。
-
只要工具程序支持正规表示法,那么该工具程序就可以用来作为正规表示法的字符串处理之用。
-
正规表示法与通配符是完全不一样的东西!通配符 (wildcard) 代表的是 bash 操作接口的一个功能,但 正
规表示法则是一种字符串处理的表示方式! -
使用 grep 或其他工具进行正规表示法的字符串比对时,因为编码的问题会有不同的状态,因此,你最好
将 LANG 等变量设定为 C 或者是 en 等英文语系! -
grep 与 egrep 在正规表示法里面是很常见的两支程序,其中,egrep 支持更严谨的正规表示法的语法。
-
由于编码系统的不同,不同的语系 (LANG) 会造成正规表示法撷取资料的差异。因此可利用特殊符号如
[:upper:] 来替代编码范围较佳。 -
由于严谨度的不同,正规表示法之上还有更严谨的延伸正规表示法。
-
基础正规表示法的特殊字符有: *… 0], [-],[ ^ ],^,$等!
-
常见的支持正规表示法的工具软件有: grep , sed, vim 等等。
-
printf 可以透过一些特殊符号来将数据进行格式化输出。
-
awk 可以使用[字段」为依据,进行数据的重新整理与输出。
-
文件的比对中,可利用 diff 及 cmp 进行比对,其中 diff 主要用在纯文本文件方面的新旧版本比对。
-
patch 指令可以将旧版数据更新到新版(主要亦由 diff 建立 patch 的补丁来源文件)。
第 12 章、学习 shell 脚本
-
shell script 是利用 shell 的功能所写的一一个「程序(program)」, 这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面,搭配正规表示法、管线命令与数据流重导向等功能,以达到我们所想要的处理目的。
-
shell script 用在系统管理上面是很好的一项工具,但是用在处理大量数值运算上,就不够好 了,因为 Shellscripts 的速度较慢,且使用的 CPU 资源较多,造成主机资源的分配不良。
-
在 Shellscript 的文件中,指令的执行是从上而下、从左而右的分析与执行。
-
shell script 的执行,至少需要有r的权限,若需要直接指令下达,则需要拥有 r 与 x 的权限。
-
良好的程序撰写习惯中,第一行要宣告 shell (#!/bin/bash),第二行以后则宣告程序用途、版本、作者等
-
对谈式脚本可用 read 指令达成。
-
要建立每次执行脚本都有不同结果的数据,可使用 date 指令利用日期达成。
-
script 的执行若以 source 来执行时,代表在父程序的 bash 内执行之意!
-
若需要进行判断式,可使用 test 或中括号 ([]) 来处理。
-
在 script 内,$0,$1, S2… $@ 是有特殊意义的!
-
条件判断式可使用 if…then 来判断,若是固定变量内容的情况下,可使用 case $var in … esac 来处理。
-
循环主要分为不定循环 (while, until) 以及固定循环 (for) ,配合 do, done 来达成所需任务!
-
我们可使用 sh -x script.sh 来进行程序的 debug。
来源:CSDN
作者:我是一片小树叶
链接:https://blog.csdn.net/qq_30534935/article/details/103477824