Tipy a triky pro pokročilé - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Tipy a Triky

Tipy a triky pro pokročilé

7. září 2005, 00.00 | V dnešním článku navážeme na nedávné tipy a triky, které se orientovaly především na běžné uživatele a začátečníky. Tyto tipy jsou naopak určeny spíše zkušenějším uživatelům, kteří více využívají unixový základ systému Mac OS X. I tak si ale přijdou na své i méně zkušení uživatelé.

V dnešním článku navážeme na nedávné tipy a triky, které se orientovaly především na běžné uživatele a začátečníky. Tyto tipy jsou naopak určeny spíše zkušenějším uživatelům, kteří více využívají unixový základ systému Mac OS X. I tak si ale přijdou na své i méně zkušení uživatelé.


Obarvení výstupu příkazu ls v terminálu

Především uživatelům, kteří před Mac OS X vyzkoušeli jiný unixový systém, jistě v terminálu u příkazu ls chybí barevné odlišení vypsaných souborů podle typu. Ls v Mac OS X to samozřejmě umí, ne však v základním nastavení. Podíváme se tedy, jak barevný výstup zapnout.

Prvním krokem je zapnout podporu barevného výstupu v terminálu. V Preferences aplikace Terminal nastavte položku "Declare terminal type ($TERM) as: " na "xterm-color". Nyní můžete vyzkoušet barevný výstup ls zadáním příkazu ls -G. Pokud ale chcete barevný výstup na trvalo i bez parametru -G je nutné do souboru /etc/bashrc přidat následující text:

# Enable colored output for ls
CLICOLOR='xterm'
export CLICOLOR

Nyní můžete otevřít nové okno terminálu, zadat příkaz ls a obdivovat jeho barevný výstup. Ale to není všechno. Můžete si nastavit i vlastní barvy. Pod výše přidaný text v souboru bashrc přidejte ještě následující:

LSCOLORS='**********************'
export LSCOLORS

kde hvězdičky nahradíte řetězcem jedenácti párů písmen definující barvy jednotlivých typů souborů. Páry jsou zadány ve tvaru tp, kde t je barva textu a p barva pozadí, a jejich pořadí je:

  1. adresář
  2. symbolický odkaz
  3. socket
  4. roura
  5. spustitelný soubor
  6. blokové zařízení
  7. znakové zařízení
  8. spustitelný soubor s nastaveným bitem setuid
  9. spustitelný soubor s nastaveným bitem setgid
  10. adresář s povoleným zápisem pro "others" a zapnutým sticky bitem
  11. adresář s povoleným zápisem pro "others" a vypnutým sticky bitem

písmena odpovídají jednotlivým barvám takto:

a - černá
b - červená
c - zelená
d - hnědá
e - modrá
f - fialová
g - světle modrá
h - světle šedá
A - tučné, černá, obvykle se projeví jako tmavě šedá
B - tučné, červená
C - tučné, zelená
D - tučné, hnědá, obvykle se projeví jako žlutá
E - tučné, modrá
F - tučné, fialová
G - tučné, světle modrá
H - tučné, světle šedá - vypadá jako zářivá bílá
x - implicitní popředí nebo pozadí

implicitně jsou barvy nastaveny na 'exfxcxdxbxegedabagacad'. Tedy adresáře modře, symbolické odkazy fialově, atd...

Jistě souhlasíte, že bez obarveného výpisu příkazu ls je práce se soubory terminálu přinejmenším obtížná, a přitom stačí tak málo.


Když UNIXová přístupová práva nestačí

Unixová přístupová práva k souborům mají poměrně flexibilní návrh, někdy ale jejich schopnosti nestačí. A právě této situaci se budeme věnovat. Většina uživatelů je s konceptem unixových přístupových práv obeznámena, pro jistotu si ale zopakujeme, jak fungují.

Každý soubor v systému má tři skupiny oprávnění. Owner (majitel), Group (skupina) a Others (ostatní). V rámci každé skupiny je možno povolit nebo zakázat čtení, zápis nebo spouštění. Každý soubor může mít pouze jednoho majitele a jednu skupinu. Tato práva můžeme u souborů zkontrolovat příkazem ls s parametrem -l (podrobný výpis). Typický výstup může vypadat například takto:

drwxr-xr-x    3 viktor  viktor        102 Aug  9 19:16 Applications

Nás zajímá především začátek, tedy řetězec drwxr-xr-x. D značí, že daný soubor je adresář. Pak následují tři trojice oprávnění. V tomto případě tedy může majitel (uživatel viktor) číst, zapisovat i spustit (což v případě adresáře znamená ho otevřít) skupina (skupina viktor) a ostatní mohou soubor shodně pouze číst a spustit, nikoliv do něj zapsat.

