shell goto_Linux goto shell实用程序简介

shell goto

goto shell实用程序允许用户导航到别名目录,并且还支持自动完成。

这个怎么运作

在使用goto之前,您需要注册目录别名。 例如:

 goto -r dev / home / iridakos / development 

然后转到该目录,例如:

 goto dev 
shell goto_Linux goto shell实用程序简介_第1张图片

goto中的自动补全

goto带有一个不错的自动完成脚本-每当在goto命令后按Tab键时,Bash或Zsh都会提示您有关可用别名的建议:


     
     
     
     
$ goto < tab >
bc / etc / bash_completion.d                    
dev / home / iridakos / development
rubies / home / iridakos / .rvm / rubies

安装goto

有几种安装goto的方法。

通过脚本

克隆存储库并以超级用户或root身份运行安装脚本:


     
     
     
     
git clone https: // github.com / iridakos / goto.git
cd goto
sudo . / install

手动地

在复制文件系统文件goto.sh的地方,并在您的.zshrc中添加一行或.bashrc中源吧。

例如,如果将文件放在主文件夹中,则只需将以下行添加到.zshrc.bashrc文件中:

 source ~ / goto.sh 

MacOS自制软件

MacOS中的Bash Shell提供了一个名为goto的公式:

 brew install goto 

添加彩色输出

 echo -e " \$ include /etc/inputrc \n set colored-completion-prefix on" >> ~ / .inputrc 

笔记:

  • 安装后需要重新启动外壳。
  • 您需要在MacOS中为Bash启用Bash完成功能(请参阅本期 )。
    • 如果未启用它,则可以使用brew install bash-completion安装它。

goto的使用方法

切换到别名目录

要更改为别名目录,请键入:

 goto < alias > 

例如:

 goto dev 

注册别名

要注册目录别名,请键入:

 goto -r < alias > < directory > 

要么

 goto --register < alias > < directory > 

例如:

 goto -r blog / mnt / external / projects / html / blog 

要么

 goto --register blog / mnt / external / projects / html / blog 

笔记:

  • goto 会扩展目录,因此您可以使用以下命令轻松为当前目录添加别名,该目录将自动别名为整个路径:
     goto -r last_release . 
    
  • 别名后按Tab键可提供Shell的默认目录建议。

取消注册别名

要注销别名,请使用:

 goto -u < alias > 

要么

 goto --unregister < alias > 

例如:

 goto -u last_release 

要么

 goto --unregister last_release 

注意:在命令( -u--unregister )后按Tab键,完成脚本将提示您输入已注册别名的列表。

列出别名

要获取您当前注册的别名的列表,请使用:

 goto -l 

要么

 goto --list 

扩展别名

要将别名扩展为其值,请使用:

 goto -x < alias > 

要么

 goto --expand < alias > 

例如:

 goto -x last_release 

要么

 goto --expand last_release 

清理别名

要从文件系统中不再可访问的目录中清除别名,请使用:

 goto -c 

要么

 goto --cleanup 

得到帮助

要查看该工具的帮助信息,请使用:

 goto -h 

要么

 goto --help 

检查版本

要查看工具的版本,请使用:

 goto -v 

要么

 goto --version 

在更改目录之前先推送

要在更改目录之前将当前目录推送到目录堆栈中,请键入:

 goto -p < alias > 

要么

 goto --push < alias > 

恢复到推送目录

要返回推送目录,请输入:

 goto -o 

要么

 goto --pop 

注意:此命令等效于popd,但在goto命令中。

故障排除

如果看到未找到错误命令: Zsh中的compdef ,则意味着您需要加载bashcompinit 为此,请将其附加到您的.zshrc文件中:


     
     
     
     
autoload bashcompinit
bashcompinit

参与其中

goto工具是根据MIT许可条款开放的源代码,欢迎您提供帮助。 要了解更多信息,请访问goto的GitHub存储库中的Contributing部分。

转到脚本


     
     
     
     
goto()
{
  local target
  _goto_resolve_db

  if [ -z "$1" ]; then
    # display usage and exit when no args
    _goto_usage
    return
  fi

  subcommand="$1"
  shift
  case "$subcommand" in
    -c|--cleanup)
      _goto_cleanup "$@"
      ;;
    -r|--register) # Register an alias
      _goto_register_alias "$@"
      ;;
    -u|--unregister) # Unregister an alias
      _goto_unregister_alias "$@"
      ;;
    -p|--push) # Push the current directory onto the pushd stack, then goto
      _goto_directory_push "$@"
      ;;
    -o|--pop) # Pop the top directory off of the pushd stack, then change that directory
      _goto_directory_pop
      ;;
    -l|--list)
      _goto_list_aliases
      ;;
    -x|--expand) # Expand an alias
      _goto_expand_alias "$@"
      ;;
    -h|--help)
      _goto_usage
      ;;
    -v|--version)
      _goto_version
      ;;
    *)
      _goto_directory "$subcommand"
      ;;
  esac
  return $?
}

_goto_resolve_db()
{
  GOTO_DB="${GOTO_DB:-$HOME/.goto}"
  touch -a "$GOTO_DB"
}

_goto_usage()
{
  cat <<\USAGE
usage: goto [


它最初在转到的GitHub存储库中以自述文件的形式发布,并在获得许可的情况下被重用。

翻译自: https://opensource.com/article/20/1/directories-autocomplete-linux

shell goto

你可能感兴趣的:(linux,shell,php,github,bash)