繁体   English   中英

如何找到bash命令?

How to find bash commands?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想这很简单。 我只是想找到一个bash命令。 例如,当我想知道哪些命令存在时,包含短语“user”。

所以我正在寻找的命令应该打印出包含用户的所有命令的位置,或者它可以告诉我哪些命令存在于名称中。 那会好的。

我在这里和谷歌搜索过,但他们两个都只是谈论“查找”命令。

4 个回复

PATH中包含“user”的可执行文件或符号链接列表:

find $(echo $PATH | tr ':' ' ') -maxdepth 1 \( -type f -or -type l \) -name '*user*' -executable

样本输出:

/usr/bin/users
/usr/bin/xdg-user-dir
/usr/bin/xdg-user-dirs-gtk-update
/usr/bin/users-admin
/usr/bin/xdg-user-dirs-update
/bin/fuser
/bin/fusermount
/bin/ntfs-3g.usermap
/usr/sbin/deluser
/usr/sbin/adduser
/usr/sbin/useradd
/usr/sbin/userdel
/usr/sbin/usermod
/usr/sbin/newusers

也比wormsparty的变种快很多(没有冒犯:P)。 结果几乎相同(他的返回目录,AFAIK)

compgen -c | grep -i "user"

compgen [选项] [字]

根据选项生成可能的单词匹配,可以是完整内置接受的任何选项,但-p和-r除外,并将匹配写入标准输出。

匹配将以与可编程完成代码直接从具有相同标志的完成规范生成它们相同的方式生成。 如果指定了单词,则仅显示匹配单词的那些完成。

...

-A action该操作可以是以下之一,以生成可能的完成列表:

别名别名。 也可以指定为-a。

arrayvar数组变量名。

绑定Readline键绑定名称(请参阅Bindable Readline命令)。

builtin shell内置命令的名称。 也可以指定为-b。

命令命令。 也可以指定为-c。

目录目录名称。 也可以指定为-d。

disabled已禁用的shell内置命令的名称。

enabled已启用的shell内置命令的名称。

export导出的shell变量的名称。 也可以指定为-e。

file文件名。 也可以指定为-f。

function shell函数的名称。

组名称组。 也可以指定为-g。

helptopic帮助内置帮助主题(参见Bash Builtins)。

hostname Hostnames,取自HOSTFILE shell变量指定的文件(请参阅Bash变量)。

作业名称,如果作业控制处于活动状态。 也可以指定为-j。

关键字Shell保留字。 也可以指定为-k。

如果作业控制处于活动状态,则运行正在运行的作业的名称

服务服务名称。 也可以指定为-s。

setopt set builtin的-o选项的有效参数(请参阅Set Builtin)。

shopt内置的shopt接受的Shell选项名称(参见Bash Builtins)。

信号信号名称。

如果作业控制处于活动状态,则停止已停止作业的名称。

用户用户名。 也可以指定为-u。

变量所有shell变量的名称。 也可以指定为-v。

您可能想要检查某个路径中的空格并使用更强大的正则表达式来改进它,但这样做有:

#!/bin/sh

if [ $# -ne 1 ]; then
   echo "Usage: $0 pattern"
    exit 1
fi

for x in `echo "${PATH}" | sed 's/:/ /g'`; do
    for y in $x/*; do
        if [ -x "$y" ]; then
            if [ `echo "$y" | grep $1 | wc -l` -ne 0 ]; then
                echo "$y"
            fi
        fi
    done
done

如果要查找目录中的所有命令,可以在Linux上使用:

find /bin -type f -perm -o+x  -name '*z*'

在此示例中,它将列出/ bin目录中名称中包含az的所有可执行文件(程序)。 如果要搜索多个目录,可以编写脚本并在循环中调用find,每个目录一次。

您可以将此与前一个答案结合使用,以便在路径上的所有目录中进行搜索:

find $(echo $PATH | tr ':' ' ') -type f -perm -o=x  -name '*z*'
1 -bash命令未找到

我是Mac的新手,正在观看视频,然后键入export PATH="$HOME/opt/git/bin:$PATH"我相信这弄乱了我的路径,现在无法安装MySQL。 当我尝试安装homebrew时,出现-bash: homebrew: command not found. ...

2 -bash: $: 命令未找到

我正在尝试在我的 Mac 上安装 pyqt。 我已经安装了 Homebrew,它似乎“很好”但是当我运行命令时 我收到以下错误: -bash: $: command not found 有人可以指出我正确的方向吗,我看过几个网站,但似乎无法解决问题。 ...

3 未找到BASH命令

我正在尝试计算我的linux系统上的HDD的数量,我已经把以下行放在一起。 现在它似乎只运行'find / sys / block -name'sdd''| wc -l'但是当试图将它存储在一个变量中时,我在阅读它时得到以下消息: 谁知道我哪里出错了? ...

5 -bash: scala: 命令未找到

我正在尝试在我的 mac (Maverick) 上安装 scala。 我下载并解压了它。 然后我将自己从未归档的位置放在终端的 /bin 文件夹中。 但是当我运行“scala”或“scalac”时,我得到: -bash: scala: command not found 为什么? ...

6 Bash“命令未找到”错误

我正在尝试使用自定义函数编辑我的.bashrc文件以启动xwin。 我希望它能够在多个窗口中打开,所以我决定创建一个接受1个参数的函数:显示数字。 这是我的代码: 我创建一个变量“a”来保存输入的原因是因为我怀疑输入是作为字符串而不是数字读入的。 我希望采取我将输入减去0的步骤将字 ...

2015-09-23 17:14:52 3 613   bash/ unix
8 bash: mvn: 命令未找到

我已经尝试解决这个问题很长时间了,但似乎没有任何效果。 我需要从 IntelliJ(在 Mac 上)的终端运行“mvn clean deploy -P release”。 但它一直给我同样的错误。 大约 2 小时前,我能够运行此命令,但是在关闭并重新打开 IntelliJ 后,我无法再从 In ...

10 -bash:pip:命令未找到

我用这种方式安装了pip: 当我尝试使用pip时,得到以下错误信息: 我现在应该怎么办? 请帮忙,谢谢。 ...

2014-04-27 04:54:48 2 6278   macos/ pip
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM