Stammtisch 2024-06-14: Unterschied zwischen den Versionen

Aus lugvswiki
Zur Navigation springenZur Suche springen
 
Zeile 12: Zeile 12:
 
* d'Michl
 
* d'Michl
 
* Ulf
 
* Ulf
*
 
  
  

Aktuelle Version vom 15. Juni 2024, 17:40 Uhr

14.06.2024 - 20:00 Uhr, Online-Stammtisch auf https://bbb.ch-open.ch/rooms/ulf-nm2-y26/join

wöchentlicher onlineStammtisch

Auf dem Stammtisch Mai 2020 beschlossener wöchentlicher Stammtisch jeden Freitag ab 20:00 Uhr anstelle des monatlichen Stammtisches im realen Leben.


Anwesende

  • Holger
  • Plocki
  • Jos
  • d'Michl
  • Ulf


Themen

Daten dem Internet anvertrauen

Michael fragt, ob jemand die Seite WeTransfer kennt. Ulf empfiehlt, generell sensible Daten nicht ins Internet hochzuladen. Holger hat das als Tool der Mailanwendung Thunderbird schon verwendet ...


Ausfall von Julians Vortrag zum Thema Effiziente Tastaturnutzung

Da Julian privat nach wie vor verhindert ist, schlägt Ulf vor, den Termin in weitere Ferne zu verschieben und er versucht, Julian privat zu erreichen. Die Termine dieser geplanten Stammtischthemen#Geplante_Themen_Stammtisch werden von Ulf geändert.


Praxis-Stammtisch?

Michael fragt, ob Interesse besteht, sich einmal wieder real zu treffen. Wir wollen dem nachgehen; und wäre gut, wenn Michael die anderen ein wenig erinnert.


Kassenprüfung-Termin am 21.06.2024

Noch mal zur Erinnerung: Nächste Woche wird endlich die Kassenprüfung abgeschlossen. Daher wäre es gut, dass möglichst viele Mitglieder anwesend sind! :-)


Praxis-Übung zum Vortrag Plockis vom 07.06.2024

Hier noch einmal das Skript zu Plockis Vortrag und das Video:

  1. Skript: Skript Shelleinführung
  2. Video: Kleine Shelleinführung

Holger fragt, wie er sich einen Alias erstellen kann. Denn die können, wie wir letzte Woche ja gehört haben, das Arbeiten an der Konsole schon stark vereinfachen. Wie das geht, hat Plocki letzte Woche wohlweislich noch nicht erwähnt, da es je nach genutzter Shell und auch in Abhängigkeit von der genutzten Distribution unterschiedlich gehandhabt werden kann.

Holger teilt den Bildschirm und lässt sich das an der Konsole etwas erklären.

Zunächst möchte Ulf, dass er mit dem Befehl cat die (versteckte) Datei .bashrc öffnet. Was macht der Befehl cat? Siehe hier: Wiki Ubuntuusers cat.

Die Ausgabe sieht auf Holgers openSUSE Tumbleweed so aus:

<$> holger@aelbler:~> cat .bashrc
# Sample .bashrc ['rc' steht (vermutlich) für 'resource' = Systemdateien werden beim Start eines Terminals verändert]
# Copyright (c) SUSE Software Solutions Germany GmbH

# There are 3 different types of shells in bash: the login shell, normal shell
# and interactive shell. Login shells read ~/.profile and interactive shells
# read ~/.bashrc; in our setup, /etc/profile sources ~/.bashrc - thus all
# settings made here will also take effect in a login shell.
#
# NOTE: It is recommended to make language settings in ~/.profile rather than
# here, since multilingual X sessions would not work properly if LANG is over-
# ridden in every subshell.

# Include local und sik Linux/Skripte/ path
test -d ${HOME}/Linux/Skripte/ && test $(echo ${PATH} | grep ${HOME}/Linux/Skripte/) || export PATH=${PATH}:${HOME}/Linux/Skripte/

# change dir
alias dir="ls -ahl"
test -s ~/.alias && . ~/.alias || true

export EDITOR=/usr/bin/joe
holger@aelbler:~> cat .alias

