Sisältöön
Haku:

Elefanttipuhetta


Aaargh #2

Kategoriat: Avautumiset — 13.06.2007 @ 16:37

Komentorivi - Masokistien työkalu.

12 kommenttia »

  1. Mä käytän aika paljon komentoriviä Finderin korvikkeena. Tuntuu joissain tapauksissa helpommalta.

    Mike — 13.06.2007 @ 16:38

  2. Okei, myönnetään, että se on joissakin tilanteissa tehokas vekotin ja etäyhteyksissä usein ainoa vaihtoehto, mutta hermoni kärähtivät, kun piti zipata palvelimella tiedosto ja kirosin kuinka vaikeaa siitäkin on pitänyt tehdä.

    Kymppi sille, joka suunnittelee oikeasti käytettävän komentorivin, eikä vain sellaisen, joka toimii, jos muistat ulkoa kaiken tai jaksat kahlata vaikeaselkoisia manuaaleja.

    Timo — 13.06.2007 @ 16:44

  3. Jatketaan:
    Jos siis haluat zipata komentoriviltä tiedoston, niin miten se tapahtuu?

    Äkkiseltään voisi olettaa, että toimenpide on muotoa “tee toiminto X kohteelle Y”. Niin kuin vaikkapa deletoidessa “rm tiedosto” tai siirryttäessä hakemistoon “cd hakemisto”.

    Ei tietenkään.

    zip tiedosto.txt
    zip warning: missing end signature--probably not a zip file (did you
    zip warning: remember to use binary mode when you transferred it?)

    zip error: Zip file structure invalid (tiedosto.txt)

    Huomatkaa virheilmoitus, joka antaa ymmärtää, että tiedosto on mahdollisesti siirretty väärin sen sijaan, että se sanoisi suoraan, että komento oli päin persettä.

    Pitää antaa kohde, minne se tiedosto zipataan. Eli siis zip tiedosto kohde? Ei, vaan toisin päin.

    zip tiedosto.zip tiedosto.txt
    adding: tiedosto.txt (stored 0%)

    Entäs, kun haluat zipata kansion?

    No tällöin pitää lisätä erikseen -r -vipu, jotta myös kansion sisältö tulee pakettiin mukaan.

    zip -r kansio.zip kansio
    adding: kansio/ (stored 0%)
    adding: kansio/tiedosto.txt (stored 0%)

    Ja näitähän ei voi tietysti ennalta arvata tai päätellä. Ne pitää tietää ja jos ei tiedä, niin lukea ohjeista, jotka eivät aina ihan selkeimpiä mahdollisia ole.

    Kyseisessä tekstitiedostossa oli 8 merkkiä tekstiä, joten pakkausaste on luonnollisesti olematon, siksi stored 0%.

    Timo — 13.06.2007 @ 16:55

  4. tuo -r (recursive) -vipu on kyllä sen verran universaali, että komentorivityökalujen kanssa pähkäillessä osaa jokseenkin olettaa että moinen löytyy. Asia erkseen toki sitten chmod ja muut, jotka haluavatkin -R -vivun. -r kun tarkoittaa tiedostojen oikeuksia säätäessä lukuoikeudettomuutta. Hieman nurinkurisleta tuntuva järjestys (kohde, tiedosto) on loogisempi kun ottaa huomioon että yhdellä komennolla voi zip-pakettiin lisätä useita tiedostoja, kaikki zip-tiedoston jälkeen luetellut tiedostot pakataan mukaan pakettiin, eli zip paketti.zip eka.txt toka.jpg kolmas.html.

    Jusso — 13.06.2007 @ 17:55

  5. PostgreSQL:n omaa komentokehotetta (tekisi ihan piruillessani mieli sanoa MS-DOS-kehote ;) käynnistäessä käyttäjätunnus pitää antaa -U -vivulla, sillä -u on vanhentunut. Eihän sitä kaikki voi aina toimia loogisesti. Ssh-yhteyttä ottaessa vipu on tietysti sitten -l, eikä mikään -u niinkuin user.

    Oliko jossakin tulevissa Ubuntun versioissa komentoriviä uudistettu niin, että se osaa antaa jo ehdotuksia ja ohjeistaa käyttäjää automaattisesti?

    Timo — 13.06.2007 @ 19:07

  6. Tähän voisi sanoa, että THIS IS SPARTAAAAAAA!

    Hyvää tuuria sinulla sinänsä, että zip ei esim. tehnyt tuosta tekstitiedostosta kaikessa hiljaisuudessa zip-tiedostoa kirjoittamalla sen päälle ja pistänyt sinne kaikkia hakemistossa olevia tiedostoja. Varsin ystävällisesti tehty, että huomattaa tiedoston olevan väärää formaattia, koska moni muu spartalaisempi sovellus olisi toiminut toisin.

    jane@nam:~ % zip
    Copyright (c) 1990-2006 Info-ZIP - Type ‘zip “-L”‘ for software license.
    Zip 2.32 (June 19th 2006). Usage:
    zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

    Varsin selkeästihän zip kertoo miten sitä käytetään. Tuo “recurse into directories” on mielestäni myös niin selkeästi ilmaistu kuin sen vaan voi. Olisihan tuohon voinut piirtää kuvan mukaan, mutta kai nyt jokainen lukutaitoinen selviää ilmankin :)

    Jokatapauksessa, tarjoan sinulle komentoriville ihan tolkuttoman avun: “man”-komento ja “-h”-vipu.

    Nyt vain rohkeasti harjoittelemaan, että “man zip” ja “zip -h”. Ja tätä voit soveltaa muihinkin ilkeisiin komentorivisovelluksiin. Kivaa kesää ;)

    Jane — 14.06.2007 @ 08:11

  7. http://www.macworld.com/weblogs/macosxhints/2006/12/manpages/index.php ;)

    Voisi olettaa, että systeemi on niin älykäs, ettei ylikirjoita mitään, vaan tekee uuden tiedoston. Aivan kuten Windows ja Mac OS X tekevät kun GUI:ssa zippaa tavaraa. OS X:ssä sinne ilmestyy Archive.zip ja jos sellainen on jo olemassa, niin Archive 2.zip jne.

    Eivät nuo helpit ja manuskat aina niin selkeitä ole. Tuokin help voisi näyttää edes esimerkin, mutta ei väkisin. Esim. tuosta parametrilistasta ei tiedä, mitkä ovat pakollisia ja mitkä eivät.

    Yleisviisaus on, että jos toiminnon tekemiseen tarvitsee ohjetta, toiminto on silloin huonosti suunniteltu.

    Timo — 14.06.2007 @ 09:28

  8. Graafisten ja tekstipohjaisten komenteluiden eroista on toki tapeltu vuosia. Yleisesti voisi sanoa, että wimp-käyttöliittymät ovat helppoja omaksua ja cli-käyttöliittymät tehokkaita käyttää.

    Ja lukeehan niissä manuaaleissa esimerkkejä, ‘man zip’ sanoo: “zip -r foo.zip foo”.

    Kuinka guissa pakataan zippiin kaikki alihakemistoissa sijaitsevat .txt-tiedostot, joissa lukee ‘quux’ muttei ‘foo’?

    ii — 17.06.2007 @ 13:12

  9. Kuinka usein tuollaista pakkausoperaatiota tarvitsee tehdä?

    Timo — 17.06.2007 @ 13:13

  10. No, juuri tuollaista pakkausoperaatiota ei välttämättä tarvitse tehdä, mutta viime viikolla tuli töissä vastaan tilanne, jossa piti useista alikansioista etsiä tietynpäätteiset tiedostot, ja jos niissä oli teksti ‘foo’, mutta ei tekstiä ‘bar’, teksti ‘foo’ oli vaihdettava ‘quux’:ksi. Tiedostoja oli kansioissa muutaman sataa, ehtoihin täsmäsi joitain kymmeniä, osumia tiedostossa oli yhdestä kuuteen. Putkitin findia, greppiä ja sediä - ihan perustyökaluja siis - ja ongelma ratkaistu.

    En väitä, että joka päivä tulisi tuollaisia tapahtumia vastaan, mutta en myöskään väitä, että komentorivi olisi soveltuva vain tuollaisille monimutkaisemmille tehtäville. Peruskäytössäkin komentorivi antaa paljon voimaa ja ennenkaikkea nopeutta. Huono työmies syyttää työkaluja.

    Myönnettäköön toki sekin, että yhdenmukaisuus ja selkeys parametreissä olisi ihan oikeasti mukava juttu. Jusson mainitsema -R ja -r chmodissa on varmaan tullut jokaista vastaan.

    ii — 17.06.2007 @ 18:22

  11. Antaahan se eväitä vaikka mihin, mutta jos noita ei yleensä tarvitse käyttää, niin kynnys opetteluun on aika korkea. Yleensä kosken komentoriviin vasta sitten, kun muuten ei onnistu.

    Ja toki yksi typo saa usein kauheuksia aikaan, joten siinäkin mielessä tekstikomentojen kanssa pitää olla tarkkana.

    Timo — 17.06.2007 @ 18:26

  12. Tähän väliin voisi kommentoida, että findia ja greppiä on nyt tullut tarvittua…

    Timo — 18.09.2007 @ 19:57

Kommentit RSS-syötteenä. / TrackBack URI

Kirjoita kommentti

Jos kommenttisi ei heti lähettämisen jälkeen näy sivulla, se on jäänyt moderointijonoon ja ilmestyy, kunhan hyväksyn sen ensin. Tällä käytännöllä ei ole mitään tekemistä ennakkosensuurin kanssa, vaan kyse on roskakommenttien estämisestä. Niitä meinaan tulee satoja päivässä.

Sallitut XHTML-tagit: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>