Linuxnál általánosan (disztrófüggetlenül) létezik valamilyen, tisztán UNIX alapú, megoldás, amivel listázni tudom, hogy milyen parancsok érhetőek el?
Tehát ami mondjuk egy beágyazott Linux rendszeren is, ha nem is 100%-ig, de jó eséllyel működni fog.
A kernelverzió lekérdezésénél ezeket kapom:
/ # uname -a
Linux sa415m 5.4.219-perf #1 PREEMPT Wed Dec 4 09:46:17 UTC 2024 armv7l GNU/Linux
/ # uname -r
5.4.219-perf
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Nem igazán, mert a "parancsok" szinte kivétel nélkül külső programok. Attól is függ miolyen csomagokat telepítettél.
Szintén függ attól, hogy milyen shell-t használsz. Leggyakrabban a bash shellt használja a legtöbb Linux. Ennek leírása: [link]
Amivel tudsz listázni az az, hogy a "parancsok" általában a következő directorykban szoktak lenni:
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
És itt az "ls -r" parancs (rekurzívan érdemes végig menni, mert sok könyvtár van).
A másik lehetőség, hogy a find paranccsal kikeresed az összes futtatható programot (ha a find telepítve van):
find / -type f -executable -print 2>/dev/null
Ezt el tudod tenni egy fájlba akár és abban tudsz keresgélni.
Köszönöm! A második tipp hasznosnak tűnik.
Annyit vettem még észre - az egyébként aktuálisan kérdéses, beágyazott rendszernél - hogy a /bin főkönyvtár listázásánál szinte minden a busybox-ra volt symlink-elve. De akkor gondolom nem is lesz find parancs. 🫤
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Simán lehet. Ha symlinkelve van egy adott fájlra akkor az lehet egy olyan cucc ami egy "parancsértelmező" és az fogja a különböző parancsokat végrehajtani (általában le van butítva, hogy rövidebb, kisebb, gyorsabb stb. legyen). Sok ilyen van, és egészen elterjedten használt megoldás.
Közben megnéztem és valóban ez van:
BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Chatgpt válasza:
Igen, Linux rendszereken általánosan használható megoldás a `command` parancs, amely a UNIX-eredetű parancsok listázására szolgál.
A `command` parancs a következő funkcionalitásokat nyújtja:
1. **A rendelkezésre álló parancsok listázása**: A `command -v` paranccsal megtekinthetjük, hogy milyen parancsok érhetők el a rendszeren. Ez egy listát ad azokról a parancsokról, amelyeket a shell fel tud fedezni.
2. **Egy adott parancs típusának meghatározása**: A `command -V <parancs>` paranccsal meghatározhatjuk, hogy egy adott parancs milyen típusú (pl. built-in, alias, külső parancs stb.).
3. **Egy parancs elérési útvonalának megkeresése**: A `command -w <parancs>` parancs megmutatja, hogy egy adott parancs hol található a fájlrendszerben.
Fontos megjegyezni, hogy a `command` parancs a POSIX szabványon alapul, így a legtöbb UNIX-alapú rendszeren, így a Linux disztribúciókon is használható. Ez egy disztribúciófüggetlen megoldás a rendelkezésre álló parancsok listázására.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
A bash shellbe beépített parancsokat a "help" -el tudod kilistázni.
De innen persze sok minden hiányzik. Nálam pl az "ls" -t vagy a "chmod"-ot sem listázza ki meg sok mást.
Ezen kívül ott a "compgen" parancs. A "compgen -c" pl. kilistázza az összes létező parancsot amit terminálból tudok futtatni, ebbe külső programok is beletartoznak.
Ez nálam összesen 3736 parancs.
Ezt úgy tudod megnézni, hogy "compgen -c | wc -l".
Egy adott parancsról felhasználási útmutatót, példákat a "man" paranccsal tudod elolvasni. A legtöbb persze angolul van. Pl. "man cp". 'q' -val pedig kilépsz belőle.
Rövidebb leírást a --help kapcsoló ad. Például: "cp --help"
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!