Einträge zu Tag: Bash

chmod, Rechte nur bei Dateien oder Verzeichnissen ändern

Erstellt: 05.04.2010 14:48

Mit er Hilfe von find lässt sich chmod oder andere Befehle nur auf Dateien oder Verzeichnisse anwenden.

chmod 644 nur auf Dateien (files) anwenden:

# find . -type f -exec chmod 644 {} ;

chmod 755 nur auf Verzeichnisse (directories) anwenden:

# find . -type d -exec chmod 755 {} ;

Der praktische Parameter -exec von find führt den nachfolgenden Befehl aus, in diesem Fall chmod. Die Klammern {} setzen die Ausgabe von find an den entsprechenden Platz. -type bestimmt die Art der Dateien welche gefunden werden sollen. d für Verzeichnisse oder f für normale Dateien. Zugegeben, auf diese Lösung kann man auch leicht selbst kommen, aber manchmal liegt das Naheliegendste doch am weitesten entfernt. ;)



Tagged: Bash Linux

Kommentar verfassen | Nach oben

Mit ls eine Datei mit Minus "-" am Anfang anzeigen

Erstellt: 17.03.2010 18:10

Ich wurde letztens gefragt, wie man mit ls eine Datei anzeigt, welche mit einem Minus beginnt. Also in der Form von "-dateiname".

Das Problem dabei ist, dass der Dateiname selbst von ls als Kette von Operatoren angesehen wird, da er mit einem Minus beginnt. Sprich, die Ausgabe endet mit einem Error:

$ ls -lah -dateiname
ls: Ungültige Option -- e
"ls --help" gibt weitere Informationen.

Dies lässt sich umgehen, indem man ls mit "--" sagt, dass keine Operatoren mehr folgen werden:

$ ls -lah -- -dateiname
-rw-r--r-- 1 user1 user1 279K 17. Mär 17:36 -dateiname

Das wäre schon die ganze Zauberei gewesen.



Tagged: Bash Linux

Kommentar verfassen | Nach oben

Bash: Live-Suche nach verwendeten Befehlen

Erstellt: 23.12.2008 23:41

Verwendet man Befehle mehrmals kann man sich mit einem kleinen Trick viel Tipparbeit ersparen.
Drückt man die Tastenkombination "Ctrl+R" erscheint in der Bash eine Eingabemöglichkeit:

(reverse-i-search)`':

...nun werden Buchstabenkombinationen entgegengenommen und der erstbeste Befehl angezeigt, hier zum Beispiel bei "ca":

(reverse-i-search)`ca': apt-cache search adobe

...bei "cat" kommt bei hier dann beispielsweise:

(reverse-i-search)`cat': cat /etc/fstab

Mit "Ctrl+R" werden alle Möglichkeiten nacheinander angezeigt, welche zu der Buchstabenkombination passen, sofern es welche gibt:

(reverse-i-search)`cat': cat /etc/fstab

[Ctrl+R]

(reverse-i-search)`cat': cat /etc/apt/sources.list

[Ctrl+R]

(reverse-i-search)`cat': nano gnome-applications.menu

[Ctrl+R]

(reverse-i-search)`cat': cat /boot/grub/menu.lst

Entfernen lassen sich Buchstaben gewohnt mit Backspace.
Einen angezeigten Befehl übernimmt man mit der Eingabetaste, dieser wird so direkt ausgeführt.
Die Tastenkombination "Ctrl+D" schliesst die Funktion, lässt es aber zu den Befehl zu bearbeiten bevor man ihn Ausführt. Dieser steht wie selbstgetippt und nicht ausgeführt in der Bash:

(reverse-i-search)`cat': cat /boot/grub/menu.lst

[Ctrl+D]

# cat /boot/grub/menu.lst (jetzt kann man normal editieren und mit der Eingabetaste ausführen)

Statt "Ctrl+D" funktioniert auch die Taste "Insert".

"Ctrl+Y" übernimmt das Ergebnis als Suchstring:

(reverse-i-search)`cat /boot/grub/menu.lst': cat /boot/grub/menu.lst

Abbrechen mit Esc.

Viel Spass damit cool ist



Tagged: Bash Linux

Kommentar verfassen | Nach oben

Thinkpad mit Intel Graphikkarte - VGA-Ausgang ein-, und ausschalten (mit Fn+7)

Erstellt: 10.09.2008 22:02

Der VGA-Ausgang lässt sich bei Intel-Graphikkarten über das Tool "i810switch" steuern. Diese Steuerung lässt sich über die Funktionstasten automatisieren.
Zuerst i810switch installieren:

# apt-get install i810switch

Funktioniert auch mit anderen Intel-Graphikkarten als mit der 810er. Ich Habe die 950GMA.

Ein-, und auschalten geht ganz einfach:

$ i810switch crt on
Enabling CRT display...

$ i810switch crt off
Disabling CRT display...

Ohne Parameter wird der Status der Schnittstelle angezeigt:

$ i810switch
CRT: off
LCD: off

Um das zu automatisieren habe ich ein kleines Script geschrieben. Es liest mit xrandr aus ob ein Monitor angeschlossen ist. Deshalb sollte man sich dafür per apt-get noch "xrandr" installieren.

Dieses Script kontrolliert nun beim aufrufen ob ein Monitor angeschlossen ist und schaltet dann die VGA-Schnittstelle ein, bzw. aus. Ist kein Monitor angeschlossen, wird überprüft ob die Schnittstelle aktiv ist. Falls sie aktiv sein sollte, wird sie ausgeschalten.

Ich habe die Datei "switch-monitor" genannt.

#!/bin/bash
# Filename: /usr/local/sbin/switch-monitor
# Schaltet Schnittstelle fuer externen Monitor an und aus
# Ist nichts angeschlossen, wird die Schnittstelle deaktiviert
# Benoetigt: xrandr, i810switch
# Aufgerufen durch:
# /etc/acpi/events/ibm-videobtn

monistate=`/usr/bin/i810switch | head -n1 | tail -n1 | cut -f 2 -d " "`

isit=`xrandr | head -n2 | tail -n1 | cut -f 2 -d " "`

if [ $isit = "disconnected" ]
then
echo "VGA disconnected"
if [ $monistate = "on" ]
then
i810switch crt off
fi
else
if [ $monistate = "off" ]
then
i810switch crt on
else
i810switch crt off
fi
fi

Die Datei mit diesem Inhalt sollte noch mit:

$ chmod +x switch-monitor

...ausführbar gemacht werden.

Um das ganze jetzt noch auf die Tastenkombination "Fn+F7" zu legen, geht man wie folgt weiter:

Man kopiert (oder verschiebt) das Script in dieses Verzeichnis:

# cp <Jetziger_Speicherort_der_Datei>/switch-monitor /usr/local/sbin/

Nun wird vorausgesetzt, dass man im Kernel die "Thinkpad ACPI Laptop Extras" aktiviert hat bzw. das Modul geladen. (Eine kurze Zusammenfassung wie man mit Kernel umgeht mit Verweis ist hier zu finden: Kernel compilen unter Debian ) Das Modul wird benötigt um die ACPI-Ereignisse des Thinkpads auszulesen.

In der Datei /etc/acpi/events/ibm-videobtn muss man die 6. Zeile ersetzen mit dem Pfad vom Script. Aktuell sollte sie so aussehen:

# /etc/acpi/events/ibmvideobtn
# This is called when the user presses the video button. It is currently
# a placeholder.

event=ibm/hotkey HKEY 00000080 00001007
action=/bin/true

Danach (Man beachte die Zeile "action"):

# /etc/acpi/events/ibmvideobtn
# This is called when the user presses the video button. It is currently
# a placeholder.

event=ibm/hotkey HKEY 00000080 00001007
action=/usr/local/sbin/switch-monitor

ACPI noch neu starten:

# /etc/init.d/acpid restart


Fertig lacht



Tagged: Bash Debian Hardware Linux

Kommentar verfassen | Nach oben

Automatisiertes entpacken diverser (komprimierter) Archive mit unp

Erstellt: 20.04.2008 02:38

Mit unp kann man sich viel (Denk- zwinkert ) und Tipparbeit ersparen.
Dieses kleine Programm ist ein Fronted für diverse (Ent-)Packprogramme. Damit lässt sich so gut wie jedes (komprimierte) Archiv nach Dateityp automatisiert entpacken.

Installieren kann man sich das Programm über das Paketsystem:

# apt-get install unp

Zu verwenden ist das Tool sehr einfach:

$ unp Dateiname

Will man zusätzliche Parameter an die Packprogramme übergeben, geschieht das mit "--" und dem gewünschten Parameter:

$ unp Dateiname -- -C /tmp

Derzeit unterstützte Erweiterungen und Formate (Auszug aus der man-Page):
tar[.gz,.bz2], gz, bz2, Z, ar/deb, rpm, shar, rar, arj, zip, LHa, cab, ace,
tnef, uu (mail, news), mime, hqx, sea, zoo, pmd, cpio, afio, lzop

Viel Spass sich freut



Tagged: Bash Linux Software

Kommentar verfassen | Nach oben

« ältere Einträge

neuere Einträge »