很高兴和你相遇
这里正在记录我的所思所学
订阅免费邮件通讯接收最新内容
首页 归档 想法 工具 通讯 播客 简历 主页

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) 进行许可。

如果你对这篇文章感兴趣,欢迎通过邮箱或者微信订阅我的 「熊言熊语」会员通讯,我将第一时间与你分享肿瘤生物医药领域最新行业研究进展和我的所思所学所想点此链接即可进行免费订阅。


· 分享链接 https://kaopubear.top/blog/2017-09-14-LinuxCommandLine4/