Da heißt es (unter anderem) ins Deutsche übersetzt (mit https://deepl.com):

"Es gibt 3 verschiedene Arten von Shells in der Bash: die Login-Shell, die normale Shell
und die interaktive Shell. 

Login-Shells lesen ~/.profile
und interaktive Shells lesen ~/.bashrc. 

In unserem Fall ist /etc/profile der Quellcode von ~/.bashrc - daher werden alle
Einstellungen, die hier vorgenommen werden, auch in einer Login-Shell wirksam werden.

HINWEIS: Es wird empfohlen, die Spracheinstellungen in ~/.profile und nicht # hier vorzunehmen,
da mehrsprachige X-Sitzungen nicht richtig funktionieren würden, wenn LANG in jeder # Subshell überschrieben würde."

Da Holger bislang keine (versteckte) Datei mit Namen .alias angelegt und definiert hat, wird sie auch nicht gefunden.

<$> cat .alias
cat: .alias: Datei oder Verzeichnis nicht gefunden

Die (versteckte) Datei .alias

Nun war die Ursprungsfrage ja, wie Holger eine Alias-Datei (.alias) anlegen kann; in dieser können Befehle / Shortcuts hinterlegt, aber eben auch verändert, beziehungsweise neue Shortcuts (Pseudonyme / Platzhalter) erstellt werden. So können längere, umständlich zu tippende Befehle durch Aliasse ersetzt werden.

Dazu öffnet Holger den Editor Joe (jeder andere wäre auch möglich, weicht dann aber in der Bedienung ab).

<$> joe .alias

Die Datei wird aber erst "angelegt", wenn sie auch gespeichert wurde!

Holger verlässt den Editor mittels Shortcut Strg + K, gefolgt von einem Q (Quit / Verlassen) wieder, wonach er gefragt wird, ob er die Änderung (in diesem Fall einfach nur die Erstellung der Datei .alias) übernehmen möchte, was er mit Y (Yes / Ja) übernimmt.

Was Holger (jetzt beim Schreiben des Protokolls) aber noch nicht weiß, ist folgendes: Er hat zwar die Datei <$> .alias erstellt (sie konnte anfangs ja nicht aufgerufen werden), aber ...


Der Befehl alias

... es gibt auch den Befehl (keine Datei!) alias, mit dem man die vom Betriebssystem schon vorkonfigurierten Aliasse aufrufen kann, wie er zwar gleich feststellt, aber erst am nächsten Tag auch versteht. ;-)

Dieser Befehl gibt folgenden Inhalt aus:

<$> holger@aelbler:~> alias
alias +='pushd .'
alias -- -='popd'
alias ..='cd ..'
alias ...='cd ../..'
alias beep='echo -en "\007"'
alias cd..='cd ..'
alias dir='ls -ahl'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias ip='ip --color=auto'
alias l='ls -alF'
alias la='ls -la'
alias ll='ls -l'
alias ls='_ls'
alias ls-l='ls -l'
alias md='mkdir -p'
alias o='less'
alias rd='rmdir'
alias rehash='hash -r'
alias unmount='echo "Error: Try the command: umount" 1>&2; false'
alias you='if test "$EUID" = 0 ; then /sbin/yast2 online_update ; else su - -c "/sbin/yast2 online_update" ; fi'

Holgers Betriebssystem openSUSE Tumbleweed hat jedenfalls im Befehl alias schon eine Menge Pseudonyme hinterlegt.

OffTopic: Das Wort "Alias" wird laut Korrekturen.de (auch Duden) übrigens auch im Plural als "die Alias" geschrieben, darf aber auch als "die Aliasse" notiert werden Quelle: Korrekturen.de "Alias" ...


Alias hinzufügen

Nun möchte Holger einen schon bestehenden Befehl modifizieren und zu der versteckten Datei .alias hinzufügen, nämlich den Befehl ping (Wiki Ubuntuusers.de).

Ulf und Plocki erklären, wie das geht:

<$> alias ping1='ping -c 1'

Obiger Befehl erstellt einen neuen Alias mit Namen ping1 und setzt folgende Option / Parameter dahinter: <$> ping -c 1, dabei steht das "C" für count (zählen). Und die Zahl im Befehl <$> ping -c 1 – in diesem Fall die 1 – bewirkt, dass nur exakt ein Mal "angeklopft" wird.

Normalerweise würde – mit dem Standardbefehl ping – endlos "angeklopft". Und zwar so lange, bis man das mit Strg + C händisch beenden würde. Würde nun statt der 1 eine 3 gesetzt, würde beim Host – zum Beispiel www.netcup.de oder www.audiobibelneü.de – nicht nur ein-, sondern dreimal "angeklopft" werden. Aber dann ist auch Schluss.

Holger erstellt gleich noch zwei weitere Aliasse, den ping2 und ping3. Das bedeutet, dass ping1 bis ping3 nun mit Variablen definiert wurden, welche in der Datei .alias auch fest hinterlegt wurden. Sie sind jetzt jederzeit nutzbar. Also in allen drei möglichen Shells, der Login-Shell, der normalen und der interaktiven Shell.

Hätte Holger diese Aliasse nicht neu angelegt, müsste er sie jedes mal (zum Beispiel beim Öffnen eines weiteren Terminal-Unterfensters oder eines neuen Terminals) neu definieren, um sie nutzen zu können.


Kontrolle der erstellen Aliasse

