Nov 23

Die Bash begleitet mich als DevOp (um mal eines der neuen Buzz Words zu bemühen) schon sehr lange. Doch man lernt nie aus. Dieses kleine Snippet entfernt vom Prozedurnamen, der in $0 enthalten ist, den Pfadbestandteil.

#!/bin/bash
ME=${0##*/}
 
# Ausgabe mit Pfadangabe
echo $0
# und ohne
echo $ME
# Aufruf
/var/run/whatever.sh 
 
# Ausgabe
/var/run/whatever.sh
whatever.sh

Danke Andi

geschrieben von gklinkmann \\ tags:

Aug 19

Secure Shell oder

Links:
ssh in der Wikipedia

geschrieben von gklinkmann \\ tags:

Aug 05

Eigentlich habe ich ja nur einen Grund gesucht, um homebrew für MacOs vorzustellen. Wer jetzt an Bier denkt, liegt falsch. Homebrew ist der schmerzlich vermisste Paketmanager für MacOs (zumindest wenn man über Linux zu MacOs gefunden hat).

Voraussetzungen für die Installation sind ein Intel Mac und ein aktuelles XCode, was es jetzt für Lion ja auch wieder kostenlos im App Store gibt. Homebrew selbst installiert sich über ein auf github gehostetes Ruby Script.

/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

Danach reicht ein simples:

brew install wget

zur Installation von wget aus.

Das Leben kann so einfach sein. :-)

geschrieben von gklinkmann \\ tags: ,

Aug 04

Es gibt viele Unix Befehle, die mir auf der Windows Kommandozeile fehlen. Die Powershell schließt hier viele Lücken. Auch die, um eine Logdatei fortlaufend mitzulesen, während sie geschrieben wird. Unter Unix gibt es dafür den Befehl tail -f. Das Windows Equivalent ist:

Get-Content my.txt -Wait

Unter XP muss die Powershell allerdings auf der Kommandozeile explizit aufgerufen werden. Wer sich (wie ich) mit der Powershell nicht anfreunden kann, nutzt cygwin.

via: eggheadcafe.com

geschrieben von gklinkmann \\ tags: ,

Mar 04

Wenn man wie ich eher von der Unix Seite (der guten Seite der Macht) kommt und auf seinem Windows PC zum vernünftigen Arbeiten mit der Kommandozeile noch cygwin installiert hat, dann vermisst man es schmerzlich auf Rechnern, die diese kleinen Linux Tools für Windows nicht besitzen.
Doch wenn man Glück hat, ist die Powershell installiert (die Anzahl von PC’s mit XP und nicht aktuellem Servicepack ist immer noch erschreckend hoch).

Nun stellt sich eine Frage. Auf der Unix Shell kennt man sich gut aus, aber wie heißt denn jetzt das entsprechende Powershell Kommando für den Unix Befehl, den man braucht. Die Antwort ist “rtfm” oder ein guter Artikel im Internet von jemanden, der die Doku gelesen hat. Für mich war dieser Artikel bei oreilly sehr hilfreich.

Was man dabei nämlich zuerst lernt ist, dass für die Powershell Kommandos eine Menge von Aliassen gibt, die teilweise gleichlautend mit den Unix Befehlen sind. Hier eine kleine Auswahl:

Command Aliases
Copy-Item cpi, cp, copy
ForEach-Object foreach, %
Get-ChildItem dir, ls
Get-Command gcm
Get-Content cat, type
Get-Content gc, type, cat
Get-Help help
Get-Location gl, pwd
Move-Item mi, mv, move
Remove-Item ri, rd, del, rm, rmdir
Rename-Item rni, ren
Set-Location cd, chdir
Where-Object where

Quelle: oreilly.de

Für meine Zwecke hat dies schon gereicht, denn ich wollte nur mit cat in eine Datei hineinschauen. Anders sieht es aus, wenn man einen “pager” wie more oder less benötigt. Für diese gibt es die PowerShell Community Extensions, die unter der Microsoft Public License (Ms-PL) stehen.
Dabei handelt es sich um zusätzliche cmdlets, providers, aliases, filters, functions and scripts für die Windows PowerShell. Die Doku dafür ist allerdings dürftig.

Fazit:
Wer wie ich eine Unix Shell vorzieht und auf den Zugriff von .NET Objekten über die Powershell verzichten kann, ist mit mit cygwin (sofern es installiert ist) besser bedient. Denn die Powershell Kommandos sind nur in Ansätzen (durch Aliasse) namensgleich mit Unix Befehlen. Die PowerShell Community Extensions verbessern diese Situation.
Ist cygwin nicht installiert, kommt man also um das Lesen der Powershell Doku nicht herum.

geschrieben von gklinkmann \\ tags: ,