kleine Shell Programme ed

eng verwandt mit Shell Scripte

Text-Verarbeitung ed

Strings ausgeben
echo strings

Dateiinhalt ausgeben
cat dateien

Wörter zählen
wc datei                     # Wörter/Zeilen/Buchstaben

Ausgabe in Datei kopieren UND trotzdem ausgeben
befehl | tee datei

viel Text scrollen
less datei                    # auf- und ab
befehl | less
more datei                    # nur abwärts

Ausschnitt aus Datei anzeigen
head datei                    # erste 10 Zeilen anzeigen
head -n zeilen ...            # Anzahl der Zeilen
tail datei                    # letzte 10 Zeilen anzeigen
tail -n zeilen ...

Muster suchen

Texteditoren (interaktiv)
nano
emacs
vi
joe

Datei-Verwaltung ed

Verzeichnis-Inhalt anzeigen
ls
ls -l                         # ausführlich

Berechtigungen ändern
chmod [uga][+-][rwx] datei
chmod -R ...                  # rekursiv

Besitzer ändern
chown besitzer datei
chown -R ...                  # rekursiv
chgrp gruppe datei
chgrp -R ...                  # rekursiv

kopieren
cp dateien ziel
cp -r ...                     # rekursiv
cp -u ...                     # update (nur wenn Quelle neuer)
cp -v ...                     # verbose (Operationen anzeigen)

löschen
rm dateien
rm -r ...                     # rekursiv
rm -f ...                     # force (auch keine Fehler ausgeben)

verschieben/umbenennen
mv dateien Ziel

Verknüpfung erstellen
ln ziel link_name
ln -s ...                     # nur symbolisch (sonst "hart")

suchen
find -name "..."              # im aktuellen Verzeichnis suchen
find verzeichnis -name "..."  # im angegebenen Verzeichnis

Festplatten-Platz
df                            # Verbrauch auf allen Dateisystemen anzeigen
du                            # Speicherbedarf (in kb) des aktuellen Verzeichnisses (rekursiv gelistet)
du verzeichnis
du -h                         # sinnvolle Einheiten (mb/gb)
du -s                         # nur Gesamtgröße angeben
du --apparent-size            # Datei-Größen (!= Speicherbedarf) angeben

sonstige
touch datei                   # Änderungs- und Zugriffsdatum auf "jetzt" setzen
                              # (erstellt die Datei, falls nicht vorhanden)
file datei                    # Typ der Datei anzeigen

Benutzer ed

Benutzernamen anzeigen
whoami                        # eigener
who                           # alle angemeldeten
w                             # alle angemeldeten (und deren Prozesse)
finger benutzername           # Kontodaten anzeigen

aktuelle Shell anzeigen
tty

Passwort ändern
passwd

Prozesse ed

auflisten
top                           # Auslastung und Prozesse überwachen
ps -A                         # alle Prozesse
pidof prozess_name            # prozess-id

töten
kill prozess_id
killall prozess_name

mehrere Shells (im Hintergrund)
screen                        # startet im Vordergrund
    Strg+A+D      -> Hintergrund
screen -r                     # wieder aufrufen (oder mehrere auflisten)

später ausführen
at zeit_punkt
      befehle
at stunde:minute
at now+3hours
atq                           # Jobs anzeigen
atrm job_nr                   # löschen

Cron Tabelle
crontable -l                  # anzeigen
crontable -r                  # löschen
crontable datei               # durch Datei ersetzen

Vordergrund/Hintergrund
befehl &                      # befehl im Hintergrund ausführen (und zur Shell zurückkehren)
    Strg+Z                    # aktuellen Prozess pausieren (und zur Shell zurückkehren)
jobs                          # alle Prozesse anzeigen
fg                            # Prozess wieder im Vordergrund ausführen
fg %nummer                    # Prozessnummer aus jobs, bei befehl & oder bei Strg+Z
bg                            # pausierten Prozess wieder im Hintergrund starten
bg %nummer

Debugging
time befehl                   # Ausführungszeit messen

Programmieren ed

Compiler
gcc quellcode.c -o ziel_datei # C
g++                           # C++
gfortran                      # fortran

sonstige
ldd datei                     # benötigte Bibliotheken auflisten
valgrind datei                # Speicher debugen

Netzwerk ed

generell
ping computername            # Verbindung zu computer testen
tracepath computername       # alle Computer auf dem Weg anzeigen

auf anderem Computer anmelden
ssh computer_name
ssh benutzer@computer_name    # als anderer Benutzer
ssh -X computer_name          # grafische Oberfläche benutzbar machen

Dateien kopieren
scp datei computer:ziel-datei # auch mit benutzer@computer
scp computer:datei ziel-datei

Konfiguration
ifconfig                      # anzeigen
ifconfig eth0 192.168.1.105 netmask 255.255.255.0 broadcast 192.168.1.255
                              # IP-Adresse 192.168.1.105 für eth0 setzen
route                         # Routing anzeigen
route add default gw 192.168.1.1 eth0
                              # 192.168.1.1 als Standart-Gateway für eth0 setzen

sonstige ed

eine Bedingung testen
test ...
test 2 -lt 5
[ ... ]

aktuelles Datum anzeigen
date
date +"format"                # Zeit-Format angeben
  %S sek, %M min, %H stunde, %d tag, %m monat, % jahr

Categories: Computer