Linux Commands – 21Linux Tipps und Tricks

Nach und nach lernen wir immer mehr über Linux und eignen uns ein Know-How zu Komandozeilen (command line) an. Wir von Rackhansa arbeiten schon etwas länger an Linux und kennen dementsprechend ein paar sehr hilfreiche Tricks und Tipps, die wir nur sehr gerne mit Ihnen teilen möchten. In diesem Artikel geht es um 21 Tipps und Tricks, die Ihre Arbeit und das Leben mit Linux vereinfachen werden und von denen Sie nur profitieren können.

HinweisAlle Beispiele in diesem Artikel wurden an Bash Shell getestet, bereitgestellt von Rackhansas Virtual Private Server.

1. Wie Sie effizienter zwischen den Verzeichnissen wechseln

Bei der Arbeit mit Linux Shell wird es öfter dazu kommen, dass man zwischen Verzeichnissen wechselt. Nehmen wir mal an, dass wir im Verzeichnis /var/log/httpd/ starten und dann zum Verzeichnis /home/alice/ übergehen. Nun möchten wir aber zurück zum Verzeichnis /var/log/httpd/. Den ganzen Pfad /var/log/httpd/ einzugeben wäre eine sehr mühsame Methode, um zurückzugelangen. Daher benutzen wir den Command „cd -“ Short Cut.
Um diese Methode korrekt auszuführen, gehen Sie zunächst in das Verzeichnis (a) wie beispielsweise /var/log/httpd/ und geben Sie nun den Befehl (command) „pwd“ ein.  Nun gehen Sie zum Verzeichnis (b), beispielsweise /home/ und tippen „cd -„, was Sie zurück zu /var/log/httpd/ bringen sollte.

Probieren wir das nun wie im unteren Beispiel bei der Linux Command line (Kommandozeile) aus:

 $ pwd
/var/log/httpd 
 $ cd /home/ 
 $ cd -
/var/log/httpd 

Tatsächlich ist uns „cd“ nur von Vorteil, wenn es darum geht zwischen zwei Verzeichnissen zu wechseln. Möchten Sie zwischen mehreren Verzeichnissen wechseln, bedarf es an mehrCommans (Kommandos), wie beispielsweise einer Kombination aus dem Kommando (linux command) „pushd“ und „popd“. Dieser Linux Kommando (Linux command) funktioniert wie folgt:
Nehmen wir an, Sie sind im Verzeichnis (a) und möchten zum Verzeichnis (b) wechseln und dann zu (c), zu (d) und abschließend zu (e). Von dort aus möchten Sie zurück zum Verzeichnis (a), dann werden Ihnen folgende Linux Commands sehr behilflich sein:
Sie sehen hier ein Live Beispiel von Linux Commands:

 $ cd /var/log/
$  pwd
/var/log
$ pushd /var/www/
/var/www /var/www
$ cd /home/
$ cd /etc/
$ cd /proc/
$  popd
/var/www
$ pwd
/var/log 

2. Wie Sie !! und ! so nutzen, dass die Kommando-History effizienter arbeitet

Doppelte Ausrufezeichen „!!“ werden der letzte Command sein der bei Shell eingegeben wird. Auch werden die Ergebnisse angezeigt:

 $ echo "hi this is the command i typed last"
hi this is the command i typed last
$ !!
echo "hi this is the command i typed last"
hi this is the command i typed last 

So nutzen Sie den Linux Command effizienter:

 $ uname -a
Linux testdomain 2.6.32-39-pve #1 SMP Wed Jun 24 06:39:42 CEST 2015 x86_64 x86_64 x86_64 GNU/Linux 
 $ !! | grep Linux
Linux testdomain 2.6.32-39-pve #1 SMP Wed Jun 24 06:39:42 CEST 2015 x86_64 x86_64 x86_64 GNU/Linux 

Im Folgenden erklären wir, was ein einzelnes Ausrufezeichen „!“ bedeutet und bewirkt. „!!“ führt lediglich zuvor ausgeführte Commands aus, „!“ hingegen hat verschiedene Funktionen als nur zuvor eingegebene Befehle abzurufen. Es hat Zugang zu allen Commands, die jemals eingegeben worden sind, in dem es die „History“ Command Datenbank einliest. Wenn Sie beispielsweise eine Command History führen, dann wird Ihnen darin ein Liste angezeigt mit Commands, die je im System gelaufen sind, gekennzeichnet mit einer Seriennummer zu jedem einzelnen Command. Das einzelne Ausrufezeichen „!“ wird also als Präfix zur Seriennummer der entsprechenden Kommandozeile genutzt. Siehe folgendes Beispiel unten:

 $ history
...
...
...
2039  uname -a | grep Linux
 2040  dmesg
 2041  clear
 2042  cd bin
 2043  clear
 2044  pwd
 2045  touch new_binary
 2046  sudo touch new_binary
 2047  ls new_binary 
 2048  history 
 $ !2039
uname -a | grep Linux
Linux himanshu-Inspiron-1525 3.2.0-36-generic-pae #57-Ubuntu SMP Tue Jan 8 22:01:06 UTC 2013 i686 i686 i386 GNU/Linux 

Hier sehen Sie den Command mit der Seriennummer 2039. In einem anderen Beispiel nutzen wir den „!“ Command, um den letzten Command in Kombination mit dem Command 2039 einzusehen:

 $ echo 127.0.0.1
$ ping !$
ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.030 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.017 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.017 ms 

Der „!“ Command kann auch in in Kombination mit ‚keyword‘ des letzten eingegeben Commands (wenn dieser zu lang gewesen ist) genutzt werden:

3. Wie Sie den Komma , Operator richtig nutzen

Es gibt so einige Funktionen mit dem Komma „,“ Operator, mit denen sich das Leben einfacher gestalten lässt.

Umwandlung in Kleinbuchstaben

Der Komma Operator kann dazu verwendet werden entweder den ganzen String umzuwandeln, oder nur den ersten Buchstaben in Kleinbuchstaben.

 $ phrase="My Country is GERMANY" 
 $ echo ${phrase,}
my Country is GERMANY 
 $ echo ${phrase,,}
my country is germany 
Der Komma Operator in Verwendung mit Dateinamen

Der Komma Operator wird ebenso dazu genutzt, um mehr als einzelne Dateinamen einzugeben.

4. Wie Sie Dateien mit Leerzeichen drinnen oder am Ende des Dateinamens löschen

Das Löschen von Dateien mit Leerzeichen in der Mitte oder am Ende kann für Anfänger sehr schwierig sein. Es kann zu folgenden Fehlern kommen:

 $ rm map of russia.jpg
rm: cannot remove 'map': No such file or directory
rm: cannot remove 'of': No such file or directory
rm: cannot remove 'russia.jpg': No such file or directory 

Um dieses Problem anzugehen, gibt es zwei Optionen: (a) doppelte Anführungszeichen:

 $ rm "map of russia.jpg" 

(b)  Back Slash „“ mit Leerzeichen :

 $ rm  map of russia.jpg 
5. Wie Sie Dateien löschen, die mit dash oder Bindestrich (-) beginnen

Das Löschen von Dateien mit Bindestrich als Präfix kann sehr tückisch sein und funktioniert leider nicht mit den vorher beschriebenen Tricks…

 $ rm -2filenamewith.hyphen
