Hlavní navigace

ls vs. file manager

Stanislav Kuchár

Denne kopírujeme, editujeme, mažeme, konvertujeme súbory. Na to aby sme vedeli s akými súbormi pracujeme, musíme poznať ich meno, prístupové práva, atď. Ako na to? Príkaz ls alebo niektorý z nepreberného množstva file managerov. Ak však ls trochu pocvičíme, môže z neho byť poslušný psík.

ls 

File manager je naproti tomu takmer vždy pekne grafický: súbory zobrazuje ikonkami podľa prípony či typu súbory. Umožňuje základné operácie so súbormi. Pracuje sa s ním omnoho intuitívnejšie ako s prepínačmi na príkazovom riadku ls, stačí len klikať. V pamäti však zaberá omnoho viac miesta a musí stále bežať (pokým s ním pracujeme).

Niekde uprostred sú textové file managery typu mc. Zobrazujú všetko v textovom termináli a sú orientované na rýchle ovládanie pomocou klávesnice.

Každý z nich má očividne výhody aj nevýhody.

Grafických programov pribúda každým dňom a sú čím ďalej, tým lepšie. Skúsení UNIX správcovia však príkazový riadok odmietajú pustiť k vode. Prečo? Je to najrýchlejší a rokmi overený spôsob práce. Posúdte sami:

  • niekoľkými voľbami na príkazovom riadku možno dosiahnuť to, na čo by bolo treba množstvo klikov vo file manageri (zobraz súbory začínajúce sa malým písmenom od najstaršieho po najmladší: ls -trd [a-z]*)
  • na cudzom počítači nemusí byť práve váš obľúbený file manager, ale ls je tam vždy
  • najčastejšie sa používa ls -l, teda výpis so všetkými detailami – okamžite si všimnete či môžete do súboru zapisovať, alebo vám nebodaj niekto crackol počítač a nevinne vyzerajúci program mknod je setuid
  • nehovoriac o tom, že spravovať vzdialený počítač cez textový terminál je omnoho rýchlejšie ako cez grafické okno (vzhľadom na možnosti dnešného internetu).

Tým nechcem povedať, že ja používam výhradne ls. I ja mám file manager a používam ho na lokálnom počítači, ale keď už mám použiť ls, tak si to spríjemním.

ls

ls 

alias

Nič nie je stratené, alias vám ušetrí pár úderov do klávesnice. Vytvorí „nový príkaz“, na ktorý sa potom možno odkazovať jeho menom.

Najčastejšie sa používa ls -l, dokonca omnoho častejie ako ls, preto by bol na mieste príkaz l, ktorý urobí presne to isté ako ls -l. Nič ľahšie:

        alias l='ls -l'

Odteraz vždy keď ťuknete l a Enter, vykoná sa príkaz ls -l (vypíše obsah aktuálneho adresára v dlhom formáte). l je teraz synosymom pre list.

Takto si ho môžeme definovať v aktuálnom shelli. Ten si ho zapamätá dokiaľ ho neukončíte. Ak ho chcete mať aj po ďalšom prihlásení, preba ho pridať do súboru .bash_profile, ak používate bash, alebo .profile pre ksh, vo vašom domácom adresári.

Mimochodom, dosť často býva dokonca samotné ls aliasnuté na farebné ls: alias ls='ls --color=auto' práve v súbore  ~/.bash_profile.

Funguje to dokonale, chcete vylistovať obsah nejakého iného adresára: l /cesta/adresár a vidíte čo je v ňom.

Ale čo keď je súborov priveľa? (skúste taký adresár /etc) Určite poviete: „To je jednoduché, stačí to stránkovať cez less“:  l /etc | less

Áno, to zaberie, ale stáva sa to tak často, že by si to zaslúžilo tiež nejakú skratku. Lenže alias má isté obmedzenia. Nahradí vždy meno aliasu príkazom, ktorý sme mu priradili a ktorý je pevne definovaný. Ale my potrebujeme v strede tohto príkazu napísať meno adresára, ktoré sa mení. Na toto je alias krátky.

funkcie

Ale shell má aj na toto recept. Urobíme funkciu ll, ktorá ako argument dostane meno adresára:

        ll()
        {
            ls -l "$@" | less
        }

Premenná shellu $@, obsahuje všetky argumenty s ktorými sme program alebo funkciu volali.

Použitie je jednoduché: ll /etc.

ll 

Takúto funkciu si môžeme tiež pridať do ~/.bash_profile, pre ďalšie použitie.

Zopár tipov na listovanie do vášho ~/.bash_profile:

Aliasy

        alias ls='ls --color=auto'
        alias l='ls -l'

Funkcie

        la() { ls -la "$@"; }
        ll() { ls -la "$@"|less; }
        lt() { ls -lat "$@"|less; }
        lr() { ls -laR "$@"|less; }
        lf() { ls -la $floppy "$@"; }
        lc() { ls -la $cdrom "$@"; }
        lz() { ls -la $zipdisk "$@"; }

Pred tým, než pomenujete nový alias či funkciu, si otestujte, či už neexistuje príkaz s menom, ktoré chcete použiť. Jednoducho ho napíšte do príkazového riadku. Ak zareaguje nejak inak než bash: meno: command not found, tak musíte hľadať iné meno. Alias i funkcia majú prednosť pred programami a prekryli by tento príkaz. Ale možno práve to môže byť zámer.

Nielen ls

Hovorili sme síce o príkaze ls, ale podobne si môžete zjednodušiť aj iné príkazy, ktoré často používate. Čo tak napríklad cd (change directory) do často používaných adresárov?

Ďalšie užitočné aliasy (pre inšpiráciu).

        alias u='cd ..'
        alias c=clear
        alias f=finger
        alias p=ping
        alias t=traceroute
        alias df='sync;df -h'
        alias kick='kill -KILL'
        alias bc='bc -q'

Tipy na ďalšie čítanie

  • man alebo info bash
  • man alebo info ls
Našli jste v článku chybu?