Seznam příkazů v linuxu

Cau, pred par dny jsem v konzoli nevim jakym prikazem zobrazil seznam snad vsech prikazu ktere se daji pouzit. Help ani man to asi neni protoze jsem je zkousel. Nevite nekdo cim je mozne to vyvolat? popripade nejaky link se seznamem VSECH prikazu? Pocitam s tim ze nektere jsou vazany na jadro “linux” a ty jsou pozitelne vsude a jine jen na distribuci tudiz jen v te konkretni distribuci. Me zajimaji spis jen ty vazane na jadro. Na netu je jich vsude plno ale uceleny seznam jsme nenasel.

Jestli to nebude automatické doplňování…
Otevři si terminál a stiskni dvakrát klávesu Tab.

Bylo to ono! Mas u me velke bezvyznamne +:)) Ne, vazne diky presne to jsem potreboval! Akorat mi neni jasne proc nektere z tech prikazu nenajde “man”. Stahl jsem si z http://www.linux.org/docs/ldp/index.html seznam prikazu snad vsech z manualovych stranek. Jedine vysvetleni ze ty ktere tam nejsou nepatri mezi standartni ale jsou to nejake dalsi programky.
Dale uvedu jeden priklad ktery mi neni jasny. V konzoli napisu df a jede to stejne jako plno jinych prikazu. Napisu lspci a nejede. Chapu je ulozen v /sbin proto se musi napsat /sbin/lspci. Ale df je v /bin a take se nemusi psat cela cesta. Mam chapat tak ze cokoliv napisu se implicitne hleda v /bin a pokud to tam neni musi se psat cela cesta?

Akorat mi neni jasne proc nektere z tech prikazu nenajde “man”.

To, že máš nainstalovaný nějaký program ještě neznamená, že je manpages. Prostě tam být může, ale nemusí.
Nějaká nápověda se zpravidla napíše po napsání
program --help

Mam chapat tak ze cokoliv napisu se implicitne hleda v /bin a pokud to tam neni musi se psat cela cesta?

Pokud něco napíšeš, hledá se to v $PATH. Pokud to tam není, program nenalezen. Tu proměnnou můžeš změnit.
echo $PATH

root ma nastavenou $PATH i do /sbin a /usr/sbin ostatni uzivatele ne - duvod je ten, ze prikazi v sbin se zpravidla pouzivaji pouze pro administraci systemu a uzivatel je tedy nepotrebuje. Manualove stranky existuji pouze pro ty prikazy pro ktere je nekdo napsal. Dalsi napoveda je napr. pres prikaz “info”.

napsal jsem echo $PATH a vzpsalo to nejake cesty predpokladam ze ty kde se hleda prikaz ktery napisu. Jak to PATH muzu zmenit abych si tam pridal dalsi cesty? Kde je konfig soubor? Dalsi vec, nevim poradne jak se zeptat:) Zacnu z gruntu… V linuxu jsou prikazy(programy) implicitni tzn v kazdem linuxu-vazane na jadro, pak takove programy ktere si sam doinstaluju-ty me nezajimaji. KDE sezenu kompletni prehled tech univerzalnich ktere jsou vazany k jadru? Psali jste ze v man nemusi byt popsano vse. Pri stisku 2xTAB taky nevypise vse. Existuje nejaka org ktera toto zastituje a stara se o to? O jakysi seznam? Nebo je to proste curbes?? Info jsem zkousel no nic moc spis me zajima jak vypsat prikazy z manualu? Dam man ono se to zepta kterou stranku…vim ze jich je myslim 8. At dam cokoli tak nenajde. Jede jen pokud to zadam s konkret prikazem… ale ja chci seznam:(
Dik za radu pomohla mi a jeste bych si malinko dovolil znesvetit toto forum windowsem:) Dam start -> spustit a napisu prikaz. Zajima me to co v linuxu jaka je implicitne dana cesta? windows/System32? Myslim ze ne protze jsem se dival a najde i z jinych cest. Diky za radu.

Doporucuji vasi pozornosti “bash”. Vas pohled na vec je sice investigativni ale ne uplne spravny, navic to na co se ptate je proste popsano vsude mozne a chce to holt trochu studia, nemuzeme to tady servirovat vsechno.