rm: invalid option -- '2'
Try `rm ./-2filenamewith.hyphen' to remove the file `-2filenamewith.hyphen'.
Try `rm --help' for more information. 

Auch nicht mit doppelten Anführungszeichen:

 rm "-2filenamewith.hyphen"
rm: invalid option -- '2'
Try `rm ./-2filenamewith.hyphen' to remove the file `-2filenamewith.hyphen'.
Try `rm --help' for more information. 

6. Wie Sie alle Datein innerhalb eines Verzeichnis löschen bis auf ausgewählte

Hier sehen Sie ein Verzeichnis mit vielen Dateien: Erfahren Sie bei diesem Tipp, wie man alle Dateien bis auf ausgewählte Dateien (vor allem, wenn sie unterschiedliche Dateierweiterungen vorweisen) in einem Verzeichnis löschen:

 $ ls
put.out         Cppfile.c  filetype.c             macrom.c     myprintf.c   orignal_file.orig  mashup.c
blowfish.c   cmdline.c    firstPYtProgram.py  main.c      newprintf.c  orignal_file.rej   test_stracefile.c
blewfish.c  envo.c    helloworldprog.c       myfopen.c  newwork.txt       progy.c          virtual_function.c 

Wenn Sie alle Dateien bis auf die .c und .py Dateien löschen möchten, tun Sie Folgendes:

 $ rm !(*.c|*.py)

$ ls
Cppfile.c  filetype.c             macrom.c     myprintf.c   mashup.c
blowfish.c   cmdline.c    firstPYtProgram.py  main.c      newprintf.c   test_stracefile.c
blewfish.c  envo.c    helloworldprog.c       myfopen.c      progy.c          virtual_function.c 

Dateien mit anderen Erweiterungen wurden wie Sie sehen konnten gelöscht.

7. Wie Sie den Tail Command effizient nutzen

Anstelle des Cat Command kann auch der Tail Command genutzt werden, um nur den letzten Teil der Datei anzuzeigen. Tail command kann aber auch dafür genutzt werden, um das letzte Ergebnis eines Commands zu sehen, was mit zahlreichen Zeilen endet. Beispielsweise ist Ihre iptables Liste sehr lang:

 $ iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  58.30.0.0/16         0.0.0.0/0
DROP       all  --  187.33.0.0/19        0.0.0.0/0
DROP       all  --  113.196.0.0/16       0.0.0.0/0
DROP       all  --  190.167.0.0/16       0.0.0.0/0
DROP       all  --  202.46.0.0/16        0.0.0.0/0
DROP       all  --  202.104.0.0/16       0.0.0.0/0
DROP       all  --  66.135.34.113        0.0.0.0/0
DROP       all  --  80.0.0.0/4           0.0.0.0/0            /* RIPEurope */
DROP       all  --  178.0.0.0/8          0.0.0.0/0            /* RIPEurope */
DROP       all  --  91.0.0.0/8           0.0.0.0/0            /* RIPEurope */
DROP       all  --  77.0.0.0/8           0.0.0.0/0            /* RIPEurope */
DROP       all  --  46.0.0.0/8           0.0.0.0/0            /* RIPEurope */
DROP       all  --  188.0.0.0/8          0.0.0.0/0            /* RIPEurope */
DROP       all  --  37.0.0.0/8           0.0.0.0/0            /* RIPEurope */
DROP       all  --  193.0.0.0/8          0.0.0.0/0            /* RIPEurope */
DROP       all  --  2.0.0.0/8            0.0.0.0/0            /* RIPEurope */
DROP       all  --  5.0.0.0/8            0.0.0.0/0            /* RIPEurope */
DROP       all  --  31.0.0.0/8           0.0.0.0/0            /* RIPEurope */
DROP       all  --  62.0.0.0/8           0.0.0.0/0            /* RIPEurope */
DROP       all  --  93.0.0.0/8           0.0.0.0/0            /* RIPEurope */
DROP       all  --  95.0.0.0/8           0.0.0.0/0            /* RIPEurope */
DROP       all  --  109.0.0.0/8          0.0.0.0/0            /* RIPEurope */
DROP       all  --  176.0.0.0/8          0.0.0.0/0            /* RIPEurope */
DROP       all  --  217.0.0.0/8          0.0.0.0/0            /* RIPEurope */
DROP       all  --  92.0.0.0/8           0.0.0.0/0            /* RIPEurope */
DROP       all  --  78.0.0.0/7           0.0.0.0/0            /* RIPEurope */
DROP       all  --  213.0.0.0/8          0.0.0.0/0            /* RIPREurope */
DROP       all  --  130.185.0.0/16       0.0.0.0/0            /* RIPREurope */
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            source IP range 22
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 220.191.0.1-220.191.127.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 220.192.0.1-220.207.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 220.242.0.1-220.242.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 220.248.0.1-220.248.127.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 220.250.0.1-220.250.0.7
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 220.252.0.1-220.252.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.0.0.1-221.3.127.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.122.0.1-221.122.3.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.176.0.1-221.183.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.192.0.1-221.195.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.200.0.1-221.203.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.204.0.1-221.205.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.206.0.1-221.206.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.207.0.1-221.207.63.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.208.0.1-221.212.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.208.0.1-221.212.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.214.0.1-221.214.0.127
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.216.0.1-221.223.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.0.0.1-221.255.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.224.0.1-221.231.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.224.0.1-221.231.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 221.232.0.1-221.235.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.32.0.1-222.63.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.64.0.1-222.64.3.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.80.0.1-222.83.127.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.132.0.1-222.135.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.136.0.1-222.143.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.168.0.1-222.169.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.172.222.1-222.172.222.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.176.0.1-222.183.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.184.0.1-222.191.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.200.0.1-222.200.31.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.208.0.1-222.215.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.219.0.1-222.221.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 222.240.0.1-222.240.63.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 223.4.0.1-223.7.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 223.64.0.1-223.117.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 223.144.0.1-223.159.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 223.240.0.1-223.247.255.254

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

Möchten Sie aber nur das Ende der iptables Filterliste sehen, nutzen Sie folgenden Command:

 $ iptables -nL | tail
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 223.4.0.1-223.7.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 223.64.0.1-223.117.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 223.144.0.1-223.159.255.254
DROP       all  --  0.0.0.0/0            0.0.0.0/0            source IP range 223.240.0.1-223.247.255.254

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

Mit dem Tail Command wird Ihnen nur das Ende mit den letzten Zeilen von iptables -nL angezeigt.

8. Warum die Fehlermeldung Argument list too long manchmal beim rm Command erscheint

Dies Passiert in der Regel, wenn Sie ein Verzeichnis mit vielen Dateien haben. Wenn Sie darüber ein rm -rf over tun, bekommen Sie sowas wie: „Argument list too long“

 -bash: /bin/rm: Argument list too long 

Dieser Fehler kann mit dem folgenden Befehl behoben werden (bevor Sie diesen Befehl versuchen, stellen Sie sicher im Verzeichnis mit den vielen Dateien zu sein):

 find * -xdev -exec rm -f '{}' ';' 

Dies ist die schnellste Methode eine große Anzahl von Dateien zu löschen. Sie versorgt rm Command beim Verarbeiten schubweise mit Input.

9. Wie Sie überprüfen, welche Linux Distribution Sie nutzen

Manchmal, wenn Sie mit einem VPS Server arbeiten und doublechecken möchten, dass Sie die richtige Distribution (oder, wenn Sie generell wissen möchten, welche Distribution Sie) verwenden, können Sie dies mit folgendem Command tun:

 $ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.2 LTS"
NAME="Ubuntu"
VERSION="14.04.2 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.2 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" 

Im /etc/ Verzeichnis finden Sie eine Datei mit Details zur Version und Distribution. Wie Sie oben in den Ergebnissen sehen, lieferte der Command nicht nur den Distributionsnamen und die Version, sondern auch zusätzliche andere Information. Möchten Sie aber nur Informationen zur Distribution und Version haben (besonders bei Ubuntu und Debian), nutzen Sie folgenden Command:

 $ cat /etc/*-release | grep VERSION
VERSION="14.04.2 LTS, Trusty Tahr"
VERSION_ID="14.04" 

Mit grep VERSION (case sensitive) wird nur die Versionszeile extrahiert, welche den vollständigen Verions+Disributionsnamen beinhaltet.

<’h3′ class='av-special-heading-tag 0-overwrite 0-Wie' itemprop="headline" >’10.

Möglicherweise haben Sie Dateien, die Sie zwar nicht löschen , aber ihren Inhalt flushen möchten. Log Dateien sind ein gutes Beispiel dafür. Der folgende Command unten löscht den Inhalt der Datei, die an sich aber intakt bleibt:

 $ > (complete path of file) 

Zum Beispiel:

 $ > /var/log/apache2/access.log 

Dieser Command wird den Inhalt der Datei „access.log“ nur flushen ohne sie selbst zu löschen.

11. Wie Sie nach Manpages für einen bestimmten String suchen

*nix Manpages sind Handbücher für*nix Commands, die detaillierte und gründliche Anweisungen und Information über den Command geben, nach dessen Manpage Sie suchen. Nehmen wir an Sie möchten wissen, welche Manpage Inhalte zu einem gewissen Thema hat, wie bspw. „Welche Manpages behandeln String „windows“?“. In diesem Fall nutzen Sie die Option -k in Kombination mit dem man Command, was zu Folgendem führt:

 $ man -k windows
fixwfwps (1)         - filter to fix Word for Windows documents so PSUtils work
fixwwps (1)          - filter to fix Windows Write documents so PSUtils work
samba (7)            - A Windows AD and SMB/CIFS fileserver for UNIX
windmc (1)           - generates Windows message resources. 

Alle Manpages mit dem Inhalt string „windows“ werden in den Ergebnissen angezeigt.

<’h3′ class='av-special-heading-tag 0-overwrite 0-Weitere' itemprop="headline" >’12.

Wenn Sie eine neue Datei mit minimalen Inhalt erstellen wollen, aber nicht den Text-/Dateieditor nutzen möchten, tun Sie Folgendes:

 $ echo a dummy file with so little content > small.file 

Testen wir’s!

 $ cat small.file
a dummy file with so little content 

Eine andere Funktion des Operators ist auch die Outputs/Ergebnisse eines bestimmten Commands zu speichern. Zum Beispiel:

 $ ping google.com -c 4 > google_ping.out 

Testen wir auch das hier:

 $ cat google_ping.out
PING google.com (173.194.113.46) 56(84) bytes of data.
64 bytes from fra02s20-in-f14.1e100.net (173.194.113.46): icmp_seq=1 ttl=53 time=12.3 ms
64 bytes from fra02s20-in-f14.1e100.net (173.194.113.46): icmp_seq=2 ttl=53 time=12.4 ms
64 bytes from fra02s20-in-f14.1e100.net (173.194.113.46): icmp_seq=3 ttl=53 time=12.5 ms
64 bytes from fra02s20-in-f14.1e100.net (173.194.113.46): icmp_seq=4 ttl=53 time=12.3 ms

--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 12.309/12.387/12.506/0.134 ms 

13. Wie Sie Tail Command, um mehre Datei auf einmal anzuzeigen

Es gibt bestimmte Dateien, die man eine nach der anderen, aber mit einem Zug anschauen möchten. Vor allem, wenn die letzten Zeilen Import sind. Dafür verwenden wir folgenden Command:

 $ tail -f google_ping.out yahoo_ping.out bing_ping.out
==> google_ping.out <==
PING google.com (173.194.113.32) 56(84) bytes of data.
64 bytes from fra02s20-in-f0.1e100.net (173.194.113.32): icmp_seq=1 ttl=53 time=12.4 ms
64 bytes from fra02s20-in-f0.1e100.net (173.194.113.32): icmp_seq=2 ttl=53 time=12.2 ms

--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 12.287/12.389/12.491/0.102 ms

==> yahoo_ping.out <==
PING yahoo.com (206.190.36.45) 56(84) bytes of data.
64 bytes from ir1.fp.vip.gq1.yahoo.com (206.190.36.45): icmp_seq=1 ttl=49 time=153 ms
64 bytes from ir1.fp.vip.gq1.yahoo.com (206.190.36.45): icmp_seq=2 ttl=49 time=153 ms

--- yahoo.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1188ms
rtt min/avg/max/mdev = 153.010/153.116/153.222/0.106 ms

==> bing_ping.out <==
PING bing.com (204.79.197.200) 56(84) bytes of data.
64 bytes from a-0001.a-msedge.net (204.79.197.200): icmp_seq=1 ttl=117 time=5.00 ms
64 bytes from a-0001.a-msedge.net (204.79.197.200): icmp_seq=2 ttl=117 time=4.65 ms

--- bing.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 4.657/4.831/5.006/0.187 ms 

Jede Datei hat ihre Caption/heading vor ihrem Output.

14. Wie man einen Command eingibt ohne, dass er in der History aufgeführt wird

Manchmal wird es dazu kommen, dass Sie viele Commands benutzen werden und Ihre Linux „history“ damit nicht zumüllen möchten, da sie alle alten Aufzeichnungen flushen. Tun Sie nun Folgendes:

 $ df -h
$ du -h
$  ping google.com -c 4 

Bitte beachten Sie, dass zusätzliche Leerzeichen zwischen „$“ und „ping“, jedoch keines zusätzliches bei df und du Commands. Wenn Sie also extra Platz lassen vor dem eigentlichen Befehl, wird es nicht in der Kommando-History angezeigt und versteckt.

Lassen Sie uns das testen:

 $ history | tail
  242  df -h
  243  du -h
  244  history | tail 

Wie Sie erkennen können, ist nicht nur der „Ping“ Command versteckt vor der Kommando-History, sondern die Seriennummern in der History ändern sich auch nicht.

15. Wie Sie den Output eines Commands in Zeitlupe anzeigen lassen

Wenn Sie bestimmte Commands eingeben, erscheint der Output des Commands so schnell, dass Sie die Anzeige davon nichtmals mehr mitbekommen. Um dieses Problem zu lösen, nutzen Sie einfach folgenden Command, der die Ausgabegeschwindigkeit verlangsamt:

 $ last | pv -qL 25 

Versuchen Sie diesen Command am Ende, um realistischere Ergebnisse zu bekommen.

16. Wie Sie einen String von IPTables blockieren

Es erspart Ihnen einen Menge an Zeit, wenn Sie einfach einen spezifischen String blockieren, als einen Haufen an IP Adressen, ausgehend von ein und dem gleichen String. Zum Beispiel „wp-login.php“. Es gibt vielleicht hunderte von IP Adressen, die diesen String auf Ihrem Webserver probieren. Alle diese IP Adressen zu blockieren wäre schlichtweg manchmal dumm. Blocken Sie stattdessen einfach den entsprechenden String, der von den meisten Hackern oder Script Kiddies verwendet wird. Um dies auch zu tun, verwenden Sie einfach die folgenden Switches und Optionen des iptables Command:

 $ iptables -A INPUT -p tcp --dport 80 -m string --algo bm --string 'c' -j DROP 

Dieser Command wird jeden String, der „/wp-login.php“ beinhaltet, über Port 80 (ein allgemeiner Port bei Linux Webserver wie Apache2) blockieren.

17. Wie Sie eine Datei löschen, die vom System verwendet wird

Sie möchten eine Datei löschen, aber es funktioniert nicht, weil sie gerade vom System verwendet wird? Um derartige Datei zu löschen, nutzen Sie den Fuser Command:

 $ fuser -k <filename> 

Sobald die Datei einmal gestoppt wurde (dh. sie wird nicht mehr vom System verwendet), können Sie die Datei ohne Fehlermeldungen löschen.

18. Wie Sie das Ergebnis eines Commands speichern, während zeitgleicher Outputkontrolle

Wie Sie bereits wissen, kann der  „>“ Operator zum Aufzeichnen und Speichern eines Command Outputs dienen. Sie können aber ebenso den Output eines Commands speichern, während Sie zur gleichen Zeit den Output kontrollieren.

Geben Sie dafür einfach Folgendes ein:

 $ ping google.com -c 3 | tee google_ping.out
PING google.com (173.194.113.39) 56(84) bytes of data.
64 bytes from fra02s20-in-f7.1e100.net (173.194.113.39): icmp_seq=1 ttl=56 time=12.2 ms
64 bytes from fra02s20-in-f7.1e100.net (173.194.113.39): icmp_seq=2 ttl=56 time=12.4 ms
64 bytes from fra02s20-in-f7.1e100.net (173.194.113.39): icmp_seq=3 ttl=56 time=12.3 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 12.219/12.338/12.456/0.160 ms 

19. Wie Sie prüfen, ob der letzte eingegebene Command erfolgreich war oder nicht

Ein Beispiel: Geben Sie „$?“ direkt nach Eingabe Ihres Commands ein. Wenn der Command erfolgreich war, erhalten Sie den Wert (Value) „o“. Wenn nicht, erhalten Sie irgendeinen anderen Wert (Value) als „o“, der beispielsweise höher als „o“ ist.

 $ touch xyz
touch: cannot touch `xyz': Permission denied 
 $ echo $?
