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 (4) 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) hash (2) hashcat (1) haszontalan (1) hdd (5) head (1) helyettesítés (1) hexadecimális (2) hibernate (1) homebrew (1) 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) 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) linuxvilág (1) lm sensors (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) 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 (1) 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) 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) 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) 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 (2) 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ő

shellcheck

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

Még a Shell Scripts Matter cikk ajánlotta a shellchecket, de önmagában is megér egy bejegyzést.

Készítsünk egy nagyon egyszerű scriptet (test1.sh):

#!/bin/bash
echo hello $1

Ha elkezdjük használni, elég sokáig úgy viselkedik ahogy elvárjuk, de azért az utolsó két parancs közti különbség elsőre meglepő:

$ ./test1.sh a
hello a
$ ./test1.sh a b
hello a
$ ./test1.sh "a b"
hello a b
$ ./test1.sh "a* b"
hello a* b
$ ./test1.sh "t* b"
hello test1.sh test2.sh b

Egy ilyen rövid scriptben persze könnyen megtalálhatjuk a hibát, de sokkal egyszerűbb a scriptjeinket shellcheckkel ellenőriztetni:

$ shellcheck test1.sh

In test1.sh line 2:
echo hello $1
           ^-- SC2086: Double quote to prevent globbing and word splitting.

Ezután már egyértelmű  a javítás (test2.sh):

#!/bin/bash
echo hello "$1"

A script úgy működik, ahogy elvárható:

$ ./test2.sh a
hello a
$ ./test2.sh a b
hello a
$ ./test2.sh "a b"
hello a b
$ ./test2.sh "a* b"
hello a* b
$ ./test2.sh "t* b"
hello t* b

 

homebrew

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

Ha Linux után MacOS-t kezdünk használni, akkor az nagyon jó hogy a shell a már jól megszokott bash, beépített editornak ott van az emacs (vi, nano, ...), de azért több jól megszokott linuxos program hiányzik. Legegyszerűben ezeket homebrew segítségével installálhatjuk.

A parallel installálása pl.ilyen egyszerű:

$ brew install parallel

Címkék: macos homebrew brew

pbcopy pbpaste

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

Korábban írtam már az xclip parancsról, amivel parancssorból kezelhetjük a clipboardot, ha Mac OS alatt van szükségünk erre, akkor a pbcopy pbpaste párost használhatjuk:

$ echo 'alma' | pbcopy
$ echo $(pbpaste)
alma

Címkék: mac macos xclip pbcopy pbpaste

hashcat: pdf jelszó feltörése

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

Gyártsunk egy jelszóvédett pdf-et:

$ echo -n titok > titok.txt
$ enscript -p titok.{ps,txt}
$ ps2pdf titok.{ps,pdf}
$ pdftk titok.pdf output titok_jelszo.pdf user_pw 987654321

Ahhoz, hogy a titkosított pdf-et hashcattel feltörhessük, két dologra lesz szükségünk. Először is tudnunk kell, milyen hash-et használ a pdf titkosítás. A pdf fájl elején látszik, hogy ez egy PDF 1.4-es fájl, hashcat --help alapján ez a 10500-as hash mód. Másrészt ki kell vágnunk a pdf fájlból a hash-t. Ezt a JohnTheRipper program pdf2john.pl scriptjével tehetjük meg:

$ pdf2john.pl titok_jelszo.pdf | sed "s/^.*://" > hash_pdf.txt

Ezután hashcat már képes feltörni a jelszót brute-force módszerrel:

$ hashcat -m 10500 -a 3 -i hash_pdf.txt ?d?d?d?d?d?d?d?d?d?d?d
...
$pdf$2*3*128*-3904*1*16*35b780a117d0e708d9a5bc500c94dc31*32*5ec779d797699b837f97b6f33418f45400000000000000000000000000000000*32*240ab525f81f9d2851d51f167d556bb19f5bae85a6ca52e8c98a90fa98c2b65c:987654321

Session..........: hashcat
Status...........: Cracked
Hash.Type........: PDF 1.4 - 1.6 (Acrobat 5 - 8)
Hash.Target......: $pdf$2*3*128*-3904*1*16*35b780a117d0e708d9a5bc500c9...c2b65c
Time.Started.....: Sat Jul 28 11:29:47 2018 (1 min, 14 secs)
Time.Estimated...: Sat Jul 28 11:31:01 2018 (0 secs)
Guess.Mask.......: ?d?d?d?d?d?d?d?d?d [9]
Guess.Queue......: 9/11 (81.82%)
Speed.Dev.#2.....: 94665 H/s (28.31ms) @ Accel:16 Loops:8 Thr:64 Vec:1
Speed.Dev.#3.....: 1357.0 kH/s (68.98ms) @ Accel:640 Loops:17 Thr:64 Vec:1
Speed.Dev.#*.....: 1451.7 kH/s
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 107274240/1000000000 (10.73%)
Rejected.........: 0/107274240 (0.00%)
Restore.Point....: 10493952/100000000 (10.49%)
Candidates.#2....: 963454321 -> 999592321
Candidates.#3....: 962478232 -> 935512321

Started: Sat Jul 28 11:28:21 2018
Stopped: Sat Jul 28 11:31:02 2018

Itt is feltételeztem persze, hogy csupa számjegyből állt a jelszó, így pár perc alatt megtalálta a program a jelszót. Enélkül persze sokkal tovább tartott volna.

 

hashcat

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

A hashcat programmal jelszavak törhetünk fel, feltéve ha tudjuk, hogy milyen hash algoritmust használtunk a jelszó kódolásakor.

Tételezzük fel, hogy a már elavult md5-öt használjuk. A nem túl biztonságos (de nem is túl rövid) 98765432109 jelszó md5 hash-e e53420cce01df4edb9b01215f3733920

$ echo -n '98765432109' | md5 > hash_md5.txt
$ cat hash_md5.txt
e53420cce01df4edb9b01215f3733920

 Ezt hashcat használatával így törhetjük fel:

$ hashcat --potfile-disable -O -m 0 -a 3 -i hash_md5.txt ?d?d?d?d?d?d?d?d?d?d?d

  • --potfile-disable: Alapesetben a feltört hasheket hashcat eltárolja, és később újra felhasználja. Ezt a teszt kedvéért lekapcsoltam, hogy többször újra tudjam futtatni a tesztet.
  • -O: optimalizálás bekapcsolása
  • -m 0: md5 hash
  • -a 3: brute-force algoritmus
  • -i: A maszknál rövidebb jelszavakat is ellenőrzi.
  • hash_md5.txt: Ez a fájl tartalmazza a hasht.
  • ?d?d?d?d?d?d?d?d?d?d?d: Ez a maszk határozza meg, milyen formátumú lehet a jelszó, ez a 11 számjegyből álló jelszó maszkja.

A program kevesebb mint 1 perc alatt találja meg a jelszót:

...
e53420cce01df4edb9b01215f3733920:98765432109

Session..........: hashcat
Status...........: Cracked
Hash.Type........: MD5
Hash.Target......: e53420cce01df4edb9b01215f3733920
Time.Started.....: Sat Jul 28 10:26:02 2018 (30 secs)
Time.Estimated...: Sat Jul 28 10:26:32 2018 (0 secs)
Guess.Mask.......: ?d?d?d?d?d?d?d?d?d?d?d [11]
Guess.Queue......: 11/11 (100.00%)
Speed.Dev.#2.....: 145.3 MH/s (7.90ms) @ Accel:16 Loops:15 Thr:256 Vec:1
Speed.Dev.#3.....: 2185.2 MH/s (8.87ms) @ Accel:128 Loops:62 Thr:256 Vec:1
Speed.Dev.#*.....: 2330.5 MH/s
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 71073005568/100000000000 (71.07%)
Rejected.........: 0/71073005568 (0.00%)
Restore.Point....: 69697536/100000000 (69.70%)
Candidates.#2....: 16445128782 -> 68800372209
Candidates.#3....: 57136658459 -> 86274237109
Started: Sat Jul 28 10:25:50 2018
Stopped: Sat Jul 28 10:26:34 2018

Ha lehet, ne használjon senki se md5-öt, se csupa számjegyből álló jelszót.

Címkék: jelszó md5 hash md5sum hashcat

exa

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

Az ls az egyik legismertebb és legrégebbi unix parancs, az exa ennek egy modernebb változata. Ami rögtön feltűnik, hogy sokkal színesebb:

