Linux command do listy wszystkich dostępnych komend i aliasów
Czy istnieje polecenie linuksowe, które wyświetli listę wszystkich dostępnych poleceń i aliasów dla tej sesji terminala?
Jakbyś wpisywał 'a' i wciskał tab, ale dla każdej litery alfabetu. Lub uruchamianie 'alias', ale także zwracanie komend.
Dlaczego? Chciałbym uruchomić następujące polecenie i sprawdzić, czy jest dostępne polecenie:ListAllCommands | grep searchstr
21 answers
Możesz użyć wbudowanego bash (1) compgen
-
compgen -c
wyświetli listę wszystkich komend, które można uruchomić. -
compgen -a
wyświetli listę wszystkich aliasów, które można uruchomić. -
compgen -b
wyświetli listę wszystkich wbudowanych, które można uruchomić. -
compgen -k
wyświetli listę wszystkich słów kluczowych, które można uruchomić. -
compgen -A function
wyświetli listę wszystkich funkcji, które można uruchomić. -
compgen -A function -abck
wymieni wszystkie powyższe za jednym razem.
Sprawdź stronę man pod kątem innych funkcji, które możesz / align = "left" /
Aby bezpośrednio odpowiedzieć na twoje pytanie:
compgen -ac | grep searchstr
Powinieneś robić, co chcesz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-25 01:13:52
Dodaj do .bashrc
function ListAllCommands
{
echo -n $PATH | xargs -d : -I {} find {} -maxdepth 1 \
-executable -type f -printf '%P\n' | sort -u
}
Jeśli chcesz również aliasy, to:
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
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 20:32:47
Jest
type -a mycommand
Polecenie, które wyświetla wszystkie aliasy i polecenia w $PATH gdzie jest używany mycommand. Może być użyty do sprawdzenia, czy polecenie istnieje w kilku wariantach. Poza tym... Prawdopodobnie jest jakiś skrypt, który parsuje $PATH i wszystkie aliasy, ale nie wiem o żadnym takim skrypcie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 00:36:56
Użyj "which searchstr". Zwraca ścieżkę binarną lub konfigurację aliasu, jeśli jest to alias
Edytuj: Jeśli szukasz listy aliasów, możesz użyć:
alias -p | cut -d= -f1 | cut -d' ' -f2
Dodaj to do dowolnej ścieżki szukanej odpowiedzi. Zakłada, że używasz bash..
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 01:28:23
Wypróbuj ten skrypt:
#!/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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 00:53:23
Przydatne jest wyświetlanie poleceń na podstawie słów kluczowych powiązanych z poleceniem.
Użycie: man -k "your keyword"
Zapraszam do łączenia z: | grep "another word"
Na przykład, aby znaleźć edytor tekstu:
man -k editor | grep text
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-07 17:46:26
Spróbuj nacisnąć ALT-? (alt i znak zapytania w tym samym czasie). Daj mu sekundę lub dwie, aby zbudować listę. Powinno działać w bash.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 00:50:15
Oto rozwiązanie, które daje listę wszystkich aliasów wykonywalnych i. Jest również przenośny dla Systemów Bez xargs -d
(np. Mac OS X) i prawidłowo obsługuje ścieżki ze spacjami w nich.
#!/bin/bash
(echo -n $PATH | tr : '\0' | xargs -0 -n 1 ls; alias | sed 's/alias \([^=]*\)=.*/\1/') | sort -u | grep "$@"
Użycie: myscript.sh [grep-options] pattern
, np. aby znaleźć wszystkie polecenia zaczynające się od ls
, rozróżnia wielkość liter, do:
myscript -i ^ls
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 01:50:56
Dla użytkowników komputerów Mac (find doesn 't have-executable and xargs doesn' t have-d):
echo $PATH | tr ':' '\n' | xargs -I {} find {} -maxdepth 1 -type f -perm '++x'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-24 15:41:04
Metoda skrótu do wypisania wszystkich poleceń. Otwórz terminal i naciśnij dwa razy przycisk"tab". To pokazuje wszystkie polecenia w Terminalu
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-25 19:24:29
Inne polecenie nie działało dla mnie na systemach wbudowanych, ponieważ wymagają bash lub bardziej kompletnej wersji xargs.
Poniższe polecenia powinny działać na każdym systemie Uniksopodobnym.
Lista według folderów:
ls $(echo $PATH | tr ':' ' ')
Lista wszystkich poleceń po nazwie
ls $(echo $PATH | tr ':' ' ') | grep -v '/' | sort
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-07 09:17:53
Zawsze możesz:
1. Hold the $PATH environment variable value.
2. Split by ":"
3. For earch entry:
ls * $entry
4. grep your command in that output.
Powłoka wykona polecenia tylko wtedy, gdy są one wymienione w ścieżce ENV var.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 00:39:11
To zależy, chodzi mi o to, że zależy od tego, jakiej powłoki używasz. oto ograniczenia, które widzę:
- musi działać w tym samym procesie co powłoka, aby przechwycić aliasy, funkcje i zmienne, które wpłyną na polecenia, które możesz znaleźć, myśleć ścieżkę lub edytor, chociaż edytor może być poza zakresem. Możesz mieć nieprzewidziane zmienne, które mogą wpływać na rzeczy.
- jest specyficzny dla shell ' a lub Twojego wchodzenia do jądra, / proc / pid / enviorn i przyjaciele nie mają wystarczająco Informacje
Używam ZSH więc tutaj jest odpowiedź zsh, robi następujące 3 rzeczy:
- dumps path
- wyrzuca nazwy aliasów
- zrzuca funkcje, które są w env
- sortuje je
Oto jest:
feed_me() {
(alias | cut -f1 -d= ; hash -f; hash -v | cut -f 1 -d= ; typeset +f) | sort
}
Jeśli używasz zsh to powinno to zrobić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-20 14:56:58
Alternatywnie, możesz uzyskać wygodną listę poleceń wraz z krótkimi opisami (o ile polecenie ma stronę podręcznika, co większość z nich robi):
apropos -s 1 ''
-s 1 returns only "section 1" manpages which are entries for executable programs.
'' is a search for anything. (If you use an asterisk, on my system, bash throws in a search for all the files and folders in your current working directory.)
Wtedy po prostu go grep jak chcesz.
apropos -s 1 '' | grep xdg
xdg-desktop-icon (1) - command line tool for (un)installing icons to the desktop
xdg-desktop-menu (1) - command line tool for (un)installing desktop menu items
xdg-email (1) - command line tool for sending mail using the user's preferred e-mail composer
xdg-icon-resource (1) - command line tool for (un)installing icon resources
xdg-mime (1) - command line tool for querying information about file type handling and adding descriptions for new file types
xdg-open (1) - opens a file or URL in the user's preferred application
xdg-screensaver (1) - command line tool for controlling the screensaver
xdg-settings (1) - get various settings from the desktop environment
xdg-user-dir (1) - Find an XDG user dir
xdg-user-dirs-update (1) - Update XDG user dir configuration
Wyniki nie wydają się być posortowane, więc jeśli szukasz długiej listy, możesz wrzucić | sort/do środka, a następnie przesłać to do pagera jak less/more / most. ala:
apropos -s 1 '' | sort | grep zip | less
Który zwraca posortowaną listę wszystkich poleceń, które mają "zip" w nazwie lub ich krótki opis, i pompuje, że" mniej " pager. (Możesz również zastąpić" less " $PAGER i użyć domyślnego pagera.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-11 08:08:58
Problem polega na tym, że dopełnienie karty przeszukuje twoją ścieżkę, ale wszystkich poleceń nie ma na twojej ścieżce.
Aby znaleźć polecenia w ścieżce używając bash, możesz zrobić coś takiego:
For x in echo $PATH | cut -d":" -f1
; do ls $x; done
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 00:42:59
Oto funkcja, którą możesz umieścić w pliku bashrc:
function command-search { oldIFS=${IFS} IFS=":" for p in ${PATH} do ls $p | grep $1 done export IFS=${oldIFS} }
Przykładowe użycie:
$ 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 jest zmienną, której bash używa do dzielenia łańcuchów.
Na pewno można to zrobić na kilka lepszych sposobów.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 00:58:59
Może to nieporozumienie, ale co jeśli naciśniesz Escape, aż pojawi się wyświetlacz wszystkich możliwości X ?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 01:02:33
Podstawowe polecenia:
$ touch: - user for create empty file
Syn: - touch filename
Ex: touch rama
$LS Lista plików i katalogów
$ ls-l Long listing
Typ pliku, uprawnienia, pliki linków, nazwa użytkownika( lub) właściciela, nazwa grupy, Rozmiar pliku, znacznik czasu, nazwa pliku lub katalogu.
{–0]} - zwykły (lub) zwykły plikD katalog
L link file
Ls-a: Pokaż wszystkie (łącznie z ukrytymi plikami)
Ukryte pliki i katalogi zaczynają się od . (kropka)
Znajdź więcej poleceń @ http://k2schools.com/linux-commands/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-11 06:50:11
compgen -c > list.txt && wc list.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-05 04:55:56
Może po prostu napiszesz:
seachstr
W terminalu.
Powłoka powie coś jak
seacrhstr: command not found
EDIT:
Ok, zabieram głos, ponieważ odpowiedź jest głupia, chcę tylko wiedzieć: co jest nie tak z tą odpowiedzią!!! Asker powiedział:
i sprawdź, czy polecenie jest dostępne.
Wpisanie polecenia powie Ci, czy jest ono dostępne!.
Prawdopodobnie miał na myśli "z out executing the polecenie" lub ", aby umieścić go w skrypcie " , ale nie mogę czytać w jego myślach (to nie to, że nie mogę regularnie, to tylko to, że ma na sobie deflektor czytania w myślach )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 00:57:33
W Debianie: ls / bin / / grep "whatImSearchingFor"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 00:37:41