Ένας γρήγορος οδηγός για την κονσόλα (γραμμή εντολών) σε *nix (και linux).
Ένα προσωπικό σημειωματάριο υπενθυμίσεων.
Έγγραφα
Έλεγχος ορθογραφίας
aspell -l en text
- -l = language en για english / el για Ελληνικά
Σύστημα
Αλλαγή ώρας
sudo date --set=5:49pm
Ως root (υπερχρηστης), θα αλλάξει την ώρα σε 17:49. Με ntpdate gr.pool.ntp.org ή άλλο server, διορθώνεται αυτόματα η ώρα από το internet. (λίστα με servers εδώ).
Αλλαγή ημερομηνιας
date -s '21 Dec 2007'
Connect to WiFi via wicd
wicd-cli -y -c -n 0 Assuming network #0 is our network.
Χρονοδιακόπτης για κλείσιμο οθόνης
xset dpms 50 60 0
Δώσε μηδενικές τιμές για να μην κλείσει ποτέ.
Dual Head με xrandr
Dual Head με επέκταση (δοκιμασμένο με Intel open source driver)
xrandr --output VGA1 --right-of LVDS1
Για ακύρωση οθόνης.
xrandr --output VGA1 --off
Διαχείρηση αρχείων
Αποσυμπίεση από Windows Encoding
unzip -O cp737 FILE.zip
LANG=C 7z x FILENAME.zip
recursive rename = -r, ask for confirmation = -i
convmv -f cp737 -t utf8 --notest -i -r .
Μπορείς να ελέγξχεις τα ονόματα των αρχείων με (only for verification, no file rename)
find . -maxdepth 1 -type f | iconv -f cp737 -t utf8
Αν δεν έχετε το convm τότε
Συμπίεση
tar -cvjf file.tar.bz2 /folder or files
Για συμπίεση.
- c = compress
- v = verbose (αναφορά)
- j = compress with bz2
- f = χρησιμοποιήσε αρχείο
Αποσυμπίεση
tar -xvjf file.tar.bz2
x = eXtract
Αποσυμπίεση + split
tar -c - FILE_FOLDER | split -b 4350m - backup.tar
Εύρεση αρχείου αλλά και ενέργεια σχετικά μ' αυτό!
Πατήστε man locate ή καλύτερα man slocate, τώρα αν επίμενετε στην εντολή find..
find /folder_to_search/ -name file_or_folder
Μην ξεχάσετε την δεύτερη κάθετο από τον φάκελλο προς διευρεύνηση!
xargs
Αυτό φαίνεται ανούσιο, αλλά το χρησιμοποίησα για να μετατρέψω προϋπάρχοντα absolute (απόλυτα) soft link σε relative (σχετικά) ls *.tiff | xargs -l -t -i ln -sf ../{} ./
- Η εντολή δεν δούλευε αν δεν έβαζα το -i
- Χρήσιμο το -t (test) όπου δείχνει την εντολή που εκτελείται
Find με βάση τον χρόνο
find / -mount -cmin -120
- / = root
- -mount = μην ψάχνεις σε άλλες κατατμήσεις
- -cmin = Creation Minute
- -ctime = Creation DAYS
- -120 = απο 120 λεπτά έως τώρα
Find και εκτέλεση
find /mp3 -type f -name \*.mp3 -mtime -30 -exec mpg321 {} \;
- /mp3 = mp3 folder
- -type = f: file, d: directory, l: symbolic link
- -name = Όνομα αρχείου
- -mtime -30 = Ημέρες τροποποίησης (πριν από 30)
- -exec = εκτέλεσε mpg321 για κάθε αρχείο που βρέθηκε: {}
Find with various wildcards
find cd0[6-9]*/ -maxdepth 1 -name \*.odt ! -name \*I_dont_want_this\*.odt
- [6-9] = 6 to 9
- * = Common... you know this :)
- ! -name... = NOT this name
bash read line
Read FILE_LIST line-by-line and link the files. while read line; do ln -s ../*$line* ./; done < ../FILE_LIST
Mount iso cd / dvd image
mount -o loop file.iso /mnt/folder
Δεν χρειάζεται ειδικό πρόγραμμα όπως το daemonTools για Windows.
Αλλαγή ταχύτητας
readcd dev=/syskeyh sectors=0-1 speed=4 f=/dev/null
Αντιγραφή κατάτμησης (partition)
CD
dd if=/dev/hdc of=~/mycd.iso bs=2048 conv=notrunc
ΠΡΟΣΟΧΗ: Επικίνδυνη εντολή, αν δεν ξέρετε τί κάνετε.
Σκληρού δίσκου
Με συμπίεση (προσοχή στην παύλα): dd if=/dev/sda | gzip -c | split -b 650m - /mnt/arxeio.image
Αν ο προορισμός είναι μικρότερος: dd if=/dev/πηγή skip=1 of=/dev/προορισμός seek=1 bs=4k conv=noerror
- skip = μην αντιγράφεις το partition table
- seek = δεν... ξέρω
- bs = 4kbytes sectors
- conv = συνέχισε αν βρεις λάθος
Αντιγραφή MBR (master boot sector)
dd if=/dev/hda of=~/MBR.image bs=446 count=1
- if = input file (σ' εμένα το /dev/hdc είναι το dvd)
- of = output file (ΠΡΟΣΟΧΗ εδώ, αν διαλέξετε partition γίνεται ίδιο με το if!)
- ~ = home directory
- notrunc = να μην μετατρέπει τα πολλά μηδενικά σε 5 αστέρια
Partition (κατάτμηση) σε αρχείο ΜΕ συμπίεση
dd if=/dev/sda | gzip -c | split -b 650m - /mnt/filentfsclone -s -o - /dev/sda1 | gzip -c | split -b 650m - /mnt/file
Από συμπιεσμένο αρχείο σε partition (κατάτμηση)
cat /mnt/file* | gzip -dc | dd of=/dev/sda
Συχνότητα ελέγχου partitions
tune2fs -c 100 /dev/partition
- -c = θα ελέγξει μετά από 100 mounts (προσαρτήσεις)
monitor αρχείων
inotifywait --recursive --monitor --format "%w%f %e" /tmp/
Πηγή.
Χειροκίνητο "monitor" αρχείων
stat -t /* > stat0
stat -t /* > stat1
diff stat0 stat1
Συνέχισε σύμφωνα με το... μυαλό σου :-)
Διαγραφή cd/dvd
cdrecord dev=/syskeyh blank=fast
Εγγραφή audio-cd
cdrecord dev=/syskeyh -pad -audio ~/tracks/*.wav -speed 8
Εγγραφή dvd
dvd+rw-mediainfo /dev/syskeyhΈλεγχος ταχύτητας.
Φάκελο
growisofs -Z /dev/syskeyh -R -J -speed=x /directory
- -speed = Επιλέγει profile όχι ταχύτητα (δες dvd+rw-mediainfo)
Iso Image
growisofs -Z /dev/DEVICE=/folder/.iso -dvd-compat -speed=2
Εγγραφή cd
cdrecord -scanbusΈλεγχος διαύλου.
cdrecord -inq dev=/dev/devx
mkisofs -r -R -J -l -input-charset iso8859-7 /home/user1 | cdrecord dev=0,4,0 -v --eject fs=8m speed=4 -tao -
(μην ξεχάσεις την παύλα στο τέλος!)
- -J =Joliet (Microsoft file names)
- -R = Rockridge (Linux fien names)
- -l = Αρχεία με 31 χαρακτήρες
- fs = cache
- speed = .. εσύ τί λες; :-)
- eject = μόλις τελειώσει: eject
- -f = Αντί για links γράψε τα πραγματικά αρχεία.
- -input-charset iso8859-7 = Για να βλέπετε ελληνικά και στα Windows..
Κάποια drives θέλουν να ξέρουν πρώτα το μέγεθος των sectors. Τότε γράφουμε επακριβώς το mkisofs + τα εξής: -quiet -print-size. Παράδειγμα mkisofs -R -l -J -r -quiet -print-size /fakelos. Θα μας δώσει τον αριρθμό των sectors, θα τα γράψουμε στο cdrecord ως tsize=45345s (μην ξεχάσετε το "s") στο τέλος.
Εγγραφή bootable cd
mkisofs -b /bootfiles/boot.ima -c /bootfiles/boot.catalog -r -R -J -l -L /home/user1 | cdrecord dev=0,4,0 -v --eject speed=4
Bootable USB
Salix example.cd /salixfolder/; mkisofs -o /mnt/tempfs/salix.clv-test-modules.iso -v -J -R -D -A "slax.clv" -V "Slax optical" -no-emul-boot -boot-info-table -boot-load-size 4 -b boot/syslinux/isolinux.bin -c boot/syslinux/isolinux.boot .
Χρήσιμα για δίκτυο
Δικτυακό backup
dd if=/dev/hda | gzip -cf | nc 192.168.1.10 -p 8000
Οπου βάζεις την ip του pc που θέλεις να το στείλεις.
nc -l -s 192.168.1.10 -p 8000 | gunzip -cf | dd of=/dev/hda
Διαγραφή routing table (επικύνδινο!)
ip route flush table main
Κατέβασμα ιστοχώρου
wget --output-file=wget_site.log -r -L -k --limit-rate=10000 http://site.com
- --output-file = παραβλέψτε το για να βλέπετε στην οθόνη τα απολέσματα
- -r = recursive (ακολουθεί υπερσυνδέσμους), δεν μπορεί να ακολουθήσει υπερσυνδέσμους σε flash.
- --limit-rate = αριθμός σε bytes για περιορισμό στην διαμεταγωγή δεδομένων
- -k = μετατροπή κώδικα για ανάγνωση από τον δίσκο.
- -L = Κατεβάζει μόνο σχετικά (relative) links.
Κατέβασμα ιστοσελίδας με περιορισμούς
wget --convert-links -p -r -L -l 1 -P test/ http://site.com/page
- -p = κατέβασε όλα τα σχετικά αρχεία της ιστοσελίδας
- -l 1 = μην ξεφύγεις σε άλλο κατάλογο.
- -P test/ = κατέβασε στον φάκελλο test
Κατέβασμα με λίστα αρχείων
wget -i /h_lista_me_ta_arxeia -x --cut-dirs=x --limit-rate=10000
- -i = Η λίστα είναι της μορφής ftp://τοποθεσία/φάκελος/αρχείο
- -x = Δημιουργία απαραίτητων φακέλλων στον τοπικό δίσκο.
- --cut-dirs=x = Βάθος φακέλων που θα παραβλεθούν για την δημιουργία φακέλλων στον τοπικό δίσκο. (πως τα γράφω έτσι..)
- --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
Επανεκίνηση Samba
smbcontrol smbd reload-config
smbcontrol nmbd reload-config
Find Samba Share
smbtree -N
nmblookup (e.x.) MYBOOK
Bittorrent
bittorrent-console
bittorrent-console --max_upload_rate 3 --minport 16882 --maxport 16882 --save_in Φάκελλος --display_interval 5 --no_spew [Bittorrentfile]
- minport XXXX = 6882 ή 6881
- no_spew = no diagnostic to stdout
- max_upload_rate x = σε μονάδες KBytes ανά δευτερόλεπτο
ctorrent
ctorrent -e 24 -E 1 -p 6882 -s /home/shared/ -D 45 -U 10 file.torrent
- -e = μοίρασε για 24 ώρες
- -E = μοίρασε μέχρι ratio 1
- -p = θύρα 6882
- -s = save as (αποθήκευση σε)
- -D = Download rate se Kbytes
- -U = Upload rate se Kbytes
Irssi (IRC)
Window Management
/win show x
/win size x
Log
/log open -targets #slackbuilds ~/.irssi/SBo-%Y-%m-%d
Σύστημα
temp disable ccache
export CCACHE_DISABLE=1
Δημιουργία Kernel
Πρώτα το patching!
cd /usr/src/linux/
bzcat patch-xxxx.bz2 | patch -p1
Έτοιμοι για ρύθμιση και compile
cd /usr/src/linux
make mrproper
cp myconfig .config
make oldconfig
make xconfig
(load myconfig eg: file > open)
vi Makefile
(σημαντικό! για να γίνουν τα modules σωστά, συμπληρώνουμε το όνομά μας (παράδειγμα) στο extra version)
make bzImage ή make CC=distcc -j 8 bzImage
make modules
make modules_install
cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage2.6.myconfig
cp System.map /boot/System.map2.6myconfig
ln -sf /boot/System.map2.6myconfig /boot/System.map
vi /etc/lilo.conf
lilo
Δημιουργία συγκεκριμένου module
make menuconfig (xconfig)
make prepare
make module SUBDIRS=sound/pci
make modules_install SUBDIRS=sound/pci
Αλλαγή της συχνότητας επεξεργαστή τύπου SpeedStep
Προϋπόθεση ο kernel 2.6.
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 500000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
Βλέπουμε την τρέχουσα συχνότητα με cat /proc/cpuinfo
Ramdisk
ls /dev/ram*
Έλεγχος για ύπαρξη των συσκευών.
less /var/log/dmesg | grep RAMDISK
Έλεγχος για μέγεθος RAMDISK.
mke2fs -m 0 /dev/ram0
Format το Ramdisk
mkdir /mnt/rd0
mount /dev/ram0 /mnt/rd0
chown xxxxx.root /mnt/rd0
Link
ln -s /πηγή /link
bmon
bmon -o null -O html:path=/mypath/ -i proc -p eth0 &
Udev
udevadm monitor
vi /etc/udev/rules.d/udev.rules
BUS=="xxx", KERNEL=="yyy(ex.sd[a-z]1", SYSFS{xxxxxx(ex.product)}=="xxxxxx", NAME="%k%n", SYMLINK+="xxx/xxx(ex.usb/ondioFM)"
Για usb βοηθάει το lsusb -v
Λειτουργίες για κείμενο
Συγχώνευση (join) γραμμής
tr '\n' ' '
vi replace (το ξεχνάω συνέχεια αυτό :-)
:%s/old_text/new_text/g
g = global
:%s/tothelw/&kai_kati_allo/gc
To & συμπληρώνει (append) και το c για confirmation
:%g!/tothelw/d
Σβήνει όλες τις γραμμές ΔΕΝ (!) έχουν "tothelw"
:%s/kati/\r/g
\r = newline
:10,40s/this/that/g
10,40 = range
vi replace με μεταβλητές
\(κάτι\) = μεταβλητή 1 (συμβολίζεται με \1)
sed αντικατάσταση με μεταβλητή
echo test | sed 's/test/&_abc/' test_abc
Vim -d
- do: αντιγραφή από δεξιά (diff obtain)
- dp: αντιγραφή από αριστερά
gawk -F'\"' '{ print $4 }'
Εκτύπωση της 4ης στήλης που προσδιορίζεται με το delimiter ".
gawk -F'\"' '{ print $4 }'
Ροή δικτύου (Traffic Shaping)
tc qdisc del dev eth0 root
Διαγραφή κανόνα
Νέα σύνδεση σε γραφικό περιβάλλον
startx -- :1
(τιμές από 0 έως 5)
Γραφικό περιβάλλον από άλλον υπολογιστή
Στον host: xhost IPtoyALLOY
Σύνδεση στον remote: με ssh -X, αν είναι με screen cp .Xauthority file from original user.
Xine με συγκεκριμένους υπότιτλους
Κανονικά οι υπότιτλοι πρέπει να έχουν το όνομα της ταινίας, αλλά με διαφορετική "επέκταση". Έτσι, αν η ταινία είναι η movie.avi οι υπότιτλοι: movie.srt
xine file.avi::file.srt
Δημιουργία traffic στο δίκτυο για δοκιμή bandwidth
boxA netcat -l -p 1234 > /dev/nullboxB netcat boxA 1234 < /dev/zero
Απομακρυσμένη οθόνη σε τοπικό δίκτυο
xhost +client_ip_or_nameΣτον server.
export DISPLAY=server:0
Στον πελάτη.
ocr
Για βάση δεδομένων χρειάζεται φάκελο στο home με όνομα db (mkdir ~/db)
gocr -i file_image.pbm -o output_text -f UTF8 -m 130 -m 256 -m 32 -a 90
- -i = αρχείο εικόνας
- -o = αρχείο κειμένου που θα δημιουργηθεί
- -f = κωδικοποίηση (encoding)
- -m = διάβασα man page το 256 είναι σημαντικό
- -a = ομοιότητα χαρακτήρων
Ηχογράφηση
arecord -D plughw:0,0 file.wav
arecord -f cd | lame -r -V 3 --vbr-new - > my-sound-card-mix.mp3
Αν θες να ηχογραφήσεις την μίξη (ότι παίζει η κάρτα ήχου) και έχεις τον σύστημα pulse (υπάχει το Alsa και το Jack) τότε φορτώνεις:
pacmd load-module module-loopback latency_msec=50
και μετά:
arecord -D pulse -f cd | lame -r -V 3 --vbr-new - > my-sound-card-mix.mp3
split mp3
mp3 split - αυτόματο, με την σίγαση (-40 = dB)
mp3splt -s -p th=-40,trackjoin=20,rm=1_1 file.mp3
th = threshold of -80 db to split
rm = keep 1 second
trackjoin = seconds for minimum duration
mp3 split με διάρκεια mp3splt file.mp3 -o file__trimmed mm.ss mm.ss
Αντιγραφή σε άλλον υπολογιστή με ssh
scp arxeio user@domain:/fakelos
Προχωρημένη / αρρωστημένη κατάσταση, φαντασία να έχεις...
cat arxeio | ssh "cat > arxeio"
Magic SysReq Key
echo s > /proc/sysrq-triggerchroot
One-liner
DEV=/dev/sdb1 mkdir /mnt/$DEV; mount /dev/$DEV /mnt/$DEV; mount -t proc none /mnt/$DEV/proc; mount -o bind /dev /mnt/$DEV/dev; chroot /mnt/$DEV
mount -t proc none /mnt/mountpoint/proc
mount -o bind /dev /mnt/mountpoint/dev
chroot /mnt/mountpoint/
mpeg4 (xvid)
Πρώτa με lsdvd, βλέπουμε chapters κ.ο.κ.
Αντιγραφή στον σκληρό δίσκο με vobcopy -l
Κάποιες φορές καλύτερα για να τραβήξουμε μόνο ένα angle tccat -t dvd -i /mnt/dvd -T 1,-1,1 -d 2 > dvd.vob
mencoder FILE.vob -o file.mp4 -profile x264 -of lavf
~/.mplayer/mencoder.conf [x264] profile-desc="X264 encoding" channels=2 oac=mp3lame=1 lameopts=vbr=4 ovc=x264=yes x264encopts=preset=veryfast:crf=23:tune=film
ffmpeg -i ./FILE.vob -vcodec libx264 -crf 23 -preset veryfast -tune film -vf setsar=16:9 -vf setdar=16:9 -acodec libmp3lame -aq 4 -y ./FILE.mp4
Ταινία παραμορφωμένη όπου τραβήχτηκε από 16:9 σε 4:3
transcode -i tainia.vob -T 1,-1 -Y 0,32 -B 32,0 ffmpeg -w 800 -F mpeg4 -b 160,0,5,0 --nice 19 -y ffmpeg -o tainia.avi
Επανασυμπίεση video κινητού για μικρότερο μέγεθος
ffmpeg -i ./file.3gp -itsoffset 0.5 -vcodec libx264 -crf 23 -preset veryfast -acodec copy ./file.3gp.mp4
crf = 23 είναι η ποιόητα, όσο μικρότερος αριθμός τόσο καλύτερη ποιότητα. Μην επιλέξετε κάτω από 18!
preset = veryfast, έχει άμεση σχέση με την ποιότητα, εγώ δεν διακρίνω διαφορά με faster, fast, medium.
itsoffset = μισό δευτερόλεπτο νωρίτερα ο ήχος.
Ενσωμάτωση υποτίτλων ως εικόνα
ffmpeg -i file.mp3 -vf "subtitles=file.srt" -y output.mp4
side-by-side video
ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex "[0:v]setpts=PTS-STARTPTS, pad=iw*2:ih[bg]; [1:v]setpts=PTS-STARTPTS[fg]; [bg][fg]overlay=w" side_by_side.mp4
Διαμοιρασμός αρχείων τοπικά
mediatomb -m /mediafiles/ -a /mediafiles Ωραίος τρόπος να περάσετε ταινίες και mp3 στο iPhone (VLC)
Μετατροπή video σε dvd
ffmpeg -i file.avi -target dvd -aspect 16:9 -crf 23 outputfile.mpg
Περισσότερη λεπτομέρεια εδώ:
# ffmpeg version 0.8.7
nice ffmpeg -i ../video-file.avi -f dvd -deinterlace -b 3000k -maxrate 5000k -minrate 0 -bufsize 1835008 -packetsize 2048 -muxrate 10080000 -g 15 -trellis 1 -vf crop=720:576 -acodec copy -fs 4.3G -ss 00:00:05.560 -t 00:01:00.000 -s 720x576 -y dvd-file.vob
Portrait (κάθετο) video to landscape (οριζόντιο)
Δοκιμασμένο με iPhone. ffmpeg -i IMG_0906.MOV -c:v libx264 -preset ultrafast -profile:v main -vf rotate=PI/2 -crf 23 -acodec libmp3lame -ab 96k -y ./IMG_0906.MOV.mp4
Muxing (merge) of video and audio
Αντικατάσταση ήχου σε video.
avimerge -i video.avi -p audio.mp3 -A 0 -o video-new-audio.avi
... and with ffmpeg for mp4 (merge new audio on video)
ffmpeg -i video.mp4 (whatever) -i audio.mp3 -vcodec copy -acodec copy -map 0:0 -map 1:0 -y video-new-audio.mp4
One video, multiple audio channels.
ffmpeg -i VIDEO.mp4 -i AUDIO1.mp3 -i AUDIO2.mp3 -i AUDIO3.mp3 -acodec copy -vcodec copy -map 0:0 -map 1:0 -map 2:0 -disposition:a:0 default -disposition:a:1 none -disposition:a:2 none -y NEW-VIDEO-with-3-audio-channels.mp4
-disposition = ορισμός default track.
Εγγραφή σε DVD
dvdauthor -o dvd -t -f dvd-file.vob
dvdauthor -T -o dvd/
Η δεύτερη εντολή ετοιμάζει το απαραίτητο αρχείο VIDEO_TS.IFO
mkisofs -dvd-video -udf -o dvd.iso dvd/
cdrecord speed=2 dev=/dev/YOURDEVICE dvd.iso
Some tutorial.
Εξαγωγή ήχου και συμπίεση
tccat -t dvd -i /media/dvd | tcdemux -a 0 -x ac3 | tcextract -t vob -x ac3 | tcdecode -x ac3 | lame -x -h -b 160 - arxeio.mp3ffmpeg: μετατροπή σε divx με το ζόρι
Αυτή η τεχνική χρησιμοποιείται γιατί κάποια standalone players βλέπουν tag xvid και δεν παίζουν τα video, ενώ μπορούν! ffmpeg -i input -vtag divx -b 600k -acodec libmp3lame -ab 128k output.avi
ffmpeg: κράτημα μόνο του mp3 stream.
for i in *.flv; do ffmpeg -acodec copy -i $i $i.mp3; doneScreen Capture (ffmpeg)
You can also try recordmydesktop.
ffmpeg -y -r 25 -s 1020x760 -f x11grab -i :0.0+0,0 -crf 23 -preset veryfast /mnt/tempfs/screencapture.mp4
-preset ultrafast for slow processors, or if you are in hurry.
Extract problematic stream (subtites)
mencoder FILEWITHSUBS -nosound -ovc frameno -o /dev/null -vobsuboutindex 0 -sid 0 -vobsubout SUBFILE
Extract problematic strem (audio)
Verify, found the aid of sound streams with mplayer -v FILE then...
Encode multiangle dvd
HandBrakeCLI -i DVD_FOLDER -c 1-17 --angle 1 -e x264 -E mp3 -q 23 -a 3,1 -Q 4 -6 stereo -o /mnt/tempfs/test.mp4
Hints
-a 3,1 = audio tracks 3 and 1
-c 1-17 = chapters
mplayer FILE -dumpaudio -dumpfile FILE.stream -aid STREAMINDEX [ex. 128]
more info
Screen Capture (image)
You can also try ksnapshot or print screen button! import -window root ~/myscreen.png
Synchronize
Local
rsync -avn --delete /source /dest
- με -n γίνεται δοκιμή.
Απομακρυσμένα
rsync -av --delete /source user@host:/dest
Εικόνα
Βρες τις φωτογραφίες "portrait"
Οι SLR μηχανές γράφουν ενα tag για τον προσανατολισμό της φωτογραφίας, η παρακάτω εντολή βρίσκει όλες τις φωτογραφίες με κάθετο προσανατολισμό (portrait) και δημιουργεί μία λίστα στο αρχείο portraits.
for i in *.JPG; do exiv2 -pa $i | grep Orientation.*bottom && echo $i; done > portraits
Για φωτογραφικές που δεν χρησιμοποιούν το exif tag (όπως οι compact) ίσως γράψω tutorial :)
Αλλαγή μεγέθους
Χρησιμοποιώ το convert από την σουίτα προγραμμάτων του ImageMagick
convert -resize 800x600 image.jpg image_resized.jpg
Μετατροπή σε ασπρόμαυρο
convert -white-threshold 50% -black-threshold 100% -rotate 90 -quality 100 test.jpg -colors 2 test_xv.png
or
convert -threshold 50% -rotate 90 -quality 100 test.jpg -colors 2 test_xv.png
convert -rotate -90 -white-threshold 80% -fill white -draw 'rectangle 1300,0 1500,2150' -crop '2640x1960+60+112' -resize '1920x1080^'
- -fill white = γέμισμα με χρώμα (λευκό)
- -draw ... = upper left, down right
- -crop = κρατάει μόνο τα συσγκεκριμένα pixels με offset μετά τα +
- -resize = με το σύμβολο ^ ορίζουμε τις ελάχιστες διαστάσεις
Εικόνες σε pdf ή σε multipage tiff
convert *.jpg -stretch-contrast 0% -density 150 together.pdf (instead of pdf write tiff for tiff and add -compress LZW)
density = dpi 150
pdf σε εικόνα
Για ασπρόμαυρο convert -colorspace Gray -density 150 -trim FILE.pdf -alpha deactivate FILE.png
Labeling
convert -pointsize 18 -resize 512x288 input_file.jpg -fill '#0008' -draw 'rectangle 5,1,96,48' -fill white -annotate +10+40 'label' output_file.jpg
diff / patch
diff -U 0 originaldirectory/ targetdirectory > my_patch.diffpatch -p0 < my_patch.diff
suspend proccess
kill -s tstp proccess
ionice
ionice -c3 -ppid
- pid=program id
static ip for testing
ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255
route add default gw 192.168.0.1 dev eth0
PDF merge
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=finished.pdf *my_sorted_files*.pdf
Or use pdfconcat
PDF crop
pdfcrop --margin '-40 -40' file_pdfcrop_prepared.pdf file_cropped-40.pdf
mySQL / mariaDB
add column / field ALTER TABLE mytable ADD field varchar(40) AFTER otherfield; UPDATE table SET field = 'newdata' WHERE column_or_field = 'olddata';
CREATE USER 'finley'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON database.* TO 'finley'@'localhost' WITH GRANT OPTION;
show variables like '%ssl%';
admin
Wireless admin
list connections: rfkill list
Geotagging
nmea se gpx gpsbabel -i nmea -f yourNMEA.file -o gpx -F convertedGPX.file
Ubuntu upgrade via console
do-release-upgrade
git
git status git pull git commit -m "message" git push
git advance
git checkout BRANCH git checkout -b BRANCH git remote -v git remote add upstream http://github.com/adafruit/TinyLora git fetch upstream git merge upstream/master git push
git tag
git tag -a 1.2 git push origin
Network monitor commands
nethogs, iftop, tcpdump, netstat, iptraf
GUI
Xfce4 keyboard shortcuts. Compare system setting with user setting.
vim -nd /home/krg/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
Τυχαία εικόνα
1954_12_Soft Watch at the Moment of First Explosion.jpg
You are here with: CCBot/2.0 (https://commoncrawl.org/faq/)
Your IP: 35.175.107.142
Made in Linux :)
Hits: 4899
Hello robot CCBot!
Φόρτος CPU: 0.16 | 0.11 | 0.06