Skip to content

Know your terminal skills - CMD Challenge für KonsolenKönner

Wer zum Wochenanfang seine Terminalkenntnisse unter Beweis stellen möchte, der findet mit der CMD Challenge genau das Richtige.

Die Webseite fragt momentan 32 Terminal Befehle ab. Am Anfang noch relativ einfach, dann immer komplexer.

Sowohl für Einsteiger zum Üben als auch für Profis für Zwischendurch, bietet der kleine interaktive Fragenkatalog die nötige Abwechslung.

Commandline-ChallengeDas Kommandozeilen Tool ist Open Source und kann auf Github jederzeit erweitert oder verbessert werden.

CMD Challenge

 

Mehrere Ubuntu Kernel Images auf einmal entfernen

Vor Jahren hatte ich einen kleinen Beitrag über das Entfernen alter Kernels aus einem Linux System geschrieben (Artikel).

Bei diesem Vorgehen hat sich nicht viel geändert, ich möchte die Anleitung lediglich um den folgenden Punkt erweitern.

Entfernen mehrerer Kernel Images auf einmal

Suche nach installierten Kernels

dpkg -l |grep linux-image*

dpkg -l |grep linux-header*

Einzelnes Image entfernen

sudo apt-get purge linux-image-3.16.0-40.54

sudo apt-get purge linux-header-3.16.0-40.54


logo-ubuntu

Mehrere Images auf einmal entfernen

Oft haben sich mehrere alte Kernels angesammelt, welche auf einmal entfernt werden könnten, mit einem kleinen Trick ist dies in der Bash ohne weiteres möglich

sudo apt-get purge linux-image-3.16.0-{54,55,56,57,58}

sudo apt-get purge linux-header-3.16.0-{54,55,56,57,58}

Die beiden Befehle entfernen alle Images mit den genannten Versionsnummern in einem Rutsch.

Ubuntu - ASCII Art Logos beim Login auf der Kommandozeile anzeigen

Zum kleinen Freitag mal wieder leichte Kost.

Linux Logos in ASCII Art im Terminal darstellen sind eigentlich ein alter Hut. Da ich diese hier im Blog noch nie erwähnt hatte, wird es Zeit es nachzuholen.

Im Prinzip gibt es mehrere Möglichkeiten, zwei davon stelle ich hier vor, da diese auch mit einem aktuellen System (Ubuntu 14.04) gut funktionieren.

ASCII Art auf der Konsole mit Linux Logo

Dieses alte Paket ist schon eine Weile bei Ubuntu mit dabei und lässt sich dementsprechend einfach installieren

sudo apt-get install linuxlogo

Der Start erfolgt mit linuxlogo -L "Option", so lässt sich beispielsweise das Ubuntu Logo mit Systemwerten ausgeben.

linuxlogo -L ubuntu

ubuntu-ascii-art

Ein Liste mit alle verfügbaren Logos lässt sich ebenfalls auflisten.

linuxlogo -L list

Available Built-in Logos:
        Num     Type    Ascii   Name            Description
        1       Classic Yes     aix             AIX Logo
        2       Classic Yes     bsd             FreeBSD Logo
        3       Banner  Yes     bsd_banner      FreeBSD Logo
        4       Classic Yes     irix            Irix Logo
        5       Banner  Yes     solaris         The Default Banner Logos
        6       Banner  Yes     banner-simp     Simplified Banner Logo
        7       Banner  Yes     banner          The Default Banner Logo
        8       Classic Yes     classic-nodots  The Classic Logo, No Periods
        9       Classic Yes     classic-simp    Classic No Dots Or Letters
        10      Classic Yes     classic         The Default Classic Logo
        11      Classic Yes     core            Core Linux Logo
        12      Banner  Yes     debian_banner_2 Debian Banner 2
        13      Banner  Yes     debian_banner   Debian Banner (white)
        14      Classic Yes     debian_old      Debian Old Penguin Logos
        15      Classic Yes     debian          Debian Swirl Logos
        16      Classic Yes     gnu_linux       Classic GNU/Linux
        17      Banner  Yes     mandrake_banner Mandrake(TM) Linux Banner
        18      Banner  Yes     mandrake        Mandrakelinux(TM) Banner
        19      Banner  Yes     mandriva        Mandriva(TM) Linux Banner
        20      Banner  Yes     pld             PLD Linux banner
        21      Banner  Yes     redhat          RedHat Banner (white)
        22      Banner  Yes     slackware       Slackware Logo
        23      Banner  Yes     sme             SME Server Banner Logo
        24      Banner  Yes     sourcemage_ban  Source Mage GNU/Linux banner
        25      Banner  Yes     sourcemage      Source Mage GNU/Linux large
        26      Banner  Yes     suse            SUSE Logo
        27      Banner  Yes     ubuntu          Ubuntu Logo

Das Tool bietet noch weitere Zusatzoptionen wie s/w oder einbinden der aktuellen Auslastung. 

Sollte ein Befehl falsch eingegeben werden erscheint ein ASCII Teufel, probiert es aus.

Linux Logo beim Login anzeigen

Damit das ASCII Logo beim Login angezeigt wird, genügt ein Eintrag in der bashrc.

nano .bashrc

if [ -f /usr/bin/linux_logo ]; then
        linux_logo -L ubuntu;
fi

Archey - Linux ASCII Art im Terminal

Eine andere Möglichkeit diverse Logos mit Systemwerten im Terminal darzustellen bietet Archey. Das ebenso betagte Paket, arbeitet auch heute noch einwandfrei.

wget https://github.com/downloads/djmelik/archey/archey-0.2.8.deb
sudo dpkg -i archey-*
archey

ubuntu-ascii-art-archey

Archey Logo beim Login anzeigen lassen

Auch hier lässt sich das Logo einfach über die bashrc in den Login mit einbinden.

nano .bashrc

if [ -f /usr/bin/X11/archey ]; then
        archey;
fi

Nerd Welten: Rainbowstream und Facy - Twitter oder Facebook übers Terminal nutzen

Seit dem letzten Artikel sind schon wieder ein paar Tage vergangen, ich schiebe es mal auf den Sommer. Dafür geht es heute um ein richtig nerdiges Thema. 

Facebook oder Twitter über das Terminal nutzen, braucht man das? Vielleicht wenn nur ein Konsole zur Verfügung steht oder der Nerd durchkommt, welcher nicht anders kann....egal, Hauptsache es geht. Aber wie? Das will ich euch heute zeigen.

Rainbowstream - Twitter auf der Konsole nutzen

Der Twitter Client Rainbowstream basiert auf Python, darum muss auf dem Referenzsystem (Ubuntu 14.04) die Python Paketverwaltung installiert sein.

sudo apt-get install python-pip

Installation Rainbowstream

Danach ist die Installation des Client schnell erledigt, die Konfiguration nimmt dafür etwas mehr Zeit in Anspruch. Etwas Geschick mit dem Terminalbrowser w3m ist ebenfalls gefragt, solltet ihr wirklich nur ein Terminal zur Verfügung haben.

sudo pip install rainbowstream

                PIL SETUP SUMMARY
                --------------------------------------------------------------------
                version      Pillow 2.8.2
                platform     linux2 2.7.6 
                             [GCC 4.8.2]
                --------------------------------------------------------------------
                ** TKINTER support not available
                **
JPEG support not available
                ** OPENJPEG (JPEG2000) support not available
                --- ZLIB (PNG/ZIP) support available
                **
LIBTIFF support not available
                ** FREETYPE2 support not available
                **
LITTLECMS2 support not available
                ** WEBP support not available
                **
WEBPMUX support not available
                --------------------------------------------------------------------
                To add a missing option, make sure you have the required
                library, and set the corresponding ROOT variable in the
                setup.py script.

                To check the build, run the selftest.py script.

                changing mode of build/scripts-2.7/pildriver.py from 644 to 755
                changing mode of build/scripts-2.7/pilconvert.py from 644 to 755
                changing mode of build/scripts-2.7/pilfile.py from 644 to 755
                changing mode of build/scripts-2.7/pilfont.py from 644 to 755
                changing mode of build/scripts-2.7/pilprint.py from 644 to 755
                changing mode of /usr/local/bin/pildriver.py to 755
                changing mode of /usr/local/bin/pilconvert.py to 755
                changing mode of /usr/local/bin/pilfile.py to 755
                changing mode of /usr/local/bin/pilfont.py to 755
                changing mode of /usr/local/bin/pilprint.py to 755
              Running setup.py install for PySocks

            Successfully installed rainbowstream python-dateutil arrow pyfiglet twitter Pillow PySocks
            Cleaning up...

