Posts Tagged ‘Shell’

Sonntag, 18. November 2012

Wieso Mac OS X aus seinem Schlaf aufwacht

$ syslog | grep -i "Wake reason"

Quelle: Determine Why Your Mac Wakes Up From Sleep

Tags: , , , ,
Labels: Apple

1 Kommentar | neuen Kommentar verfassen

Sonntag, 18. November 2012

Adobe Source Code Pro: Quelloffene Programmierer-Schrift

Adobe überrascht für einmal und offeriert mit Source Code Pro eine quelloffene OTF-Schrift, welche speziell für Entwickler geeignet ist, welche eine leicht lesbare Monospace-Schriftart benötigen.

Wer das Ding kompilieren möchte, kann sich an Adobes Git-Repository vergnügen:

adobe / source-code-pro

Alle anderen laden sich das OTF-Binary von hier herunter:

Free Font Source Code Pro by Adobe

Nicht mit Apple Terminal

Leider unterstützt Apples Terminal.app unter Mac OS X 10.7 keine OTF-Fonts:

Terminal.app won’t display OpenType fonts (.otf)

Mist! Dann verwende ich die Schrift halt nur in TextMate … Als Ersatz kommt in Terminal.app Microsofts Consolas zum Einsatz.

Tags: , , , , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 18. November 2012

bash Startup-Konfigurationsdateien unter Mac OS X

Wer seine Shell unter Mac OS X nach eigenem Gusto konfigurieren möchte, legt an eine oder mehrere der nachfolgenden Dateien Hand an — je nachdem, ob man Anpassungen systemweit (/etc/profile, /etc/bashrc) oder nur für den eigenen Benutzer eingerichtet haben möchte (~/.*; siehe unten).

Es muss dabei zwischen Login- und Non-Login-Shells unterscheiden werden. Was für einen Shell-Typ man gerade verwendet, findet sich ganz leicht mit folgendem Befehl heraus:

$ shopt | grep login_shell
login_shell    	on

Login-Shell

  1. /etc/profile
  2. Die erste existierende der folgenden Dateien (nur eine!):
    1. ~/.bash_profile
    2. ~/.bash_login
    3. ~/.login

Non-Login Shell

  1. /etc/bashrc
  2. ~/.bashrc

Quelle: What startup files are read by the shell? (shell configuration)

Soweit so gut … Die Sache wird nun aber noch weiter verkompliziert, indem man beim Login mit dem persönlichen Benutzer standardmässig eine bash-Shell vorgesetzt bekommt:

$ echo $SHELL
/bin/bash

Nachdem man aber mit sudo su zum root-Benutzer wechselt, hat man „nur“ noch eine sh-Shell:

# echo $SHELL
/bin/sh

Wie in einem SuperUser-Thread dargelegt handelt es sich bei /bin/sh seit Mac OS X 10.6 um ein bash-Binary, welches aber mit dem Flag -enable-strict-posix-default kompiliert wurde. Da sich aber /bin/sh wie ein Bourne Shell verhält, werden gar keine Konfigurationsdateien eingelesen:

Note that when bash is invoked with the name „sh“, it tries to mimic the startup sequence of the Bourne shell („sh“). In particular, a non-login shell invoked as „sh“ does not read any dot files by default. See the bash man page for details.

Quelle: What startup files are read by the shell? (shell configuration)

Fazit

Wer möchte, dass /etc/bashrc auch bei einem sudo su ausgeführt wird, muss die Login-Shell des root-Benutzers ändern:

# chsh -s /bin/bash root
Changing shell for root.

In den root-Benutzer wechselt man dann mittels

$ sudo -i

Tags: , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 18. Oktober 2012

Mit curl eine fortlaufend nummerierte Reihe von Photos in Gallery 2 herunterladen

Nichts leichter als das. Man öffne die Detailansicht des ersten Photos in Gallery 2, notiere sich den Wert der Variable und kopiere die URL. Dasselbe tut man für das letzte Photo des Albums.

Die URL und die zwei Zahlen fügt man in folgenden Kommandozeilenbefehl ein:

curl -f "http://domain.tld/main.php?g2_view=core.DownloadItem&g2_itemId=[39169-39632]&g2_serialNumber=2" -o "#1.jpg"

Erläuterung der Optionen:

  • -f verhindert, dass HTTP-Fehlermeldungen auch als Dateien gespeichert werden — denn es könnte ja sein, dass die Sequenz nicht durchlaufend ist.
  • [39169-39632] definiert den Anfangs und den Endwert der Sequenznummern von Gallery 2
  • -o Speichert die Rückmeldung des Web-Servers in eine Datei und gibt sie nicht auf im Shell aus
  • #1 ist die fortlaufende Nummer. So werden mit -o Dateien mit eindeutigen Dateinamen geschrieben

Quelle: trying to use curl to download a series of files

Tags: , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Montag, 27. August 2012

Multipart ZIP-Archive im Mac OS X Shell entpacken

Zuerst muss man die ZIP-Dateien zu einer grossen Datei zusammenbacken — dabei ist darauf zu achten, dass die .zip-Datei am Schluss angefügt wird, gestartet wird mit .z01:

$ cat teilarchiv.z01 teilarchiv.z02 teilarchiv.zip > archiv.zip

Anschliessend kann man die grosse ZIP-Datei mit Mac OS X Bordmitteln entpacken, wobei man sich über die Fehlermeldungen getrost hinwegsetzen kann:

$ unzip archiv.zip

