Dieser Befehl geht alle Dateien durch, öffnet sie und prüft, ob der gesuchte Begriff drin steht.
find /ordner/unterordner -type f | xargs grep begriff
Posted on 29. Februar 2012 Comments
Posted on 29. Februar 2012 Comments
Entweder von pkgs.slitaz.org die Pakete runterladen oder mit tazpkg über die Repositories das Paket linux-ext4 installieren. Dann sollte entweder sofort oder nach modprobe ext4 der mount Befehl funktionieren:
mount -t ext4 /dev/sda1 /mnt/harddisk
Wenn man das permanent haben möchte(z.B. Festplatteninstallation oder eigene Live-CD), natürlich wie gehabt ext4 in /etc/rcS.conf einfügen, bei mir z.B.:
[...] LOAD_MODULES = "e1000 ext4" [...]
Credits to mojo at vanilla.slitaz.org
Posted on 24. Februar 2012 Comments
Auf der Arbeit sind die PCs fortlaufend beschriftet und die letzten 3 Zeichen ist der Raum, also z.B. PC22-123 ist der 22. PC in Raum 123. Die Räume sind dabei IMMER dreistellig, d.h. in Raum 42 wäre der Raum 042.
Mit einem kleinen Perlskript im Autostart bekommt man seinen gewünschten Drucker anhand des Hostnames:
use Sys::Hostname; $host = hostname; chomp($host); $raumnr=substr($host,length($host)-3,length($host)-1); print "Host: " . $host . "\n"; print "RaumNr: " . $raumnr . "\n"; if ($raumnr == 123) { system('rundll32 printui.dll,PrintUIEntry /y /n "Drucker_Raum_123"'); } elsif (...) else { print "Computername nicht im richtigen Format"; }
Den Hostname bekommt man vom System über sys::hostname. chomp() entfernt eventuelle newline characters. Mittels substr() bekommt man einen Teilstring zurück, der von der Länge-3 bis Länge -1 geht, also genau die letzten 3 Buchstaben bzw. Zahlen. Hier hat man dann die Raumnummer. Anhand derer wird mit der rundll ein Standarddrucker gesetzt(/y) der in Anführungszeichen hinter /n steht. Damit sich die Anführungszeichen nicht in die Quere kommen, nimmt man für den system() Befehl die einstelligen Hochkommata.
Posted on 23. Februar 2012 Comments
Wenn man bei Thunderbird in einer neuen E-Mail z.B. das Schlüsselwort Anhang erwähnt, es aber keinen Anhang gibt bekommt man beim Abschicken eine Warnung, ob man nicht vergessen hat die Dateien anzufügen. Neulich habe ich eine formelle E-Mail geschrieben, in der ich schrieb „anbei finden Sie Datei xyz“. Leider ist anbei keines dieser Schlüsselwörter und so habe ich leider den Anhang vergessen. Damit das nicht nochmal passiert habe ich aus dem Konfigurationseditor* mal die Schlüsselwörter rausgesucht. Der Key heisst mail.compose.attachment_reminder_keywords und die Wörter werden mit Kommata getrennt. Unter Windows findet sich das wohl bequemer unter Extras/Einstellungen/Allgemein/Schlüsselwörter, der Konfigurationseditor funktioniert natürlich trotzdem.
* das, was bei Firefox about:config ist findet man bei Thunderbird unter Bearbeiten(Linux) bzw. Extras(Windows)/Einstellungen/Erweitert/Allgemein/Konfiguration bearbeiten
Posted on 9. Februar 2012 Comments
Soweit ich weiß, gibt es unter Linux keinen Befehl oder eine Datei in der die MAC-Adresse steht, nur ifconfig. Für die weitere Verwendung ist das natürlich unpraktisch und so habe ich hier eben ein bisschen was mit grep und regular expressions zusammengeskriptet/kopiert:
#!/bin/bash ifconfig |grep $1 | grep -m 1 -Eo '[[:alnum:]][[:alnum:]](:[[:alnum:]][[:alnum:]]){5}'
Das am besten unter der Datei grepMacAdr speichern, noch schnell mit
chhmod +x grepMacAdr
ausführtbar machen, dann erfolgt der Aufruf mit
./grepMacAdr eth0
eth0 ist hier das Netzwerkgerät. Wenn das bekannt ist kann auch direkt im Skript $1(=erster Parameter) durch die entsprechende Bezeichnung geändert werden.
Zur Erklärung: ifconfig ruft den Befehl auf, der alle Netzwerkgeräte samt Konfiguration ausgibt, von denen schneidet das Tool grep nur den Abschnitt heraus, der das übergebene Netzwerkgerät behandelt(bzw. die erste Zeile, da steht die MAC-Adresse im allgemeinen) und davon wiederrum wird mit einer Regular Expression(-E) dann nach dem Muster XX:XX:XX:XX:XX gesucht. Falls, was mit dem ersten grep falsch gelaufen ist, wird nur das erste ausgeben(-m 1). Ausgegeben wird dabei nur der Teil, der das Muster einhält, nicht die ganze Zeile(-o)
Ihr findet das Skript auch als fertige Datei hier.
Posted on 9. Februar 2012 Comments
Bei der Arbeit haben wir eine TeraStation Pro II und eine TeraStation Live. Dort kommt man leider nur per Web-Interface drauf, wir brauchten aber root haben also hab ich mich mal umgeguckt. Man kann natürlich die Firmware flashen, aber es geht auch noch einfacher. Mit dem Tool acp_commander und ein paar Linux-Befehlen kann man sich ebenfalls root Zugriff verschaffen.
Bei der TeraStation Live klappte folgendes:
java -jar acp_commander -t IPADRESSE -o
Vorrausgesetzt ist natürlich eine funktioniernde Java Installation. Wenn das unter Windows geschieht, muss das bin-Verzechnis der Java Installation im PATH sein(war bei mir nicht standardmässig der Fall). Für IPADRESSE ist die IP-Adresse des Geräts einzusetzen(wird evtl. auf Display angezeigt).
Wenn man folgende Meldung bekommt, sollte man der TeraStation eine statische IP geben, dem PC ebenfalls und die dann einfach direkt verbinden, denn irgendwas ist in den Router/W-LAN Einstellungen nicht in Ordnung bzw. zu restriktiv:
A SocketTimeoutException usually indicates bad firewall settings. Check especially for *UDP* port 22936 and make sure that the connection to your LS is working. ERROR: Exception: SocketTimeoutException (Receive timed out) [ACP Send/Receive (Packet:8020 = ACP_Discover)]
Wenn alles geklappt hat, kann man sich mit root und keinem Passwort über telnet anmelden:
telnet -l root IPADRESSE
oder über putty(telnet auswählen, Standard ist natürlich SSH). Jetzt kann man SSH nach belieben in /etc/sshd_config konfigurieren und dann mit /etc/init.d/ssh restart neustarten.
Die andere Kiste war nicht ganz so einfach zu öffnen, hier braucht man ein paar Linux-Befehle:
Setzen eines neuen root Passworts:
java -jar acp_commander.jar -t IPADRESSE -ip IPADRESSE -pw ADMINPASS -c "(echo ADMINPASS;echo ADMINPASS)|passwd"
Schaltet die Authentifizierung über PAM via SSH wieder an:
java -jar acp_commander.jar -t IPADRESSE -ip IPADRESSE -pw ADMINPASS -c "sed -i 's/UsePAM yes/UsePAM no/g' /etc/sshd_config"
Einstellung in der /etc/sshd_config, dass sich auch root direkt anmelden kann und nicht über su ein User zum root wird(gibt es unter busybox wohl nicht):
java -jar acp_commander.jar -t IPADRESSE -ip IPADRESSE -pw ADMINPASS -c "sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/sshd_config"
Zu guter Letzt: SSH Server neu starten
java -jar acp_commander.jar -t IPADRESSE -ip IPADRESSE -pw ADMINPASS -c "/etc/init.d/sshd.sh restart"
Für ADMINPASS ist jeweils das Administratorpassowort einzusetzen und für IPADRESSE die IP-Adresse(s.o.). Auch hier muss der UDP Port frei sein, also am besten direkt über statische IPs mit nem Kabel von Computer zu TeraStation verbinden.
Man findet sonst auch noch interessante Informationen auf cpradio.org.
Credits to BigDiver und eine andere Quelle, die ich gerade nicht mehr wiederfinde.
Posted on 26. September 2011 Comments
Ich habe mir einige angeschaut und bin von Podkicker restlos begeistert. Wüsste nichts, was die hätten besser machen können.
Features:
update: inzwischen habe ich mir wegen der flattr-Unterstützung die Pro-Version gekauft. Mit Android 2.2 funktioniert das aber leider nicht wegen irgendwelchen Zertifikaten. Da werd ich nochmal nachforschen. Dafür spielt der Podcast weiter, wenn man den Stecker rausgezogen hat und ihn dann wieder reinsteckt, sehr praktisch!
update2: da nach einer Weile die flattr Unterstützung aufgrund API Änderungen auch bei Podkicker Pro unter Android 4.4 kaputt war, habe ich zu AntennaPod gewechselt, die inzwischen eine sehr brauchbare und schlichte Oberfläche erstellt haben. Es gibt außerdem ebenfalls eine flattr Unterstützung und es ist Open Source.
Posted on 14. September 2011 Comments
Das Lucid Paket 0018 für Arduino von Ubuntu ist hoffnungslos veraltet, in dem Menü, in dem man sein Board auswählt, kommt der Uno noch garnicht vor. Allerdings kann man einfach die Maverik Pakete runterladen:
sudo apt-get install libjna-java
Dann die Pakete runterladen:
Die Pakete installieren:
sudo dpkg -i *.deb
Voila, jetzt erscheint auch der Uno in der Liste. btw, auch die ppa-Pakete bringen nichts, dort ist die neuste Version 0018. Mehr Infos im Arduino Playground.
Posted on 12. September 2011 Comments
dd ist das Kommandozeilen Kopiertool von *nix-Betriebssystemen. Im Gegensatz zu den meisten Programmen, hat es aber keine Statusanzeige oder gar einen Statusbalken um den Fortschritt anzuzeigen, so dass man kontrollieren kann, ob sich das Programm nicht vielleicht aufgehängt hat.
Mit diesem Trick kann man aus dd dennoch zu einer Ausgabe zwingen:
$ dd if=/dev/sdb of=/dev/sdc
$ ps -A |grep dd
Die Ausgabe könnte z.B. so aussehen:
$ 4905 pts/0 00:00:00 dd
$ kill -USR1 PID
75273+0 Datensätze ein 75273+0 Datensätze aus 38539264 Bytes (39 MB) kopiert, 27,4718 s, 1,4 MB/s
Ausserdem gibt es noch ein grafisches Tool für dd: air-imager
Credits to jma89 and h4shBrpwnz at linuxquestions.org
//update:
Das kleine Programm pipe viewer(pv) tuts auch und man bekommt sogar noch Datenrate und Fortschrittsbalken. Einfach installieren:
$ sudo apt-get install pv
Und dann über den geraden Strich über den eckigen Klammern an den dd Befehl hängen:
$ dd if=/mnt/sdx of=/mnt/sdy | pv
Credits to Peteris Krumin for finding this.
//update2:
Manchmal klappt das so nicht, z.B. beim Raspberry Pi (interne SD Karte auf USB Stick(/dev/sda) sichern). Dort muss man das folgendermaßen machen:
sudo dd if=/dev/mmcblk0 | pv | sudo dd of=/dev/sda
Posted on 12. September 2011 Comments
Drucker von anderen Usern zu ändern ist ja garnicht mal das Problem, man muss sich halt nur bei jedem User einzeln anmelden und den Drucker per Hand umstellen. Per Skript gibt es 2 Möglichkeiten: über rundll32 oder über die Registry.
1. rundll32-Methode (Danke an daedalus von administrator.de)
rundll32 printui.dll,PrintUIEntry /y /n "Druckername"
Einfach diesen Befehl in eine Textdatei schreiben und als .bat speichern. Das /n ist der Parameter für den Namen, der danach folgen muss, das /y heisst, dieser Drucker soll als Standarddrucker gesetzt werden. Das ist meiner Meinung nach die einfacherere Methode. Wenn der Druckername keine Leerzeichen enthält, können die Anführungszeichen auch weggelassen werden.
2. Registry-Methode (Danke an Micheal von Windows FAQ)
Da ist natürlich noch viel umständlicher ist in der Registry rumzupulen als den Drucker mal eben anzuklicken, kann man ein .reg-Skript schreiben dass den folgenden Inhalt hat:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Sofrware\Microsoft\Windows NT\CurrentVersion\Windows]"Device"="Standarddrucker,winspool,lpt01:"
Dabei steht der erste Wert für den Druckernamen, winspool ist die dll die für das Drucken zuständig ist und dann der Anschluss, wobei LPT: für Lokale und Ne: für Netzwerkdrucker und Software Drucker(z.B. PDF Generator) verwendet wird.
Um jetzt vom Adminstrator aus die Drucker zu ändern, kann man per runas die eben genannten Skripte starten, s. auch
runas /?
Aufrufe:
runas /user:username "C:\pfad\rundllskript.bat"
bzw.
runas /user:username "C:\pfad\registryskript.reg"
Ein Problem ergibt sich, wenn der User kein Passwort hat, da runas standardmässig, ausser bei Windows 2000, keine leeren Passwörter akzeptiert. Wenn man allerdings den Registry-Eintrag LimitBlankPasswordUse im Ordner HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa aus 0 ändert, ist auch das kein Problem mehr.(Tip aus der c’t 1/06)