Der Start der Software erfolgt nach der Installation einfach mit dem Befehl

rainbowstream

Konfiguration des Clients

Die Terminaloberfläche erklärt euch danach ausführlich die nächsten Schritte, wie Anlegen eines neuen Accounts oder Einloggen mit einem vorhandenen.

Via "Cursor" und "Enter" auf den Text "Twitter" kann zuvor die Sprache ausgewählt werden.

rainbowstream-sprache

Gleiches gilt für andere Texteingaben, in der gewünschten Zeile die Enter Taste betätigen und den Text eingeben.

rainbowstream-anmeldung

Bei der ersten Anmeldung mit euren Zugangsdaten geht ein Browserfenster auf, welche die App für euren Account freischaltet. Solltet ihr einen Server ohne Oberfläche betreiben, geht dies natürlich nicht.

Doch der verwendete w3m Terminal Browser beherrscht Tab Browsing. Denn der API Key wird in einem neuen Fenster angezeigt.

rainbowstream-auth

Ihr solltet ein wenig mit den w3m Befehlen vertraut sein, um zwischen den Fenstern zu wechseln, damit der API Key richtige eingegeben werden kann.

Die wichtigsten w3m Befehle

T    open new tab

C-q    close current tab

{,}    move to next/previous tab

ESC-t    popup tab selection menu

Ein komplette w3m cheat sheet findet ihr hier.

rainbowstream-api-key

Sobald der API Key richtig hinterlegt wurde, kann es mit Rainbowstream und Twitter richtig los gehen.

Rainbowstream bedienen

Nach dem erfolgreichen Registrieren und Einloggen sind natürlich Tastaturbefehle von Nöten.
Angefangen beim Theme Wechsel mit dem Befehl "theme tomorrow_night, solarized, larapaste oder monokai" bis zum ersten Absetzen eines Tweets mit dem einfachen Befehl "t" gefolgt vom Text.

Tweet absetzen: t + text

Trends anzeigen: trends

Hauptseite: home

Retweet: rt + Tweet ID

Zitieren: Quote + Tweet ID + eigener Tweet

Dem Twittern steht nun Nichts mehr im Wege, über "h" kann eine ausführliche Hilfe aufgerufen werden.

rainbowstream-hilfe

Die komplette Liste an Befehlen ist bei den Entwicklern selbst zu finden.

Hier seien noch die richtigen Terminal Befehle erwähnt, damit die Konsole beispielsweise ordnungsgemäß verlassen werden kann.

Terminal Befehle Rainbowstream

h für Hilfe

p für Pause

r für Weiter

c für einen klaren Bildschirm

v für die Version

q für Beenden

rainbowstream-mainFazit

Rainbowstream stellt eine praktische Alternative fürs Terminal dar, dass dadurch Abstriche zum Beispiel in Bezug auf Bilder, gemacht werden müssen ist unvermeidbar. Dafür sorgen die vorhandenen Themes für ein abwechslungsreiches Twitter Erlebnis. 
Die Installation ist mit w3m und dem API Key etwas umständlich aber zu bewältigen.
Dank sinnvoller Tastaturbefehle ist die Bedienung einfach und geht leicht von der Hand. Terminal Freunde werden bei diesem Client nicht "Nein" sagen können.


Facy bringt Facebook auf die Konsole

Auch Facebook lässt sich übers Terminal bedienen, anders als bei Rainbowstream wird anstatt Python dieses Mal Ruby auf der Ubuntu Maschine benötigt. (Ich hatte ja bereits beschrieben wie sich Ruby auf Ubuntu installieren lässt.)

Die Installation ist hier genauso einfach wie beim erwähnten Twitter Client, allerdings wird es bei der Konfiguration etwas kniffliger, da hier ohne richtigen Browser keine Installation möglich ist.

sudo apt-get install ruby ruby-dev libpq-dev

gem install fancy

Der erste Start der Anwendung erfolgt mit dem Befehl "facy"

facy

Facy Konfigurieren

Anders als beim Twitter Client, ist nun zwingend ein richtiger Browser nötig. Zusätzlich wird ein Facebook Developer Account benötigt, denn es muss eine eigene App angelegt werden. 

