# ### # # ####### ##### # # # # # # # # # # # # # # # # # # # ###### ##### ####### # # # # # # # # # # # # # # # ### # # ##### # ####### ***AIX-spezifische Zusatzangaben zu LinDoc*** AIX-DIENSTPROGRAMME ALIASING ARCHIVIEREN & KOMPRIMIEREN BACKUP BEFEHLE BEFEHLSSUBSTITUTION DRUCKEN FILTER FIND FTP KONFIGURATION MAIL-OPTIONEN MASKIERUNG PROZESSE RETURNCODES SCRIPTING SHORTCUTS SIGNALE TCP/IP UMLEITUNGEN VARIABLEN & KONFIGURATIONSDATEIEN (siehe auch Befehlssubstitution) VI-SPECIALS XWINDOW AIX WINDOWS-KONZEPT zz GLOSSAR und DIVERSES ************************************************************************ ALIASING ************************************************************************ $HOME/.kshrc ................hier werden Aliase in der Loginshell gestartet alias pp='ps -ef|grep' .................pp suchbegriff liefert ps alias pp='ps -ef|grep -v grep|grep' ....dito, jedoch ohne grep-Zeile alias=lsd 'ls -l|grep ^d' ..............directories auflisten ************************************************************************ ARCHIVIEREN & KOMPRIMIEREN ************************************************************************ gzip........bestes Komprimierungsprogramm gunzip......gzip dekomprimieren zip.........winzip-kompatibles Zipprogramm gzip........zip dekomprimieren compress....altes aber ueberall verfuegbares Kompr.Progr. uncompress..compress dekomprimieren zcat........kompr.Datei anschauen (wie cat) gzcat.......umgekehrter zcat ************************************************************************ BACKUP ************************************************************************ tar - sehr verbreitet, kennt jedoch unter AIX keine Komprimierung archivieren: cd /home/pit;tar cvf /tmp/pit.tar . #(Zielarchiv Quellverzeichnis) restore: mkdir archivxx cd archivxx tar xvf /tmp/pit.tar # *** cpio - kennt Komprimierung, braucht aber eine Dateiliste (kein / -r möglich) und hatte früher mal Kompatibilitätsprobleme mit versch. cpio- versionen ************************************************************************ BEFEHLE ************************************************************************ alias ll=´ls -l´..Macht Alias ll der ls -l ausfuehrt (loeschen mit unalias ll) at -t [YY]MMDDhhmm jobname...Job um 15h ausführen banner text.......Riesenbuchstaben ausgeben cal 6 2005........Kalender Juni 05 anzeigen cal 2005..........Jahreskalender 2005 anzeigen cat -vte Datei....v=nicht druckbare Zeichen, Tab als ^I anzeigen, $ am Ende anz. cmp...............Binaerdateien vergleichen date + %m%d%H%M%S Datumsformat aneben diff [Arg] datei1 datei2 Zeigt Unterschiede auf dircmp............gleich wie cmp - jedoch fuer Verzeichnisse docsearch.........startet Netscape mit Hilfeseiten (wenn installiert) echo text.........gibt "text" aus (gleich wie print) file /usr/bin/vi..Zeigt Eigenschaften des Vi-Kommandos (Liste /etc/magic) find pfad ausdruck ...Suchbefehl istat dir.........Gibt umfangreiche Infos über ein Verzeichnis aus jobs..............listet hintergrundjobs auf (fg[%jobnr]) ln quelle ziel....macht hardlinks man befehl........manpage aufrufen. b = zurueck / q = quit man -k Suchwort...Suche in Kurzbeschr. d. manpages (gleich wie apropos) mesg n............writemeldungen ausschalten mesg y............writemeldungen wieder einschalten mkdir -p dir1/dir2/dir3...Mehrere (Unter-)Verzeichnisse aufs mal erstellen rcp host:quelldatei[en] host:ziel....Syntax f. remote-copy rm -i *Datei......Mit Rueckfragen loeschen (z.B. wenn ^im Dateinamen...) talk username.....Kommandozeilen-Chat tee datei.........liest stdin und sendet an stdout UND datei view..............vi rean only wall..............Nachricht an alle User schicken wc [-lwc].........word count -l lines / -w words / -c Bytes bzw. Zeichen which befehl(e)... whereis befehl(e). whence -pv befehl(e) write username....Broadcastmeldungen verschicken xargs ... ************************************************************************ BEFEHLSSUBSTITUTION ************************************************************************ jetzt=$(date) oder jetzt=`date` echo$jetzt RECHNER=$(hostname) echo$RECHNER echo "Heute ist `date` und es sind `who|wc -l` Benutzer angemeldet oder echo heute ist $(date) und es sind $(who|wc -l) Benutzer angemeldet $() ............leitet Output aus Halbfiltern auf Kdozeile ´´ .............dito oder mit xargs cat dateiliste|xargs -t rm loescht die Dateien, die in der Liste sind xargs -t qprt < druckliste druckt druckliste cat druckliste|xargs -t qprt dito ************************************************************************ DRUCKEN ************************************************************************ qprt dok1 dok2...Dateien an Std.-Queue schicken (alt.lp / lpr) qprt -PQname dok Dok auf best. Queue schicken qchk.............Queue checken (alt.lpstat) <--------------------------- qcan -x JobNr....Job löschen ************************************************************************ FILTER ************************************************************************ grep Sucht nach Textmustern innerhalb von Dateien grep [optionen] muster [datei1 datei2 ...] ...Syntax -c ...................liefert Anzahl Treffer, nicht das Ergebnis selbst -v ...................alles ausser der folgende Ausdruck . ..................beliebiges Einzelzeichen * ..................0 oder mehr Vorkommen des vorhergehenden Zeichens ......................(12*4 = 13, 123, 1223, 12223 usw.) [aA]..................a oder A [a-f].................beliebiges Zeichen zwischen a und f ^a .................beliebige Zeilen, die mit a beginnen z$ .................beliebige Zeilen, die mit z enden [^a-z] ...............NICHT a-z Beispiele: ls -l|grep ^d .............directories auflisten grep '^team' /etc/passwd.../etc/passwd nach Zeilen die mit team beg.durchs. '^[^^]' ..................am Anfang / nicht / grave-Zeichen ********** fgrep 'HW' phone1 ....Sucht nach HW in phone1 ********** egrep '800|817 *********** head [-Anzahl Zeilen] Datei(en) Zeigt erste Zeilen von Datei(en), standardmaessig 10 Zeilen *********** tail [-AnzahlZeilenAbEnde | +AnfangsZeilenNr] Datei(en) Zeigt umgekehrt die letzte Zeilen von Datei(en), standardmaessig 10 Zeilen tail -f Datei ........Zeigt Fortschritt einer werdenden Datei *********** sort .................sortiert Zeilen und schreibt Ergebnis nach Stdout sort [-t feldtrennzeichen] [+Feld[.Spalte]] [Optionen ....Syntax] -d ...................sortiert lexikalisch -r ...................kehrt Reihenfolge des sort um -n ...................sortiert num. Felder in arithmetische Werte -t ...................definiert Feldtrennzeichen sort a > a.tmp mv a.tmp a oder mv a a.bak sort a.bak > a ************************************************************************ FIND ************************************************************************ find / -name Dateina* 2> /dev/null .....Datei suchen ab / ohne Fehlermeldung find pfad ausdruck.........Syntax find . -name sum .........Suche nach sum im aktuellen Verzeichnis find . -name sum -print ...Anzeige muss z.T. auf alten Systemen angeg.werden find . -name 'm*' -exec ls -l {} \; ...findet m* und macht damit einen ls, ...........-exec muss mit ; abgeschlossen werden, ergebnis steht innerhalb{} find-optionen: ... -type ..... ... -size ..... ... -mtime ....aelter als 4 Tage (+4) ... -perm .....Oktale Berechtigung ... -user .....user ... -o ........oder ... -newer ....neuer als ************************************************************************ FTP ************************************************************************ Unterbefehle für ftp: pwd cd FernesVerzeichnis ........... dir (oder ls -l) ............... get FerneDatei [LokaleDatei] ... put LokaleDatei [FerneDatei] ... Hilfe [Unterbefehl] ............ quit ........................... Erste 2 Befehle: ftp> hash ......................liefert # nach Uebertragung... ftp> bin ......................binaere uebertragung Oftmals angelegte restriktive Standarduser: guest .......pw:guest anonymous ...nopw, bzw. eigene Mailadresse anon ........dito ************************************************************************ KONFIGURATION ************************************************************************ /home/user/.rhosts ....rsh-Konfigurationsdatei. Vorsicht: Eintrag + am .......................Anfang bewirkt, dass sich jeder anmelden kann ************************************************************************ MAIL-OPTIONEN ************************************************************************ mail.............Mailprogramm aufrufen d................Nachricht loeschen -f...............Nachricht in /home/user/mbox speichern m................Nachricht weiterleiten R................Antworten nur an Absender q................Beenden s................Nachrichten an eine Datei anhaengen t................Nachricht anzeigen ************************************************************************ MASKIERUNG ************************************************************************ echo "aktuelles Verzeichnis ist ´pwd´" .....pwd wird als Befehl ausgef. oder echo "aktuelles Verzeichnis ist $(pwd)" ....dito echo '$HOME'.....ignoriert alle Metazeichen zw. ' ' echo "$HOME".....ignoriert alle Metazeichen zw. " " ausser $ \ ` echo \$HOME .....ignoriert spez. Bedeutung des auf \ folgenden Zeichens ************************************************************************ PROZESSE ************************************************************************ echo $$..........Zeigt Prozess-ID der aktuellen Shell an ps -u username...Zeigt laufende Prozesse an nohup ls -R / > out 2> fehler.datei & ps -ef|grep -w root|grep -w netscape...zeigt alle netscape Prozesse v.Root ls -R / > Ausgabe 2> Fehlerdatei & ...suche starten <------Bsp------ jobs ..................................hintergrundjobs listen fg &jobnr .............................job in den Vordergrund holen Ctrl z.................................Anhalten bg &jobnr .............................in den Hintergrund schicken kill &jobnr ...........................Job terminieren ************************************************************************ RETURNCODES ************************************************************************ echo $? .........Returncode des zuletzt ausgefuehrten Befehls anzeigen Fehlercodes <0 sind ersichtlich in der Manpage des entspr. Befehls ************************************************************************ SCRIPTING ************************************************************************ Grundlegendes: #!/usr/bin/bash ...Leitet ein Script ein ksh perl #kommentar ........Immer Kommentieren fuer Spaeter und Andere! *********** Shell-Variablen: $$....PID $0....Shell-Skriptname $#....Anzahl der an das Script uebergebenen Argumente $*....(*=Zahl>0) Befehlszeilenargumente die dem Script uebergeben wurden $?....Returncode des zuletzt ausgefuehrten Befehls $!....PID des letzten Hintergrundprozesses *********** expr besitzt foldende Operatoren: \* .....Multiplikation / .....Ganzzahldivision % .....Modulo-Funktion (Restwert nach Division) + .....Addition - .....Subtraktion ********** Bedingte Ausfuehrung: && ....wenn erfolgreich dann || ....wenn nich erfolgreich dann cmd1 && cmd2 .......if cmd1 erfolgreich, then do cmd2 cmd1 || cmd2 .......if cmd1 NICHT erfolgreich, then do cmd2 Beispiel: cd /dir1 || echo Kann nicht in /dir1 wechseln #wenn cd nicht moeglich > echo rm xyz && echo datei geloescht #wenn rm erfolgreich, echo datei geloescht ********** test-Befehl (liefert wahr oder falsch zurueck): Bsp: test -a Datei (Daten vorhanden?) test -a $datei ********** if-Schlaufen: if Bedingung true then diesen Satz aktionen ausfuehren else #not diesen Satz alternativer Aktionen ausfuehren #nescessary fi ********** read-Befehl: (liest von Kdozeile + weist Werte jedes Feldes Shellvariablen zu read name?"prompt:" #Benutzereingabe erforderlich ********** for "Variable" in "Liste" do "Befehl" done ********** while "Ausdruck" do "Befehle" done ********** --> vi hallo echo "Hallo $(user)" pwd ls --> ksh hallo . script.sh.......Ausführung von script.sh in aktueller Shell ksh script.sh.....Ausführen von script.sh in neuer Ksh script.sh.........Ausführen von script.sh (hier braucht es zusaetzlich zur Leseberechtigung noch Ausfuehrungsrechte SCRIPT-BEISPIELE: ### echo Der Name dieses Shell-Script ist $0 echo Der erste übergebene Parameter hat die Nummer $1 echo Der zweite übergebene Parameter hat die Nummer $2 echo Der dritte übergebene Parameter hat die Nummer $3 echo Insgesammt wurden $# Parameter übergeben ### ls parameter.sh && cat parameter.sh ### TERMTYPE=$TERM if [ "$TERMTYPE" !="" ] # testet, wenn Variable gesetzt, dann then if [ -f /home/team01/customized_script ] #wenn Datei existiert #-f =true? (-x =ausführbar?) then /home/team01/customized_script #dann wird sie ausgeführt else echo Kein angepasstes Script verfügbar ! #sonst echo... fi else echo Sie haben kein TERM-Variable gesetzt #sonst echo... ### expr $1 \* $2 # Option 1 wird mit Option 2 multipliziert ### ************************************************************************ SHORTCUTS ************************************************************************ Ctrl-c...........aktuellen Prozess beenden Ctrl-d...........Ende der Uebertragung oder der Datei Ctrl-s...........temporäre Unterbrechung der Bildschirmausgabe Ctrl-q...........wieder fortsetzen der Bildschirmausgabe Ctrl-u...........löscht gesammte Zeile (z.B.bei falscher Passworteingabe) ************************************************************************ SIGNALE (z.B. kill) ************************************************************************ 01................hangup - abgemeldet, waehrend Prozess ausgefuehrt wurde 02................interrupt - Ctrl+c 03................quit - Ctrl+\ (wie 2, jedoch mit coredump ins akt.Verz.) 09................kill all - abschuss, ohne Nachfrage und Aufraeumen 15................beenden - Stoppt einen Prozess regulaer ************************************************************************ TCP/IP ************************************************************************ ************************************************************************ UMLEITUNGEN ************************************************************************ cat Datei1 Datei2 2> /dev/null ...Fehler ins Nirvana umleiten befehl > ausgabedatei 2> fehlerdatei < Eingabedatei befehl >> angeh.datei 2>> fehlerdatei < Eingabedatei befehl > ausgabedatei 2>&1...Stderr nach stdout (1) umleiten <------- cat Dateia > Dateib 2>&1.....Fehler in Stdout (Dateib) schicken <--Bsp.- ls -R / > bigfile 2>&1 & .............Macht Grosssuche, schreibt in .......................................bigfile samt Errormeldungen ************************************************************************ VARIABLEN & KONFIGURATIONSDATEIEN (siehe auch Befehlssubstitution) ************************************************************************ DISPLAY...........Anzeigeeinstellungen ENV...............Umgebungsvariablen HOME..............Heimverzeichnis LOGNAME...........Login-Name MAIL..............Mailverzeichnis... PATH..............Suchpfad f. ausf. Programme PS1...............Standardprompt (1.) TERM..............Terminal Typ TMOUT.............Timeout fuer Terminal set...............Variablen anzeigen echo $VAR-NAME....Variable anzeigen VAR-NAME=Wert.....Variable setzen VAR-NAME="We rt"..Variable setzen unset VAR-NAME....Variable loeschen export VAR-NAME...Variablen exportieren fuer Folge-Shells /etc/environment..1. Anmelde-Konfiguration /etc/profile .....2. " $HOME/.profile....3. " export VARIABLE-NAME ....Variable an Subshells exportieren ************************************************************************ VI-SPECIALS ************************************************************************ yy...............ganze Zeile kopieren yw...............Wort kopieren y$...............bis Ende Zeile kopieren dd...............ganze Zeile loeschen dw...............loescht naechstes Wort d$...............loescht bis Ende Zeile p................einfuegen /................suchen n................erneut suchen u................rueckgaengig (1x) . ..............Befehl wiederholen i................Einfuegen vor Curser I................Einfuegen anfangs Zeile a................Einfuegen nach Curser A................Einfuegen nach Zeile O................oberhalb Einfuegen o................unterhalb Einfuegen R................ cw...............ueberschreibt wort c$...............ueberschreibt bis Ende Zeile r................ein Zeichen ersetzen 1G...............go to Zeile 1 G................go to End of File $................go to Ende Zeile b................ w................ 0...(null).......go to Anfang Zeile Ctrl B...........Page up Ctrl F...........Page down 15iZeichen.......15 mal "Zeichen" einfuegen J................Folgende Zeilen ans Ende anfuegen (Zeilen zus.-fuegen) ZZ...............speichern und verlassen (gleich wie :wq! oder :X) ~................klein in GROSS umwandeln :%s/alt/neu/g....alles ersetzen / alt / neu / global alle ersetzen :&s/f/F/g........Beispiel: macht aus allen kleinen f grosse F :set showmode....Insert, append, replace wird rechts unten angezeigt :set nu..........Zeilennummern einschalten :set nonu........Zeilennummern ausschalten :set list........Sonderzeichenanzeige einschalten :set nolist......Sonderzeichenanzeige ausschalten ************************************************************************ XWINDOW AIX WINDOWS-KONZEPT ************************************************************************ Standardmässig wenn nur 1 Display --> :0 X-Clients........können von Kdo-Zeile oder Start-Dateien gestartet werden X-Clients........sind Anwendungen wie z.B. ...aixterm...IBM AIX-Terminalemulator ...xterm.....Standard Terminalemulator ...xclock....Uhr ...xcalc.....Wissenschaftlicher Rechner ...xwd.......Motif Window Manager X-Client-Optionen: -bg Farbe........Farbe des Fensterhintergrunds -bd Farbe........Farbe für Fensterrahmen -bw Nummer.......Breite in Pixeln für Breite des Fensterrahmens -display hostname:DisplayNr.......Gibt den Namen des Host-Servers ................................. und die Nr. der X-Server-Anzeige an -fg Farbe........Farbe für den Fensterhintergrund -fn Schriftart...Normale Grösse Text Fontset Xterm starten....xterm -display hostname:0 Variable DISPLAY ist für X-Einstellungen verantwortlich --> DISPLAY=meinPC:0 --> export DISPLAY Opensource X-Server-Emulation: cygwin/X ...download..... http://x.cygwin.com/ ...Help: ....... http://x.cygwin.com/docs/ug/cygwin-x-ug.html ...Zusatztool... putty um mit ssh auf bul200 zu verbinden ................ vermutlich noch DISPLAY=10.10.6.18:0 angeben Einstellung cygwin: Passive Mode Display: Multiple Windows Mode Putty.exe puttygen (Passphrase generieren Private-+Public-Key erstellen ssh > Key hinterlegen auf server: $HOME/.ssh/authorized_keys terminals? : enable x11 forwarding xdisplay location :10 export DISPLAY=10.10.6.118:0 xterm > startet x11-Fenstre Programme/Pageant ins Autostartverzeichnis kopieren ... ************************************************************************ zz DIVERSES ************************************************************************ lhg@acm.org...... Lionel H. Grillet, AIX Unix-Kursleiter Online-Hilfe: http://publib.boulder.ibm.com/infocenter/pseries/index.jsp freeware f.AIX... http://www.bullfreeware.com z.B. gvim, openssh ************************************************************************ ********SHARE YOUR KNOWLEDGE!!! Written by Pit of www.pitnet.org******** **Darf unter Angabe des Autors frei verwendet und weitergegeben werden** ************************************************************************