Um zu kontrollieren, ob die neu angelegten Aliasse ping1 bis ping3 hinterlegt wurden, ruft Holger den Befehl alias auf und findet sie dort nun auch hinterlegt (fette Markierungen):

<$> holger@aelbler:~> alias
alias +='pushd .'
alias -- -='popd'
alias ..='cd ..'
alias ...='cd ../..'
alias beep='echo -en "\007"'
alias cd..='cd ..'
alias dir='ls -ahl'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias ip='ip --color=auto'
alias l='ls -alF'
alias la='ls -la'
alias ll='ls -l'
alias ls='_ls'
alias ls-l='ls -l'
alias md='mkdir -p'
alias o='less'
alias ping1='ping -c 1'
alias ping2='ping -c 2'
alias ping3='ping -c 3'
alias rd='rmdir'
alias rehash='hash -r'
alias unmount='echo "Error: Try the command: umount" 1>&2; false'
alias you='if test "$EUID" = 0 ; then /sbin/yast2 online_update ; else su - -c "/sbin/yast2 online_update" ; fi'
holger@aelbler:~>

Auch wenn Holger aus dem grafischen Terminal (das ist bei ihm unter openSUSE Tumbleweed die Konsole TTY2) in die Login-Shell, die TTY1 wechselt, und dort den Befehl alias aufruft, findet er die drei neuen Einträge. :-)

Bei Holger (openSUSE Tumbleweed) wird der Wechsel von der grafischen Ebene (TTY2) in die Login-Shell mit dem Tastaturkürzel Strg + Alt + F1 vollzogen; zurück in die grafische Ebene geht es dann wieder mit Strg + Alt + F2.

Unter anderen Distributionen kann das auch abweichen; siehe zum Beispiel den Link des Ubuntu-Wiki: Virtuelle Konsole; dazu bis fast zur Mitte des Artikels scrollen und unter Virtuelle Konsole lesen.

Und nachdem Holger mit dem Joe-Editor die Variablen ebenso auch in die zuvor erstellte Datei .alias eingetragen und abgespeichert hat, sind sie auch dort hinterlegt.

<$> holger@aelbler:~> joe .alias
    IW   .alias (Modified)                                                    Row 4    Col 1   
alias ping1='ping -c 1' 
alias ping2='ping -c 2'
alias ping3='ping -c 3'

Alias nutzen

"Klopft man" mit dem Standard-Befehl ping nun bei einem Host (Internetanbieter) "an", sieht das so aus:

<$> holger@aelbler:~> ping www.xn--audiobibelne-olb.de
PING www.xn--audiobibelne-olb.de (2a03:4000:61:63dc::19:3189) 56 Datenbytes
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=1 ttl=58 Zeit=14.8 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=2 ttl=58 Zeit=14.4 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=3 ttl=58 Zeit=14.6 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=4 ttl=58 Zeit=14.7 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=5 ttl=58 Zeit=14.5 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=6 ttl=58 Zeit=14.4 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=7 ttl=58 Zeit=14.4 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=8 ttl=58 Zeit=14.4 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=9 ttl=58 Zeit=14.4 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=10 ttl=58 Zeit=14.2 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=11 ttl=58 Zeit=14.9 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=12 ttl=58 Zeit=14.7 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=13 ttl=58 Zeit=14.5 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=14 ttl=58 Zeit=14.7 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=15 ttl=58 Zeit=14.6 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=16 ttl=58 Zeit=14.4 ms
... (endlos, bis händischer Abbruch!)
^C (händischer Abbruch durch Strg + C)
--- www.xn--audiobibelne-olb.de ping-Statistik ---
52 Pakete übertragen, 52 empfangen, 0% packet loss, time 51078ms
rtt min/avg/max/mdev = 14.188/14.673/20.342/0.815 ms
Nutzt Holger aber den Alias ping3 sieht es so aus:
<$> holger@aelbler:~> ping3 www.xn--audiobibelne-olb.de
PING www.xn--audiobibelne-olb.de (2a03:4000:61:63dc::19:3189) 56 Datenbytes
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=1 ttl=58 Zeit=15.1 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=2 ttl=58 Zeit=14.6 ms
64 Bytes von 2a03:4000:61:63dc::19:3189: icmp_seq=3 ttl=58 Zeit=14.4 ms

--- www.xn--audiobibelne-olb.de ping-Statistik ---
3 Pakete übertragen, 3 empfangen, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 14.353/14.705/15.148/0.330 ms
holger@aelbler:~> 

Die Millisekunden-Zeiten (ms) weichen bei dem ping3 etwas ab, da die Statistik bei nur dreimaligem "Anklopfen" schlechter gemittelt ist; je häufiger der Ping abgefragt wird, desto genauer ist auch der ermittelte Wert.


Zurück zur Übersicht