bash简单实用技巧

  1. 光标跳转

    ctrl + a 将光标移动到命令行开头相当于VIM里shift+^

    ctrl + e 将光标移动到命令行结尾处相当于VIM里shift+$

    ctrl + f 光标向后移动一个字符相当于VIM里l

    ctrl + b 光标向前移动一个字符相当于VIM里h

    ctrl + 方向键左键 光标移动到前一个单词开头

    ctrl + 方向键右键 光标移动到后一个单词结尾

    ctrl + x 在上次光标所在字符和当前光标所在字符之间跳转

    alt + f 跳到光标所在位置单词尾部

  2. 命令行删除

    ctrl + d 删除光标所在位置上的字符相当于VIM里x或者dl

    ctrl + h 删除光标所在位置前的字符相当于VIM里hx或者dh

    ctrl + k 删除光标后面所有字符相当于VIM里d shift+$

    ctrl + u 删除光标前面所有字符相当于VIM里d shift+^

    ctrl + w 删除光标前一个单词相当于VIM里db

    ctrl + y 恢复ctrl+u上次执行时删除的字符

    ctrl + ? 撤消前一次输入

    ctrl + l 清屏

    alt + r 撤消前一次动作

    alt + d 删除光标所在位置的后单词

  3. 替换

    ctrl + t 将光标当前字符与前面一个字符替换

    alt + t 交换两个光标当前所处位置单词和光标前一个单词

    alt + u 把光标当前位置单词变为大写

    alt + l 把光标当前位置单词变为小写

    alt + c 把光标当前位置单词头一个字母变为大写

    ^oldstr^newstr 替换前一次命令中字符串

  4. 命令历史

    history 查看命令历史
    -c 清空命令历史
    -d 500 删除第500个命令
    -d 500 10 从第500个命令往后删除10个
    -w 手动保存命令历史(正常关机时会自动保存,历史文件是家目录下的 .bashhistory)
    # echo $HISTSIZE 查看缓存中能存储最大命令个数
    ! 441 执行命令历史中的第441个命令
    ! -441 执行命令历史中倒数第441个命令
    !! 执行上一条命令
    !STRING 执行命令历史中最近一个以指定字符串开头的命令(!cle   执行最后一个以cle开头的命令)
    !$ 引用上一个命令中最后一个参数
    键入 Esc 松开 键入 . 引用上一个命令中最后一个参数
    Alt+. 引用上一个命令中最后一个参数,模拟终端支持,远程终端不支持

  5. 命令补全

    Tab
    在path环境变量下搜索,补全的前提是已写的字符能唯一标识这个命令
    连敲两次Tab键,显示所有已写字符的命令
  6. 路径补全

    Tab

    从已写的路径下补全
    连敲两次Tab键,显示所有已写字符的命令?
  7. 命令别名

    alias 不加参数,显示所有有别名的命令
    alias CMDALIAS = COMMAND [OPTIONS] [ARGUMENTS] 相当于定义了一个变量,只在当前shell的生命周期内有效,如果想定义一个长期有效的别名,可以在shell程序的配置文件中修改,后续会讲到。
    # alias cls = clear  为clear命令定义了一个别名cls。
    unalias cls 取消别名为cls的命令。

  8. 命令替换

    把命令中为某个子命令替换为结果的过程 $(COMMAND)     反引号 `COMMAND`

    # pwd
    /etc/sysconfig
    # echo "The current directory is $(pwd)."
    The current directory is /etc/sysconfig.

    # touch ./file-$(date +%F-%H-%M-%S).txt
    创建一个名为 file-年-月-日-时-分-秒.txt的文件

  9. 文件名通配 globbing

    *:匹配任意长度的任意字符
    # ls
    a a123 ab123 abc x12 xyz xyz123
    #ls a*
    a a123 ab123 abc
    # ls a*3
    a123 ab123
    ?:匹配任意单个字符
    # ls ?y*
    xyz xyz123
    # ls ??y*

    []:匹配范围内任意单个字符
    [abc] [a-m] [a-z] [A-Z] [a-zA-Z] [0-9a-zA-Z]
    ls [a-zA-Z]*[0-9] 显示以任意字母开头且以任意数字结尾的文件

    [^]:匹配该范围外的任意单个字符
    ls [^0-9]* 显示所有非数字开头的文件

    常见特殊字符的表示法
    [:space:] 所有空白字符的集合(空白字符俺不确定) ----->从这个集合中随意找一个匹配  [[:space:]](下列同此)
    [:punct:] 所有标点符号的集合
    [:lower:] 所有小写字母的集合
    [:up:]    所有大写字母的集合
    [:alpha:] 所有大小写字母的集合
    [:digit:] 所有数字的集合
    [:alnum:] 所有数字大小写字母的集合
    同样支持^取反
    在bash中可以使用 # man 7 glob 查看所有类似集合
    例如:在某个目录下找以字母开头、字母结尾、中间有空白的文件
        # ls [[:alpha:]]*[[:space:]]*[[alpha]]
          在某个目录下找以字母开头、不以字母结尾、中间有空白的文件
        # ls [[:alpha:]]*[[:space:]]*[^[alpha]]
    注意:通配符并不能精确表示所有的文件名,有时需要利用正则表达式来达到目的。

  10. 其它

    ctrl + s 锁住终端

    ctrl + q 解锁终端

    ctrl + l 清屏相当于命令clear

    ctrl + c 另起一行

    ctrl + i 类似TAB健补全功能

    ctrl + o 重复执行命令

    alt + 数字键 操作的次数

    ctrl + p 返回上一次输入命令字符

    ctrl + r 输入单词搜索历史命令

    alt + p 输入字符查找与字符相接近的历史命令

    ctrl + ? 撤消前一次输入

    ctrl + r 输入单词搜索历史命令

  11. 本文地址,转载请注明出处:http://blog.csdn.net/qq_33442549/article/details/51837725

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值