Tags: , , , , ,
Labels: IT

1 Kommentar | neuen Kommentar verfassen

Montag, 2. April 2012

vim unter Mac OS X Farbe verleihen

Hierzu erstellt man einfach ~/.vimrc und fügt gleich zuoberst ein:

syntax on

Nebenbei: Eine Zeile kommentiert man mit dem Anführungszeichen („) aus.

Weitere viele nützliche Einstellungen finden sich unter Example .vimrc

Tags: , , , , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Montag, 19. März 2012

Eine laufende screen-Session übernehmen

Da bin ich heute wohl zu überstürzt aus dem Haus gegangen und habe vergessen, eine laufende screen-Session mittels Ctrl-A-D in den Detached-Modus zu verfrachten.

Als ich nun per SSH über 3G auf meinen Mac mini zugreifen wollte, kriegte ich eine Fehlermeldung zu Gesicht, dass der Screen „attached“ sei.

Die Lösung? Ganz einfach:

screen -r -D 5004

Mit der Option -D wird der derzeit aktiv in die screen-Session eingeloggte Benutzer „rausgekickt“ und ich übernehme den Screen. Nett!

Tags: , , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Samstag, 25. Februar 2012

youtube-dl meldet „no fmt_url_map or conn information found in video info“

Wer Youtube-Videos auf seinen Rechner herunterladen möchte, um sie später ohne Internetverbindung anschauen zu können, wird das Python-Script youtube-dl längst kennen.

Wenn das Ding aber den Fehler

$ ~/youtube-dl.sh http://www.youtube.com/watch?v=QhhFQ-3w5tE
[youtube] Setting language
[youtube] QhhFQ-3w5tE: Downloading video webpage
[youtube] QhhFQ-3w5tE: Downloading video info webpage
[youtube] QhhFQ-3w5tE: Extracting video information
ERROR: no fmt_url_map or conn information found in video info

meldet, sollte man sich den Fork von Philipp Hagemeister herunterladen, welcher den Bug behebt:

youtube-dl (Philipp Hagemeisters Fork)

Youtube-Video als MP3 herunterladen

Wenn wir gerade dabei sind: Wer obiges Tool einsetzt, sollte auch zwingend nachfolgende Web-Site kennen, welche Youtube-Videos in MP3-Dateien umwandelt:

www.youtube-mp3.org

Tags: , , , , ,
Labels: Linux

2 Kommentare | neuen Kommentar verfassen

Sonntag, 19. Februar 2012

MacPorts unter Lion

Xcode 4.3 kann nur noch über den Mac App Store bezogen werden. Applikationen, die über diesen Kanal vertrieben werden, müssen verschiedene Einschränkungen in Kauf nehmen — unter anderem können sie nicht mehr Dateien irgendwo auf der Macintosh HD ablegen.

Die ausführbaren Dateien liegen unter /Applications/Xcode.app/Contents/Developer, und dies muss man auf der Kommandozeile auch dementsprechend kundtun:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

Quelle: Untitled

Damit ist es aber noch nicht getan. In Xcode muss man nun noch die Command Line Tools installieren, die den gcc-Compiler zur Verfügung stellen:

  1. Xcode installieren
  2. Xcode starten
  3. Xcode
  4. Preferences
  5. Downloads
  6. Install Command Line Tools

Unklare Wirkung

Bei der Fehlersuche habe ich auch noch folgende Anpassung an /opt/local/etc/macports/macports.conf vorgenommen, weiss aber nicht, ob sie nötig ist oder nicht:

...
# Directory containing Xcode Tools (default is to ask xcode-select)
#developer_dir       /Developer
developer_dir        /
...

Tags: , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 12. Februar 2012

Den bash Prompt den eigenen Bedürfnissen anpassen

Wegen der im vorgängigen Post erwähnten Anpassung an der /etc/hosts schaute mein Bash Shell Prompt plötzlich folgendermassen aus:

mario@192:/ $

Ich habe mich deshalb daran gemacht, das Prompt meinen eigenen Bedürfnissen anzupassen. Folgendermassen schaut es nun aus:

[mario@192.168.0.102:/] $ 

Die Ausgabe beim root-User sieht identisch aus, ausser dass das $ durch ein # ersetzt wurde und der Prompt in roter Farbe hervorgehoben ist.

Für die Einstellungen des root-Users habe ich /etc/bash.bashrc angepasst:

...#PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1="\\[$(tput setaf 1)\\]\\u@\\H:\\w # \\[$(tput sgr0)\\]"

Für die Einstellungen aller anderen User muss man sich in die /etc/profiles bemühen:

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"
fi

if [ "$PS1" ]; then
  if [ "$BASH" ]; then
    #PS1='\u@\h:\w\$ '
    PS1="[\\u@\\H:\\w] $ "
  else
    if [ "`id -u`" -eq 0 ]; then
      #PS1='# '
      PS1="[\\u@\\H:\\w] # "
    else
      #PS1='$ '
      PS1="[\\u@\\H:\\w] $ "
    fi
  fi
fi

export PATH

umask 022

Damit dies bei den einzelnen Benutzern auch wirklich so ausschaut, müssen diese in ~/.bashrc und ~/.bash_profile jegliche Definition der PS1-Variable verhindern.

Fazit: Ein riesiges Chaos mit unzähligen Overrides und verschachtelten Abhängigkeiten, welches eines Linux-Betriebssystems im Grunde unwürdig ist.

Tags: ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen