Linux学习笔记(三)——Shell脚本基础总结
1. vi编辑器快捷键备忘
[Ctrl]+[ud] 向上/下移动半页
n<space> 右移n个字符
H/M/L 移动到屏幕最上方/中央/最下方一行
u [Ctrl]+r 复原和重做
.(点) 重复前一个动作
:e! 将文件还原到最原始状态
[Ctrl]+v 块选择
2. Bash Shell基础
env 环境变量
set 环境变量和其他变量
export 使变量变成环境变量,在子程序中生效
read -p 后接提示字符, -t 等待秒数
declare 声明变量的属性
-a 定义为数组
-i 定义为整数数字
-x 同export,变成环境变量
-r 只读属性
history 查看历史命令
/etc/issue 终端接口字符串(使用man issue 或 man mingetty 查看特殊代码的意思
/etc/motd 用户登录后获取消息
系统设置值:
/etc/sysconfig/i18n 语系数据
/etc/profile PATH、USER、MAIL、HOSTNAME、HISTSIZE、umask等重要变量,规定读取其他文件,如/etc/profile.d和/etc/inputrc等
登陆Shell:
用户登录Linux系统时所取得的那个shell,对应于/etc/passwd里面的最后一项数据。比如,我想让用户atom登陆后直接打开vi,则在/etc/passwd里atom对应的那一行最后的一项内容改为/usr/bin/vi就行了。
3. Linux常用文本处理工具总结
a) cut –d ‘分隔符’ –f fields,取出以“分隔符”分割的第fields段
cut –c 字段范围 以字符为单位取出固定的字符范围
b) cat /etc/passwd | sort –t ‘:’ –k 3 –n
-t,分隔符,默认是tab键;-k,第几个字段;-n,使用“纯数字”排序
c) 其他,wc [-lwm]; uniq [-ic]; tee [-a],双向重定向
d) 字符串转换命令:tr, col, join(合并两个文件中相同的数据),paste(直接将两行贴在一起), expand(将[tab]转成空格键)
e) split 拆分文件
f) -(减号) 某些命令需要用到文件名称来处理是,stdin与stdout可以利用减号“-”来替代。
4. awk学习总结
awk是“以行为单位处理”,而“以字段为最小的处理单位”。
变量名称 代表的含义
NF 每一行($0)拥有的字段总数
NR 当前处理的是“第几行”数据
FS 分隔符,默认为空格键
可以使用BEGIN关键词预先设置awk的变量,如:
cat /etc/passwd | awk 'BEGIN{FS=":"} $3 < 10 {print $1 "\t" $3}'
说明:在{}的所有操作,如需多个命令,可用分号(;)分割,或者直接以[enter]按键来隔开每个命令。
5. Shell脚本的追踪与调试
sh [-nvx] scripts.sh
-n 不执行脚本,仅查询语法问题
-v 在执行脚本前,先将脚本的内容输出到屏幕上
-x 将使用的脚本内容显示到屏幕上,便于调试
相关阅读:
Linux学习笔记(二)——文件、目录与磁盘格式 http://www.linuxidc.com/Linux/2012-03/56918.htm
Linux学习笔记(三)——Shell脚本基础总结 http://www.linuxidc.com/Linux/2012-03/56919.htm
Linux学习笔记(四)——Linux用户管理 http://www.linuxidc.com/Linux/2012-03/56920.htm