zoukankan      html  css  js  c++  java
  • Linux基础命令(编辑)

    Linux基础命令(编辑)

    文件层级系统

    • FHS:文件层级系统

    /:根分区
    /boot:系统启动相关的文件,如内核(vmlinuz)、initrd(initramfs)以及grub(bootloader)
    /dev:设备文件,不能单独分区
    /etc:配置文件目录
    /home:普通用户家目录
    /root:管理员家目录
    /lib:库文件目录
    /media:挂载点目录,通常用来挂载移动设备
    /mnt:挂载点目录,通常用来挂载额外的临时文件系统,比如另一块硬盘
    /opt:可选目录,早期通过用来安装第三方软件
    /proc:伪文件系统,内核映射文件,不能单独分区
    /sys:伪文件系统,跟硬件设备相关的属性映射文件,不能单独分区
    /tmp:临时文件目录
    /var:可变化的文件,比如log、cache。存放日志文件、pid文件、lock文件
    /bin:可执行文件,用户命令
    /sbin:管理命令
    /usr:全局共享只读文件。提供操作系统核心功能,可以单独分区
       /usr/bin
       /usr/sbin
       /usr/lib
    /usr/local:第三方软件安装路径
       /usr/local/bin
       /usr/local/sbin
       /usr/local/lib
       /usr/local/etc
       /usr/local/man
    /etc、/bin、/sbin、/lib等目录内是系统启动就需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上

    /usr/bin、/usr/sbin、/usr/lib提供操作系统核心功能,/usr可以单独分
    /usr/local/bin、/usr/local/sbin、/usr/local/lib、/usr/local/etc、/usr/local/man等等在/usr/local目录下的内容都是第三方软件,建议单独分区

    重定向

    • 系统设定:
        默认输入设备:标准输入,STDIN,0(键盘)
        默认输出设备:标准输出,STDOUT,1(显示器)
        标准错误输出:标准错误,STDERR,2(显示器)

    • I/O重定向:
        >:覆盖输出
        >>:追加输出
        2>:重定向错误输出
        &>:覆盖重定向标准输出和错误输出至同一文件
        <:输入重定向
        <<:Here Document

    管道

    前一个命令的输出作为后一个命令的输入

    最后一个命令会在当前shell进程的子shell进程中执行。

    命令1 | 命令2 | 命令3 | …

    tee命令:从标准输入读取数据,输出一份到屏幕,一份保存到文件

    [root@localhost ~]# echo "hello world" | tee /tmp/hello.out 
    hello world 
    [root@localhost ~]# cat /tmp/hello.out 
    hello world
    

    Linux下的编辑器介绍

    • Linux下常见的文本编辑器有:
      • emacs
      • pico
      • nano
      • joe
      • jed
      • vi

    vi编辑器是linux和unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。

    vi编辑器可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。

    vim是vi的增强版,比vi更容易使用。vi的命令几乎都可以在vim上使用。


    vi/vim的特点

    • vi/vim是一种纯文本编辑器,它不像word可以排版,可以调整字体大小,可以改变字体等等。
    • vi/vim只是一个文本编辑工具,只能对文本的内容进行操作,比如新增内容、修改内容、删除内容等等
    • 全屏幕显示

    vi/vim的三种编辑模式

    • 命令模式
    • 输入模式
    • 末行模式
    编辑模式 作用
    命令模式 用户执行命令,比如复制行、粘贴行等等
    输入模式 用于输入文本、修改文本等等
    末行模式 用于查找文本、保存修改等等

    vi/vim的三种编辑模式间转换的方式

    • 命令模式-->输入模式
       i:insert,在当前光标所在字符的前面,转为输入模式
       I:大写的i,在当前光标所在行的行首转换为输入模式
       a:append,在当前光标所在字符的后面转换为输入模式
       A:在当前光标所在行的行尾转换为输入模式
       o:open,在当前光标所在行的下方新建一行并转为输入模式
       O:大写的o,不是数字0,在当前光标所在行的上方新建一行并转换为输入模式

    • 输入模式-->命令模式
      ESC

    • 命令模式-->末行模式
      :

    • 末行模式-->命令模式
      ESC ESC

    打开文件方式

    文件打开后默认处于命令模式下

    vim filename //打开文件
    vim +n filename //打开文件并定位到第n行
    vim +/pattern filename //打开文件并定位到第一次被/pattern匹配到的内容行首

    关闭文件方式

    • 末行模式下关闭文件:
    命令 意义
    q 退出
    wq 保存并退出
    q! 不保存退出
    w 保存但不退出
    w! 强行保存
    wq 强行保存并退出
    x 强行保存并退出

    关闭文件方式

    • 命令模式下关闭文件
      • ZZ

    移动光标的方式

    移动光标方式 移动方法 意义
    逐字符移动 h 向左移动一个字符
    l 向右移动一个字符
    j 向下移动一个字符
    k 向上移动一个字符
    #h 向左移动#个字符
    #l 向右移动#个字符
    #j 向下移动#个字符
    #k 向上移动#个字符
    以单词为单位移动 w 移动至下一个单词的词首
    e 跳至当前或下一个单词的词尾
    b 跳至当前或上一个单词的词首
    #w 以当前光标为起点跳至第#个单词的词首
    #e 以当前光标为起点跳至第#个单词的词尾
    #b 以当前光标为起点跳至第#个单词的词首
    行内跳转 0 数字0,跳转到绝对行首
    ^ 跳转到行首的第一个非空白字符
    $ 跳转到绝对行尾
    行间跳转 gg 跳转到第一行
    G 跳转到最后一行
    #gg 跳转至第#行
    #G 跳转至第#行
    翻屏 ctrl+f 向下翻一屏
    ctrl+b 向上翻一屏
    ctrl+d 向下翻半屏
    ctrl+u 向上翻半屏

    字符编辑

    编辑命令 意义
    x 删除光标所在处的单个字符

    x|删除光标所在处及其向后共#个字符

    xp|交换光标所在处的字符及其后面字符的位置

    删除命令:d

    • 命令模式下d命令常与跳转命令组合使用,如
        d$:表示删除当前光标所在位置到行尾的内容
        d^:表示删除当前光标所在位置到第一个行首非空白字符位置的内容
        d0:表示删除当前光标所在位置到绝对行首的内容

    • #d跳转符:删除跳转符指定范围内的#个,例如
        #dw
        #de
        #db
        dd:删除当前光标所在行整行
        #dd:删除包括当前光标所在行在内的#行
        D:删除当前光标所在行的内容,保留空行

    • 删除命令:d

      • 末行模式下d命令的使用
          :StartADD,EndADDd  
      • 这里的StartADD与EndADD是指一个范围,例如:
          1,5d:表示删除第1到第5行
    • 范围表示方法

    表示方法 意义
    . 光标所在当前行
    $ 最后一行
    +# 光标所在行往后#行
    $-# 倒数第#行
    % 全文

    复制与粘贴

    • 复制命令:yy

    • 粘贴命令:p
      p:小写p
      若删除或复制的为整行内容,则粘贴至光标所在行的下方
      若删除或复制的为非整行,则粘贴至光标所在字符的后面
      P:大写p
      若删除或复制的为整行内容,则粘贴至光标所在行的上方
      若删除或复制的为非整行,则粘贴至光标所在字符的前面

    替换、撤销编辑与重复编辑操作

    • 替换:r
      R:替换模式,替换多个字符
      r#:将当前光标的字符替换为#,这里的#可以是任何字符

    • 撤销编辑:u
      u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作

    u:直接撤销此前的#次编辑操作

    ctrl+r:还原最近一次的撤销操作

    • 重复前一次编辑操作:.
      .

    可视化与文本查找

    • 可视化模式:可视化模式下可以对选取的内容进行前面讲的所有编辑操作
      v:按字符选取内容
      V:按矩形块(行)选取内容

    • 文本查找:
      /pattern:从上往下查找匹配的内容
      ?pattern:从下往上查找匹配的内容
      n:从上往下查找匹配到的内容的下一条
      N:从下往上查找匹配到的内容的下一条

    查找并替换与行号控制

    • 查找并替换:s
      s命令只能在末行模式下使用,语法如下:
        :ADDR1,ADDR2 s/pattern/string/gi

    • 示例:
      :1,5 s/abc/def/g 表示把第一行到第五行的所有abc替换为def

    • 末行模式下显示或取消显示行号:
      set nu:显示行号
      set nonu:取消显示行号

  • 相关阅读:
    ole辅助类sqlhelperaccess
    Asp.net中常用的26个性能优化方法
    MVP模式的相关知识
    ASP.NET AJAX入门系列
    非常实用]Asp.net常用的51个代码
    一步一步学Silverlight 系列文章
    .NET设计模式系列文章
    Asp.net添加上传进度条
    asp.net 用ajax实现文件上传
    增加弹出层的拖拽功能
  • 原文地址:https://www.cnblogs.com/guilai/p/11543584.html
Copyright © 2011-2022 走看看