Benutzer-Werkzeuge

Webseiten-Werkzeuge


edv

EDV

Der Computer - von Neumann-Architektur und Harvard-Architektur

Zeit-Attribute einer Datei im unixoiden Dateisystem

Name Kurzform Beschreibung Datum ändert sich
Datei anlegen Dateiinhalt lesen Dateiinhalt ändern Dateinamen ändern
Access (Zugriff) atime Datum des letzten Zugriffs (auch lesend) Ja Ja Nein Nein
Modify (Modifiziert) mtime Datum des letzten schreibenden Zugriffs Ja Nein Ja Nein
Change (Geändert) ctime Datum der letzten Statusänderung Ja Nein Ja Ja

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

netstat

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

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

Bluetooth-Morsetastatur

gebrauchte Rechner

wissenswertes

httrack - Copy websites to your computer (Offline browser)


  4 Bit = nibble, semioctet
  8 Bit = byte, octet
 16 Bit = word, short
 32 Bit = doubleword, dword, longword, long
 64 Bit = quadword, qword, quad, long long
128 Bit = octaword, double quadword
  n Bit = n-bit integer

blkid

# blkid
/dev/sda6: LABEL="swap" UUID="6ba8d252-b664-4aca-8a3c-8d20d42a7bf2" TYPE="swap" 
/dev/sda1: LABEL="/boot" UUID="86a90784-434d-4f9b-bdac-43339c872326" TYPE="ext3" 
/dev/sda2: UUID="FzNbsT-Wr6U-oxtS-6MBN-Zf80-gIzb-pSYu1U" TYPE="LVM2_member" 
/dev/sda5: LABEL="/" UUID="20e8b653-2ced-4abb-a761-f43893a4a9eb" TYPE="ext3" 
# blkid -t TYPE="ext3"
/dev/sda1: LABEL="/boot" UUID="86a90784-434d-4f9b-bdac-43339c872326" TYPE="ext3" 
/dev/sda5: LABEL="/" UUID="20e8b653-2ced-4abb-a761-f43893a4a9eb" TYPE="ext3" 
# blkid -o device -t TYPE="ext3"
/dev/sda1
/dev/sda5

Platzbedarf der Daten auf 'root'

Manchmal steht man vor dem Problem (besonders bei Verwendung der „ext*“-Dateisysteme), dass man keinen Platz mehr auf dem Dateisystem zur Verfühgung hat aber es gibt keine Datei, die außergewöhnlich groß wird.

In soeinem Fall möchte man nicht nur sehen weiviel Platz auf dem Datenträger noch zur Verfühgung steht, dass geht mit df ganz gut, sondern man möchte auch wissen ob die Summe aller Dateien den von df veranschlgten Platzverbrauch, belegen.

Für diesen Zweck habe ich das folgende Script geschrieben:

#!/bin/sh
echo "verbrauchter Platz auf '/': $(df -hPl /|egrep ' /$'|awk '{print $3}')"
echo "durch Dateien belegter Platz auf '/': $(echo "($(du -skc / 2> /dev/null|egrep 'insgesamt$|total$'|awk '{print $1}' 2> /dev/null)-$(du -skc $(df -Pl | egrep -v ' /$' | egrep '^/dev/' | awk '{print $NF}') 2> /dev/null|egrep 'insgesamt$|total$'|awk '{print $1}'))/1024^2"|bc -l) GB"

Es misst den Platzbedarf aller Dateien im System und zieht davon den Platzbedarf aller Dateien ab, die auf separaten Mount-Point's liegen. So bekommt man als Rest, den Platzbedarf aller Dateien auf dem root-FS ('/').

Tritt hier eine große Differenz auf, dann ist es dringend angesagt, dem System einen fsck -y / im Single-User-Mode zu gönnen.


Unix/Linux allgemein

dos2unix

Wenn man unter DOS/Windows eine Textdatei erstellt, dann enthält sie am Zeilenende das ^M-Zeichen. Um es zu entfernen, kann man im einfachsten Fall das folgende Kommando ausführen:

# tr -d \\r < dosfile > newfile

Es ist aber auch möglich den Befehl „dos2unix“ zu verwenden und für die umgekehrte Umwandlung den Befehl „unix2dos“.

Installiert werden diese Befehle in FreeBSD mit:

# portinstall -prO converters/dosunix

Datei in FreeBSD vom DOS-Format ins Unix-Format überführen:

# dosunix datei

Datei in FreeBSD vom Unix-Format ins DOS-Format überführen:

# unixdos datei

Installiert werden diese Befehle in Ubuntu mit:

# aptitude install tofrodos

Datei in Ubuntu vom DOS-Format ins Unix-Format überführen:

# fromdos datei

Datei in Ubuntu vom Unix-Format ins DOS-Format überführen:

# todos datei

doscan und nmap

Nmap ist das Original, will man in einem Netz nur einen TCP-Port scannen, ist das Werkzeug doscan ganz praktisch.

doscan

Möchte man zum Beispiel wissen welche Rechner in einem bestimmten Netz per SSH erreichbar sind, dann schickt man das folgende Kommando ab:

# doscan --banner 100 -p 22 192.168.1.0/24

2010-04-25 10:02:17.843 192.168.1.1             SSH-2.0-OpenSSH_5.2p1 FreeBSD-20090522\r\n
2010-04-25 10:03:17.983 192.168.1.204           SSH-2.0-OpenSSH_5.1p1 Debian-6ubuntu2\r\n
2010-04-25 10:03:17.996 192.168.1.207           SSH-2.0-OpenSSH_5.1p1 Debian-6ubuntu2\r\n

Installiert wird doscan in FreeBSD mit:

# portinstall -prO security/doscan

Installiert wird doscan in Ubuntu mit:

# aptitude install doscan

Dieses Programm kann nur nach einem Port scannen, es ist eben für den schnellen Einsatz zwischendurch gedacht.

nmap

lsof / fuser

Der gute alte lsof ist in manchen Fällen zu langsam, dann bietet sich die Nutzung von fuser an:

Alle PID's mit Status-Buchstaben, die eine Datei offen halten (FreeBSD):

# fuser -c [Verzeichnis]

Alle PID's mit Status-Buchstaben, die eine Datei offen halten (Linux):

# fuser -mn file [Verzeichnis]

Alle PID's, die eine Datei offen halten (Linux):

# fuser -mn file [Verzeichnis] 2>&1 | tr -s '[ \t]' '\n' | sed -e 's/[a-zA-Z]*$//g' | grep -E '^[0-9]'

Alle Prozesse, die eine Datei offen halten (FreeBSD):

fuser.sh
#!/usr/bin/env bash
 
#------------------------------------------------------------------------------#
#
# Zeigt die PIDs aller offenen Prozesse an,
# die eine Datei in einem Verzeichnis offen hält
#
#------------------------------------------------------------------------------#
 
if [ -d "${1}" ] ; then
 
        unset PID
        PID="$(fuser -c "${1}" 2>&1 | tr -s '[ \t]' '\n' | sed -e 's/[a-zA-Z]*$//g' | grep -E '^[0-9]' | tr -s '\n' '|' | sed -e 's/|$//;s/|/ | /g;s/.*/ & /')"
 
        #----------------------------------------------------------------------#
        if [ "x${PID}" = "x" ] ; then
                echo "frei PID='${PID}'"
        else
                echo "offen PID='${PID}'"
                ps alx | grep -Fv grep | grep -E "${PID}"
        fi
        #----------------------------------------------------------------------#
 
else
        echo "${0} [Verzeichnis]"
        echo "${0} /tmp"
fi
 
#------------------------------------------------------------------------------#

Datei- und Verzeichnisnamen von unsauberen Zeichen befreien

