Linux学习日志(五)

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 -o
vim -O
Ctrl+w, 上下箭头

分割当前窗口:

Ctrl+w, s
Ctrl+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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值