Command Line

Linux parancssor. Ismert és kevésbé ismert parancsok. Bash tippek, trükkök. Rövid scriptek.

Címkék

&& (1) A4 (1) ac3 (1) ack (1) acpi (2) AES (1) afzcamCreator (1) agrep (1) aha (1) ajánló (1) alias (2) alkönyvtár (4) android (1) animgif (2) apropos (1) audio (2) avi (6) awk (1) backup (5) badblocks (1) basename (3) bash (20) bash completion (1) battery (1) bc (1) blkid (1) boot (3) brew (1) brute force (1) bug (1) bzip2 (2) cab (1) cal (1) calibre (4) calibredb (1) camera (1) capability (1) cat (2) cd (4) cdialog (2) checkinstall (2) cikkajánló (2) ciklus (1) címke (2) cksum (1) clipboard (1) cmdtools (1) color (1) colordiff (1) column (1) commandlinefu (1) convert (8) corel aftershot pro (1) cp (1) cr (1) crop (1) csplit (1) curl (1) date (1) dátum (1) dd (8) ddrescue (1) deb (1) decimális (1) default value (1) defrag (1) df (1) dia (1) dialog (2) diff (6) digitális fénykép (14) dircolors (1) dirty cow (1) dlna (1) dmidecode (1) dng (2) dos (2) dos2unix (1) dropbear (1) dropbox (1) dt3 (1) du (3) dump (2) dv (1) dvd (10) dvdauthor (2) dvd rw tools (1) e2freefrag (1) e2fsprogs (4) ebook (2) editor (2) eh (1) eject (1) emacs (4) encfs (2) energiagazdálkodás (1) enfuse (2) Enigma (1) epub (2) ESC (1) espeak (1) exa (1) exe (1) exif (6) exiftool (12) exit (1) ext2 (1) ext3 (1) ext4 (1) f3 (1) fájl (1) fallocate (1) fdisk (3) fdupes (1) feh (2) felhő (1) felirat (1) ffmpeg (12) filefrag (1) find (6) for (3) format (1) fortune (1) fred weinhaus (1) fuck (1) fuse (4) fuse-lgefs (1) fzf (1) gdatafs (1) genisoimage (3) getcap (1) getfacl (1) getmail (1) ghostscript (1) gif (1) gifsicle (1) glances (1) gnumeric (1) gnuplot (1) gömb (1) google (1) google drive (1) gotty (1) GPAC (1) gparted (2) gpg (3) gpg-zip (1) gplaycli (1) gps (3) gpsbabel (1) graphviz (1) grep (3) grive (1) grive2 (1) groff (1) growisofs (1) gs (1) gtk (1) gunzip (1) gzip (2) h264 (2) hálózat (1) handbrake (1) hangosítás (1) hardver (1) hard link (1) hash (2) hashcat (1) haszontalan (1) hdd (6) head (1) helyettesítés (1) hexadecimális (2) hibernate (1) homebrew (2) hp (1) hp-levels (1) html (1) http (1) hugin (1) icewm (1) icewm-light (1) identify (1) if (1) ifconfig (2) ifs (1) igo (1) imagemagick (12) imap (1) index (1) install (1) installer (1) iotop (1) iperf (1) iso (3) java (2) jelszó (6) jhead (1) jnettop (2) jogosultság (1) jpeg (4) jpg (2) jre (1) kapcsos zárójel (1) karakterkódolás (1) kdenlive (1) képméretezés (1) képnézegető (1) kernel (1) kétmenetes (1) keystore (1) keytool (1) kiegészítés (1) kindle (1) kódolás (1) könyv (1) kriptográfia (1) k x (2) lbzip2 (1) less (5) Levenshtein (1) lf (1) lg (1) linux (2) linuxbrew (1) linuxvilág (1) lm sensors (1) ln (1) log (1) losetup (1) ls (4) lsof (1) LS COLORS (1) lzw (1) mac (1) macos (2) mac address (2) mad (1) mail (1) mailbox (1) man (2) markdown (1) matroska (4) md5 (1) md5sum (2) mediainfo (1) melt (1) mencoder (5) merevlemez (5) meta (1) mikmod (1) minidlna (1) mjpegtools (1) mkv (6) mkvmerge (3) mkvtoolnix (4) mlt (1) mms (1) mogrify (1) monitor (1) montage (1) mount (3) mp3 (2) mp4 (1) MP4Box (1) mpg123 (1) mpg321 (1) mplayer (6) mplex (1) named (1) naptár (1) ncurses (2) nethogs (1) ng (1) nice (1) niceload (1) nl (1) nosztalgia (1) ntfsresize (1) numfmt (1) nyomtató (1) od (2) ogg (1) oktális (1) openssh (1) openwrt (1) óra (1) panoráma (1) parallel (3) parancsbehelyettesítés (1) parted (1) pass (1) paste (1) patch (2) pbcopy (1) pbpaste (1) pbzip2 (3) pdf (8) pdfcrack (1) pdfjam (1) pdfnup (1) pdftk (2) pendrive (2) pentax (6) perl (1) pgp (1) pgrep (1) PhotoRec (1) pi (1) picasa (1) picasaweb (1) pid (1) pigz (1) pipe (7) pktriggercord (1) play store (1) pm-utils (1) pop3 (1) popd (2) port (1) process (4) pushd (2) pv (3) pwgen (1) python (1) qimport (1) qpd (1) qr (2) qrencode (2) quotedprintable (1) random (1) randr (1) rdfind (1) readlink (1) recode (2) regiókód (1) reguláris kifejezés (2) rejtjelezés (2) renice (1) rfkill (1) rip (1) rm (1) rpm (5) rsa (1) rsync (2) sane (1) scanimage (1) screenshot (1) script (1) sebesség (1) sed (2) seq (4) setcap (1) setfacl (1) sha256sum (1) sha512sum (1) shellshock (1) shred (2) SIGINT (1) smp (3) sorszámozás (1) sort (2) sourse-highlight (1) space (1) sparse (1) split (2) ssconvert (2) ssd (1) ssh (3) sshfs (1) sshtron (1) startx (1) stat (1) stopper (1) suspend (1) symlink (1) sync (1) sysrq (1) systemd-analyze (1) systems (1) számológép (1) szenzor (1) szerver (1) szimbolikus link (1) szimbolikus lunk (1) szín (1) szkennelés (1) tail (2) tar (3) tee (3) testdisk (1) text (2) thefuck (1) tiff (1) time (1) timeout (1) tinta (1) titkosítás (3) tömörítés (4) top (2) töredezettségmentesítés (1) touch (2) tput (1) tr (1) transcode (5) trap (1) TRE (1) tree (2) tutorial (1) ufraw (2) ufraw batch (1) újság (1) unbuffer (1) uniq (1) unix (2) upower (1) urandom (1) user (1) utf 8 (1) változó (2) VBoxManage (1) véletlenszám (2) verem (1) vertical video syndrome (1) VHS (1) vi (4) vid.stab (1) video (2) vim (1) virtualbox (1) vob (1) vobcopy (1) wake on lan (1) watch (1) webkamera (1) webszerver (2) wget (1) which (2) whitespace (2) who (1) wifi (1) windows (3) woeusb (1) wol (1) X (1) x264 (1) xargs (4) xbacklight (1) xclip (2) Xdialog (1) xml (1) xmllint (1) xrandr (2) xxd (3) yes (1) youtube (1) youtube-dl (1) zárójeles (1) zbar (1) zene (1) zenity (2) zip (1) Címkefelhő

