Benutzer-Werkzeuge

Webseiten-Werkzeuge


nuetzliche_linux-werkzeuge

nützliche Linux-Werkzeuge

siehe auch: Terminaleinstellungen

GPN18 - Moderne Kommandozeilen Werkzeuge …seine Favoriten:

  • tmux (Alternative zu screen)
  • zsh (inkl. oh-my-zsh) + fzf (Alternative zu bash)
  • ranger (Alternative zu mc)

man

To obtain a neat PostScript rendering of a manual page, use ''-t'' switch
of the man(1) utility: ''man -t <topic>''.  For example:

        man -t grep > grep.ps   # Save the PostScript version to a file
or
        man -t printf | lp      # Send the PostScript directly to printer

top

In top gibt es drei wichtige Schalter:

  1. hHilfe: hier wird eine Kurzanleitung zur Bedinung angezeigt
  2. oOrder: hiermit kann man dann die Reihenfolge der Felder festlegen
  3. fField: hiermit kann man festlegen, nach welcher Spalte sortiert die Tabelle angezeigt werden soll
    • es ist aber auch möglich, hiermit zusätzliche Spalten zu aktivieren, indem man sie einfach als Sortierspalte auswählt; nachher kann man dann wieder eine andere Sortierspalte festlegen ohne das die neue Spalte verschwindet

man kann die anzuzeigenden Spalten aber auch über eine Konfigurationsdatei festlegen:

> echo "ABEHIOQTWKNMcdfgjplrsuvyzX" > /etc/toprc
oder
> echo "ABEHIOQTWKNMcdfgjplrsuvyzX" > ~/.toprc

Die Buchstabenfolge, kann aus der ersten Zeile der Anzeige von "o" oder "f" nehmen.
Indem man kleingeschriebene Buchstaben in Grußbuchstaben umwandelt, aktiviert man sichtbare Spalten. Die Reihenfolge der Buchstaben legt die Reihenfolge der Spalten in der Tabelle fest.

  m: TIME+      = CPU Time, hundredths
  f: GROUP      = Group Name
  c: RUSER      = Real user name
* A: PID        = Process Id
* B: PPID       = Parent Process Pid
* K: %CPU       = CPU usage
* H: PR         = Priority
* I: NI         = Nice value
* P: SWAP       = Swapped size (kb)
* Q: RES        = Resident size (kb)
* L: TIME       = CPU Time
* R: CODE       = Code size (kb)
* O: VIRT       = Virtual Image (kb)
  d: UID        = User Id
  e: USER       = User Name
  n: %MEM       = Memory usage (RES)
  g: TTY        = Controlling Tty
  u: nFLT       = Page Fault count
  t: SHR        = Shared Mem size (kb)
  s: DATA       = Data+Stack size (kb)
  v: nDRT       = Dirty Pages count
  y: WCHAN      = Sleeping in Function
  w: S          = Process Status
  j: P          = Last used cpu (SMP)
  z: Flags      = Task Flags <sched.h>
* X: COMMAND    = Command name/line

netstat / ss

Alt:

> netstat -anp tcp
> netstat -anf inet
> netstat -Lanf inet

Neu:

> ss -anp tcp
> ss -anf inet
> ss -Lanf inet

netcat (nc)

Verbindungstest (hier zu einen MySQL-Server):

> nc 10.11.12.13 3306 -v
Connection to 10.11.12.13 3306 port [tcp/mysql] succeeded!

socat (Nachfolger von netcat)

1. socat-Empfänger auf "host02" starten
root@host02:~# socat - TCP-LISTEN:12345
2. socat-Sender auf "host01" starten
root@host01:~# echo "Hallo Welt!" | socat - TCP:host02:12345
3. Daten werden auf "host02" empfangen
root@host02:~# socat - TCP-LISTEN:12345
Hallo Welt!
root@host02:~# 

screen

Will man einen Prozess auf einenen entfernten Rechner starten, dann kann es zu Verbindungsabbrüchen kommen. In soeinem Fall würde der Prozess in aller Regel auch sterben.

Um das zu vermeiden kann man den Prozess auch mit dem vorangestellten Befehl "nohup" starten. Allerdings kann man nach einem Verbindungsabbruch nicht wieder auf die Konsole zurück.

Deshalb wurde das nützliche Werkzeug "screen" geschrieben.

Mit screen öffnet man einen Schirm (screen), in dem dann die Befehle, Scripte und Prozesse gestartet werden, die auch durch einem Verbindungsabbruch nicht gestört werden sollen:

screen

Mit der Tastenkombination "[Strg]+[A]+[D]" klinkt man sich aus dem Screen aus und alles was darin gestartet wurde, läuft weiter.

Und so kommt man wieder zu seinem Screen zurück:

screen -r

Wurden auf einer Maschine screen mehrfach gestartet, dann bekommt man solche Meldungen:

screen -r
  There are several suitable screens on:
          14758.pts-2.fritz (12.03.2010 14:44:30)   (Detached)
          14730.pts-2.fritz (12.03.2010 14:44:25)   (Detached)
  Type "screen [-d] -r [pid.]tty.host" to resume one of them.

In soeinem Fall muss man screen sagen welchen Schirm er wieder aufspannen soll:

screen -r 14758.pts-2.fritz

Ein Screen beendet man genauso wie eine normale Shell:

exit

oder

[Strg]+[D]

so werden alle Hard Links angezeigt, die sich im Verzeichnis /mnt befinden:

> find /mnt/ -links +1

so werden alle Dateinamen angezeigt, die keine Hard Links besitzen:

> find /mnt/ -links 1

iptables

IPTables-Regeln in Fedora/RHEL/CentOS:

/etc/init.d/iptables save
/etc/init.d/iptables stop

vi /etc/sysconfig/iptables
/etc/init.d/iptables start

Firewall-Regeln

iptables -L

Tabellen

built-in chains (INPUT, FORWARD, OUTPUT)

iptables -L -t filter

NAT/Umleitung

iptables -L -t nat
            (PREROUTING, OUTPUT und POSTROUTING)

specialized packet alteration

iptables -L -t mangle
            (PREROUTING, OUTPUT, INPUT, FORWARD und POSTROUTING)

exemptions (PREROUTING und OUTPUT)

iptables -L -t raw

IP-/Port-Umleitung (Portumleitung)

....
-A PREROUTING -d 217.11.195.209 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 9443
....

Beispiel

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

hdparm

Infos anzeigen:

> hdparm -Ii /dev/hda

gepufferter Lese-Geschwindigkeits-Tests:

> hdparm -Tt /dev/hda

ungepufferter Lese-Geschwindigkeits-Tests:

> hdparm -Tt --direct /dev/hda

Partitionstabelle neu einlesen:

> hdparm -z /dev/hda

openssl

> openssl s_client -connect www.heise.de:https

siehe auch:

curl und lynx

Aufruf einer URL, bei der man sich per NTLM (Windows) authentifizieren muss; leider können wget und links kein "ntlm", deshalb müssen wir hierfür curl verwenden; weil curl immer den Quellkode zurückgibt, müssen wir den Quellkode noch von lynx in eine menschlich lesbaren Ausgabe umwandeln lassen:

> curl --ntlm -u username:passwort --noproxy webserver.net -S https://webserver.net/webseite 2>/dev/null | lynx -stdin -dump -width=120

dm_crypt-0

> apt update
> apt -y full-upgrade
...
Trigger für initramfs-tools (0.142ubuntu25.8) werden verarbeitet ...
update-initramfs: Generating /boot/initrd.img-6.17.0-14-generic
cryptsetup: WARNING: dm_crypt-0: couldn't determine device type, assuming 
    default (plain).
cryptsetup: WARNING: Option 'cipher' missing in crypttab for plain dm-crypt 
    mapping dm_crypt-0. Please read 
    /usr/share/doc/cryptsetup-initramfs/README.initramfs.gz and add the correct 
    'cipher' option to your crypttab(5).
cryptsetup: WARNING: Option 'size' missing in crypttab for plain dm-crypt 
    mapping dm_crypt-0. Please read 
    /usr/share/doc/cryptsetup-initramfs/README.initramfs.gz and add the correct 
    'size' option to your crypttab(5).
cryptsetup: WARNING: Resume target dm_crypt-0 uses a key file
> cat /etc/fstab
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/disk/by-id/dm-uuid-CRYPT-PLAIN-dm_crypt-0 none swap sw 0 0
 
> cryptsetup status /dev/disk/by-id/dm-uuid-CRYPT-PLAIN-dm_crypt-0
/dev/disk/by-id/dm-uuid-CRYPT-PLAIN-dm_crypt-0 is active and is in use.
  type:    PLAIN
  cipher:  aes-cbc-essiv:sha256
  keysize: 256 bits
  key location: dm-crypt
  device:  /dev/nvme0n1p3
  sector size:  512
  offset:  0 sectors
  size:    16777216 sectors
  mode:    read/write
 
  type:    PLAIN
  cipher:  aes-cbc-essiv:sha256
  keysize: 256 bits
 
=> ,plain,cipher=aes-cbc-essiv:sha256,size=256
 
> vim /etc/crypttab
dm_crypt-0 PARTUUID=bd600e11-0832-48ec-8fdc-83f41d004854 /dev/urandom swap,initramfs,plain,cipher=aes-cbc-essiv:sha256,size=256
 
> update-initramfs -u -k all
/home/http/wiki/data/pages/nuetzliche_linux-werkzeuge.txt · Zuletzt geändert: von manfred