- зона также должна быть указана для возможности изменения размера узлов кластера до нуля в gcloud SDK v 2.0.27
gcloud container clusters resize $CLUSTER --size=0 --zone=$ZONE
You can use the bash(1) built-in compgen
compgen -c
will list all the commands you could run.compgen -a
will list all the aliases you could run.compgen -b
will list all the built-ins you could run.compgen -k
will list all the keywords you could run.compgen -A function
will list all the functions you could run.compgen -A function -abck
will list all the above in one go.Check the man page for other completions you can generate.
To directly answer your question:
compgen -ac | grep searchstr
should do what yout want.
Почему бы вам просто не ввести:
seachstr
В терминале.
Оболочка скажет что-то вроде
seacrhstr: command not found
EDIT :
Хорошо, я принимаю голос против, потому что ответ глупый, я просто хочу знать: что не так с этим ответом !!! Спрашивающий сказал:
и посмотрите, доступна ли команда.
Ввод команды покажет вам, доступна ли она!
Вероятно, он / она имел в виду «без выполнения команды» или «включить это в сценарий» , но я не могу читать его мысли (не то чтобы я не мог регулярно, просто он носит дефлектор чтения мыслей )
, возможно, я неправильно понимаю, но что, если вы нажмете Escape, пока не получите возможности Display All X ?
Here's a function you can put in your bashrc file:
function command-search { oldIFS=${IFS} IFS=":" for p in ${PATH} do ls $p | grep $1 done export IFS=${oldIFS} }
Example usage:
$ command-search gnome gnome-audio-profiles-properties* gnome-eject@ gnome-keyring* gnome-keyring-daemon* gnome-mount* gnome-open* gnome-sound-recorder* gnome-text-editor@ gnome-umount@ gnome-volume-control* polkit-gnome-authorization* vim.gnome* $
FYI: IFS is a variable that bash uses to split strings.
Certainly there could be some better ways to do this.
Проблема в том, что завершение табуляции ищет ваш путь, но все команды не находятся на вашем пути.
Чтобы найти команды на своем пути с помощью bash, вы можете сделать что-то вроде:
для x в echo $ PATH | вырезать -d ":" -f1
; do ls $ x; готово
это зависит, я имею в виду, что это зависит от того, какую оболочку вы используете. вот ограничения, которые я вижу:
Вы всегда можете сделать следующее:
1. Hold the $PATH environment variable value.
2. Split by ":"
3. For earch entry:
ls * $entry
4. grep your command in that output.
Оболочка все равно выполнит команды, только если они перечислены в пути env var.
Попробуйте нажать ALT-? (alt и вопросительный знак одновременно). Дайте ему секунду или две, чтобы составить список. Это должно работать в bash.
Вот решение, которое дает вам список всех исполняемых файлов и псевдонимов. Он также переносится в системы без xargs -d
(например, Mac OS X) и правильно обрабатывает пути с пробелами в них.
#!/bin/bash
(echo -n $PATH | tr : '\0' | xargs -0 -n 1 ls; alias | sed 's/alias \([^=]*\)=.*/\1/') | sort -u | grep "$@"
Использование: myscript.sh [grep-options] pattern
, например, чтобы найти все команды, которые начинаются с ls
, без учета регистра, do:
myscript -i ^ls
Try this script:
#!/bin/bash
echo $PATH | tr : '\n' |
while read e; do
for i in $e/*; do
if [[ -x "$i" && -f "$i" ]]; then
echo $i
fi
done
done
Используйте which searchstr. Возвращает либо путь к двоичному файлу, либо установку псевдонима, если это псевдоним
Edit: Если вы ищете список псевдонимов, вы можете использовать:
alias -p | cut -d= -f1 | cut -d' ' -f2
Добавьте его к любому ответу поиска по PATH, который вам нравится. Предполагается, что вы используете bash ..
Есть команда
type -a mycommand
, которая перечисляет все псевдонимы и команды в $ PATH, где используется mycommand . Может использоваться для проверки существования команды в нескольких вариантах. Помимо этого ... Возможно, существует какой-то сценарий, который анализирует $ PATH и все псевдонимы, но не знает ни одного такого сценария.
Добавить в .bashrc
function ListAllCommands
{
echo -n $PATH | xargs -d : -I {} find {} -maxdepth 1 \
-executable -type f -printf '%P\n' | sort -u
}
Если вам также нужны псевдонимы, то:
function ListAllCommands
{
COMMANDS=`echo -n $PATH | xargs -d : -I {} find {} -maxdepth 1 \
-executable -type f -printf '%P\n'`
ALIASES=`alias | cut -d '=' -f 1`
echo "$COMMANDS"$'\n'"$ALIASES" | sort -u
}