Linux学习日志(五)
来源:互联网 发布:演技好的女演员知乎 编辑:程序博客网 时间:2024/05/04 12:35
bash编程之:字符测试,一般加引号
双目:
> : 大于 < :小于 ==:等于,等值比较 =~:左侧是字符串,右侧是一个模式,判断左侧的字符串能否被右侧的模式所匹配:通常只在[[]]中使用 模式中可以使用行首、行尾锚定符,但是模式不要加引号 !=, <>: 不等于
单目:
-n 字符串: 字符串是否不空,不空为真,空则为假 -z 字符串:字符串是否为空,空则为真,不空则假:
vi 编辑器
Linux:使用文本文件来保持配置文件
vi的模式:
编辑模式:键盘操作通常被解析为编辑命令 输入模式:输入模式 末行模式:vim的内置的命令行接口,执行vim内置命令
vi命令的使用格式
vim [options] /path/to/file
编辑模式–>输入模式
i:当前光标处输入内容I:在当前光标所在行的行首a:在当前光标所在处的后面A:在当前光标所在行的行尾输入o:在光标所在行的下方新增一行空白行O:在光标所在行的上方新增一行空白行
输入模式–>编辑模式
ESC
编辑模式–>末行模式
:
末行模式–>编辑模式
ESC,ESC
退出:
:q!强制退出,不保存并退出 :wq 保存修改并退出 :x,保存并退出 编辑模式:ZZ,保存退出
打开:
多文件跳转 :next 下一个 :prev 上一个 :first 第一个 :last 最后一个 :qall 退出所有的文件 :wqall:修改并退出多个文件
分隔窗口打开多个文件
-o:水平分隔 ctrl+w,左右箭头 -O:垂直分隔 ctrl+W,上下箭头 +#:打开文件后在第#号行首 +:打开文件后在最后一行
光标移动:
单字符移动:
h:左 l:右 j:下 k:上 可以和数字组合
单词间移动:
w:调至下一个单词的词首 b:当前或前一个的词首 e:当前或下一个词的词尾
行内移动:
0:绝对行首 ^:第一个非空白字符 $:绝对行尾
句子间移动:
):上一句 ( :下一句
段落间移动:
}:上一段 {:下一段
行间移动:
# G:第几行 G:最后一行
编辑操作:
删除字符
x:删除光标所在处的字符 #x:删除光标所在处向后的#个字符
替换
r:替换光标所在处的字符
删除行
d:删除命令 结果光标跳转命令使用 %:全文 可以在末行模式中 :% d dd:删除一行 #dd:删除所在行后的#行
末行模式:范围定界
start,end:可以使用绝对定界,也可以使用相对定界 10,+9 从第10行向后加9行 .:表示当前行 $:最后一行 $-2:倒数第3行 /pat1/,/pat2/:匹配Pat1到pat2中间的所有行 c:替换 跟d一样操作 y:yank,复制 跟d一样操作 p:paste 粘贴 复制或删除的是整行 p:当前行的下一行 P(大写):当前行的上一行 复制或删除的为非整行 p:粘贴在光标所在字符的后面 P: 粘贴在光标所在字符的前面 撤销编辑 u:undo #u:最近50次操作 撤销此前的撤销操作 ctrl+r: 重复执行此前的命令: .
翻屏:
ctrl+f:向文件尾部翻一屏 ctrl+b:向文件首部翻一屏 ctrl+d:向文件尾部翻半屏 ctrl+u:向文件首部翻半屏 Enter:下一行 k :上一行
查找:
/keyword ?keyword n: N: 支持正则表达式 :set nohlsearch 关闭高亮显示,对当前shell有效
vim的可视化模式
编辑模式:
v:按照光标走过的区域选择 V:选择矩形块
打开多个文件,分窗口:
vim -ovim -OCtrl+w, 上下箭头
分割当前窗口:
Ctrl+w, sCtrl+w, v
窗口属性的定义:
:set nu 显示行号:set nonu :set ai 自动缩进:set noai:set ic 忽律大小写 :set noic显示对应的括号:set sm (show match):set nosm语法高亮::syntax on:syntax off搜索高亮::set hlsearch:set nohlsearch
vim的配置文件:
全局:/etc/vimrc个人:~/.vimrc
查找替换:
:地址定界s/查找模式/替换为的内容/gi g:全局替换 i:不区分大小写 :地址定界s@查找模式@替换为的内容@gi &: 用于在替换为的内容部分中引用前面匹配到的所有内容
练习:
1.复制/etc/grup.conf至/tmp目录,删除/tmp/grub.conf文件中行首的空白符
:%s@^[[:space:]]@{1,\}@g
2.复制/etc/rc.d/rc.sysinit至/tmp目录。将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行,行首加#号
:%s@^[[:space:]]\{1,\}.*@#&@g
3.删除/tmp/rc.sysinit文件中以#开头且后面跟了至少一个空白字符的行的行首的#和空白符
%s@^#[[:space:]]\{1,\}@@g
4.为/tmp/grub。conf文件中的前三行的行首加#号
1,3s@^@#@g
5.将/etc/yum.repos.d/CentOS-Media.repo中enable=0一行最后的0改为1;
%@\(enabled=\)[0-9]@\11@g
bash知识点:文件测试
[]
[[]]
test
单目测试:
-e file :测试文件是否存在 -a file :测试文件是否存在 -f file: 测试是否为普通文件 -d 目录: 测试是否为目录文件 -b somefile : 测试文件是否存在并且是否为一个块设备文件 -c somefile : 测试文件是否存在并且是否为一个字符设备文件 -h|-L somefile : 测试文件是否存在并且是否为符号链接文件 -p somefile : 测试文件是否存在并且是否为管道文件: -S somefile : 测试文件是否存在并且是否为套接字文件: -r somefile: 测试其有效用户是否对此文件有读取权限 -w somefile: 测试其有效用户是否对此文件有写权限 -x somefile: 测试其有效用户是否对此文件有执行权限 -s somefile: 测试文件是否存在并且不空
双目测试:
file1 -nt file2 :测试file1是否比file2更 新一些 file1 -ot file2 :测试file1是否比file2更 老一些
在脚本中使用source命令倒入别的文件
[ -r 配置文件 ] && cource 配置文件
0 0
- Linux学习日志(五)
- JBPM学习日志(五)
- Java学习日志(五)
- Linux学习(五)
- Hadoop学习笔记(五)日志系统
- Python学习日志(五)之数据结构
- java学习日志五
- Linux学习笔记(五)分区上创建文件系统及日志
- linux 学习日志(1)
- Linux学习日志(一)
- Linux学习日志(一)
- Linux学习日志(三)
- Linux学习日志(四)
- Linux学习日志(六)
- Linux学习日志(七)
- Linux学习日志(八)
- Linux学习日志(十)
- Linux学习日志(九)
- JAVA读取文件指定内容进行修改
- 简析:Android:Activity中onCreate方法的参数及其用途
- solr 修改打分策略
- URAL 1627 (生成树计数)
- Java中只有按值传递,没有按引用传递!
- Linux学习日志(五)
- Android 通过网页打开自己的APP(scheme)
- Hibernate Lazy机制(说得比较全)
- Android 从网页中跳转到APP
- 在C#中使用NPOI2.0操作Excel2003和Excel2007
- 关于搭建web服务器环境
- 数据结构——单链表
- AIX_环境下SHELL脚本设置成crontab调度和手动运行的某些不同
- jadx 反编译apk