Kernel Linuxu ZADNE prikazy nema. Vsechny prikazy systemu jsou bud soucasti shellu (ulita je celkem vystiny preklad) nebo jsou to samostatne programy. Nejbeznejsi shell v soucastnosti na Linuxu je “bash” (kdyz chcete ty windows i tam existuje cosi jako shell - pousti se to cmd - jen je to proti bashi celkem chudacek).

Tedy: Promennou systemu PATH zmenite tak jako jakoukoli jinou promennou shellu:
export PATH=/nova/cesta:$PATH
Konfiguraci PATH muzete menit ve svem profilu (man bash vam jiste vysvetly vice). Implicitni nastaveni se deje v nasteveni bashe - tedy v /etc/bashrc a v /etc/profile.

Bash je to co povazujete za univerzalni sadu prikazu. Jeho prikazy ziskate napr. prikazem “help” pripadne “man bash” ze. Upozornuji ze existuji i jine shelly, proto se tato sada muze lisit.

Stisk 2xTAB vypise vsechny dostupne spustitelne soubory z $PATH.

Zadna organizace zastitujici nejaky seznam prikazu Linuxu neexistuji. Prikazy - tedy shelly a programy, vytvari jejich autori podle sve potreby. Novy prikaz muzete klidne vytvorit jako program v shellu. Jedine co by se dalo povazovat za jistou centralu “prikazu” je gnu.org.

Pokud chcete vsechny manualove stranky podivejte se do /usr/share/man. Zajimat by vas mohl i prikaz “man man” :).

Implicitni cesta v linuxu je $PATH - STEJNE jako ve Windows! :slight_smile: Jen o tom, ze i Windows pouzivali/ji PATH uz moc lidi nevi. Tusim staci napsat “type PATH” ale uz si to moc nepamatuju.

Chci se ujistit ze to chapu spravne… dost jsme nad tim premyslel a hledal na netu. Chapu ze je nekolik shellu a kazdy se nejak lisi. Zustanme u bashe. BASH je podle Vaseho popisu jakysi balik programu cp,mount, ls atd. Jake programy obsahuje najdu v man bash. Promenna PATH s timto nema nic spolecneho podle toho co rikate. Muzu ji nastavit x cest a pak pustim cokoliv odkudkoliv pouhym napsanim jmena programu(aniz bych vypisoval cestu). Mel jsem vzdy za to ze terminal(to kam pisi prikazy) je bash-tam pisu jmena programu a on je spousti. V extremu by se dalo rict ze bash(jako balik nekolika programu) neni potreba. Potrebuju terminal a pak staci samostatne programy. Napisu cestu/…/jmeno a mam co potrebuji.

SHELL(BASH) je vlastne jen OBAL(ulita,archiv) … ktera bez sveho obsahu(tech par programku) neni nic-> jako prazdny obal. V manualu jsou jeste dalsi fce asi skriptovani a ostatni ve kterych se moc nevyznam. Me zajimaji zatim jen programky…

Kdyz mu ted zmenim PATH tak aby k nim nevedla tak je pouhym napsanim jejich jmena nespusti-> chovaji se jako jakekoliv jine programy… Je to tedy jen jakysi archiv(myslim ze je mam vsechny v adresari /BIN) programu pojmenovany BASH ktery ma i nejake dalsi fce?? Archiv ktery bez sveho obsahu(programku) je jen prazdne jmeno + ty fce?

Promennou PATH mu ale muzu ty jeho programy odriznout-kdyz ji nastavim tak aby nikam neukazovala tak ke KAZDEMU prikazu v terminalu budu muset napsat celou cestu.
Zkusme se zamerit jen na programky… asi mi reknete ze ma tisic jinych dulezitych fci ale to pro me ted neni dulezite…

Je to trochu filosoficke ale snad spravne. bash je shell ktery obsahuje jakousi logickou funkcnost. Prikaz help stejne jako ty ktere vam help vypise v zadnem /bin/ ani /sbin nenajdete. (Zkuste si napr. “which help” nebo “which man”.) Shell obsahuje pouze velice zakladni prikazy zpravidla pro manipulaci s procesy. Takove ty core programky jako “ls” pak najdete v baliku coreutils.