1 

Da der Wert größer als 0 ist, war der Command nicht erfolgreich. Überdies hinaus ist die Fehlermeldung „Permission denied“ (Zugriff verweigert) zu sehen.

20.Wie Sie über die Tastatur kopieren&einfügen (Shell Environment)

Wählen Sie den Text aus, der kopiert werden soll und drücken Sie die Tasten Ctrl + SHIFT + C, um den Text zu kopieren. Zum Einfügen des Texts, drücken Sie die Tasten Ctrl + SHIFT + V.

Bitte beachten Sie, dass dies mit putty.exe program funktioniert.

21. Wie Sie nach allen Dateien, die einen bestimmten String enthalten, im laufenden Verzeichnis suchen

Nutzen Sie den folgenden -l Switch with Grep Command :

 $ grep -l "printf" *.c
blowfish.c
helloworld.c
mangler.c
pingfast.c 

Sie hatten Schwierigkeiten uns bei den Schritten zu folgen? Kontaktieren Sie uns einfach, denn die Rackhansa Profis sinds stets zu Ihren Diensten und bereit Ihnen beim Umsetzen einer reibungslosen Onlinepräsenz zu helfen. Ebenso sind unsere Free Webhosting Services zugeschnitten auf Unternehmer, die gerade Ihr Onlinegeschäft starten. Besuchen Sie unsere Webseite und erfahren Sie mehr über unsere preiswerten Webhostingprodukte.