Príkazový riadok (alebo tiež shell) je používateľské rozhranie pre prácu s operačným systémom. Shell interpretuje príkazy, ktoré mu my zadávame a spúšťa programy, ktoré komunikujú s jadrom. No a jadro pristupuje k hardwaru a vykonáva, čo sme mu my zadali (napríklad maže súbory na pevnom disku). My sa budeme venovať najpoužívanejšiemu linuxovému shellu - BASHu. Medzi iné shelly patria TENEX C shell (tcsh), Korn shell (ksh) či Almquist shell (ash). V prvých verziách Unixu sa využíval Bourne shell (sh) a v dnešnej dobe každý operačný systém vychádzajúci z Unixu má nejaký ekvivalent Bourne shellu. V Linuxe to je, ako som už spomínal, najčastejšie BASH, ktorý je s Bourne shellom kompatibilný, ale je oveľa bohatší na funkcie. BASH (Bourne-again shell) bol naprogramovaný v roku 1987 Brianom Foxom ako súčasť projektu GNU. V grafických prostrediach Linuxu existujú grafické emulátory terminálu, napríklad v KDE to je program konsole, ktorý si môžeme v nastaveniach schém upraviť napríklad aj tak ako to vidíte na mojom screenshote.
Konsole - emulátor terminálu v KDE
No... dúfam, že som vás na začiatok neodradil množstvom cudzích slov, a tak sa môžeme pustiť do základov práce s BASHom.
Na začiatok ešte pár najzákladnejších informácií, ktoré si dobre zapamätajte:
- Linux má inú adresárovú štruktúru
- Linux je "case sensitive", rozlišuje veľkosť písmen, čiže mu nie je jedno, či názov príkazu, súboru alebo adresára napíšete Takto, TAKTO, takto alebo TaKtO :)
- vo Windowse sa jednotlivé zložky oddeľovali opačnou lomkou "\", v Linuxe sa oddeľujú klasickou "/".
- aktuálny adresár (čiže adresár, v ktorom "sa nachádzame") môžeme zapísať takto "./". Domovský priečinok aktuálne prihláseného používateľa môžeme zapísať znakom "~" (vyslovuje sa "tilda" a napíše sa kombináciou kláves pravý Alt + A).
- príkaz sa skladá z tela a spravidla aj rôznych parametrov
Tu je na mieste spomenúť niekoľko vlastností linuxových shellov (v našom prípade BASH), ktoré nám vedia výrazne urýchliť prácu v príkazovom riadku:
Prvou je história použitých príkazov, ktorú niektorí zaiste poznáte aj z MS DOS-u. Pohybuje sa v nej pomocou šípok hore a dole. Tieto príkazy je možné, samozrejme, editovať a znovu spúšťať.
Druhou vlastnosťou, na ktorú si určite rýchlo zvyknete, je dopĺňanie názvov príkazov, súborov a adresárov pomocou klávesy TAB. Ak máme v aktuálnom adresári súbory tux.png a penguin.png, napíšeme napríklad príkaz rm -i t
a stlačíme TAB, BASH doplní celý názov súboru na rm -i tux.png
. Prvé znaky mena súboru (resp. priečinku, príkazu) ho však musia jednoznačne identifikovať. Preto, ak by sme mali v adresári súbory croatia01.jpg, croatia02.jpg a croatia03.jpg, zapísali príkaz rm -i c
a stlačili TAB, BASH by nám meno súboru doplnil až do miesta, kde sa tieto súbory líšia, čiže na rm -i croatia0
. Ak v tomto momente klávesu TAB stlačíme ešte raz, vypíšu sa nám všetky súbory, ktoré začínajú na "croatia0":
ondrej@susanne:~/fotky$ rm -i croatia0
TAB
croatia01.jpg croatia02.jpg croatia03.jpg
ondrej@susanne:~/fotky$ rm -i croatia0
Teraz by sme mohli napísať napríklad "2", stlačiť opäť TAB a meno súboru by sme mali kompletné aj s príponou. Presne to isté sa dá robiť aj v prípade príkazov - dopĺňať ich mená či vypisovať všetky, ktoré sa začínajú na zadané znaky. Ak v tom získate istú prax a zručnosť, budete v shelli vedieť podstatne rýchlejšie prechádzať adresármi a vykonávať rôzne operácie so súbormi ako v nejakom grafickom súborovom manažérovi.
Základné príkazy BASHu a ich použitie
cd (z anglického change directory - zmeň adresár) - použitie príkazu je jednoduché - cd a adresár, kde chceme vojsť. Ak sa chceme posunúť o adresár vyššie, zadáme príkaz cd ..
(medzera + dve bodky).
ondrej@susanne:/home$ cd ondrej/fotky/
ondrej@susanne:~/fotky$
Na zistenie názvu a cesty priečinku, v ktorom sa nachádzame, použijeme jednoduchý príkaz pwd (z angl. print working directory).
ondrej@susanne:~/fotky$ pwd
/home/ondrej/fotky
Nový adresár vytvoríme pomocou príkazu mkdir (z angl. make directory). Napríklad "mkdir Dokumenty" vytvorí adresár Dokumenty v aktuálnom adresári. Prázdny priečinok odstránime príkazom "rmdir Dokumenty" (remove directory). Ak obsahuje ďalšie súbory, BASH vyhlási rmdir: `Dokumenty/': Directory not empty
, a preto ho musíme zmazať príkazom rm -r Dokumenty/
(viac o príkaze rm sa dočítate ďalej).
ls (z angl. list) - tento príkaz sa používa na výpis adresárov a súborov zo zadaného adresára.
ondrej@susanne:/home$ ls ondrej/fotky/
2005 croatia01.jpg croatia02.jpg croatia03.jpg
Ak chceme vypísať obsah aktuálneho adresára, stačí zadať iba príkaz ls
. Tento príkaz má aj niekoľko zaujímavých argumentov:
- -a - vypíšu sa aj skryté súbory a adresáre (čiže tie, ktorých meno začína bodkou)
- -l - detailný výpis aj s právami, dátumom zmeny, veľkosťou súborov atď.
- -F - na koniec názvu súboru sa pridá znak, ktorý bude charakterizovať typ súboru (napr. "/" pre adresár, "*" pre spustiteľný súbor...)
- -R - obsah sa vypíše rekurzívne, čiže vrátane obsahu podadresárov
- -h - pri tomto argumente sa veľkosť súboru nebude vypisovať v bytoch, ale v kB, MB, GB
- --color - adresáre a rôzne typy súborov budú farebne rozlíšené
ondrej@susanne:~/fotky$ ls -lFh --color
total 2.6M
drwxr-xr-x 2 ondrej ondrej 4.0K 2005-08-10 13:39 2005/
-rwxr-xr-x 1 ondrej ondrej 840K 2005-08-10 13:37 croatia01.jpg*
-rwxr-xr-x 1 ondrej ondrej 973K 2005-07-21 13:30 croatia02.jpg*
-rwxr-xr-x 1 ondrej ondrej 780K 2005-07-13 09:26 croatia03.jpg*
Ako vidíte, ls má mnoho nádherných argumentov :). Viac nájdete v man ls
.
Pri tomto príkaze si spomenieme aj funkciu zástupných znakov. Ak chceme zobraziť trebárs všetky súbory začínajúce sa na písmeno a, zadáme príkaz ls a*
(znak "*" nahrádza ľubovoľný počet znakov v mene súboru). Ak by sme zadali príkaz ls a?
, vypísali by sa nám všetky súbory začínajúce sa na a, ktoré majú v názve dva znaky (pretože znak "?" nahrádza práve jeden znak v mene súboru). Zástupné znaky sa využívajú aj v mnohých iných príkazoch (napr. cp, mv, rm).
cp (z angl. copy) - pomocou tohto príkazu môžeme kopírovať súbory a adresáre. Použitie: "cp [argumenty] /zdrojovy/adresar /cielovy/adresar".
- -i - bude sa vyžadovať potvrdenie prepísania súboru rovnakého mena
- -r - rekurzívne kopírovanie (čiže aj obsah podadresára)
mv (z ang. move) - príkaz na presúvanie súborov a adresárov. Syntax je podobná ako pri cp, ale príkaz mv napríklad nemá argument -r (rekurzívne), pretože by nemal význam :). Takisto sa používa aj na premenovanie súborov:
ondrej@susanne:~/fotky$ mv croatia01.jpg na_plazi.jpg
rm (z angl. remove - odstrániť) - príkaz na odstránenie súborov a adresárov. Niektoré dôležité argumenty tohto príkazu sú identické ako argumenty predchádzajúcich príkazov:
- -r - rekurzívne mazanie, tzn. aj podadresáre so súbormi
- -i - bude vyžadovať potvrdenie každého zmazania
- -f - argument, po ktorom nebudú potrebné žiadne potvrdenia a nebudú sa zobrazovať žiadne výpisy
V niektorých distribúciách sa príkaz rm
zvykne "aliasovať" na rm -i
(čiže ak zadáte rm
, príkaz prebehne aj s argumentom -i), aby sa predišlo nešťastnej strate dát, ktorá môže mať neblahé následky. Zaiste niektorí z nás poznajú ten pocit beznádeje a paniky po nenávratnej strate dát :).
Možno ste sa už stretli s príkazom rm -rf /
. Ak ho spustí root, obsah všetkých diskov ("/") bude rekurzívne ("-r") zmazaný bez akéhokoľvek potvrdzovania ("-f"). Preto ho použite len v prípade, že naozaj viete, čo robíte. Tento príkaz je aj častým predmetom rôznych vtipov, tak si dajte pozor, aby ste ním neboli aj vy ;).
more - príkaz slúžiaci na zobrazenie textového súboru.
man - tu nájdete všetky podrobnosti ohľadom každého príkazu, man prikaz
vám totiž zobrazí podrobný manuál. Pohybuje sa v ňom šípkami hore a dole a ukončuje sa klávesom Q.
emacs - veľmi dobrý textový editor, určite sa vám zíde, keď budete potrebovať editovať nejaké konfiguračné súbory v shelli a nebudete pri tom mať grafické prostredie. Je pomerne nenáročný na obsluhu. Stačí si zapamätať, že menu vyvoláte pomocou F10 :). Samozrejme, potrebujete ho mať nainštalovaný.
links - textový internetový prehliadač. Takisto ako emacs, je potrebné ho zvlášť nainštalovať. Zaiste ho využijete pri vyhľadávaní problémov v googli :) Menu sa zobrazí klávesom ESC.
V tomto článku som vám chcel predstaviť linuxový príkazový riadok - BASH - a jeho najzákladnejšie použitie. Viac nájdete v manuálových stránkach jednotlivých príkazov. Verím, že sa už v Linuxe aj bez grafického prostredia nestratíte.
Tento článok si môžete stiahnuť aj v PDF formáte.
passwd root
.bash: /desktop/wpa_supplicant: No such file or directory
peter@peter-asus:~$ /etc/desktop/wpa_supplicant
bash: /etc/desktop/wpa_supplicant: No such file or directory
peter@peter-asus:~$
mam nainstalovane ubuntu skusil som to aj zakladnou formou
peter@peter-asus:~$ sudo aptitude install wpa_supplicant
[sudo] password for peter:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Couldn't find any package matching "wpa_supplicant". However, the following
packages contain "wpa_supplicant" in their description:
wpagui
Couldn't find any package matching "wpa_supplicant". However, the following
packages contain "wpa_supplicant" in their description:
wpagui
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 129 not upgraded.
Need to get 0B of archives. After unpacking 0B will be used.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
a to iste mi robi aj pri flash player co mi moyte poradit ?
...a tiez by mozno pomohlo porovnanie tychto prikazov s MS DOS prikazmi aj s parametrami.. existuje nieco take ako slovnik DOS - SHELL?
s linuxom som zacal nedavno, (teda s desktopom) mam aj server na ktorom bezi ubuntu server 8.04 a na desku mam Fedoru 9 a som spokojny este raz dik za clanok ;)
Prosim vas neviete ako instnem (presnejsie nastavim alebo opravim...) tlaciaren hp deskjet 845c v linuxe Ubuntu (8.10 ak sa nemylim) verziu jadra si nepamatam ale mala by byt najnovsia...
Ono aby bolo jasne tlaci to ale hovadiny (typu %mdj%kfnb5gd4hf4hg3) nieco ako ked otvorite binarny subor v dakom notepade :)
Tak prosim pomozte (inak som fanusik Linuxu a vo win xem pracovat iba minimalne, uplny zaciatocnik nie som uz nieco viem ale napr konzolu moc neovladam - presnejsie pozna iba par prikazov)
A bol by som rad keby ste okrem navodu pridali vysvetlenie ako/preco aby som nebol vytrety :)
Diki za kazdu pomoc
nasiel som dost velku nezrovnalost v clanku, neviem odkedy je linux presnejsie bash case sensitive, mam debian lenny && gentoo 2.5.25 intel i686 obe platformy, bash (bourne again shell) a pouzivam xterm. test som dokonca robil aj v konsole a stale nebol bash case sensitive..
test: PING google.com => error
mkdir LAMA && cd lama => error
mkdir jEleN && cd jelen => error
mC => error
ls -LAf => bad parametre
kua tak ako autor clanku dosiel nato ze "linux" je case sensitive?
fixnite to prosim a dik za priestor...
LAME FOREVER