Tag Archives: Kommando

CLI Companion – die GUI in der Konsole

CLI Companion ist ein Terminal mit integrierter GUI oder sollte ich besser sagen ein GUI mit integriertem Terminal? Egal. Du kannst Shell-Kommandos (mit Beschreibung) abspeichern, so dass du diese mit der Zeit lernen kannst.


Installation:

sudo add-apt-repository ppa:clicompanion-devs/clicompanion-nightlies
sudo apt-get update
sudo apt-get install clicompanion


Beispiel:

CLICompanion
CLI Companion


Quelle:
launchpad.net/clicompanion

vim-Plugin – matchit

Wie ich bereits in einem älteren Post (vim-HowTo) beschrieben habe, kann man im Editor “vim” zur nächsten zugehörigen Klammer springen, wie folgendes Beispiel zeigt:

matchit-vim-example

Um dieses Prinzip auch auf z.B. “if – fi” in shell-Skripten anzuwenden, muss du folgende Kommandos im vim ausführen.

:!mkdir ~/.vim
:!mkdir ~/.vim/plugin
:!cp $VIMRUNTIME/macros/matchit.vim ~/.vim/plugin
:!mkdir ~/.vim/doc
:!cp $VIMRUNTIME/macros/matchit.txt ~/.vim/doc
:helptags ~/.vim/doc

Die neuen Befehle kannst du dir nun mit …

:help g%

… anzeigen lassen.

offene Ports analysieren

Als erstes müssen wir erst-einmal herausfinden, welche Port eigentlich offen sind.

nmap localhost

bzw.

nmap deine_IP

bzw. um nur zu schauen, welche PC im Netzwerk sind


nmap -sP 192.168.50.0/24


bzw. wenn man mehr Infos zu einer IP-Adresse haben möchte


sudo nmap -O -T4 -sS 192.168.1.100


oder man möchte nur Infos zu einem bestimmten Port haben


nmap -sV -P0 -p 80 suckup.de


mit dem folgenden Kommando kann man dann den Port, daraufhin analysieren welche PID-Nummer (Programm) diesen nutzt.

z.B.

nmap localhost -p 80

Ausgabe:

Starting Nmap 5.00 ( http://nmap.org ) at 2010-02-08 00:47 CET
Interesting ports on local (127.0.0.1):
PORT STATE SERVICE
80/tcp filtered http

fuser -n tcp 80

Ausgabe:

80/tcp: 32182 32183 32184

ps aux | grep 32182

Ausgabe:

nginx: master process /usr/sbin/nginx

Ggf. kann man auch mit netstat + ss + lsof die Ports analysieren!

Systeminfos anzeigen lassen

Wer seinem Linux (als Beispiel dient hier Debian) Informationen zur Hardware entlocken möchte, kann dies unter-anderem mit den folgenden Kommandos machen.

1.) Allgemeine Hardware-Infos

dmidecode ist ein Tool um das DMI (SMBIOS) eines Computers ausliest, es wird eine Tabelle erzeugt, in welche eine Beschreibung der Hardware Komponenten deines PC aufgeführt wird… z.B. Informationen wie Serien-Nummern und BIOS Version.

aptitude install dmidecode
dmidecode | less

Alternativ wäre hier auch noch lshw bzw. hwinfo zu erwähnen, diese beiden Programme zeigt eine Hardware Liste deines PC/Servers an.

aptitude install lshw
lshw | less

bzw. mittels w3m anzeigen lassen

lshw -html | w3m -T text/html
lshw -short | less


H/W path Device Class Description
====================================================
system A7N8X2.0
/0 bus A7N8X2.0
/0/0 memory 64KiB BIOS
/0/4 processor AMD Athlon(tm) XP 2600+
/0/4/9 memory 128KiB L1 cache
/0/4/a memory 512KiB L2 cache
/0/26 memory 2560MiB System Memory
[...]

aptitude install hwinfo
hwinfo | less
hwinfo --short | less


cpu:
AMD Athlon(tm) XP 2600+, 1921 MHz

keyboard:
/dev/input/event0 AT Translated Set 2 keyboard

graphics card:
ATI RV280 5c63

sound:
ASUSTeK nForce2 AC97 Audio Controler (MCP)

storage:
nVidia nForce2 IDE

network:
eth0 nVidia nForce2 Ethernet Controller
eth1 Realtek RT8139

[…]

Des-weitern können wir mittels lm-sensors die Lüfter-Geschwindigkeit (RPM), die Temperatur (°C) und die Spannung (V) anliegt ausgelesen werden.

Wie immer installiern wir als erstes das entsprechende Programm…

aptitude install lm-sensors

nun einmal den folgenden Befehl ausführen um nach den Sensoren auf dem Motherboad usw. zu suchen ->

sensors-detect

nun können wir uns die gewünschten Informationen ausgeben lassen ->

sensors

Adapter: SMBus nForce2 adapter at 5500
[...]
in6: +3.07 V (min = +0.00 V, max = +0.00 V)
fan1: 4299 RPM (min = 112500 RPM, div = 2)
fan2: 0 RPM (min = 10546 RPM, div = 2)
fan3: 0 RPM (min = -1 RPM, div = 2)
temp1: +31.0°C (high = +80.0°C, hyst = +75.0°C)
temp2: +28.0°C (high = +80.0°C, hyst = +75.0°C)
temp3: -0.5°C (high = +80.0°C, hyst = +75.0°C)
temp4: +25.0°C (high = +80.0°C, hyst = +75.0°C)
[...]

2.) Arbeitsspeicher (RAM)

