Linux Essentials

Auflistung wichtiger und für den täglichen Gebrauch sinnvolle Shell-Kommandos:

und link: kleine tools für die tägliche Arbeit: link
Allgemein [Befehl] & Man kann die Konsole weiter benutzen firefox &
[Befehl] && [Befehl] Befehle werden nacheinander ausgeführt firefox && shutdown -h now
man [Programm] Zeigt die Hilfe zu einem Programm an man firefox
strg + C Bricht aktuellen Vorgang in der Shell ab strg + C

Verzeichnisse, Dateien cd [Verzeichnis] Wechselt in das Verzeichnis cd /tmp
cd .. Wechselt ein Verzeichnis höher cd ../td>
cd / Wechselt ins Wurzelverzeichnis cd /
cd Wechselt das Verzeichnis cd .. ; cd /tmp
cd – Wechselt in das vorherige Verzeichnis cd –
cp [Datei][Verz] Kopiert Datei in Verzeichnis cp 123.txt /tmp
mv Verschiebt eine Datei mv 123.txt /tmp
mv [Datei1][Datei2] benennt Datei [DATEI1] in [DATEI2] um mv 123.txt 456.txt
rm Löscht eine Datei rm /tmp/123.txt ; rm /tmp/*
rm -rf alles unterhalb des Verz. löschen rm -rf /tmp/
mkdir Erzeugt ein Verzeichnis mkdir /home/test
rmdir Löscht ein Verzeichnis rmdir /home/test
ls Zeigt Ordner-Inhalt an ls /home/test
ls -l Ausführliche Auflistung ls -l /home/test
ls -la alle Dateien des Verz. ausführlich ls -la /home/test
alias ls=’ls –color‘ Stellt farbige Ansicht ein alias ls=’ls –color‘
pwd Zeigt das aktuelle Verzeichnis an pwd
cat [Datei] Zeigt Inhalt einer Datei cat 123.txt
more [Datei] Zeigt Inhalt einer Datei seitenweise an more 123.txt
touch [Datei] Erzeugt leere Datei touch 123.txt
whereis [Prog] Sucht nach Programm whereis Firefox
find . | grep [DATEI] sucht eine Datei im Verzeichnis find . | grep 123.txt
grep [KEY] [DATEI] Sucht nach Begriff in einer Datei grep Haus 123.txt
locate [DATEI] Sucht nach Datei in der Datenbank locate 123.txt
updatedb Aktualisiert die Datenbank updatedb
which Zeigt an, wo sich ein Programm befindet which firefox

System
arch Prozessorfamilie arch
file -s /dev/sdx: Herausfinden, welches Dateisystem das device besitzt
cat /proc/filesystems Unterstützte Dateisysteme cat /proc/filesystems
cat /proc/cpuinfo Infos zur CPU cat /proc/cpuinfo
cat /proc/filesystems Alle unterstützten Dateisysteme cat /proc/filesystems
cat /proc/pci Infos zu den PCI-Karten cat /proc/pci
dmesg | grep hd Infos über alle Laufwerke dmesg | grep hd
date Datum und Zeit date
dmesg Kernellogger: Zeigt Kernelaktivtäten dmesg
free Zeigt Ausnutzung des Arbeitsspeichers free
glxgears Kleiner Grafiktest zur Performance der VGA glxgears
glxinfo Angaben über OpenGL und Grafikkarte glxinfo
kill [PID] Schiesst Prozess mit bestimmter ID ab kill 1067
killall [Prog] Schiesst Prozess mit Prozessname ab killall Firefox
lspci Infos über PCI-Komponenten lspci
shutdown -h now Fährt den Rechner herunter shutdown -h now
shutdown -r now Startet den Rechner neu shutdown -r now
top Zeigt Programme und CPU-Auslastung an top
uptime Wie lange ist der PC im Betrieb? uptime
X -version Zeigt Version von Xfree an X -version

Festplatte
df Speicherplatz anzeigen df -h
fdisk Festplatte partitionieren fdisk /dev/hda
mkfs.ext2 HDD mit ext2 formatieren mkfs.ext2 /dev/hda1
mkfs.ext3 HDD mit ext3 formatieren mkfs.ext3 /dev/hda1
mkreiserfs HDD mit reiserfs formatieren mkreiserfs /dev/hda1
sync gepufferte Daten auf HDD speichern sync

Prüfen/Reparieren des Dateisystems

für ext4:

sudo fsck.ext4 /dev/sdx

Mounten
mount Hängt Datenträger in das System ein mount /dev/hda1 /mnt/win
mount -t [Filesystem] Mountet mit vorgegebenen Dateisystem mount -t ntfs /mnt/win_xp
mount -a Mountet alle Datenträger aus der /etc/fstab mount -a
mount -r Von Datenträger kann nur gelesen werden mount -r /mnt/win
mount -w Datenträger kann gelesen und beschrieben werden mount -w /mnt/win
mount -m Mountet ohne Eintrag in /etc/mtab mount -n /mnt/win

herausfinden der uuid einer Partition: < vol_id –uuid /dev/sdaX > mit X=Partitionsnummer, die man mit fstab -l ermittelt hat

das herausfinden der UID geht auch über: sudo blkid => dann werden alle eingehängten Medien gelistet.

Bsp.. für das automatische Einhängen einer ntfs-Partition:

#daten-festplatte
UUID=XXXXXXX  /media/data ntfs-3g auto,users,uid=1000,gid=100,dmask=027,fmask=137,utf8 0 0

=> damit wird die Platte unter den Rechten des Benutzers eingehängt in der Gruppe ‚users‘

 

 


Benutzer
id Zeigt Benutzername und Gruppe an id
whoami Zeigt aktuell angemeldeten Benutzer an whoami
who Wer ist alles eingeloggt? who
groupadd [Gruppe] Erzeugt eine neue Gruppe groupadd admins
groupdel [Gruppe] Löscht eine neue Gruppe groupdel admins
useradd -m [USER] Erzeugt Benutzers und Homeverz. useradd -m chef
userdel -r [USER] Löscht Benutzers und Homeverz. useradd -m chef
passwd [USER] ändert Passwort des Benutzers passwd chef
su Man arbeitet nun als Root an der Konsole su
su [USER] Man arbeitet nun als [USER] an der Konsole su chef

einen Benutzer der Gruppe ‚sudo‚ hinzufügen:

entweder mit <visudo> den Benutzer direkt erfassen oder den Benutzer der Gruppe ’sudo‘ hinzufügen.

Netzwerk
ifconfig Zeigt Netzwerk-Infos an ifconfig
iwconfig Zeigt Infos zum WLAN an iwconfig
ping [Rechner] Testet Verbindung zu einem Rechner ping 192.168.0.1

Kernel und Module
lsmod Zeigt geladene Module an lsmod
make menuconfig Einrichten des Kernels cd /usr/src/linux;
make menuconfig
modprobe [Modul] Lädt ein Modul modprobe printer
uname -a Zeigt Kernel-Version an uname -a

Sonstiges
ps aux Zeigt alle laufenden Prozesse und Dienste an ps aux
rc-update show Zeigt die Dienste an, die beim Start geladen werden rc-update sh

SSH

ssh-Zugang ohne Anmeldung:

1. Falls man auf dem Quellrechner den rsa-Schlüssel noch nicht generiert hat:

   $ ssh-keygen -t rsa	  # für Protokol 2

Will man sich ohne Passwort anmelden ist es wichtig, dass für die Passphrase kein Passwort eingegeben wird. Allerdings ist dies natürlich unter Sicherheitsaspekten bedenklich!

2. Den Schlüssel auf den Zielrechner (auf dem man sich ohne Passwort anmelden möchte) rüberkopieren:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-system

3. Falls ssh-copy-id auf dem Quellrechner nicht vorhanden ist:

$ cat ~/.ssh/*.pub | ssh user@remote-system 'umask 077; cat >>.ssh/authorized_keys'

##############  ##############

RUHEZUSTAND/STANDBY

 

Hibernate/Suspend das System innerhalb einer terminal-session:

Der Befehl für Bereitschaft oder Ruhemodus eines Systems ist im (debian)-Paket „pm-utils“ enthalten.

System in Bereitschaft versetzen: <sudo pm-suspend>

Möglich ist auch, das System in eine hybride Bereischaft zu versetzen: Hier wird die Festplatten-Session gespeichert, das System selbst bleibt aber angeschaltet. Ein schnelles Wieder-Starten wird damit möglich.

System in Hybrid-Bereitschaft versetzen: <pm-suspend-hybrid>

System in Ruhemodus versetzen: <sudo pm-hibernate>

###### ###### ###### ###### ###### ###### ###### ###### ####### #####

Lesen und Bearbeiten von MS- Access- Datenbanken

Manchmal kommt man nicht drum herum, man muss. Dafür gibt es unter debian mehrere Möglichkeiten. 1 davon: Installation von <mdbtools> (apt-get install mdbtools).

Zusätzlich kann noch <mdbtools-gmdb> installieren – ein JET / MS Access database (MDB) file viewer

###### ###### ###### ###### ###### ###### ###### ###### ####### #####

Crontab benutzen

Dieses howto ist … entnommen. Vielen Dank dafür!

[…]

Crontab Sections

Each of the sections is separated by a space, with the final section having one or more spaces in it. No spaces are allowed within Sections 1-5, only between them. Sections 1-5 are used to indicate when and how often you want the task to be executed. This is how a cron job is laid out:

minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command

 

01 04 1 1 1 /usr/bin/somedirectory/somecommand

The above example will run /usr/bin/somedirectory/somecommand at 4:01am on January 1st plus every Monday in January. An asterisk (*) can be used so that every instance (every hour, every weekday, every month, etc.) of a time period is used. Code:

 

01 04 * * * /usr/bin/somedirectory/somecommand

The above example will run /usr/bin/somedirectory/somecommand at 4:01am on every day of every month.

Comma-separated values can be used to run more than one instance of a particular command within a time period. Dash-separated values can be used to run a command continuously. Code:

 

01,31 04,05 1-15 1,6 * /usr/bin/somedirectory/somecommand

The above example will run /usr/bin/somedirectory/somecommand at 01 and 31 past the hours of 4:00am and 5:00am on the 1st through the 15th of every January and June.

The „/usr/bin/somedirectory/somecommand“ text in the above examples indicates the task which will be run at the specified times. It is recommended that you use the full path to the desired commands as shown in the above examples. Enter which somecommand in the terminal to find the full path to somecommand. The crontab will begin running as soon as it is properly edited and saved.

You may want to run a script some number of times per time unit. For example if you want to run it every 10 minutes use the following crontab entry (runs on minutes divisible by 10: 0, 10, 20, 30, etc.)

 

*/10 * * * * /usr/bin/somedirectory/somecommand