$ exa -l
.rw r--r-- 1.1k user 31 Mar 2017 COPYING .rw-r--r-- 6.2M user 8 Apr 2016 imgp8166.png .rw-r--r-- 8.0M user 11 Apr 2016 imgp8171.png .rw-r--r-- 7.2M user 9 Apr 2016 imgp8171_cuta.png .rw-r--r-- 8.8M user 9 Apr 2016 imgp8171_swa.png .rw-r--r-- 6.6M user 7 Apr 2016 imgp8171_swa_orig.png .rw-r--r-- 1.5k user 27 Jun 16:59 README.md .rwxr-xr-x 2.8k user 27 Jun 8:48 solarmiddle.sh .rwxr-xr-x 3.7k user 9 Apr 2016 solarmiddle.sh~ .rw-r--r-- 1.9k user 11 Apr 2016 solarmiddle_tutorial.md .rwxr-xr-x 3.4k user 21 Jul 9:22 solarwind.sh .rw-r--r-- 4.1k user 11 Apr 2016 solarwind_tutorial.md

Programozóként a --git kapcsoló tűnik nagyon hasznosnak, jelzi melyik fájl új, melyiket módosítottuk:


$ exa -l --git
.rw-r--r-- 1.1k user 31 Mar  2017 -- COPYING
.rw-r--r-- 6.2M user  8 Apr  2016 -N imgp8166.png
.rw-r--r-- 8.0M user 11 Apr  2016 -N imgp8171.png
.rw-r--r-- 7.2M user  9 Apr  2016 -N imgp8171_cuta.png
.rw-r--r-- 8.8M user  9 Apr  2016 -N imgp8171_swa.png
.rw-r--r-- 6.6M user  7 Apr  2016 -N imgp8171_swa_orig.png
.rw-r--r-- 1.5k user 27 Jun 16:59 -- README.md
.rwxr-xr-x 2.8k user 27 Jun  8:48 -- solarmiddle.sh
.rwxr-xr-x 3.7k user  9 Apr  2016 -N solarmiddle.sh~
.rw-r--r-- 1.9k user 11 Apr  2016 -- solarmiddle_tutorial.md
.rwxr-xr-x 3.4k user 21 Jul  9:22 -M solarwind.sh
.rw-r--r-- 4.1k user 11 Apr  2016 -- solarwind_tutorial.md

Arra azért érdemes odafigyelni, hogy elég sok kapcsoló más mint ls-nél volt.

Címkék: exa ls

aha

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

Ha a terminálom színes képernyőjét block-copyval idemásolom, akkor elvesznek a színek:

$ ls
alma dir/ korte ls.htm test.zip

Az aha (Ansi HTML Adapter) használatával HTML formátumba menthetjük az outputot, így beilleszthetjük HTML oldalba:

$ ls
dir/ korte ls.htm test.zip

A következő parancsot kellett használni a HTML részlet gyártásához:

$ ls --color=always | aha --no-header > ls.htm

Címkék: html color aha

animgif paletta

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

Írtam már egyszer korábban az animgif gyártásáról, de amikor legutóbb akartam használni az ott leírt módszert, igen csúnya lett az animgif. Egy animgifben csak 256 különböző lehet minden képben és ffmpeg alapesetben ugyanazt a palettát használja, függetlenül a videó színvilágától. Jobb eredményt lehet elérni, ha külön palettát készítünk a videó alapján:

ffmpeg -i input.mkv -vf "scale=320:-1:flags=lanczos,fps=25,palettegen" -y palette.png
ffmpeg -i input.mkv -i palette.png -lavfi "scale=320:-1:flags=lanczos,fps=25 [x]; [x][1:v]paletteuse" -y output.gif
gifsicle -i output.gif -O3 -o output_opt.gif

Az első parancsban (a többi filter mellett) a palettegen-t használjuk, ez egy 16x16 pixeles képet gyárt (palette.png) ami az optimális paletta színeit tartalmazza. Ezt használja fel a második parancs az animgif gyártásához a paletteuse filterrel. A harmadik parancs az animgifet optimalizálja gifsicle segítségével.

Címkék: animgif ffmpeg gifsicle

sshtron

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

Egyrészt természetesen teljesen értelmetlen, másrészt viszont nagyszerűen mutatja be az ssh lehetőségeit az sshtron nevű játék, ahol egy szerverre sshzva játszhatunk tronnal (ha éppen megy a szerver):

ssh sshtron.zachlatta.com

 sshtron.jpg

Címkék: ssh sshtron

paste

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

A paste paranccsal több fájl tartalmát olvaszthatjuk egybe.

Legyen a test_1.txt tartalma:

1
2
3
4
5
6

test_2.txt tartalma:

a
b
c
d
e
f

paste soronként illeszti össze a fájlokat, az általunk megadott szeparátorkarakterrel:

$ paste -d ';' test_1.txt test_2.txt
1;a
2;b
3;c
4;d
5;e
6;f

Használhatjuk a -s kapcsolóval is egyetlen input fájl sorainak oszlopokba rendezésére:

$ paste -s -d ';' test_1.txt
1;2;3;4;5;6

Ha több szeparátorkaraktert adunk meg, akkor elérhetjük, hogy minden sorba a test_1.txt három sora kerüljön:

$ paste -s -d ';;\n' test_1.txt
1;2;3
4;5;6

 

Címkék: paste

cikkajánló: How To Use Bash Parameter Substitution Like A Pro

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

Írtam már párszor bash változókról (egy, kettő, három), nemrégiben találtam egy nagyszerű cikket, ami még sokkal több trükköt bemutat: How To Use Bash Parameter Substitution Like A Pro .

 

Címkék: cikkajánló bash változó

ack

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

A grep parancsot szinte mindenki ismeri, több mint 40 éves, több új programot készítettek már a leváltására (én is írtam már pl. az agrep nevű változatról) az egyik ilyen próbálkozás az ack, ami a grephez hasonló, programozóknak szánt eszköz.

Használata végtelenül egyszerű, ha az aktuális könyvtárban (és rekurzívan az összes alkönyvtárban) szeretnénk rákeresni egy adott regexp mintára:

ack "A.*Task"

Ha nem akarunk az összes fájlban keresni, hanem csak a java források érdekelnek:

ack --java "A.*Task"

Hasznos, hogy automatikusan kihagyja .git, .svn, ... alkönyvtárakat.

 A weboldalukon (ahol az URL is már kissé furcsa) érdemes megnézni a többi érvet is amivel megpróbálnak győzni arról, hogy ezt használjuk inkább a grep helyett.

Címkék: grep ack

gotty

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

Ha parancssort használunk megoszthatjuk a terminálunkat egy weboldalon a gotty segítségével.

A

gotty top

parancs után a http://127.0.0.1:8080 oldalon megnézhetjük a top eredményét. Az oldal szépen folyamatosan frissül, ahogy top frissíti az eredményeket.

Alapesetben a weboldal csak megmutatja az eredményeket, de a -w kapcsolóval írási jogot is kapunk, vagyis a

gotty -w emacs -nw alma.txt

segítségével weboldalon keresztül editálhatjuk az alma.txt fájlt. (A -nw-ről itt írtam).

Sőt, a

gotty -w bash

hatására a weboldalon keresztül lényegében egy terminalt kapunk, ahová tetszőleges parancsot beírhatunk.

Mondanom sem kell, csodálatos biztosági réseket lehet ezzel az eszközzel nyitni, szóval csak óvatosan.

 

Címkék: bash webszerver gotty

pm-utils

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

Több módszerrel is lehet parancssorból hibernálni vagy készenléti állapotba tenni a gépet én pm-utils csomagot szoktam használni. A parancssor előnye, hogy egy este elindított hosszú folyamat után a gép magától "elalszik". Kissé mesterséges példa:

$ sleep 60 && pm-suspend

 

Címkék: hibernate suspend pm-utils

thefuck

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

Parancssor használata közben időnként hibázik az ember. Ilyenkor némi káromkodás után beírjuk a helyes parancsot. Ebben tud segíteni a szép nevű thefuck program ami az előző elrontott parancsot próbálja megjavítani.

Ha például véletlenül annyit írunk, hogy

git stats

akkor érhető módon git jelzi, hogy nem ismeri a stats parancsot. Ha ezután kiadjuk a

fuck

parancsot, akkor thefuck javasolja

git status

használatát. Ezt egy enterrel elfogadva le is fut a parancs.

A program github oldalán egy animált gif több példát is mutat.

 

Címkék: fuck thefuck

unbuffer

2017.08.19. 10:00 | sala | 2 komment

Elég sok olyan parancs van, ami (feltételezve, hogy egy modern terminált használunk) színeket használ. Ha viszont az eredményt less-szel nézzük, a színek elvesznek, mert a parancs érzékeli, hogy nem terminálra ír, hanem csak egy pipe-ba.

Vagyis például

git status

színes, de

git status | less

már nem színes.

Ha egyszerre szeretnénk less-t és színeket a következőképpen kell használnunk a parancsot:

unbuffer git status | less -r

Címkék: szín pipe unbuffer

afzcamCreator

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

Tisztában vagyok vele, hogy ez vélhetően még a többi bejegyzésnél is szűkebb réteget céloz meg, de ha valaki Corel AfterShot Pro 3-at szeretne használni, de az sajnos nem támogatja a fényképezőgépét, viszont támogat egy hasonló gépet (de nem beépítve, hanem letölthető camera profile-ként), akkor annak a valakinek érdemes lehet megnézni az afzcamCreator programom (bash script, szóval legalább nem offtopic).

Címkék: camera corel aftershot pro afzcamCreator

cikkajánló: Shell Scripts Matter

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

Nagyon könnyű csúnya shell scripteket írni. Valahogy könnyebben nyugtatom meg magamat, ha egy 40 soros bash script ronda, mintha egy 500 soros Java kód. Pedig a shell scriptekben lehet igazán tömören nagy károkat okozni.

Találtam egy nagyon jó cikket, ami segít abban ha szép, és ami még fontosabb megbízható kódot írni: https://dev.to/thiht/shell-scripts-matter

Címkék: cikkajánló script bash

exiftool gps

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

Fényképek GPS koordinátáját legegyszerűbben exiftoollal állíthatjuk be:

exiftool -GPSLongitudeRef=E -GPSLongitude=16.8436 -GPSLatitudeRef=N -GPSLatitude=46.8451 *.jpg

forrás: https://scribblesandsnaps.com/2011/11/23/easy-geotagging-with-exiftool/

Címkék: gps exiftool

Quoted Printable

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

Ősrégi unix mailbox fájlokat szerettel volna egyszerűen megnézni parancssorban, de ezekben az ékezetes betűk (többnyire) Quoted Printable formátumban vannak, ami eléggi nehezíti az olvashatóságot (pl. cs=FCt=F6rt=F6k).

A következő egyszerű alias segít nagyon sokat:

$ alias qpd='perl -MMIME::QuotedPrint -pe '\''$_=MIME::QuotedPrint::decode($_);'\'''

 Ezután less helyett qpd-vel lehet belenézni a fájlokba:

qpd sent-mail-sep-2003

pontosabban mivel akkoriban még nem UTF8-at használtam, jól jön recode is:

qpd sent-mail-sep-2003 | recode latin2..utf8

forrás: https://gist.github.com/jjarmoc/1571540

Címkék: perl mailbox recode qpd quotedprintable

jhead fájlátnevezés

2017.04.30. 10:00 | sala | 4 komment

Fényképek tömeges átnevezésekor talán a legegyszerűbb eszköz a jhead. A következő parancs a kép készítésének időpontja alapján nevezi át a jpeg fájlokat:

jhead -n%Y%m%d_%H%M%S_%f *.jpg

A futtatás után imgp1000.jpg fájlból 20170428_100145_imgp1000.jpg lesz. Többféle formátumot használhatunk, nekem a fenti példa főleg akkor hasznos, ha több géppel fényképezek egyszerre, ezzel időrendbe lehet tenni a fájlokat. (Persze többnyire csak ezután)

 Biztos meg lehet ezt oldali exiftoollal is, ha igen, otegi megírja.

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

du rejtett alkönyvtár

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

Egy alkönyvtáram helyfoglalását akartam ellenőrizni du-val, de valahogy hiányzott néhány gigabájt.

Az általam többynire használt

du -ms *

sajnos teljesen ignorálja a rejtett alkönyvtárakat. Ha azokról is adatra lenne szükségünk, akkor a következő módon kell du-t meghívni:

du -ms .[!.]* *

Címkék: du

defrag

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