Die Installation und Konfiguration ist somit über das Terminal leider nicht möglich. Das heißt es muss wie folgt vorgegangen werden

  1. Auf https://developers.facebook.com wechseln
  2. Registrieren und einloggen
  3. Add an new App auswählen
    1. Egal ob Android, Facebook Canvas oder Webseite
  4. Oben Rechts auf Skip and and Create an new App ID klicken
  5. Namen vergeben
  6. App ID erstellen
  7. App ID und App Secret in Fancy hinterlegen.
  8. Eventuell muss bei der App noch an den Zugriffsrechten etwas freigeschaltet werden.

facy-app

Fazit

Bei Facy habe ich irgendwann aufgegeben, da der API Key zusammen mit dem nötigen Secret nicht richtig angenommen wurde. Beziehungsweise angenommen wurden diese schon, aber der generierte Link mit User Token wollte nicht so wie ich...

Mir hat irgendwann die Motivation gefehlt, da die Konfiguration doch etwas aufwendig war. Dadurch, dass Facebook etwas bilderlastiger als Twitter ist, empfinde ich Facebook auf dem Terminal auch nur halb so attraktiv.

Um auf dem aktuellen Stand zu bleiben und den Feed durchtickern zu lassen, ist es sicherlich eine gute Lösung, nur leider nicht für meine Zwecke.

Wego - Schicke Wettervorhersage fürs Linux Terminal installieren

Wetter Apps und Vorhersage Tools gibt es wie Sand am Meer, dergleichen sind für die Konsole zwar vorhanden, aber selten sehr ansehnlich.

Ein findiger Entwickler will dem mit Wego ein Ende setzen. Das Programm basiert auf der Sprache Go und gibt nach erfolgreicher Installation eine Wettervorhersage in schönster ASCII Art auf der Konsole aus.

Wego - Konsolen Wetterdienst in Ubuntu installieren

Zunächst wird geprüft, ob wir uns im Home Verzeichnis befinden, denn genau dort soll die Installation stattfinden.

:~$ pwd
          /home/user

Ist dies der Fall können die benötigten Pakete installiert werden. Für die Wettervorhersage im Terminal wird die Sprache Go so wie Git benötigt.

:~$ sudo apt-get install golang-go git

Prüfung ob die Installation geklappt hat

:~$ go version

go version go1.2.1 linux/amd64

Path Variable für Go definieren

Damit die Installation gelingt muss zunächst etwas Vorarbeit geleistet werden

:~$ mdkir weego
:~$ export GOPATH=/home/user/weego

Installation und Konfiguration von Wego

:~$ go get github.com/schachmat/wego
:~$ cd /weego/bin
:~/weego/bin$ ./wego

2015/05/27 22:19:30 No config file found. Creating /home/user/.wegorc ...
2015/05/27 22:19:30 No API key specified. Setup instructions are in the README.

Ein API Key kann auf https://developer.worldweatheronline.com registriert werden, dazu müsst ihr euch für eine "Free API" anmelden und die angegebene Mail bestätigen, danach kann ein Schlüssel generiert werden. Maildrop.cc wie im Screenshot hat hier nicht funktioniert, ich denke ihr habt da Alternativen.


Ist der Schlüssel generiert, muss er in der Config Datei hinterlegt werden. Hier kann zusätzlich eine Stadt, die Sprache und das metrische System festgelegt werden.

worldweather-api


nano /home/x/.wegorc

{
        "APIKey": "e9ea5524ed2423f9c6f543ff4255c3",
        "City": "Leipzig",
        "Imperial": false,
        "Lang": "de"
}

wetter-terminal

Als Startstadt ist nun Leipzig in der Konfiguration hinterlegt.

Je nach Aufruf von Wego lassen sich aber auch andere Städte und Vorhersagetage festlegen. Zum Beispiel

/weego/bin$ ./wego Athen 4

/weego/bin$ ./wego 1 Berlin

/weego/bin$ ./wego Reykjavik 3

Troubleshooting

Ich denke die meisten werden Probleme mit der Path Variable haben, sollte diese nicht richtig gesetzt sein, bekommt ihr bei der Installation folgende Fehlermeldung:

go get github.com/schachmat/wego
package github.com/schachmat/wego: cannot download, $GOPATH not set. For more details see: go help gopath

Hier hilft es den Export Befehl von oben zu überprüfen und erneut auf der Konsole auszuführen.