Tipps und Tricks für Unix-Systeme: Sonstiges

 
Stand: 18.08.2004

Für die Richtigkeit oder Vollständigkeit der Angaben wird keine Gewähr übernommen; ebensowenig für eventuell daraus entstehende Folgeschäden - will heißen: Vor Einsatz der hier vorliegenden "Befehlchen" Köpfchen einschalten!

Solaris, Irix, AIX, Linux, HP-UX, Unix und andere sind eingetragene Markenzeichen

Von mir hin und wieder gebrauchte Infos

Newsgroups:


Fragen


Antworten zu UNIX allgemein

Wie trenne ich ein großes File in diskettengroße Häppchen auf?
    Der UNIX-Befehl heißt split:
      split -b 1400k <Riesenfile> <Teil>
    Die Teile werden als Teilaa, Teilab, Teilac ... benannt und sind alle
    maximal 1,4 MB (=1400k) groß.

    Zum wiederzusammenfügen kann man z.B. den Befehl cat verwenden:
      cat Teilaa Teilab Teilac ... > Riesenfile
Wie benenne ich mehrere gleichartige Filenamen um?
        Das Ende wird mit "%", der Anfang mit "#" ´abgetrennt´:

	*.gz -> *.txt.gz:	for i in *.gz ; do mv $i ${i%.gz}.txt.gz ; done
	a3d*.HTM -> A3D*.HTM:	for i in a3d*.HTM ; do mv $i A3D${i#a3d} ; done

        Variante: Links von /home/* nach /home_local/* erzeugen:

	cd /home; for i in /home_local/* ; do ln -s $i %{i#/home_local/} ; done

	Den Filenamen in Kleinbuchstaben umwandeln:

	for f in *; do mv $f `echo $f | tr '[A-Z]' '[a-z]'`; done

Wie sieht so ein berüchtigtes 'rasendes' fork-Testprogramm aus?
        main() { while (fork()); }
        main() { for (;;) { fork(); malloc(100); } }
Wie ersetze ich Strings in Dateien?
        Nachfolgend wird die Datei datei.txt umbenannt in datei.bak und
        in der Datei datei.txt jedes Vorkommen von "alter Text" durch
        "neuer Text" ersetzt:

        perl -pi.bak -e "s/alter Text/neuer Text/g;" datei.txt

	Angeblich soll folgendes auch funktionieren:

	grep -l -s -e $1 $3 | xargs perl ..... "s/$1/$2/g;"

	Innerhalb von Shell-Skripten funktioniert folgendes zuverlässig:

	echo -e "/ZEILENTEXT/s/ALT/NEU/\nw\nq" | ed -s DATEI
	für jedes erste Vorkommen pro Zeile und

	echo -e "/ZEILENTEXT/s/ALT/NEU/g\nw\nq" | ed -s DATEI
	für jedes Vorkommen in der Datei
Wie kopiere ich ganze Verzeichnisse von einem Rechner auf einen anderen?
	rsh <remotehost> tar cf - <remoteDir> | ( cd <lokalDir> ; tar xpf - )
Wie spiele ich nur bestimmte Dateien aus einem tar-File zurück?
	tar xf tarfile.tar `tar tvf tarfile.tar | grep "text" | cut -b 49- xargs`

	besser ist aber:

	tar tvf tarfile.tar | grep "text" | xargs tar xvf tarfile.tar
Wie lösche ich Dateien, die älter als n Tage sind?
	z.B. alle Dateien unterhalb des Verzeichnisses verzeichnis, die
	älter als 200 Tage sind:

	find verzeichnis -mtime +200 -exec rm -f {} \;
Wie wandle ich CRLF in LF um?
	cat filename | tr -d '\15' > zielfile
Wie rechne ich das Datum um N Tage zurück?
	Das folgende Skript erwartet als ersten Parameter die Anzahl N der
	zurückzurechnenden Tage und benötigt perl zur Funktion:

	perl -e "print scalar localtime (time - $1 * 86400)"
	echo ""
Wie arbeitet Unix als Samba-Client?
	Der Befehl hierzu lautet z.B.:

	smbmount //quenya/e$ /mnt -U erl

        Wegmounten geht mit

	umount /mnt
Dabei steht e$ für das E:\ Laufwerk des Windows-Rechners. Anstelle der Laufwerksbezeichnung kann auch der jeweilige Freigabename stehen.

Wie teste ich das Mail-verschicken zu Fuß?

	telnet localhost 25
	HELO
	MAIL FROM:server
	RCPT TO:user@destination.dummy
	DATA
	bla test message
	fasel
	.
	QUIT
Tipps zum Unix-Editor VI
	Automatisches Einrücken
	:set autoindent
	:set shiftwidth=2
	Mit ">" kann dann eine Zeile, bzw. ganze Blöcke eingerückt
	werden.

Antworten zu SUN-Solaris

Wie bekomme ich die wichtigsten Systeminfos heraus?
	Installierte Software		pkginfo
	Prozessoren			psrinfo -v
	Revisionen			showrev -a
	Volumes				volcheck
Wie halte ich den Rechner an?
	<Stop> + <a>			Vorsicht!!!
Wie installiere ich neue Devices (CD-ROM) zum booten?
	Neue Devices müssen registriert werden:

	Beim Bootprompt:		boot -r
	Mit dem Reboot-Befehl:		reboot -- -r

	Dann:	setenv boot /blafasel/..../iommu@f

		/etc/....

		use cdrom drive /dev/rdsk/c*s2 dev_cdrom.so cdrom%d

	Die paar obigen Zeilen sind mir aber inzwischen völlig unklar
	geworden!

	Später kann man dem automatischen mounten "nachhelfen":

	volcheck
Wie kann ich von Hand Devices manipulieren?
	Um das zu tun, muß der Volume-Manager deaktiviert werden:

	/etc/init.d/volmgr stop

	Dieser Aufruf entfent den vold (Volume-Daemon).

	Aktivieren geht mit:

	/etc/init.d/volmgt start

Wie mounte ich eine CD-ROM?
	mount -o ro -f nsfs /dev/dsk/c0t6d0s2 /cdrom

	Wobei für "c0t6d0s2" gilt:

	c0 = Controller 0
	t6 = Target ID 6 (SCSI-ID)
	d0 = Device 0
	s2 = Subdevice 2

Wie lege ich ein Filesystem an?
	newfs -v /dev/rdsk/c0t....

	Dabei ist der Device-String wie oben beschrieben aufgebaut
Wo ist der Swap-Bereich?
	Der Swap-Bereich und /tmp sind unter solaris das selbe!
Wo sind die wichtigsten DNS-Dateien zu finden?
	Die wichtigste Datei ist:

		/etc/nsswitch.conf

	Hier kann unter anderem die Suchreihenfolge für die
	Namensauflösung festgelegt werden.
	Dafür gibt es vorkonfigurierte Beispiele, z.B.:

		nsswitch.nis

	Diese sollten dann entsprechend angepaßt werden:

		z.B.:  "hosts: dns[NOTFOUND=return] files"

	Natürlich gibt es auch die Resolver-Konfigurationsdatei

		/etc/resolv.conf

	mit Inhalt ähnlich wie

		domain ...
		nameserver ...
		...

	und weitere anzupassende Files unter /etc.

Infos zu HP-UX

Wie bekomme ich die wichtigsten Systeminfos heraus?
	Swap Space:	/etc/swapinfo

Infos zu SGI

Wie bekomme ich die wichtigsten Systeminfos heraus?
	hinv					(ganz einfach!)


22.08.2002, 03.09.2002, 02.10.2002, 18.08.2004, Copyright 2002-2004 by R. Erl

Advanced Bash Scripting Guide

Die wichtigsten Unix-Kommandos

ksh Tricks