Linux Command Line 学习笔记4

Linux Command Line 学习笔记4

说明;写Linux Command Line 学习笔记系列文章本意只是记录自己学习《Linux Command Line 》 这本书的过程中看到的一些自己没有留意到的地方,因此绝大多数内容只是记录了相关知识点而没有实际扩展内容,纯粹是为了自己后期回顾时有迹可循。另外,因为直接看的原版书,所以有些地方中英混杂。更详细地学习建议去阅读原书即可。

The Environment

  • shell 会话中维护着大量的信息称为环境

  • 查看环境变量
    printenv 或者 printenv USER
    set |less 按照字母顺序显示
    echo $HOME

  • 别名不能用上述方法查看
    alias

  • 建立shell环境

    • shell会话类型
      登陆
      非登陆
    • 登录shell后会读取的启动文件
      /etc/profile 应用于所有用户的全局配置脚本。

      ~/.bash profile用户私人的启动文件。可以用来扩展或重写全局配置脚本中的设置。

      ~/.bash login 如果文件~/.bash profile 没有找到,bash 会尝试读取这个脚本。

      ~/.profile 如果文件~/.bash profile 或文件~/.bash login 都没有找到,bash 会试图读取这个文件。

    • 非登陆shell读取文件
      /etc/bash.bashrc 应用于所有用户的全局配置文件。
      ~/.bashrc 用户私有的启动文件。可以用来扩展或重写全局配置脚本中的设置。对普通用户来说十分重要。

  • 修改shell环境

    通常,添加目录到PATH 变量或定义额外环境变量放置到.bash profile 文件中

    对于其它的更改,要放到.bashrc 文件

  • 文本编辑器

    不管什么时候你修改配置文件时,给你所做的更改加上注释都是一个好主意

    Shell 脚本和bash 启动文件都使用#符号来开始注释。

  • 激活修改

    source .bashrc 无需重新登陆窗口

A Gentle Introduction To vi

  • 这里所指的vi其实全部是vim
  • 最重要的一点是知道如何退出vi
  • vi是一个模式编辑器,在命令模式中几乎每个按键都是命令
  • 进入插入模式后可以写入文本
  • 保存工作 :wq
  • Moving The Cursor Around

    l 向右移动一个字符
    h 向左移动一个字符
    j 向下移动一行
    k 向上移动一行
    0 (零) 移动到当前行行首
    ˆ 移动到当前行第一个非空字符
    $ 移动到当前行末尾
    w 移动到下一个单词或标点符号的开头
    W 移动到下一个单词开头,忽略标点
    b 移动到上一个单词或标点符号开头
    B 移动到上一个单词的开头,忽略标点符号
    Ctrl-f or Page Down 向下翻页
    Ctrl-b or Page Up 向上翻页
    numberG 移动到第number行。例如,1G 移动到文件的第一行。
    G 移动到文件末尾。
  • Basic Editing

    • i命令进入编辑模式,但是光标无法进入行尾
    • 追加文本

      a命令,当光标在行尾时越过行尾进入插入模式
      A命令,移动到当前行末尾进入插入模式追加文本

    • 打开一行
      在两行之间插入一个空白行并进入插入模式
      o 当前行下方打开一行
      O 当前行上方打开一行

    • 删除文本

      x 当前字符
      3x 当前字符及其后的两个字符
      dd 当前行
      5dd 当前行及随后的四行文本
      dW 从光标位置开始到下一个单词开头
      d$ 从光标位置开始到当前行尾
      d0 从光标位置开始到当前行首
      dˆ 从光标位置开始到文本行第一个非空字符
      dG 从当前行到文件末尾
      d20G 从当前行到文件第20行
    • 剪切复制和粘贴

      剪切:d命令,删除的部分被复制到一个粘贴缓冲区
      粘贴:p命令,把剪切板中文本粘贴到光标位置之后,大P 命令把文本粘贴到光标之前

      复制y

      yy 当前行
      5yy 当前行及随后的四行文本
      yW 从当前光标位置到下一个单词的开头
      y$ 从当前光标位置到当前行的末尾
      y0 从当前光标位置到行首
      yˆ 从当前光标位置到文本行的第一个非空字符
      yG 从当前行到文件末尾
      y20G 从当前行到文件的第20行
    • 连接行
      J命令(大写),两行变为一行

  • 查找替换
    查找一行:f 命令;fa 查找a字符,;重复查找
    查找文件:/命令;/a ,n 进行重复查找

  • 全局查找替换

    :%s/Line/line/g1,4s/a/A/

    : 冒号运行ex 命令。

    % 指定要操作的行数。%表示从第一行到最后一行。

    操作范围也可以用1,5 来代替,或者用1,$ 来代替,从第一行到文件的最后一行。如果省略了文本行的范围,那么操作只对当前行生效。

    s 指定操作。在这种情况下是,替换(查找与替代)。

    /Line/line 查找类型与替代文本。

    g 全局,对文本行中所有匹配的字符串执行查找和替换操作。省略g,则只替换每个文本行中第一个匹配的字符串。

    • 确认模式%s/Line/line/gc (末尾加c)
      replace with Line (y/n/a/q/l/^E/^Y)?
      y 执行替换操作
      n 跳过这个匹配的实例
      a 对这个及随后所有匹配的字符串执行替换操作
      q or esc 退出替换操作
      l 执行这次替换并退出。l 是“last”的简写
      Ctrl-e, Ctrl-y 分别是向下滚动和向上滚动。用于查看建议替换的上下文
  • 多文件编辑

    vi a b 同时打开a和b

    首先进入a中,输入 :n 进入b

    输入 :N 进入a

    :buffer查看正在编辑哪些文件

    • 两文件之间复制
      :buffer 1 进入a 文件,yy 复制一行
      :buffer 2 进入b文件,p 粘贴
    • 在一个文件中插入另一个文件
      打开a文件
      输入 :r b(r 表示read)
  • 保存文件
    :wq 保存并退出
    :w a1 将正在编辑的a文件保存为副本a1(但此后编辑的还是a文件)


本文作者:思考问题的熊

版权声明:本博客所有文章除特别声明外,均采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。

# linux
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×