Ένας γρήγορος οδηγός για την κονσόλα (γραμμή εντολών) σε *nix (και linux).

Ένα προσωπικό σημειωματάριο υπενθυμίσεων.

Έγγραφα

Έλεγχος ορθογραφίας


aspell -l en text

Σύστημα

Αλλαγή ώρας

sudo date --set=5:49pm

Ως root (υπερχρηστης), θα αλλάξει την ώρα σε 17:49. Με ntpdate gr.pool.ntp.org ή άλλο server, διορθώνεται αυτόματα η ώρα από το internet. (λίστα με servers εδώ).

Αλλαγή ημερομηνιας

date -s '21 Dec 2007'

Χρονοδιακόπτης για κλείσιμο οθόνης

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

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

Για συμπίεση.

Αποσυμπίεση

tar -xvjf file.tar.bz2

x = eXtract

Εύρεση αρχείου αλλά και ενέργεια σχετικά μ' αυτό!

Πατήστε 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 ../{} ./

Find με βάση τον χρόνο

find / -mount -cmin -120

Find και εκτέλεση

find /mp3 -type f -name \*.mp3 -mtime -30 -exec mpg321 {} \;

Find with various wildcards

find cd0[6-9]*/ -maxdepth 1 -name \*.odt ! -name \*I_dont_want_this\*.odt

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

Αντιγραφή MBR (master boot sector)

dd if=/dev/hda of=~/MBR.image bs=446 count=1

Partition (κατάτμηση) σε αρχείο ΜΕ συμπίεση

dd if=/dev/sda | gzip -c | split -b 650m - /mnt/file

ntfsclone -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

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

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 -

(μην ξεχάσεις την παύλα στο τέλος!)

Κάποια 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

Κατέβασμα ιστοσελίδας με περιορισμούς

wget --convert-links -p -r -L -l 1 -P test/ http://site.com/page

Κατέβασμα με λίστα αρχείων

wget -i /h_lista_me_ta_arxeia -x --cut-dirs=x --limit-rate=10000

Επανεκίνηση 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]

ctorrent

ctorrent -e 24 -E 1 -p 6882 -s /home/shared/ -D 45 -U 10 file.torrent

Irssi (IRC)

Window Management

/win show x

/win size x

Log

/log open -targets #slackbuilds ~/.irssi/SBo-%Y-%m-%d

Σύστημα

Δημιουργία 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

Vi replace με μεταβλητές

\(κάτι\) = μεταβλητή 1 (συμβολίζεται με \1)

sed αντικατάσταση με μεταβλητή

echo test | sed 's/test/&_abc/' test_abc

Vim -d

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/null

boxB 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

Ηχογράφηση

arecord -D plughw:0,0 Arxeio

split mp3

Αυτό μου έχει σπάσει τα νεύρα, όλο το ξεχνάω :) mp3split 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-trigger

chroot

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)

Αντιγραφή στον σκληρό δίσκο με vobcopy -l

Ταινία παραμορφωμένη όπου τραβήχτηκε από 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 σε dvd

ffmpeg -i file.avi -target dvd -aspect 16:9 -sameq 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 -profile:v main -vf rotate=PI/2 -b:v 1200000 -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 -y NEW-VIDEO-with-3-audio-channels.mp4

Εγγραφή σε 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.mp3

ffmpeg: μετατροπή σε 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; done

Screen Capture (ffmpeg)

You can also try recordmydesktop. ffmpeg -y -r 25 -s 1020x760 -f x11grab -i :0.0+0,0 -b 3200k -preset ultrafast /mnt/tempfs/screencapture.mp4
ultrafast for slow processors

Screen Capture (image)

You can also try ksnapshot or print screen button! import -window root ~/myscreen.png

Synchronize

Local

rsync -avn --delete /source /dest

Απομακρυσμένα

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^'


Εικόνες σε 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.diff

patch -p0 < my_patch.diff

suspend proccess

kill -s tstp proccess

ionice

ionice -c3 -ppid

kill -s tstp proccess

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

Geotagging

nmea se gpx gpsbabel -i nmea -f yourNMEA.file -o gpx -F convertedGPX.file

Ubuntu upgrade via console

do-release-upgrade

Τυχαία εικόνα

You are here with: CCBot/2.0 (http://commoncrawl.org/faq/)
Your IP: 54.81.210.99

Made in Linux :)

Hits: 1856

Page generated in 1508719149.098 seconds