AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 5027
Accepted
Chris
Chris
Asked: 2009-05-06 13:28:33 +0800 CST2009-05-06 13:28:33 +0800 CST 2009-05-06 13:28:33 +0800 CST

交互式外壳提示?

  • 772
锁定。这个问题及其答案被锁定,因为这个问题离题但具有历史意义。它目前不接受新的答案或交互。

你最喜欢的贝壳技巧是什么?让你的日常命令行使用起来更容易的东西?

我的,对于 bash:

将此添加到主目录中的 .inputrc 文件中:

"\e[A": history-search-backward
"\e[B": history-search-forward

现在,当您在提示符下开始输入时,箭头键将在您的历史记录中搜索以您已经输入的内容开头的任何其他命令。

unix bash shell
  • 5 5 个回答
  • 1022 Views

5 个回答

  • Voted
  1. user1799
    2009-05-06T14:33:03+08:002009-05-06T14:33:03+08:00

    如果您是 vi 用户,请尝试 bash 的 vi 模式:

    set -o vi
    

    按 ESC 进入命令模式。从那里,您可以使用熟悉的 vi 命令(hjkl、w、^、$、i、A、c、d 等)导航命令行。您可以使用 / 搜索您的命令历史记录。您甚至可以按 v 来启动 vi 并编辑您当前的命令。

    有关支持的 vi 命令列表,请参阅此备忘单。

    • 7
  2. Best Answer
    Zoredache
    2009-05-06T14:23:36+08:002009-05-06T14:23:36+08:00

    不是小费,而是更多的元提示。在http://www.commandlinefu.com/上有很多很酷的 cli 接收器

    • 1
  3. Rodney Amato
    2009-05-06T14:59:29+08:002009-05-06T14:59:29+08:00

    这是我在 bash 中日常使用最多的东西

    我使用最多的关键字快捷方式 - 当然是 tab 用于完成选项卡(设置 bash 完成以使其更好) - 上下导航历史记录 - ctrl-a 和 ctrl-e 用于行的开始和结束 - ctrl-r用于搜索您的历史记录(只需开始键入命令的开头) - ctrl-g 取消搜索 - alt-f 将光标向前移动一个单词 - alt-b 将光标向后移动一个单词 - 然后 esc 。将最后一个命令的最后一个参数添加到当前命令(再次执行此操作会转到之前命令的最后一个参数) - alt-d 删除光标当前位置前面的单词 - ctrl-w 删除光标当前位置后面的单词 - ctrl-u 删除从光标当前位置到行首的所有内容 - ctrl-k 删除从当前位置到行尾的所有内容

    最重要的是,确保你有一个 color ls 设置,我将 git 分支添加到我的提示符中

    我的 .bash_aliases 文件中也总是有 reload 功能(这显然来自我的 .bashrc 或 .bash_profile 文件)

    reload()
    {
        if [ -f ~/.bashrc ]; then
            source ~/.bashrc
        else
            source ~/.bash_profile;
        fi
    }
    
    • 1
  4. Drew Stephens
    2009-05-06T21:05:31+08:002009-05-06T21:05:31+08:00

    我处理很多不同的机器,所以我最喜欢的一个是我需要经常通过 SSH 连接到的每台机器的别名:

    alias claudius="ssh dinomite@claudius"
    

    .ssh/config设置好密钥和ssh 密钥也很有用,可以使机器之间的跳转更加容易。

    我最喜欢的另一个别名是用于向上移动目录:

    alias ..="cd .."
    alias ...="cd ../.."
    alias ....="cd ../../.."
    alias .....="cd ../../../.."
    

    ls还有一些用于(和错别字)的常用变体:

    alias ll="ls -l"
    alias lo="ls -o"alias lh="ls -lh"
    alias la="ls -la"
    alias sl="ls"
    alias l="ls"
    alias s="ls"
    

    历史记录可能非常有用,但默认情况下,在大多数发行版中,您的历史记录会被每个退出的 shell 吹走,而且一开始并没有太多意义。我喜欢有10,000行历史:

    export HISTFILESIZE=20000
    export HISTSIZE=10000
    shopt -s histappend
    # Combine multiline commands into one in historty
    shopt -s cmdhist
    # Ignore duplicates, ls without options and builtin commands
    HISTCONTROL=ignoredups
    export HISTIGNORE="&:ls:[bf]g:exit"
    

    这样,如果我知道我以前做过某事但不记得具体细节,那么快速history | grep foo将有助于我的记忆。

    我经常发现自己通过管道输出awk以获取输出的某一列,例如df -h | awk '{print $2}'查找每个磁盘的大小。为了使这更容易,我fawk在我的 .bashrc 中创建了一个函数:

    function fawk {
        first="awk '{print "
        last="}'"
        cmd="${first}\$${1}${last}"
        eval $cmd
    }
    

    我现在可以运行df -h|fawk 2,这可以节省大量打字。

    • 1
  5. Cian
    2009-06-22T07:33:07+08:002009-06-22T07:33:07+08:00

    可能最简单、最有用的事情之一就是学习 readlin 快捷方式。所以^h代表退格,^u删除光标前的一行,^k删除光标后的一行。这里有完整的快捷方式列表 [这里][1] http://www.bigsmoke.us/readline/shortcuts。

    除此之外,在 debian/ubuntu 上(至少,没有任何其他 linux 可以对其进行测试,将其添加到您的 .bashrc 将启用 bash 中的智能完成,就像在 zsh 中一样,以便常见命令的参数(如查找等)将是选项卡可完成的

    if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
    fi
    
    • 1

相关问题

  • 用于监视文件更改的 Shell 命令

  • GNU 屏幕和 .bashrc

  • 在 .bashrc 中设置环境变量的最佳方法是什么?

  • 更改 PHP 的默认配置设置?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve