Vi, Kurzform für "Visual Interface" ist so gut wie immer und überall verfügbar.
(Info: Google bietet für vi 625 Mio Suchergebnisse, emacs kann dagegen nur 36 Mio Ergebnisse aufweisen)
Ein gutes Tutorial findet man hier: http://www.linuxfibel.de/vi.htm, der deutsche Wikipedia Artikel hier: http://de.wikipedia.org/wiki/Vim
Erweiterungen und Kurzanleitung: http://lug.mfh-iserlohn.de/vim
Vi-Lovers-Seite: http://thomer.com/vi/vi.html
Download (auch Win32) http://www.vim.org/ (hier das Buch zu Vim)
suchen - "/"
Zeile löschen - "dd"
einfügen - p (Shift+Einfügen) (s. http://www.vim.org/tips/tip.php?tip_id=386)
Kopieren - Anfang "v" (visual mode), Ende "y"(yank) - dabei auf die Statuszeile achten, da die Cursorbehandlung von derjenigen unter Windows abweicht.
:syntax on - klar, oder?
eine "aufgebohrte" Version: cream.sourceforge.net
% auf einer Klammer: auf die entsprechende schliessende oder öffnenden Klammer springen
* auf einem Wort: nach weiterem Vorkommen des Worts suchen (super Funktion!)
Ähnlich wie Emacs, automatisches Einrücken (s.auch http://vimdoc.sourceforge.net/htmldoc/indent.html):
set expandtab set tabstop=2 set shiftwidth=2 set cinkeys=0{,0},:,0#,!,!^F
Vorteil: übersichtliches Öffnen mehrerer Dateien, die getrennt in *.cpp und *.h gruppiert werden.
Strg+X+F öffnen
Strg+X+S speichern
Uebersicht commands: http://www.ss64.com/bash/
bc - programmierbarer Taschenrechner
dmesg - kernel ring buffer examinieren
find <Verzeichnis> <Suchausdrücke, z.B. -name> <Aktion>
find -name calibration*grep [-i] -R <Suchmuster> <Dateien>, -i Groß-/Kleinschr. ignorieren. falls man -R bzw. -r nutzt, sollte man als <Dateien> * wählen, damit Unterverzeichnisse durchsucht werden
grep -iR port_num src/*.cldd - anzeigen von Abhängigkeiten
lp -d <druckername> <Datei>lpq - laufende Druckaufträge bzw. Status der verfügbaren Drucker anschauen, kann jedoch sein, dass nicht alle verfügbaren Drucker angezeigt werden. In dem Fall:
sudo lprm <druckjob-nr>mutt - EMail lesen / verschicken
für kleine Aufgaben (Dateikonvertierung) kann man ein bash-Skript schreiben.
konvertieren von ppm in tiff Dateien:
for i in `ls ./*.ppm`; do convert $i $i.tiff; done;
convert -crop 536x400+4+0 test.tiff test2.tiff # Bild croppen, ab links 4 Pixelmehrere images convertieren:
for i in *.tiff; do convert $i ${i/tiff/pg8}; done<Strg+z> Konsolenprompt holen, laufender Prozess (p1) wird gestoppt. bg Prozess in den Background schieben (p1 kann weiterrechnen) fg Prozess (p1) wieder in den Vordergrund holen, Konsole gesperrt.
<Strg+r> In der Befehlshistorie suchen (http://enterprise.linux.com/enterprise/05/07/12/1448238.shtml?tid=89)
display ein Bild anzeigen
animate eine Reihe von Bildern (animiert) anzeigen
for f in */*_omni.db ; do ed $f <<EOT ; donedann im Editor:
%s/-1 -1/536 400/ // '-1 -1' durch '536 400' ersetzen %s#/unwarp/#/Framegrabber/# // 'unwarp' durch 'Framegrabber' ersetzen wq EOT
~/.bashrc - aehnlich der aus DOS Zeiten bekannten autoexec.bat allgemein
~/.alias - speichert z.B. auch Erweiterungen fuer Kommandos, wie
alias cp='cp -i'
Bildschirmphoto mit ksnapshot (ggf. über die Konsole öffnen)
macht zwar der Hotplugger von Suse, aber anscheinend (9.3) nur leidlich gut. Bei mir erschien beim Anlegen von Dateien die Fehlermeldung "...read-only...".
Also lieber in der /etc/fstab nachschauen (oder noch besser: dmesg), ob ein mount-Punkt eingerichtet ist und dann per mount /media/<usb_stick> den Stick einhängen.
xorg.conf editieren, Anleitung bei http://www.hentges.net/misc/howtos/samsung_p30.shtml, danach {XServer?} neu starten
(1) Verzeichnis aufräumen (2) cvs import -m "driver for ueye-camera" libueye original initial-release (3) mv libueye{,.old} (Kopie anlegen) (4) cvs co libueye (auschecken, um cvs-Dateien zu erhalten)(s.a. http://kj.uue.org/papers/cvs-handout/, http://www.linuxkp.org/de/content.php?&content/server/cvs2.html&print)
cvs update -j 1.2 -j 1.1 kameraform.pas
s.a. http://www.lspace.org/develop/cvsystem/rollback.html (noch nicht ausprobiert)
hwinfo
hwinfo --network
Version abfragen mit uname -sr oder -a
modprobe
lsmod
insmod
Mal wieder eine mail vom Sysadmin, dass der Plattenplatz überschritten ist:
du -h zeigt den Platz in MB an.
ssh user@rechner - auf dem Rehner einloggen
scp datei user@rechner:/verz/eichnis - Datei auf den Rechner in das Verzeichnis .. kopieren
wie kann man den Rechnernamen ermitteln?
ifconfig - Netzwerkkarten anzeigen
rcnetwork restart - nach anschliessen des Netzwerkkabels
LDFLAGS=-L/home/willi/.../lib
CPPFLAGS=-I/home/willi/.../include
PREFIX=/home/
LD_LIBRARY_PATH=...
gcc conftest_32.c -lbfd
./configure (evtl. --prefix=/home/user/local) make make installggf. wieder deinstallieren mit
make clean (Source-Verzeichnis) make distclean
http://valgrind.org/docs/manual/QuickStart.html
Symbolischer Debugger, Tutorial: http://www.dirac.org/linux/gdb/
kommerzieller Debugger, z.B. Totalview
Alternative zu make, Python-Syntax, allerdings Reihenfolge d. Befehle irrelevant
Scons legt für jeden Test ein kleines C(++)-Programm an, das Header, Library und/oder Funktion testet.
Bei einem Fehler kann man sich die Ausgabe von SCons im Detail anschauen:
vi config.log
Zwischen Command-Konsolen wechseln mit Shift + Pfeiltasten
Zwischen Sessions mit Strg+Alt + F7,F8,... wechseln
Hilfe mit 'man'
(wichtig: vorher im Yast prüfen, ob der proxy richtig eingestellt ist)
server: ftp.gwdg.de
verzeichnis: pub/linux/suse/ftp.suse.com/suse/i386/9.3/
[ http://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/i386/9.3/ ]
Peter's Linux notes
http://www.dirac.org/linux/
Shlomi Fish's Linux Dev. Notes
http://vipe.technion.ac.il/~shlomif/lecture/W2L/Technion/
http://www.cs.ust.hk/~wangj/comp151/lab02/index.html
http://hackndev.com/node/137