Tips & Tricks - Shorties
In diesem Text befinden sich Kurztipps, Code-Snippets, Tricks und sonstige kleine Dinge, die das Leben einfacher machen.
HowTo: Reset MySQL Password
Zuerst muss man sich auf dem Server anmelden, auf dem der MySQL Server läuft. Man muss in die Datei /etc/my.cnf die Option 'skip-grant-tables' einfügen.
[mysqld]
default-character-set=utf-8
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
set-variable=max_connections=500
skip-grant-tables
Nun kann man sich beim MySQL Server anmelden mit einem leeren Root Passwort:
root@linux # mysql
mysql>FLUSH PRIVILEGES;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY ‘neues passwort’ WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>quit
Nun muss man nur noch die oben eingefügte Option ’skip-grant-tables’ wieder aus der Datei /etc/my.cnf wieder auskommentieren.
[mysqld]
default-character-set=latin1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
set-variable=max_connections=500
#skip-grant-tables
Nur noch den MySQL Server neu starten. Dann klappts auch wieder mit der Anmeldung.
dos2unix und unix2dos per recode
Wenn auf einem System die Kommandos dos2unix und unix2dos fehlen, kann man diese simulieren, wenn das Paket recode installiert ist:
alias unix2dos 'recode lat1..ibmpc'
alias dos2unix 'recode ibmpc..lat1'
Danach gibt es die Kommandos wieder. Alternativ einfach recode mit den obigen Parametern aufrufen.
"Zerstörte" Terminals
Wenn ein XTerm oder die Konsole etwa so aussieht:
ÈccyvyéYxyPÃâ`Y0;¤zIb!+ìÀyí-prríq`
"q^,wí ÉÞð+¼qó/62øaðvÀÃkó,ªxË·1t¥eÿIÈ,Ù8³âcË
x"Öæ0`;ÇàdTÚ®ÉëYv¹!tØ,BÃtæ0È0p||=â1ÎwÈS`õå4
weil man z.B. versehentlich ein cat setup.exe aufgerufen hat, dann hilft das Kommando
reset
in diesem Terminal.
Alternativ funktioniert auch die Tastenkombination "<Ctrl>-v <Esc> c <Enter>".
Perl @ Commandline
Perl eignet sich hervorragend als sed Ersatz an der Kommandozeile:
perl -pi.sic -e "s/foo/bar/g" *.txt
Mittels dieses Befehls wird in allen Dateien mit der Endung .txt des aktuellen Ordners die Zeichenkette "foo" durch "bar" ersetzt. Zuvor wird eine Sicherungskopie der Datei angelegt unter dem Suffix ".sic"
Verdopplungs sed im vi
Ausgehend von folgender geöffneter Textdatei im vi:
importbeleg.php
importdbstat.php
importgrenzwert.php
importsar.php
Ruft man nun diesen Befehl auf:
:1,$s,.*,cp & /usr/local/bin/&,
entsteht folgender Inhalt:
cp importbeleg.php /usr/local/bin/importbeleg.php
cp importdbstat.php /usr/local/bin/importdbstat.php
cp importgrenzwert.php /usr/local/bin/importgrenzwert.php
cp importsar.php /usr/local/bin/importsar.php
Kurzerklärung:
- 1,$ für ganze Datei
- .* steht für ganze Zeile
- & steht für ausgeschnittenen Bereich
Damit kann man so einiges sinnvolles anstellen ;-)
Remote X unter anderer Kennung
Hiermit kann man die per SSH aufgebaute Remote X Session einem anderen Benutzer vererben:
# ssh -x root@linux
linux:~ # cp .Xauthority /home/testuser/
linux:~ # chown testuser /home/testuser/.Xauthority
linux:~ # echo $DISPLAY
localhost:10.0
linux:~ # su - testuser
testuser@linux:~> export DISPLAY=localhost:10.0
testuser@linux:~> firefox
PHP als Skriptsprache
PHP ist nicht nur eine Klasse Programmiersprache für Webanwendungen. Gewöhnte Programmierer können PHP auch an der Kommandozeile verwenden. Nehmen wir einfach die Standard PHP Datei (test.php):
<?php
echo "Hello World!\n";
?>
Und nun an der Shell:
linux:~ # php -q ~/test.php
Hello World!
linux:~ #
Loggen eine Shell Skriptes
Mit folgendem zusätzlichem Inhalt in einem Shell Skript kann man den Ablauf verfolgen.
#!/bin/bash
exec > /tmp/skript.log 2>&1
set -x
...