Terminal bez shellu je k nicemu. Terminal v podstate jen spousti shell v okne Xek. Stejne tak konzole spousti shell v konzoli, hm. Pokud mate Xka a klikate na spousteni programu v menu - terminal nepotrebujete.

Posledni odstavec je vicemene spravne az na to, ze ho neodriznete od vsech funkci. Napr. cd funguje i se spatne nastavenou PATH. Je to dobre vymyslene prave na to abyste se uplne neodrizl od sveta takovou blbosti jako spatne nastavena PATH.

Trochu o tom jak to funguje se dozvite kdyz se podivate do vypisu procesu, zajimavy je treba vystup prikazu pstree - ktery ukazuje stromovou zavislost procesu - rodic-potomek. Kdyz si v bashi pustite bash a v nem pstree budete tam mit bash-bash-pstree :).

No kdyz jsme napsal which --help tak mi to napovedu napsalo. Usage: /usr/bin/which [options] [–] programname […]
Pri which help ji to vypsalo /usr/bin/which: no help in (/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/home/polo/bin)
Jinak treba ls jsem nasel v /bin, ale ten help jsem opravdu nenasel. Z toho co pises by mely existovat nejake zakladni programky ktere jsou soucasti shellu(ted myslim jednoho souboru ktery ma v sobe ty funkce(programky)). Kdyz jsem ten program(soubor) help nenasel tak to asi bude jedna z funkci shellu. Jakoby soubor v souboru:)

Shrnuti-shell je soubor ktery ma v sobe programky, ktere nenajdu na disku prave proto ze jsou jakoby vsechny nacpane v jednom souboru.
Pri vypisu helpu se zda divne ze jich ma tak malo, nektere zakladni tam nejsou(pokud teda spravne predpokladam ze help vypise kompletni seznam shellu)
Vsechny dalsi prikazy jsou soubory dodavane se systemem a nejsou univerzalni. Plyne mi z toho ze za predpokladu ze vsichni maji shell(bash) tak neni moc moznosti co s nim delat. Napr prikaz na vytvareni nebo mazani adresare tam neni tzn klidne se muze stat ze dojdu k nejakemu PC kde bude jen prikaz radka(shell) a ja nebudu moci udelat takovou banalitu jako vytvorit adresar?

Rad bych to uz cele pochopil porad me napadaji zaludne otazky:)

Jo je jinak nejaka dobra literatura co se toho tyce + kdyby tam bylo neco aj o procesech atd neuskodilo by. Mam linux prirucka ceskeho uzivatele od Vilema Vychodila, pak dokumentacni projekt ale neni to tam dostatecne podrobne popsano.

Shell se vetsinou bez podpurnych utilit neinstaluje, ale teoreticky takove situace muze nastat.

Co se literatury tyce, tak marne premyslim. Leda asi neco od o’reilly ale to je vetsinou drahe a anglicky.
http://www.oreilly.com/pub/topic/linux

OK diky a jak ses to vsechno dozvedel ty? Jen tak jak roky sly znalosti prichazely taky? Vse z netu a ze skoly? To je asi vse co se shellu tyce,Dal uz pujdu sam:)

O tomhle doporučuji výborné knihy “Linux - kapesní přehled[/url]" a "[url=http://knihy.cpress.cz/Book.asp?ID=1417]333 tipů a triků pro Linux”. Stojí tuším do dvou stovek a mohlo by se zdát, že v nich moc není. Ale zatímco většina příruček jsou takové obecné okecávačky vysvětlující na mnoha screenshotech, že se dá klikat na ikony jako ve Windows :slight_smile: tyhle dvě knihy opravdu rozebírají věci dopodrobna a všechno.

Jsou takové stručné, ale naprosto jasné. Je v nich přesně to, co člověk chce vědět, a nic víc :slight_smile: A obě jsou zejména o tom bashi, každá ale o trochu něčem jiném - vyplatí se je tedy mít zároveň.