which is also equivalent to the more cumbersome

 

0,10,20,30,40,50 * * * * /usr/bin/somedirectory/somecommand

Hier nochmal eine Zusammenfassung:

Cron-Job – Infos

Hier vielleicht noch ein paar Infos, die euch beim erstellen von Cron-Jobs helfen.

Die Zeiteinstellungen für den Cron-Job können nach dem folgenden Muster erfolgen.

*     *     *     *     *  YOURCOMMAND
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- Day in Week (0 to 7) (Sunday is 0 and 7)
|     |     |     +------- Month (1 to 12)
|     |     +--------- Day in Month (1 to 31)
|     +----------- Hour (0 to 23)
+------------- Minute (0 to 59)

Ist euch das Einstellen der Zeit, wie oben beschrieben zu umständlich, gibt es auch ein paar Shortcuts:

@reboot --> only once at startup
@daily ---> once a day
@midnight --> once a day at midnight
@hourly --> once a hour
@weekly --> once a week
@monthly --> once a month
@annually --> once a year
@yearly --> once a year

Diese Shortcuts lassen sich auch wiederum in die normale Zeitangebe übersetzen:

@daily --> 0 0 * * *
@midnight --> 0 0 * * *
@hourly --> 0 * * * *
@weekly --> 0 0 * * 0
@monthly --> 0 0 1 * *
@annually --> 0 0 1 1 *
@yearly --> 0 0 1 1 *
###### ###### END CRONTAB HOWTO ###### ###### ###### ######  #####