Bár szinte mindig linuxos parancssori eszközökről írok, elvileg használhatunk parancssort más operációs rendszereknél is. Egy Windows Vistás gépnél (nem, nem az enyém) szerettem volna ellenőrizni a merevlemez töredezettségét. A beépített GUI teljesen használhatatlan: nem ad semmi információt arról, hogy mennyire töredezett a lemez, munka közben is csak annyit ír ki, hogy a töredezettségmentesítés több óráig is eltarthat, de nem írja ki hogy hol tart a munkában.

A programnak van egy használhatóbb parancssoros változata is:

C:\windows\system32>defrag C: -a -v
Windows Lemeztöredezettség-mentesítõ
Copyright (c) 2006 Microsoft Corp.

Elemzési jelentés a következõ kötethez: C:

    Kötetméret                          = 140 GB
    Szektorcsoportméret                 = 4 KB
    Felhasznált terület                 = 121 GB
    Szabad terület                      = 19.18 GB
    Szabad terület (százalék)           = 13 %

Fájl töredezettsége
    Fájl töredezettsége százalékban     = 1 %
    Áthelyezhetõ fájlok összesen        = 262,353
    Átlagos fájlméret                   = 483 KB
    Összes töredezett fájl              = 2,051
    Összes töredékek száma              = 8,266
    Töredékek átlagos száma fájlonként  = 1.03
    Nem áthelyezhetõ fájlok összesen    = 72

Szabad terület töredezettsége
    Szabad terület                      = 19.18 GB
    Szabad terület összesen             = 32,639
    Szabad területek átlagos mérete     = 616 KB
    Legnagyobb összefüggõ szabad terület        = 4.62 GB

Mappa töredezettsége
    Mappák száma                        = 33,941
    Töredezett mappák száma             = 31
    Mappatöredékek száma                = 121

Fõ fájltáblázat (MFT) töredezettsége
    A teljes MFT-méret                  = 298 MB
    MFT-rekordszám                      = 264,595
    MFT-használat százalékban           = 86
    Összes MFT-töredék                  = 8

    Megjegyzés: Az NTFS-kötetek 64MB méretûnél nagyobb fájltöredékeit nem tartalmazza a töredezettségi statisztika

    Nem kell töredezettségmentesíteni a kötetet.

Végül a töredezettségmentesítést nem futtattam le a, de elvileg a következő parancs kellett volna:

defrag C: -v

 

Címkék: windows defrag töredezettségmentesítés

glances

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

Már több tophoz hasonló programról írtam (iotop, jnettop, lm_sensors) nemrég hívták fel a figyelmemet egy olyan programra, ami igyekszik az összes ilyen erőforrást egyszerre figyelni (más programokra épülve persze), így egyetlen egy képernyőn ellenőrizhetjük a gépünket (értsd: kereshetjük, hogy mi a fene lassította már megint le).

Hosszas magyarázat helyett a következő screenshot elég jól megmutatja, mire képes a glances:

glances.png

 A tippet köszönöm Ricsinek.

Címkék: top glances

exiftool if

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

Az exiftool oldalán olvastam ezt a figyelmeztetést:

If you find the need to use "find" or "awk" in conjunction with ExifTool, then you probably haven't discovered the full power of ExifTool. Read about the -ext, -if, -p and -tagsFromFile options in the application documentation.

Nos, valóban szoktam használni find-ot (sőt, cut-ot, grep-et...) exiftoollal, szóval megnéztem az ajánlott opciók közül if-et.

Tegyük fel van rengeteg képünk amiket különféle fényképezőgépekkel készítettünk. Azon belül pedig természetesen különféle beállításokkal. A következő paranccsal megkereshetjük a Pentax K-x géppel ISO 400-as beállítással készült képeket és kilistázhatjuk a rekeszt és az expozíciós időt:

$ exiftool -aperture -shutterSpeed -if '$Model eq "PENTAX K-x"' -if '$ISO eq 400' ~/Pictures/2016*
======== /home/user/Pictures/20160304/imgp7890.jpg
Aperture                        : 13.0
Shutter Speed                   : 1/60
======== /home/user/Pictures/20160305/imgp7891.jpg
Aperture                        : 13.0
Shutter Speed                   : 1/60
   58 directories scanned
  587 files failed condition
    2 image files read

Címkék: if exiftool