不能不懂脚本

推荐一个bash小技巧

今天在公司上课,偷闲逛了下水木,学了一个bash的小技巧,介绍给大家!

!$ 表示上一个命令的最后一个参数。如果你首次登陆终端,那么它会取history的最后一行命令的最后一个参数。

试试看!

ls -hl /rocrocket/software/program/git/bin/

这时,你就可以用cd !$来进入到这个深层目录啦!

ps: 如果你最后一个参数是双引号括起来的,那么!$也会很聪明的看出来。

over~

14条评论

  1. 常用的几个:

    !* 上一条命令的所有参数

    !? 上一条命令的最后一个参数 (也可以用 esc+. 如果用esc+. 会自动tab补全,看资料说,alt+.也可以,但是我用secureCRT不行,应该是这个软件不支持)

    !! 重复执行上一条命令,这个知道的人比较多些

    !-: 上一条命令除了最后一个参数以外的部分,注意,冒号是要有的,并且,securtCRT也不支持

  2. 哈,刚想回复!!可以回显呢,一看回复,顿时吓尿了。回复比原文精彩啊,学习了

  3. 条目指示
    ! 开始历史替换,除非后面跟着空格、制表符行结束、“ =”、或“(”
    !n 选择命令行n
    !-n 选择向后n 条命令(即倒数第 n条记录n>0)
    !! 前一条命令 同!-1

    !string 选择最近以string 开头的命令
    !?string? 选择最近包含string开头的命令

    ^string1 ^string2 ^ 用sting1替换 string2后,重复执行上条命令。同 !!:s/string1/string2。

    !# 目前已经输入的整个命令

    !! 上条命令
    !!:^ 获取上条命令的第一个参数 同 ! ^ 和 !!:1
    !!:$ 获取上条命令的最后一个参数 同 ! $ 和 $_
    !!:n 获取上条命令的第n个参数

    !string:n 获取最近执行过的string开头的命令的第 n个参数

    历史
    ctrl + p 上一个使用的命令 (p=pervious)
    ctrl + n 下一个使用的命令 (n=next)
    ctrl + r 快速检索历史

    系统提供的历史命令操作
    fc -s
    history

    单词指示
    0 即零,第零个单词。对大多数命令来说,它指命令名
    n 第n 个单词
    ^ 第1 个参数(单词)
    $ 最后一个参数(单词)
    % 最近%string% 匹配的单词
    x-y 单词范围 0-y 可以写作 –y
    * 除了第零个以外的所有单词 同1-$
    x* x-$的简写,同x*
    如果用单词指示符时没有用条目指示符,则把前一条目作为条目

    修饰符
    在可选的单词指示符后面,可以加上下列一个或多个修饰符号,每个修饰符以 :开始
    h 去掉文件名的尾部,只留头部
    t 去掉文件名的头部,只留尾部
    r 去掉结尾的扩展名
    e 去掉扩展名以外的所有部分
    p 打印新的命令而不执行
    q 引用替换后的单词,以备进一步替换
    x 同q ,同时还在空格、制表符、换行符的地方把单词隔开
    s/old/new/ 把条目中第一个old替换为 new。 / 可以为任何分隔符
    & 重复上次替换
    g /a 使替换在整个条目中执行,同 s一起使用
    G 对条目中每个单词都进行一次 s修饰

  4. 个人比较喜欢 !$ 的
    另外,还有 !^ ,上一个命令的第一个参数

    !!,上一个命令整行
    输入一条命令发现没有权限,就sudo !!一下

    crt 在操作上是挺方便的,不过更喜欢putty,crt 用不了很多快捷键,如F1,F2 等

发表您的评论

请您放心,您的信息会被严格保密。必填项已标识 *