Mit dem folgenden Kommando, werden die Informationen zu den “Memory Module” angezeigt ->

sudo dmidecode --type 6

bzw.

sudo dmidecode --type 17

Alternativ kann man sich die Infos auch mit lshw anzeigen lassen, dafür müssen wir als erst-einmal, wir zuvor Beschrieben, dass entsprechende Paket installieren und dann die entsprechenden Infos zum RAM anzeigen lassen ->

lshw -class memory

einige Infos über den aktuellen Speicherverbrauch kann man mit folgenden Kommando in Erfahrung bringen ->

cat /proc/meminfo

bzw.

free -mt

3.) PCI Hardware-Infos

lspci zeigt eine Liste mit allen PCI Geräten an. (z.B. Grafikkarte, Soundkarte, Netzwerkkarte…)

aptitude install pciutils
lspci

folgendes Kommando zeigt deine Soundkarte an ->

lspci | grep

folgendes Kommando zeigt deine Grafikkarte an ->

lspci | grep VGA

folgendes Kommando zeigt deine Netzwerkkarte an ->

lspci | grep Ethernet

4.) CPU Hardware-Infos

Folgende zeigt Infos zur CPU an (z.B. Beschreibung, Version, MHZ, FSB…)

lshw -class cpu

bzw.

cat /proc/cpuinfo

und dies die Auslastung (load) der CPU

cat /proc/loadavg

bzw.

top

5.) Festplatten Hardware-Infos

Folgendes Kommando zeigt alle Partitionen an

cat /proc/partitions

bzw.

fdisk -l

und mit dem nächsten Befehl kannst du mittels S.M.A.R.T. herausfinden, ob es deiner Festplatte gut geht, oder ob du diese baldmöglichst austauschen solltest. (die SMART Unterstützung muss im BIOS aktiviert werden)

Als erstes installieren wir dies einmal…

aptitude install smartmontools

… dann Kommentieren wir alles mit “#” in der folgenden Datei aus, so dass der Daemon nicht automatisch gestartet wird.

vim /etc/default/smartmontools

folgendes zeigt alle Infos zu einer Festplatte an ->

smartctl --all /dev/h(s)da

zeigt nur an, ob die Festplatte noch OK ist ->

smartctl -H /dev/h(s)da

und dies zeigt Festplatten-Infos an (z.B. Model, Seriennummer, Firmware…)

smartctl -i /dev/h(s)da

crontab

Ein Skript, ein Befehl oder sonstiges, was in einen bestimmten Rhythmus wiederholt in der ausgeführt werden soll, genau dafür ist ein Cronjob zuständig.

 

cron
cron

 

Um nun einen cronjob einzutragen, muss man sich zunächst für einen Editor für diesen Zweck entscheiden… in diesem Fall setzen wir als Standart-Editor “VIM” ->

export EDITOR=vim

das Kommando:

crontab -l

-> zeigt deine crontab-Einträge an

crontab -u -l

-> zeigt alle crontab-Einträge von einem bestimmten “user” an

crontab -e

-> editiert deine crontab-Einträge

crontab -u -e

-> editiert die crontab-Einträge von einem bestimmten “user”

crontab -r

-> löscht alle deine crontab-Einträge

die Syntax:

[Minuten] [Stunden] [Tag des Monats] [Monat] [Tag der Woche] [Kommando]

- [Minuten] -> 0-59
– [Stunden] -> 0-23
– [Tag des Monats] -> 1-31
– [Monat] -> 1-12
– [Tag der Woche] -> 0-7 (0 oder 7 = Sonntag)

einige Beispiele:

* * * * * /home/user/test.sh > /dev/null 2>> /var/log/test.log

- “* * * * *” -> das Skript wird jede Minute ausgeführt
– “> /dev/null” -> es hat keine Ausgabe auf der Konsole
– “2>>” -> Fehler werden ins Logfile geschrieben

30 00 * * * /home/user/test2.sh &> /dev/null

- “30 00 * * *” -> das Skript wird jeden Tag um 00:30 Uhr ausgeführt
– “&> /dev/null” -> es werden keine Ausgaben ausgegeben (kein Log)

0 0 1 1 * /home/user/test3.sh > /dev/null 2>> /var/log/test3.log

- “0 0 1 1 *” -> das Skript wird einmal im Jahr ausgeführt

30 00 * * 1,2,3,4,5 /home/user/test4.sh > /dev/null 2>> /var/log/test4.log

- “30 00 * * 1,2,3,4,5″ -> das Skript wird von Montags bis Freitags ausgeführt (um 00:30)

30 00 * * 6-7 /home/user/test5.sh > /dev/null 2>> /var/log/test5.log

- “30 00 * * 6-7″ -> das Skript wird Samstags und Sonntags ausgeführt (um 00:30)

0 */2 * * * /home/user/test6.sh > /dev/null 2>> /var/log/test6.log

- “0 */2 * * *” -> das Skript wird jede zwei Stunden ausgeführt

0 8-20/2 * * * /home/user/test7.sh > /dev/null 2>> /var/log/test7.log

- “0 8-20/2 * * *” -> das Skript wird jede zwei Stunden von 8 bis 20 Uhr ausgeführt

1,2,5,9 -> jede erste, zweite, fünfte, neunte (Minute, Stunde… )
0-4,8-12 -> von 0 bis 4 und von 8 bis 12 (Minute, Stunde… )
*/5 -> jede fünf (Minute, Stunde… )
1-9/2 -> von 1 bis 9 in zweier Schritten (Minute, Stunde… )