mpg123

2010.09.03. 10:00 | sala | Szólj hozzá!

Bár rengeteg grafikus mp3 lejátszó van Linux alatt ( lassan minden programba tesznek egy mp3 lejátszót ), néha egyszerűbb egy parancssoros lejátszót használni.

Az egyik legősibb mp3 lejátszó Linux alatt az mpg123, használata igen egyszerű:

mpg123 akármi.mp3

Ha jogi okokból inkább GPL-es programot szeretnénk használni, akkor a program klónját, az mpg321-et válasszuk.

Címkék: mp3 mpg123 mpg321

head + tail

2010.08.31. 10:00 | sala | Szólj hozzá!

Szövegfájloknál igen gyakori, hogy minket csak a fájl eleje, illetve vége érdekel. Ilyenkor hasznosak a head és tail parancsok.

 Alapértelmezés szerint a head a fájl első 10 során adja vissza:

head teszt.txt

Ha nem pont 10 sorra van szükségünk a -n kapcsolóval adhatjuk meg a szükséges sorok számát:

head -n 2 teszt.txt

A tail parancs a fentiekhez hasonlóan működik, de a fájl végét adja vissza:

tail teszt.txt
tail -n 2 teszt.txt

A tail parancsot legtöbbször log fájlok vizsgálatakor használhatjuk, ilyenkor nagyon hasznos még a -f kapcsoló, aminek hatására a program folyamatosan ellenőrzi a fájlt, és megjeleníti az időközben beszúrt sorokat:

tail -f /var/log/messages

Címkék: head log tail

csplit

2010.08.28. 10:00 | sala | Szólj hozzá!

Korábban már említettem a split parancsot, mellyel nagy fájlokat tudunk darabolni. Ha szövegfájlokat szeretnénk darabolni, akkor érdemesebb a csplit program használata, amivel a szövegfájl tartalma szerint adhatjuk meg a darabolás szabályait.

Legegyszerűbb esetben azt szeretnénk, ha a darabolás során nem vágnánk ketté a sorokat, vagyis csak annyit kell meghatároznunk, hogy melyik sornál vágjuk szét a fájlt.

Alapesetben a program xx00, xx01, ... nevű fájlokat gyárt. Érdemes a --prefix kapcsoló segítségével az xx-nél értelmesebb prefixet megadni, és a -n kapcsolóval az alapértelmezett 2 számjegy helyett többet kérni.

A további példákban az egyszerűség kedvéért nem jelzem a --prefix, -n kapcsolókat.

Az első részbe a szövegfájl első 10 sora kerül, az összes többi sor a második részbe:

csplit test.txt 11

Nem elírás a 11, az első sor indexét kell megadni, ami _nem_ kerül be a részbe.

Az első részbe az fájl első 10 sora kerül, a 11-30. sorok a második részbe, a harmadik rész tartalmazza az összes sort a 31.-től:

csplit test.txt 11 31

Ha 10 soros darabokat szeretnénk, akkor az előzőek alapján már menne, de nagyon sok számot kellene felsorolni. Szerencsére megy ez egyszerűbben is, kapcsoszárójelek között megadva egy számot, meg lehet ezt oldani felsorolás nélkül is:

csplit test.txt 10 {5}

A fenti parancs hatására a 5 ismétlést kérünk, vagyis összesen 6 darabolási szabályt adunk meg, vagyis 7 darabra vághatjuk a szövegfájlt. Várakozásunkkal ellentétben (legalábbis engem meglepett) az első darab 9 soros, a 2., 3., 4., 5., 6. darab 10 soros, és a maradék kerül a 7. darabba.

Felmerülhet a kérdés, mi történik, ha nincs is ilyen sok sorunk, nos ebben az esetben sajnos hibaüzenetet kapunk és nem készülnek el a darabolás. Érdemes ilyenkor a -k kapcsolót használni, aminek hatására a hibaüzenetet továbbra is megkapjuk, de a darabolás elkészül:

csplit -k test.txt 10 {5}

 Ha nem szeretnénk előre megadni a darabok számát, akkor az ismétlések száma helyett írhatunk *-ot:

csplit -k test.txt 10 {*}

 Ennek hatására 10 soros darabokat (na jó, az első 9 soros lesz) kapunk, a darabok számát a fájl mérete határozza meg.

Címkék: split csplit

zenity

2010.08.13. 10:00 | sala | Szólj hozzá!

Az, hogy parancssorban dolgozunk, nem jelenti azt, hogy teljesen el kell zárkózni a GUI-tól. Egy hosszú ideig futó scriptnél érdemes értesíteni a felhasználót grafikusan is a fontos lépésekről. A zenity program segítségével Gtk+ dialógusablakokat használhatunk nagyon könnyen.

Hosszas magyarázat helyett pár példa.

Információs ablak a művelet befejezésekor:

zenity --info --text="Befejeztem a hosszú műveletet."

Az előző ablak, de 10 másodperc után automatikusan becsukódva:

zenity --info --text="Befejeztem a hosszú műveletet." --timeout=10

Hibaüzenet megjelenítése:

zenity --error --text="Baj van."

Értesítés a taskbaron:

zenity --notification --text="Értesítés"

Veszélyes utasítás előtt kérdésfeltevés. Csak OK válasznál hajtjuk végre a parancsot:

zenity --question --text="Biztos vagy benne?" && echo "Munka"

 

Címkék: gtk zenity

bc -l

2010.08.09. 10:00 | sala | Szólj hozzá!

Bár léteznek összetettem számológépek is, ha valami egyszerű számítást szeretnénk elvégezni, akkor elég lehet a bc is. Szinte mindig bc -l paranccsal indítom el, mert a -l hatására (többek között) 20 tizedesjegy pontosságra vált át (az alapértelmezett 0 helyett), és elérhetővé válik néhány trigonometrikus függvény is.

$ bc -l
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2*150
300
2^20
1048576
4.7/3.2
1.46875000000000000000
4*a(1)
3.14159265358979323844
scale=100
4*a(1)
3.141592653589793238462643383279502884197169399375105820974944592307\
8164062862089986280348253421170676

Az utolsó két utasítással pi értékét kapjuk meg 20 illetve 100 tizedesjegy pontossággal. (az a függvénnyel arcus tangenst tudunk számítani).

Címkék: pi számológép bc

du

2010.07.31. 10:00 | sala | Szólj hozzá!

Egy könyvtár lemezen elfoglalt területét tudjuk megvizsgálni a du paranccsal.Ha például az aktuális alkönyvtár méretére vagyunk kíváncsiak, a következő paranccsal tudhatjuk meg:

$ du -ms .
13553 .

A fenti példában az alkönyvtár 13553 MB-ot foglal.

Ha inkább azt szerenénk tudni, hogy egy könyvtáron belül belül melyik alkönyvtár foglalja a legtöbb helyet, akkor érdemes du-t és sort-ot összekapcsolni:

du -ms * | sort -n

Az eredmény:

1022    teszt
1269    teszt23
1584    teszt8
1828    aaa
 

A példákban mindenhol a -m kapcsolót használtam, ezért írta ki du az eredményt MB-ban. Ha kisebb alkönyvtárakat vizsgálunk, hasznos lehet még a -k kapcsoló is, ami KB-ban számol.

Címkék: du sort alkönyvtár

vobcopy

2010.07.18. 10:00 | sala | Szólj hozzá!

Ha egy DVD-ről szeretnénk a vob fájlokat lemásolni, legkényelmesebben a vobcopy programmal tehetjük ezt meg.

Elég a

vobcopy -l

parancsot kiadni, és ha minden jól megy a program magától felismeri az eszközt, kiválasztja a megfelelő title-t (alapesetben a legtöbb fejezettel rendelkezőt választja, jó eséllyel az a film), elvégzi az esetleges dekódolást és a vob fájlokat összeragasztja.

A folyamat több percig is eltart (ez persze sokmindentől függ).

Címkék: dvd vob vobcopy

rsync

2010.06.29. 10:00 | sala | Szólj hozzá!

Ha nem szeretnénk fontos adatainkat elveszíteni, időnként backupot kell készítenünk. Számtalan módja van ennek, attól függően mennyi időt/tárhelyet szánunk a dologra.

Itt egy elég egyszerű módszert mutatok be, amikor egy alkönyvtárunkról ( továbbiakban /forrás ) szeretnénk tükrözést készíteni egy másik alkönyvtárba ( továbbiakban /cél ). Értelme persze ennek főleg akkor van, ha pl. /forrás egy belső, /cél egy külső merevlemez.

Az rsync parancs segítségével úgy tükrözhetjük az alkönyvtárat, hogy csak az első futáskor másolja le az összes fájl, a továbbiakban csak a megváltozott fájlokat mozgatja:

rsync -va --delete /forrás/ /cél/

A kapcsolók közül a --delete fontos, ha azt akarjuk, hogy a forrás alkönyvtárban letörölt fájlok a cél alkönyvtárból is eltűnjenek. Ez egyrészt szükséges, ha szinkronban szeretnénk tartani az alkönyvtárakat, ugyanakkor elég veszélyes, hiszen a forrás alkönyvtárból véletlenül letörölt fájlok a cél alkönyvtárból is törlődnek.

Címkék: backup rsync

DVD aviból

2010.06.26. 10:00 | sala | Szólj hozzá!

Ha egy avi fájlból szeretnénk DVD-videót készíteni, első lépésként megfelelő mpeg formátumra kell konvertálnunk. A következő példában mencoder segítségével konvertáljuk át a fájlt:

mencoder input.avi -vf scale=720:576,harddup -ovc lavc -oac lavc -lavcopts acodec=mp2:abitrate=128:vcodec=mpeg2video:vstrict=0:aspect=4/3:keyint=25:vrc_buf_size=1835:vbitrate=5500:vrc_maxrate=5500:vrc_minrate=5500 -o output.mpg -of mpeg -mpegopts format=dvd:tsaf

Ha már kész az mpeg, akkor legegyszerűbben dvdauthor segítségével írhatunk belőle DVD-t.

Címkék: dvd avi mencoder

exif információ törlése

2010.06.19. 10:00 | sala | Szólj hozzá!

Bár a digitális fényképekben tárolt EXIF információ igen hasznos lehet, nem biztos hogy szerencsés ha bárki ki tudja olvasni a publikus képeink adatait. Publikálás előtt törölhetjük az információkat a mogrify parancs ( a már többször említett ImageMagick csomag része ) segítségével:

mogrify -strip *.jpg

Címkék: exif imagemagick digitális fénykép mogrify

iso mount

2010.06.06. 10:00 | sala | Szólj hozzá!

Ha egy iso fájlba anélkül szeretnénk belenézni, hogy kiírnánk lemezre, igen egyszerűen mountolhatjuk ( Előfeltétel, hogy dvd_teszt alkönyvtár már létezzen ):

mount -o loop dvd.iso dvd_teszt/

Ha már nincs szükségünk a mountolásra, akkor a következő paranccsal szüntethetjük meg:

umount dvd_teszt
 

Címkék: dvd mount iso

dlna szerver

2010.05.31. 10:00 | sala | 2 komment

Ahogy egyre több "kütyü" tud lejátszani médiafájlokat, egyre nagyobb az igény, hogy ezeket a fájlokat ne egyenként másoljuk át a megfelelő eszközökre, hanem egy központi helyen tároljuk, amit minden eszköz elérhet. A valószínűleg egyre jobban elterjedő DLNA szabványt persze legjobban akkor használhatjuk ki, ha dedikált médiaszerverünk van, a gyakorlatban azonban egy linuxos gép is könnyen lehet DLNA-szerver.

A sok elérhető szoftver közül az egyik legegyszerűbbről a minidlna-ról írok itt.

A szerver konfigurálásához a minidlna.conf fájlt kell módosítani, nagy eséllyel elegendő megadni azt, hogy a fájlrendszer melyik részét szeretnénk megosztani:

media_dir=/ezt/osztjuk/meg

A szerver elindítása:

minidlna -R -f /konfigfajlhelye/minidlna.conf

Érdemes még megjegyezni, hogy minidlna (még) nem végez semmilyen konverziót, vagyis médialejátszóink csak akkor tudják lejátszania  fájlokat, ha felismerik a formátumot.

Címkék: szerver dlna minidlna

Tömörítetlen tiff tömörítése

2010.05.26. 10:00 | sala | Szólj hozzá!

A tiff formátumot számos előnye miatt elég sok helyen használják. Ha pl. egy negatívtekercset digitalizáltatunk, jó eséllyel ebben a formátumban kapjuk meg a képeket. Bár számos tömörítési eljárást támogat, az egyszerűség (nagyobb kompatibilitás) kedvéért igen gyakran tömörítetlen tiff fájlokat használnak.

Ha egy tömörítetlen tiff fájl méretét csökkenteni szeretnénk minőségromlás nélkül, akkor a támogatott tömörítési eljárások közül veszteségmentesen érdemes választani. A következő parancsor segítségével LZW(Lempel-Ziv-Welch) tömörítést használunk:

convert -compress lzw eredeti.tif tomoritett.tif

Címkék: convert tiff imagemagick lzw

identify - Információk képekről

2010.05.23. 10:00 | sala | Szólj hozzá!

Korábban már többször említettem az ImageMagick programcsomagot, pontosabban annak convert programját. Most ImageMagick egy másik parancssoros programjára hívnám fel a figyelmet.

Az identify parancs segítségével egy képfájlról kaphatunk információt. Ez nem egyszerűen az EXIF információkat jelenti, hanem annál sokkal bővebb információhalmazt:

[gep]$ identify -verbose 38110037.tif
Image: 38110037.tif
  Format: TIFF (Tagged Image File Format)
  Class: DirectClass
  Geometry: 3089x2048+0+0
  Resolution: 72x72
  Print size: 42.9028x28.4444
  Units: PixelsPerInch
  Type: TrueColor
  Base type: TrueColor
  Endianess: MSB
  Colorspace: RGB
  Depth: 8-bit
  Channel depth:
    red: 8-bit
    green: 8-bit
    blue: 8-bit
  Channel statistics:
    red:
      min: 0 (0)
      max: 255 (1)
      mean: 181.971 (0.713612)
      standard deviation: 58.2179 (0.228305)
      kurtosis: 1.31905
      skewness: -1.54975
    green:
      min: 0 (0)
      max: 255 (1)
      mean: 179.265 (0.703002)
      standard deviation: 61.8661 (0.242612)
      kurtosis: 0.52021
      skewness: -1.24466
    blue:
      min: 0 (0)
      max: 255 (1)
      mean: 171.985 (0.67445)
      standard deviation: 67.8177 (0.265952)
      kurtosis: -0.312623
      skewness: -0.728281
  Image statistics:
    Overall:
      min: 0 (0)
      max: 255 (1)
      mean: 133.305 (0.522766)
      standard deviation: 94.2908 (0.369768)
      kurtosis: -1.49699
      skewness: -0.408584
  Rendering intent: Undefined
  Interlace: None
  Background color: white
  Border color: rgb(223,223,223)
  Matte color: grey74
  Transparent color: black
  Compose: Over
  Page geometry: 3089x2048+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: None
  Orientation: TopLeft
  Properties:
    comment: IslBG
    date:create: 2010-05-15T08:24:45+02:00
    date:modify: 2010-05-15T08:24:45+02:00
    signature: 8944ac14da7f3604c0e2681b1dc3a5845466d816e76d03c46161d425f518d354
    tiff:photometric: RGB
    tiff:rows-per-strip: 1
    tiff:software: IslBG
  Artifacts:
    verbose: true
  Tainted: False
  Filesize: 18.12MiB
  Number pixels: 6.033MiB
  Pixels per second: 33.52MiB
  User time: 0.110u
  Elapsed time: 0:01.179
  Version: ImageMagick 6.5.7-0 2009-10-22 Q16 http://www.imagemagick.org

 