Dateien automatisch löschen

Die zeitliche Taktung steht im Abschnitt ‚cronjobs‘. Mit einem 1-Zeiler kann ein cronjob gesetzt werden:

Anmerkung: +NoD muss ersetzt werden werden durch die Anzahl der Tage. Bei wöchentlichen automatischen Löschungen als bspw. +7

#!/bin/bash

find /path/to/files/* -mtime +NoD -exec rm {} \;

Debian Desktop Version (7.0; wheezy)

:

LXDE
Standardmäßig ist gnome 3 als Desktop-Manager installiert.

Mit <apt-get install task-lxde-desktop> (Paket ist in den Standard-Paketen enthalten) kann man einfach den lxde-Desktop nach installieren. Benötigt weit weniger Ressourcen.

############# Textfiles vergleichen ########################################

diff <file1> <file2>: output ist der unterschied zwischen den beiden files mit Angabe der Zeilennummer, in der der Unterschied auftrat und durch ‚<‚ oder ‚>‘ aufzeigen, ob der Unterschied im linken oder rechten File auftrat.

wc -l <file>: Damit wird die Anzahl der Zeilen einer Datei ausgegeben.

 

Debian – Android exfat Filesystem

zum einhängen des Android-Mobilgerätes müssen die Treiber für das exfat-Dateisystem installiert werden:

sudo apt-get install exfat-fuse exfat-utils

DVD-und CD-Images erstellen

Für die Erstellung eines kompletten Abbilds einer CD/DVD dient beispielsweise folgender Befehl:

dd if=/dev/dvd of=/pfad/wo/das/Image/hin/soll/Image.img

Danach sollte man mit Hilfe des befehls cmp überprüfen, ob beim Auslesen des Ursprungsmediums auch alle Daten korrekt gelesen wurden.

cmp Image.img /dev/dvd

Im Falle einer Daten-CD/DVD ist das Ergebnis ein ISO-Image, es kann umbenannt werden.

mv Image.img Image.iso

Backup unter Linux mit tar und Zeitangabe

tar [optionen] backup-$(date +%y-%m-%d-%R).tar.gz [verzeichnis]

=> erstellt eine Datei, z.B. backup-2015-05-19-11:15.tar.gz

Hardware Sensoren

Temperatur anzeigen unter Linux
Um die Daten der Sensoren anzeigen zu lassen, geben Sie in der Konsole „sensors“ ein.
Temperatur anzeigen: „acpi“. Das Tool „acpi“ zeigt Ihnen neben der Prozessor-Temperatur auch die Kapazität des Akkus an.

  • „acpi -t“ zeigt Ihnen die CPU-Temperatur an.
  • Mit „acpi -i“ sehen Sie den Akkustand, Restlaufzeit und Gesamtkapazität

Netzwerk-Performance / Geschwindigkeit messen<

1. iperf auf den Rechner installieren, zwischen denen die Netzwerk-Performance gemessen werden soll
2. auf der Konsole: iperf im Server-Modus starten
3. auf der Konsole starten; die Netzwerk-Performance zwischen client und server wird dann gemessen
4. weitere Parameter über man iperf nachschauen.

 

Netzwerkverbindung zurücksetzen

als root, sudo: ‚ip addr flush interface_name‘

Schreibe einen Kommentar