Basiswissen für Vergessliche.
Auf nahezu jedem Unix-Betriebssystem ist der zu Hause. Wichtig ist zu verstehen, dass der VI in verschiedenen Modi läuft. Diese Modi wären:
Folgendes ASCII-Bild aus Wikipedia sollte es etwas veranschaulichen, wie die Modi aufgerufen werden und wie sie zu verstehen sind:
| Start mit
| vi <dateiname>
v
+--------------------+ +--------------------+ +-------------------+
| | | | | |
| Kommandozeilen- | <--------- | Befehls-Modus | ---------> | Einfüge-Modus |
| Modus | „:“ | | „i“, „a“, | |
| | | Verwendung von: | „o“ usw. | |
| z. B. „wq“, „q!“ | | yy, p, dd, J | | Normales Editie- |
| oder komplexe | | usw. | | ren, Pfeiltasten |
| Befehle wie | | | | Bildscrollen usw. |
| „Suchen und | [Enter] | (Der vi startet | [Esc] | |
| Ersetzen“ | ---------> | in diesem Modus) | <--------- | |
| | | | | |
+--------------------+ +--------------------+ +-------------------+
| |
| Beenden mit | Beenden mit
v „wq“ oder „x“ v „ZZ“
:set ff=unix # UNIX-Format :set ff=dos # DOS-Format :set ff ? # zeigt aktuelles Format
:Bereich/Suchbegriff/Ersatztext/gc
%s = gesamtes Dokument
g = Ersetze alle Vorkommnisse des Suchbegriffs
c = Fordere eine Bestätigung für jede Ersetzung an
%s/Suchtext/NeuerText/gc
:1 [enter] # Anfang :X [enter] # Springe zu Zeile X [Shift] + [G] # Ende
Mittels des folgenden Befehls kann der Standard-Editor geändert werden:
# update-alternatives --config editor Es gibt 6 Auswahlmöglichkeiten für die Alternative editor (welche /usr/bin/editor bereitstellen). Auswahl Pfad Priorität Status ------------------------------------------------------------ 0 /usr/bin/vim.nox 40 automatischer Modus 1 /bin/ed -100 manueller Modus 2 /bin/nano 40 manueller Modus 3 /usr/bin/mcedit 25 manueller Modus 4 /usr/bin/vim.basic 30 manueller Modus * 5 /usr/bin/vim.nox 40 manueller Modus 6 /usr/bin/vim.tiny 15 manueller Modus Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten, oder geben Sie die Auswahlnummer ein:
Vorab sei gesagt, dass es in der Regel reicht, die Datei /etc/hosts anzupassen und den Server dann neuzustarten.
Es müssen ansonsten zwei Dateien im Ordner /etc editiert werden:
hostnamehosts# echo "MeinHostname" > /etc/hostname
127.0.0.1 localhost.localdomain localhost ::1 localhost.localdomain localhost 127.0.1.1 MeinHostname MeinHostname.MeineDomain.de 88.77.66.55 MeinHostname MeinHostname.MeineDomain.de
# hostname -F /etc/hostname
Dieser Befehl setzt den Hostnamen zur Laufzeit.
Durch Austausch von Public und Private Keys! Mal angenommen, wir wollen uns von „Client“ zu „Server“ ohne Passwort einloggen können:
Client> # ssh-keygen Client> # ssh-copy-id username@server Client> # ssh username@server Last login: Tue Dec 2 10:38:51 2001 from 89.125.78.5 Have a lot of fun... Server> # less .ssh/authorized_keys
Die Tools lauten:
Wenn der SSH-Dämon einen Nicht-Standard-Port nutzt:
ssh-copy-id "user@host" -p 4711
Was ist jetzt konkret geschehen? - Wir haben zunächst einen Private Key und einen Public Key für unseren User auf dem Client erstellt (ssh-keygen). Dieser Schritt erzeugt Dateien in /home/username/.ssh wie folgt:
Der Inhalt der Datei id_rsa wurde vom Tool ssh-copy-id nach /home/username/.ssh/authorized_keys auf dem Server kopiert. Des Weiteren wurde der Public Key des Servers in die /home/username/.ssh/known_hosts aufgenommen. Der Public Keys des Clients ist das Gegenstück zum Private, der jetzt auch auf dem Server liegt. Daran kann der Benutzer eindeutig identifiziert und eingeloggt werden.
Sitzung erstellen
# screen -S sitzung1
Sitzung wieder aufnehmen
# screen -r sitzung1
Sitzung trennen
# screen -d sitzung1
Mailqueue
Anzeigen:
# mailq
Erneut abarbeiten:
# sendmail -q
| r | (copy) recursive |
| t | (keep) timestamps |
| L | copy-links |
| v | verbose |
| h | human-readable |
| delete | delete (extraneous files from dest dirs) |
rsync -rtLvh --stats --log-file=copy.log --partial --delete /var/files/ /srv/files/
Oftmals hilft ein Aufräumen mittels Deinstallation alter Kernel-Dateien über
apt-get autoremove
Bleiben aber immer noch zu viele alte Kernel-Pakete stehen, dann kann sich sich zunächst mal anzeigen lassen, welche Kernel-Versionen auf dem System installiert sind:
dpkg --list 'linux-image*' | grep ^ii ii linux-image-4.15.0-135-generic 4.15.0-135.139 amd64 Signed kernel image generic ii linux-image-4.15.0-136-generic 4.15.0-136.140 amd64 Signed kernel image generic ii linux-image-4.15.0-137-generic 4.15.0-137.141 amd64 Signed kernel image generic ii linux-image-generic 4.15.0.137.124 amd64 Generic Linux kernel image
Der aktuelle Kernel ist mittels folgendem Befehl zu ermitteln. Dieser darf nicht entfernt werden!
uname -a
Der Befehl „autoremove“ schlägt auch bei nicht aufgelösten Abhängigkeiten fehl.
Wir entfernen aus der initrd.img zunächst alte Kernel mittels:
update-initramfs -d -k 4.15.0-135-generic
Jetzt ist wieder Platz auf /boot zum Arbeiten!
Dann muss dieser Kernel noch sauber über die Paketverwaltung entfernt werden:
dpkg --purge inux-image-4.15.0-135-generic
Der Befehl schlägt unter Umständen fehl, da noch Abhängigkeiten bestehen. Die abhängigen Pakete müssten dann im Vorfeld entfernt werden, zum Beispiel:
dpkg --purge linux-image-4.15.0-135-generic linux-image-extra-4.15.0-135-generic
Alle nicht zu Ende installierten Pakete erneut installieren:
dpkg --configure -a
alternativ geht auch
apt-get -f install
[...] COMPRESS=xz [...]
update-initramfs -u -k all
Berechnungtabelle Oktalsystem:
| Owner | Group | Other | |
|---|---|---|---|
| none | 0 | 0 | 0 |
| read | 1 | 1 | 1 |
| write | 2 | 2 | 2 |
| execute | 4 | 4 | 4 |
Berechnungbeispiel:
| Owner | Group | Other | |
|---|---|---|---|
| none | - | - | - |
| read | X | X | X |
| write | X | - | - |
| execute | X | X | X |
| chmod | 1+2+4=7 | 1+4=5 | 1+4=5 |
Weitere Infos: https://ss64.com/bash/chmod.html
useradd backupuser -d /BACKUP/backupuser -M -s /bin/bash chown -R backupuser.backupuser /BACKUP/backupuser passwd backupuser
# enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi # some more ls aliases alias ll='ls -alFh' alias la='ls -A' alias l='ls -CF'
Wenn Apticron mal hängen bleibt, dann kann ein manuell angetriggertes „apt-get“ nicht ausgeführt werden. Meist hängt dann ein Prozess namens „apt-get -qq update“.
ps aux | grep -i apt kill -9 82657