Inhaltsverzeichnis

cat & split

dd if=/dev/urandom of=test.big count=100 bs=1M
split -b14m test.big
cat x?? > test2.big
md5sum test.big test2.big

tac

rpm -qa --last | tac

rev

rev steht nicht in den LPI101 Lernzielen

echo regal | rev

rev zweifach verwenden, um Text am Ende zu entfernen, obwohl cut allein das nicht kann:

echo test | rev | cut -c 2- | rev 

nl

nl /etc/init.d/network

cut

cut -b28- /var/log/messages | sort

cut & paste

Auseinandernehmen:

cut -d: -f1-3 /etc/passwd > spalte1-3
cut -d: -f4- /etc/passwd > spalte4-7

Wieder zusammensetzen

paste -d: spalte1-3 spalte4-7

sort

Dateien und Verzeichnisse unter / nach Größe sortiert ausgeben

du -mx / | sort -n

1)

Benutzer nach Benutzernummer sortiert ausgeben:

sort -t : -k 3n /etc/passwd

uniq

Doppelte Zeilen loswerden:

egrep -v '^#' /etc/httpd/conf/httpd.conf | uniq

Welcher Benutzer hat wie viele Prozesse laufen:

ps -e --no-headers -o user | sort | uniq -c

expand

Tabs in Spaces

tr : "\t" < /etc/passwd | cat -T
tr : "\t" < /etc/passwd | expand -t 15,17,23,29,60,80

unexpand

Spaces in Tab

unexpand -a <<EOF | cat -T
eins    1
drei    3
fünf    5
sechs   6
sieben  7
acht    8
EOF

Aber nicht:

unexpand -a <<EOF | cat -T
eins 1
drei 3
fünf 5
sechs 6
sieben 7
acht 8
EOF

column

column steht nicht in den LPI101 Lernzielen

ip r | column -t 

fmt

wget -q -O - www.gnu.org/licenses/gpl-3.0.txt | fmt -w 40

od

/tmp/od :

müsli
od -a /tmp/od

pr

wget -q -O - www.gnu.org/licenses/gpl-3.0.txt | pr

join

sort -t: -k 3 /etc/group > group
sort -t: -k 4 /etc/passwd > passwd
join -t: -1 4 -2 3 -o 1.1 2.1 passwd group

Aber:

join -t: -1 4 -2 3 -o 1.1 2.1 passwd /etc/group | wc -l
wc -l /etc/passwd

Wo ist der Rest?

Alternative:

perl -F: -ane 'BEGIN {$GROUPFILE=shift; open GROUPFILE; %h=map {(split /:/)[2,0]} <GROUPFILE> }; print "$F[0]: $h{$F[3]}\n"' /etc/group /etc/passwd
ps ax | head

tail

tail -f /var/log/messages

hexdump

dd if=/dev/sda count=1 bs=1M | hexdump | less

wc

wget -q -O - www.gnu.org/licenses/gpl-3.0.txt | wc

sed

Zeichen vertauschen

a und b vertauschen:

sed y/ab/ba/ /etc/hosts

Zeichenkette ersetzen

Subnetz ersetzen:

sed -i s/192.168/10.0/g /etc/hosts

Zeilen entfernen

Benutzer nutzer22 aus /etc/passwd entfernen:

sed -e '/^nutzer22/d' /etc/passwd

tr

tr abc xyz < /etc/hosts
1)
in aktuellen Distributionen auch:
du -hx / | sort -h