Címkék: imagemagick digitális fénykép identify

Fájlok átnevezése kisbetűssé

2010.05.20. 10:00 | sala | Szólj hozzá!

A sztringmanipulással, pontosabban karakterek cseréjével (illetve törlésével) foglalkozó tr parancs működését többnyire egy igen egyszerű példán mutatják be. Ha pl. egy sztringben az összes a, b, c betűket rendre d, e, f betűkre szeretnénk cserélni, akkor

tr abc def

parancsot kell használnunk, és ezután a begépelt szavakban megtörténik a csere.

Ennél azért lényegesen hasznosabb a következő script, amivel egy alkönyvtár összes .JPG fájlját nevezhezjük át kisbetűssé (nemcsak a kiterjesztést, hanem a teljes fájlnevet):

for i in *.JPG; do mv $i `echo $i | tr A-Z a-z`; done

A rövid script megértésében segít a for ciklusról illetve seq-ról szóló bejegyzés.

Címkék: for seq tr

bash for ciklus

2010.05.17. 10:00 | sala | Szólj hozzá!

Elég furcsa, de úgy látom sokan nem szeretik használni a bash for ciklusát, talán a nehézkes szintaktika miatt. A következő példák remélhetően segítik a megértést:

[gep]$ for i in 1; do echo $i; done
1

[gep]$ for i in 1 3 5; do echo $i; done
1
3
5

[gep]$ for i in `seq 1 2 7`; do echo $i; done
1
3
5
7

[gep]$ for i in 1 3 5; do echo teszt_$i; done
teszt_1
teszt_3
teszt_5

[gep]$ for i in *.jpg; do echo $i; done
alma.jpg
korte.jpg

Ha valami nem megy, akkor többnyire a pontosvesszőkkel van a gond.

Egy életszerűbb (és némileg bonyolultabb) példa található ebben a korábbi bejegyzésben.

Címkék: for bash

exiftool

2010.05.14. 10:00 | sala | Szólj hozzá!

Digitális fényképek EXIF információinak kiolvasására/módosítására használható az exiftool program. Két nagyon egyszerű példa:

Fényképben tárolt EXIF információ kiolvasása csoportosítással:

exitftool -a -g1 kép.jpg

Az eredmény (részlet):

---- ExifTool ----
ExifTool Version Number         : 7.89
---- System ----
File Name                       : imgp0459.jpg
Directory                       : .
File Size                       : 4.4 MB
File Modification Date/Time     : 2010:05:14 08:04:03+02:00
---- File ----
File Type                       : DNG
MIME Type                       : image/x-raw
Exif Byte Order                 : Big-endian (Motorola, MM)
Image Width                     : 4272
Image Height                    : 2848
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:4:4 (1 1)
...

Az author tag beállítása egyszerre több képre:

exiftool -author=Én *.jpg

Címkék: exif exiftool digitális fénykép

raw konvertálása jpg-re

2010.05.11. 10:00 | sala | Szólj hozzá!

Ha digitális fényképezőgépünkkel raw formátumban (dng, pef, nef, ...) mentünk, előbb-utóbb felmerül az igény, hogy ismertebb (jpeg, tiff, ...) formátumra konvertáljuk a képeket. Linux alatt az egyik legelterjedtebb konvertáló programnak, az ufrawnak létezik parancssoros verziója is, ami igen hasznos ha egyszerre többszáz képet kell konvertálnunk.

A következő példa Pentax K-x géppel készített dng fájlokat konvertál:

ufraw-batch --rotate=no --wb=camera --crop-left=18 --crop-right=4290 --crop-top=10 --crop-bottom=2858 --out-type=jpg --compression=95 *.dng

  • --rotate=no: Kikapcsolom az elforgatást, mert ufraw előbb forgat és utána vág, így a crop parancs hibás lenne. Gondot nem okoz, hiszen az elkészült fájl is tartalmazza az EXIF infót, így majd a képfeldolgozó program végzi az elforgatást, amikor megnyitom a jpeget.
  • --wb=camera: Fehéregyensúly beállítása a fényképezőgép által dng-be mentett információk alapján.
  • --crop-left=18 --crop-right=4290 --crop-top=10 --crop-bottom=2858: A kép széleinek levágása. A látszólag értelmetlen lépés okairól részletesen itt olvashatunk, lényeg, hogy levágjuk a kép jobb oldalán a fekete részt, és a végeredmény egy 4272x2848 felbontású kép lesz (az arány pont 3:2).
  • --out-type=jpg --compression=95: 95%-os jpeget gyártunk
  • *.dng: az alkönyvtárban lévő összes dng fájlt feldolgozzuk.

 

Címkék: jpeg pentax dng k x ufraw ufraw batch digitális fénykép

Kétmenetes kódolás egyszerűen

2010.05.06. 10:00 | sala | Szólj hozzá!

A legtöbb videókonvertáló program támogatja a kétmenetes kódolásást. Egy kapcsoló segítségével határozhatjuk meg, hogy az első vagy a második menetnél járunk. Számomra kissé érthetetlen módon többnyire nincs olyan kapcsoló amivel arra kérjük a programot, egymás után futtassa le a két menetet. Legegyszerűbben egy igen egyszerű bash for ciklussal futtathatjuk le a két lépést egymás után a parancssor megismétlése nélkül:

for i in 1 2; do
transcode ... -R $i;
done;

A módszer akkor alkalmazható, ha a két menet során a többi paraméter (amit a ... helyére írunk) azonos.

Címkék: for kódolás bash ciklus transcode kétmenetes

bash soreditálás

2010.04.23. 10:00 | sala | 2 komment

Ha a shellben elkezdünk egy parancssort gépelni, valójában egy egy soros kis editort használunk. Alapesetben emacs üzemmódban, vagyis az emacs billentyűkombinációit használhatjuk. A következő táblázat a legfontosabbakat tartalmazza (meta többnyire az alt billentyű):

ctrl-a sor elejére ugrás
ctrl-e sor végére ugrás
ctrl-b egy karakterrel balra ugrás
ctrl-f egy karakterrel jobbra ugrás
meta-b egy szóval balra ugrás
meta-f egy szóval jobbra ugrás
ctrl-w utolsó (kurzor előtti) szó törlése
ctrl-u kurzortól balra minden törlése
ctrl-k kurzortól jobbra minden törlése
ctrl-y utolsónak törölt rész beillesztése
ctrl-_ undo

 

Ha véletlenül nem ez az üzemmód lenne aktív, akkor a

set -o emacs

parancs segítségével váltatunk az emacs üzemmódra. Ha emacs helyett inkább vi-t választanánk, akkor a

set -o vi

segíthet.

Címkék: vi bash emacs

bash zárójeles kiegészítés

2010.04.20. 10:00 | sala | Szólj hozzá!

A bash zárójeles kiegészítése (bash expansion) egy ügyes lehetőség, melyet akkor érdemes használnunk, ha a parancssorba több hasonló paramétert szeretnénk írni.

Tegyük fel létre szeretnénk hozni 3 fájlt:

touch alma_20100420.txt banán_20100420.txt citrom_20100420.txt

Látható, hogy bár a fájlnevek eleje különbözik, a végük teljesen azonos. A _20100420.txt rész többszöri kiírása felesleges, ráadásul a hibázásra is lehetőséget ad. Ehelyett a fenti parancsot a következő formában is írhatjuk:

touch {alma,banán,citrom}_20100420.txt

 Ez a forma láthatóan tömörebb, nem kell megismételni a közös részt.

A kapcsos zárójelek akár egymásba is ágyazhatóak:

touch {alma,banán,citrom{1,2,3}}_20100420.txt

hatására a következő fájlok jönnek létre:

alma_20100420.txt, banán_20100420.txt, citrom1_20100420.txt, citrom2_20100420.txt, citrom3_20100420.txt

 

Címkék: kiegészítés bash zárójeles

iotop, jnettop

2010.04.17. 10:00 | sala | Szólj hozzá!

A top parancsot valószínűleg mindenki ismeri, ellenőrízhetjük futó programjaink mennyi memóriát, processzoridőt használnak. Igen gyakran használjuk a parancsot, hogy megtudjuk melyik programunk zabálja a memóriát, vagy terheli le a processzort.

Most két igen hasonló programra hívnám fel a figyelmet, melyek nagyon hasonlóak, ám más erőforrások megfigyelésére alkalmasak:

Az iotop (érdemes -o kapcsolóval indítani, hogy csak az I/O értelemben aktív programokat listázza) az input/output műveleteket , míg jnettop a hálózati forgalmat figyeli hasonló módon.

Címkék: top iotop jnettop

dvd vágás újrakódolás nélkül

2010.04.14. 10:00 | sala | Szólj hozzá!

Egy korábbi bejegyzésben leírtam, miként tudunk dvdauthor segítségével egy vob fájlból pár lépéssel menü nélküli DVD-t írni. Egy későbbi bejegyzésben a vob fájl mpeg-re konvertálásának egy hatékonyabb változatáról is írtam.

Most egy olyan példát mutatok, ahol dvdauthor-t XML fájl segítségével konfiguráljuk. A cél az, hogy egy vob fájlból úgy írjunk menü nélküli DVD-t, hogy lehetőségünk legyen fejezeteket definiálni, illetve az eredeti DVD egyes részeit kihagyni. Rögtön felmerülhet a kérdés, mi értelme ennek. Nos, gyári DVD-ből kiindulva semmi (illetve önjelölt rendezők újravághatják a filmeket), de ha pl. családi videonkat másoljuk át videokazettáról DVD-felvevő segítségével, akkor lszükség lehet rá.

Persze mindig van lehetőségünk arra, hogy a hasznos részeket, fejezeteket kijelölve újrakódoljuk a filmet, de az itt leírt megoldásnál nincs szükség újrakódolásra, ami előnyös lehet.

A dvdauthor.xml fájl tartalma a következő:

<dvdauthor>
 <vmgm />
 <titleset>
  <titles>
   <video format="pal" aspect="4:3" />
   <pgc>
    <vob file="mozi.mpg">
      <cell start="0:00:02" end="1:36:45" chapter="yes"/>
      <cell start="1:36:45" end="2:17:15" chapter="yes"/>
      <cell start="2:17:15" end="2:22:21" chapter="yes"/>
      <cell start="2:22:24" end="2:32:04" chapter="yes"/>
      <cell start="2:32:21" end="3:17:20" chapter="yes"/>
    </vob>
   </pgc>
  </titles>
 </titleset>
</dvdauthor>

Az egyes fejezetek határait óra:perc:másodperc formátumban adhatjuk meg. Jól látható, hogy több helyek kivágtunk néhány másodpercet.

A fenti dvdauthor.xml-t felhasználva a következő módon készíthetünk iso fájlt:

dvdauthor -o dvddir -x dvdauthor.xml
genisoimage -o mozi.iso -dvd-video dvddir/

 

Címkék: dvd genisoimage dvdauthor

tar autocompress

2010.04.11. 10:00 | sala | Szólj hozzá!

A tar program elég régóta támogatja többféle külső tömörítőprogram használatát:

kapcsoló tömörítőprogram
-Z, --compress compress
--lzma lzma
-z gzip
-J, --xz xz
--lzop lzop
 -j, --bzip2 bzip2

 

Lehetőségünk van a felsoroltakon kívül más tömörítőprogram használatára is.

Egyrészt persze hasznos hogy sok tömörítőprogram közül választhatunk, másrészt könnyen összekeverhetjük a kapcsolókat. Sokkal egyszerűbb, ha az automatikus tömörítőprogram választást használjuk.

Kitömörítésnél egyszerűen lehagyhatjuk a tömörítőprogram kiválasztását befolyásoló kapcsolót, és tar a kiterjesztés alapján választ. Vagyis

tar xvfz teszt.tgz

helyett használhatjuk a következő egyszerűbb verziót:

tar xvf teszt.tgz

Tömörítésnél a --auto-compress ( rövid verzió: -a ) kapcsolóval aktiválhatjuk a kiterjesztés alapú tömörítőprogram választást.

tar cvfz teszt.tgz *.txt
tar cvfj teszt.tbz *.txt

helyett:

tar cvfa teszt.tgz *.txt
tar cvfa teszt.tbz *.txt

 

Címkék: tar

seq

2010.04.08. 10:00 | sala | Szólj hozzá!

Számsorozatokat generálhatunk a seq paranccsal.

Legegyszerűbb esetben 1-től generálja a számokat:

seq 5

eredménye:

1
2
3
4
5

Lehetőségünk van a számsorozat első számának megadására:

seq 2 52
3
4
5

Eltérő növekményt is megadhatunk:

seq 10 2 2010
12
14
16
18
20

Végül pedig hasznos lehet, ha a generált számokban a számjegyek száma azonos:

seq -w 8 1508
09
10
11
12
13
14
15


 

Címkék: seq

süti beállítások módosítása