Zdálo by se, že tento systém bohatě postačí a nic složitějšího není potřeba. Představte si ale následující situaci: Chcete dovolit jednomu uživateli, třeba Pepovi, zapisovat do jedno z vašich souborů ale ne ho číst. Jediným způsob, jak toho docílit, je vytvořit novou skupinu, řekněme třeba "Kolegove", ve které budete jen vy a Pepa. Pak nastavíte souboru jako skupinu tuto nově vytvořenou skupinu a povolíte skupině zapisovat do souboru. To ještě jde, ale co když budete chtít dalšímu uživateli, Markovi, dovolit soubor číst? Když přidáte Marka do skupiny Kolegove, bude moci do souboru zapisovat. Když ale přidáte skupině Kolegove právo číst ze souboru, bude moct Pepa váš soubor číst, a to přece nechcete. Nemůžete nic dělat, unixová oprávnění vám tuto situaci neumožní vyřešit.

A právě v tuto chvíli přijdou na řadu Acces Control Listy, jedna z novinek systému Mac OS X 10.4. Každé z pravidel má tři části: kdo akci provádí, jakou akci provádí a jestli mu tato akce bude dovolena nebo zakázána. Pravidla jsou brána popořadě, a první, které je aplikovatelné, se použije. V serverové verzi systému je aplikace Workgroup Manager, která s ACL pracuje a také je umí na příslušném disku aktivovat. V desktopové verzi tento program nenajdete a musíte tedy ACL aktivovat z terminálu příkazem:

$ sudo /usr/sbin/fsaclctl -p / -e

Terminál je také jediná možnost jak ACL u souborů editovat. Slouží k tomu příkaz chmod s parametrem +a pro přidání, -a pro odebrání pravidla. Naší neřešitelnou situaci tedy vyřeší příkazy:

$ chmod +a "Pepa allow write" soubor 
$ chmod +a "Marek allow read" soubor

Nastavené ACL u souborů pak můžete zobrazit příkazem ls s parametrem -e. Všechny schopnosti Acces Control Listů jsou nad rámec tohoto tipu, a pokud chcete mít úplnou představu, doporučuji vám k přečtení manuálovou stránku příkazu chmod.


Vymazání neposlušných souborů z koše

Jistě se vám někdy stalo, že jste chtěli vysypat koš a chybová hláška vám oznámila, že soubory není možné odstranit, protože se s nimi pracuje. Obvykle stačí se ujistit, že se souborem nepracuje žádná aplikace. Někdy se ale soubor "zapomene" a přesto, že s ním žádná aplikace nepracuje, odmítne se nechat vymazat. Pak máte v zásadě dvě možnosti. Buďto restartovat Finder (držet alt, kliknout a držet ikonu Finderu v Docku a následně vybrat položku Relaunch z kontextového menu), což nemusí být uprostřed práce žádoucí, nebo využít Terminál. Poslouží nám tyto příkazy:

$ cd ~/.Trash/

vás přesune do adresáře koše, který je ve vaší domovské složce a je skrytý díky tečce na začátku názvu.

$ rm -rf ./*

smaže obsah aktuálního adresáře (tedy koše). Význam parametrů je následující: r maže adresář rekurzivně, což znamená, že když narazí na adresář, otevře ho a smaže jeho obsah, f maže soubory bez toho, aby žádal o potvrzení, a bez ohledu na přístupová práva. Zásadní je tečka před lomítkem značící aktuální adresář, kdybyste jí vynechali, bude příkaz mazat kořenový adresář systému, což by mohlo (i když by to systém neměl dovolit) způsobit nenávratné poškození.

Tímto jednoduchým postupem tedy neposlušné soubory z koše odstraníte, aniž byste museli restartovat Finder, nebo se dokonce odhlašovat.

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Tipy a Triky  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Vymazání neposlušných souborů z koše

Autor: Ondra Nekola Muž

Založeno: 07.09.2005, 07:01
Odpovědí: 0

Je ovšem potřeba si uvědomit, že data na disku zůstanou, dokud není uzavřena aplikace, která je má otevřené. Tím rm odstraníme pouze odkazy z Trashe na daný i-node.

Odpovědět na příspěvek

RE: Vymazání neposlušných souborů z koše

Autor: Adam Nohejl Muž

Založeno: 07.09.2005, 16:47

Finder se bohuzel nekdy vzpira smazat i polozky, ktere ve skutecnosti nejsou otevrene, jen maji tusim nejaky flag ve FinderInfu. Ty lze samozrejme smazat i bez prepinace -f.

V clanku uvedeny postup se tyka jen polozek, ktere jsou na stejnem souborovem systemu (disku/svazku/oddilu) jako domovska slozka. Ostatni polozky v kosi jsou na danem disku v .Trashes a daji se smazat takhle:

rm -rf /Volumes/*/.Trashes/`id -u`/*

Jinak ten prikaz rm -rf ./* je jednodussi a bezpecnejsi napsat jako rm -rf *, nehrozi vynechani tecky. A nedoslo mi proc neni v clanku proste rm -rf ~/.Trash/*, bez predchozi zmeny adresare. Takhle je to IMO jako drbat se levou rukou na pravem uchu:).

Odpovědět na příspěvek

RE: RE: Vymazání neposlušných souborů z koše

Autor: Zzen Muž

Založeno: 11.09.2005, 12:56

Především mám za to, že používat rm -rf s nějakou hvězdičkou v parametru je téměř neslušné. Riziko fatální chyby je na rozdíl od téměř všech ostatních příkazů opravdu velké.

Když už autor nemá dost prozíravosti, aby uvedl příkaz jak Adam správně poznamenal jako rm -rf ~/.Trash/*, měl by aspon čtenáře varovat velmi důrazně, nikoliv nejednoznačným

"kdybyste jí vynechali, bude příkaz mazat kořenový adresář systému, což by mohlo (i když by to systém neměl dovolit) způsobit nenávratné poškození"

Vážený pane Charypare, vyzkoušejte si příkaz na svém disku jestli máte dojem, že by to nenávratné poškození způsobit nemělo! :-/ Garantuji vám, že poškození bude rozsáhlé a nenávratné.

/System a /Library by měly zůstat převážně v pořádku (pokud se to navíc nepouští pod rootem), nicméně /Applications vám asi dost prořídnou a to už nemluvím o katastrofě jménem /Users.

Odpovědět na příspěvek

RE: RE: RE: Vymazání neposlušných souborů z koše

Autor: Viktor Charypar Muž

Založeno: 11.09.2005, 20:35

Měl jsem na mysli nenávratné poškození systému samotného. K tomu by dojít nemělo, pokud nebude příkaz použit superuživatelem. Ztráta dat (včetně aplikací) je podle mého názoru naprosto logickým důsledkem použítí příkazu rm na kořenový adresář.

Odpovědět na příspěvek

dík

Autor: Jaroslav Vít Muž

Založeno: 07.09.2005, 07:32
Odpovědí: 0

Děkuju za radu s obarvením ls, přešel sem z linuxu a tohle mi scházelo ke štěstí :)

Odpovědět na příspěvek

RE: dík

Autor: Don Martinello Muž

Založeno: 07.09.2005, 12:45

Ono sa to da este aj elegantne cez alias :))

pre bash ->

user@Apple:~]$ alias ls="ls -G"

Inak je farebny vystup v terme asi len otazka zvyku. Ja som nemal potrebu ofarbovat nikdy :LOL:.

Odpovědět na příspěvek

RE: RE: dík

Autor: Petr Muž

Založeno: 07.09.2005, 13:51

a ještě ten řádek

alias ls="ls -G"

uložit do souboru ~/.bashrc

Odpovědět na příspěvek

change file flags

Autor: grigg Muž

Založeno: 07.09.2005, 23:15
Odpovědí: 0

Pěkné. Je sice třeba, si uvědomit, kdy byla standartní unixová práva vymyšlena a jak dlouho setrvala a setrvají. ACL je vlastně jenom rozšíření pro opravdu multi-uživatelské prostředí. Nevím jak MacOSX (v Linuxu jsem nic podobného nenašel), Free/Net/OpenBSD mají ještě jednu "hračku" chflags. To už je ale opravdu vše kolem práv.

Co v článku postrádám je zmínka, že ACL jsou dominantní a mají přednost před právy unixu.

Odpovědět na příspěvek

RE: change file flags

Autor: grigg Muž

Založeno: 07.09.2005, 23:17

Darwin change file flags má, takže MacOSX na 99,9% takzy.

Odpovědět na příspěvek

RE: change file flags

Autor: Viktor Charypar Muž

Založeno: 07.09.2005, 23:40

Dominance ACL nad unixovými právy jsem si vědom. Jenže k ACL by bylo třeba dodat ještě spoustu dalších detailů nad rámec tohoto článku... Proto jsem mimo jiné vypustil i tento, který mi nepřipadal až tak důležitý a navíc jaksi vyplývá z logiky věci. Nicméně díky za upozornění.

Odpovědět na příspěvek

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: