这一段时间好好练了练vim操作。书中vim与shell script之间有好长一段,不是什么很系统的东西,多以命令为主,所以就记录了一些凌乱的笔记。虽说乱吧,但1条1条还都挺有用的。先发出来再慢慢扩充吧,估计后天就可以开始shell script了
1.shell作为命令解释器,是建立在用户和操作系统之间的接口;
2.shell除了具有解释键盘命令并发送至操作系统的功能外,还是一种高级语言,如同windows里面的批处理程序,可以以简洁的代码实现一些复杂的功能;
3.管道:可以将一个程序的输出传送给另外一个程序作为它的输入。用 " | " 来表示;
4.过滤器:一种特殊的管道,可以将第一个程序的输出做以筛选处理再传送给第二个程序;
5.远程登录:telnet不安全,ssh加密
6.识别当前运行的shell:ps
7.挂起一个正在运行的程序: ctrl + z
8.在输入的时候删除最近一个单词(没空格的字符串): ctrl + w
9.查看文件信息:file
10.显示出系统所使用的所有语言设置:locale
11.script:记录会话,cat读取会话
12.dos2unix unix2dos 不同系统间文件格式的转换
13.相关命令的定位搜索:which(搜索到的第一个位置) whereis(列出所有的路径)
14.apropos:搜索关键字 whatis:完全匹配
15.who w :列出系统上的所有用户
16.在命令后加上 & 将其变为后台运行
17. uname -r 显示版本信息
18. env 显示各种环境变量
19.echo $LANG 显示各种变量
name='abc' 自定义变量
name=${name}yes 增加内容
name= "$name its me" 输出变量原来的值
name= ' $name its me' 原样输出' '中的内容
20.重复执行上条命令,ctrl + p
21.set 查看系统中的所有变量
22.export 自定义变量转化为环境变量
自定义变量与环境变量的差别:环境变量可以被子进程继续引用,而自定义变量不能被子进程继续引用
23.选取命令:
cut:常用参数
-d'分隔字符' -f fields
-c 字符范围
EG: cut ' ; ' -f 5 显示以;为分隔字符的第5个数据(分隔符必须是单个字符)
cut ' ; ' -f 3,5
cut -c 12- 若数据分行显示,输出第12个字符以后的数据
24.标准输入输出的重定向:<输入方 >输出
cat命令 : cat filename表示读取文件,也就是从文件输出数据并输出到屏幕上
cat从键盘读取数据,并且输出到屏幕
cat > filename从键盘输入,并且输出到文件中(会无条件的覆盖已有的文件)
以 ctrl + d 来结束输入
防止覆盖已有的文件:
启用该设置:set -o noclobber
禁用该设置:set +o noclobber
使用追加标准输出:可以向某个文件的末尾添加新的内容
cat filename1 >> filename2
使数据消失,同时不改变文件的权限:
将数据重定向至 /dev/null
eg: cat /dev/null > filename 将该文件内容清空
25.程序的挂起:ctrl + z 阻止程序的运行
移动至前台运行: fg 作业编号
终止后台程序:
kill命令的使用
kill -9 终止所有可以终止的程序
kill %1 终止相应作业编号的程序
kill PID 终止相应PID的作业编号
ps 查看作业的PID
jobs 显示当前会话的作业状态
last: 用于显示登录这的信息
输出 "帐号/终端机/来源/日期时间"
26.grep:
-a : 将binary文件以text文件的方式查找数据;
-c : 计算找到 '查找字符串' 的次数;
-i : 忽略大小写;
-n : 顺便输出行号;
-v : 反向选择;
--color=auto : 将找到的关键字高亮(一般自动开启)
-A : 后面可加数字, 为after的意思,除了列出该行外,后续的n行也会列出
-B :*****************before*****************
wc:统计文件的行数,字数,字符数
27.tee:双向重定向命令
-a 以累加的形式将数据输入一个文件
字符转换命令:
tr: -d 删除其中的某个字符串
EG: tr '[a-z]' '[A-Z]' 将小写替换成大写
tr -d ';' 删除;符号
paste: paste file1 file2
直接将2个文件相同的行粘贴在一起(以TAB分隔)
join: [-ti12] file1 file2
-t 如果相应行之前的文件内容相同以分隔符链接 Eg: join -t ':' file1 file2
-i 忽略大小写
使用join前最好对文件进行sort
split:切割文件命令
-b 切割成的文件大小,可加单位b k m
-l 以行数来进行切割
EG: split -b 300k filename newfile前导名