Es kommt beim Austausch von Dateien von, das man nicht so genau auf die entsprechenden Zeichensätze achtet. Dabei werden dann Zeichen wie diese:

& ä ö ü ß ´ á é à è

oft unleserlich. Das stört natürlich gewaltig.

Aus diesem Grund habe ich ein Script geschrieben, welches von der aktuellen Position aus rekursiv alles durcharbeitet und die Verzeichnisnamen sowie Dateinamen von diesen und weiteren Zeichen befreit.

Im speziellen handelt es sich um Leerzeichen, doppelten Unterstrichen sowie den folgenden Zeichen:

& ä ö ü ß ´ á é à è < > { [ ] } , ; ( ) " ! ' `

Hier das Script:

#!/bin/sh

# alles aus dem aktuellen Verzeichnis


for i in $(find . -type d | awk -F'/' '{print NF}' | sort -n | tail -n1 | awk '{for(i=1;i<$1;i++){print i}}')
do

find . -maxdepth ${i} | egrep -i '__|-_-|\&|ä|ö|ü|ß|\´|á|é|à|è| |<|>|\{|\[|\]|\}|\,|\;|\(|\)|\"|\!' | while read ORIGINAL
do
      NEUERNAME="$(echo "${ORIGINAL}" | sed \
                                              -e 's/\&/_und_/g' \
                                              -e 's/ /_/g' \
                                              -e 's/</-_/g' \
                                              -e 's/>/-_/g' \
                                              -e 's/{/-_/g' \
                                              -e 's/\[/-_/g' \
                                              -e 's/\]/_-/g' \
                                              -e 's/}/_-/g' \
                                              -e 's/\,/_-_/g' \
                                              -e 's/\;/_/g' \
                                              -e 's/\´//g' \
                                              -e 's/\`//g' \
                                              -e 's/ß/ss/g' \
                                              -e 's/ä/ae/g' \
                                              -e 's/ö/oe/g' \
                                              -e 's/ü/ue/g' \
                                              -e 's/Ä/AE/g' \
                                              -e 's/Ö/OE/g' \
                                              -e 's/Ü/UE/g' \
                                              -e 's/á/a/g' \
                                              -e 's/Á/A/g' \
                                              -e 's/à/a/g' \
                                              -e 's/À/A/g' \
                                              -e 's/é/e/g' \
                                              -e 's/É/E/g' \
                                              -e 's/è/e/g' \
                                              -e 's/È/E/g' \
                                              -e 's/(/_-_/g' \
                                              -e 's/)/_-_/g' \
                                              -e 's/_$//g' \
                                              -e 's/-$//g' \
                                              -e 's/_$//g' \
                                              -e 's/-$//g' \
                                              | tr -d '!' | tr -d '"' | tr -d "'" | tr -s '_' '_' | sed -e 's/-_-/-/g')"
      mv -fv "${ORIGINAL}" ${NEUERNAME}
done



find . -maxdepth ${i} | egrep -i "'|\`" | while read ORIGINAL
do
      NEUERNAME="$(echo "${ORIGINAL}" | tr -d "\`" | tr -d "'")"
                                              mv -fv "${ORIGINAL}" ${NEUERNAME}
done

done

Dieses Script macht zum Beispiel aus

Berlin - l'effacement des traces

das

Berlin_-_leffacement_des_traces

und aus

Jessy Matador - Allez Olla Olé

wird das

Jessy_Matador_-_Allez_Olla_Ole

Zugangsdaten der Telekom im Standard-Router verwenden

Die Anmeldedaten setzen sich wie folgt zusammen:

früher:

Anschlusskennung + T-Online – Nummer + Mitbenutzernummer/Suffix

heute:

Anschlusskennung + Zugangsnummer + Mitbenutzernummer/Suffix

Zusammengesetzt sieht es dann so aus: 0000000000009876543210001@t-online.de

sonstiges

edv.txt · Zuletzt geändert: 2020/09/17 10:47 von manfred