Fryboyter

ZSH-Alias mit Platzhalter

Derzeit teste ich mal wieder AUR-Helper. Da ich mir die Paramenter usw. nicht merken will, lege ich ich normalerweise Aliase an. Für das Suchen im AUR wäre ein möglicher Alias zum Beispiel alias aurs=‘trizen -Ssa’. Derzeit teste ich den AUR-Helper aurman.

Hier wäre der Befehl nur im AUR nach Paketen zu suchen aurman -Ss Suchbegriff –aur. Da in diesem Fall der Suchbegriff mitten im Befehl steht klappt ein Alias wie aurs=‘aurman -Ss –aur’ nicht wirklich. In den Alias einen Platzhalter zu packen (aurs=‘aurman -Ss $1 –aur’) funktioniert ebenfalls nicht. Die Lösung hierfür ist kein Alias sondern eine Funktion.

Hierfür legen wir uns am besten ein extra Verzeichnis im Home-Verzeichnis an. Beispielswese .zfunc. In diesem erstellen wir nun die Datei aursearch und füllen diese mit folgendem Inhalt und speichern diese anschließend.

function aurs() {
aurman -Ss $1 --aur
}

Anstelle von aurs geben wir den Namen ein über den wir die Funktion aufrufen wollen. Da bei mir die Aliase für den AUR-Helper normalerweise aurs (suchen), auri (installiere) und auru (aktualisieren) lauten habe ich mich hier für aurs entschieden.

Damit die Funktion automatisch zur Verfügung steht öffnen wir nun noch die Konfigurationsdatei von zsh (normalerweise .zshrc) und fügen dort folgende Zeile ein.

source ~/.zfunc/aursearch

Hierbei ist zu beachten dass man den Namen der Datei angibt und nicht den Befehl mit dem man die Funktion ausführt.

Von nun an kann man nun mittels aurs Suchbegriff im AUR nach Paketen suchen. Eventuell vorhanden Aliase mit dem gleichen Namen sollte man aber vorher löschen bzw. auskommentieren.

Linux | OSBN

Alias für Services unter systemd

Manche Services unter systemd haben ziemlich umständliche Bezeichnungen. Systemd-networkd.service oder openvpn@vpn.service zum Beispiel. Um es sich beim Aktivieren, Deaktivieren oder Neustarten etwas einfacher zu machen, kann man hier zu einem Alias greifen. Nehmen wir mal openvpn@vpn.service als Beispiel.

Hier öffnet man einfach die Datei openvpn@vpn.service welche unter /etc/systemd/systemd/multi-user.target.wants/ liegt. Diese sollte wie folgt aussehen.

[Unit]
Description=OpenVPN connection to %i 

[Service]
Type=forking
ExecStart=/usr/bin/openvpn --cd /etc/openvpn --config /etc/openvpn/%i.conf --da$ 
PIDFile=/run/openvpn@%i.pid 

[Install]
WantedBy=multi-user.target

Soll der Service auf den Alias vpn1 reagieren, muss man einfach unter [Install] Alias=vpn1.service hinzufügen. Wichtig ist hier, dass der Alias die gleiche Endung hat wie das Original. Also in dem Fall .service. Hier kann man auch mehrere Aliase angeben, welche man in die gleiche Zeile mit einem Lehrschritt getrennt eingibt.

Hat man die Datei nun entsprechend geändert und abgespeichert aktiviert man den Service mittels systemctl enable openvpn@vpn.service. Hiermit wird nun ein Symlink vpn1.service angelegt, welcher auf openvpn@vpn.service verweist. Von nun an kann dieser “Service” anstelle des Originals genutzt werden. Also beispielsweise systemctl status vpn1.service.

Linux | OSBN

SSH-Verbindungen leicht gemacht

Ich nutze regelmäßig SSH-Verbindungen zu diversen Rechnern. Im LAN z. B. zu meinem Receiver oder zu meinem Quake-3-Arena-Server. Da letzterer im Internet erreichbar ist, läuft SSH nicht auf dem Standardport sondern auf einen anderen um Scriptkiddies zu blocken und somit die Logdateien sauber zu halten. Somit muss ich jedes mal, wenn ich mich mit dem Rechner verbinden will ssh $Benutzer@$IP -p $Portnummer -i ~/.ssh/quake eingeben. Oder den Befehl aus der Historie von ZSH herausfischen. Das muss doch auch besser funktionieren, oder? Ja tut es.

Hierzu legt man, falls nicht schon vorhanden, als erstes die Datei ~/.ssh/config auf dem Rechner mit dem man sich mit dem Server verbinden will an. Nun erstellt man in dieser folgenden Eintrag.

Host quake
Hostname 192.168.1.220
Port 1234
User quake
IdentityFile /home/$Benutzer/.ssh/quake

In der ersten Zeile geben wir den Namen der Verbindung an. Hier kann man frei wählen. Als nächstes geben wir die IP des Rechners an zu dem wir uns verbinden möchten. Der Port muss angegeben werden, wenn wir einen, vom Standard abweichenden, Port eingestellt haben. In der nächsten Zeile wird der Benutzer angegeben mit dem wir uns auf dem Rechner einloggen möchten. Sollte man anstelle von Passwörtern SSH-Keys nutzen und hat man mehrere unter ~/.ssh liegen gibt man am besten mit IdentityFile auch noch die richtige Schlüsseldatei an.

Nachdem man die Datei abgespeichert hat, braucht man nun nicht mehr ssh $Benutzer@$IP -p $Portnummer -i ~/.ssh/quake eingeben sondern es reicht ganz bequem ssh quake.

Linux | OSBN

Entpacken unter Linux leicht gemacht

Geht es euch auch so, dass ihr euch nicht merken könnt, mit welchen Parametern man z. B. ein tar-Archiv entpackt? Also mir schon. Deswegen habe ich mir unter der ZSH diverse Aliase angelegt (z. B. untar welcher tar -xvf ausführt) Heute habe ich eine Alternative dazu gefunden. Dtrx (do the right extraction).

Das Tool entpackt zum Beispiel tar, zip, cpio, deb, rpm, gem, 7z, cab, lzh, rar, gz, bz2, lzma, xz, sowie diverse exe- und Installshield-Dateien und Windows-Cabinetdateien. Hierzu z. B. einfach dtrx test.tar ausführen und fertig. Die Dateirechte werden dabei so geändert, dass man als Nutzer lesend und schreibend auf die entpacktend Dateien zugreifen kann. Alle anderen Rechte bleiben unangetastet. Sollte sich ein Archiv im zu entpackendem Archiv befinden, wird dies auch mit entpackt. Die Verzeichnisstruktur wird beim Entpacken ebenfalls berücksichtigt.

Linux | OSBN