Anfängerproblem: Alias

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Milo83
Beiträge: 21
Registriert: 08.03.2022 15:27:12

Anfängerproblem: Alias

Beitrag von Milo83 » 03.08.2022 08:53:44

Hallo,

ich versuche gerade einem YT Video zu folgen und gemäß den Vorgaben ein alias zu erschaffen.
Leider bekomme ich immer die Ausgabe: Komando nicht gefunden.


Mein Vorgehen bisher:
nano .bashrc
Kontrolle, ob in dieser Datei die notwendige Anweisung von der Auskommentierung befreit ist.

erschaffen einer .txt Datei: bash_aliases
da schreibe ich nun (gemäß Videovorgabe) hinein:
alias up='sudo apt update && sudo apt upgrade'
alias sudo='sudo'

Nach einem reboot bekomme ich bei Eingabe von "up" : Kommando nicht gefunden.

Hat jemand eine Idee wass ich falsch mache?
Fragt gerne, wenn ihr mehr Infos zu meinem Versuch braucht

Grüße und vielen Dank im voraus

Benutzeravatar
whisper
Beiträge: 3189
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Anfängerproblem: Alias

Beitrag von whisper » 03.08.2022 09:22:08

Die Datei heisst vermutlich .bash_aliases


Es geht wohl hier drum

Code: Alles auswählen

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
Dann kannst du mit source .bashrc die Änderungen übernehmen und brauchst natürlich NICHT neu starten
also im Home Verzeichnis eintippen:

Code: Alles auswählen

source .bashrc
Dadurch wird die .basrc erneut gelesen und damit auch deine aliase

Benutzeravatar
MSfree
Beiträge: 10773
Registriert: 25.09.2007 19:59:30

Re: Anfängerproblem: Alias

Beitrag von MSfree » 03.08.2022 10:03:22

Zum Anzeigen aller definierten Aliase kann man auf der Kommandozeile auch einfach

Code: Alles auswählen

alias
eingeben. Nach dem von whisper vorgeschlagenen

Code: Alles auswählen

source .bashrc
kann man kontrollieren, ob die definierten Aliase erfolgreich importiert wurden.

Und ja, die Datei muß .bash_aliases ([Punkt]bash_aliases) heißen.

Milo83
Beiträge: 21
Registriert: 08.03.2022 15:27:12

Re: Anfängerproblem: Alias

Beitrag von Milo83 » 03.08.2022 10:26:20

Danke für deine schnelle Antwort,

Du hast Recht, die Datei heist natürlich .bash_aliases
und es geht um

Code: Alles auswählen

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
Leider funktioniert das ganze immer noch nicht.

ich habe darauf geachtet, dass sowohl
.bashrc
als auch
.bash_aliases
im selben home-Ordner sind.

habe mit "nano .bash_aliases"
alias up='sudo apt update && sudo apt upgrade'
alias sudo='sudo'
eingefügt

leider funktioniert das ganze auch nach:
source .bashrc
nicht.
Die Fehlermeldung: "Kommando nicht gefunden" bleibt besteht

Inzwischen habe ich den Hinweis gefunden, man soll

Code: Alles auswählen

if [ -f $HOME/.bash_aliases ]
then
  . $HOME/.bash_aliases
fi
am Ende von .bashrc anfügen. Leider hat auch das keine Auswirkung

Benutzeravatar
Meillo
Moderator
Beiträge: 8817
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Anfängerproblem: Alias

Beitrag von Meillo » 03.08.2022 10:29:35

In welchem Ordner sind die Dateien denn?

Was ist die Ausgabe von:

Code: Alles auswählen

cat ~/.bash_aliases
Was wird ausgegeben wenn du diese Befehle eingibst:

Code: Alles auswählen

source ~/.bash_aliases
alias
Kopiere und die ganze Shellsession mit den Befehlen und ihren Ausgaben hier rein.
Use ed once in a while!

Milo83
Beiträge: 21
Registriert: 08.03.2022 15:27:12

Re: Anfängerproblem: Alias

Beitrag von Milo83 » 03.08.2022 10:37:44

Update:

ich habe den alias-Befehlstext nun einmal im .bashrc eingesetzt
so wird er dann auch ausgeführt.

Der Fehler scheint also entweder in der Verlinkung von .bashrc auf .bash_aliases zu liegen,
oder ich pfusche schon bei der Erschaffung der .bash_aliases datei.
Die mache ich einfach via touch .bash_aliases (mit nano .bash_aliases habe ich es auch schon versucht.

tobo
Beiträge: 1991
Registriert: 10.12.2008 10:51:41

Re: Anfängerproblem: Alias

Beitrag von tobo » 03.08.2022 10:38:34

Solche Aliase, die keinen Bezug zur Shell haben, sollten auch nicht shellbezogen geladen werden, sondern in sowas wie z.B. ~/.profile. Deswegen - benutzt du denn überhaupt die Bash?
Kannst du mal das Video verlinken? Würde mich mal interessieren, was der Autor zu diesem sudo=sudo meint.

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Anfängerproblem: Alias

Beitrag von JTH » 03.08.2022 10:42:27

tobo hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 10:38:34
Würde mich mal interessieren, was der Autor zu diesem sudo=sudo meint.
Das find ich auch etwas merkwürdig :?
Manchmal bekannt als Just (another) Terminal Hacker.

buddy67
Beiträge: 169
Registriert: 30.06.2016 22:52:15

Re: Anfängerproblem: Alias

Beitrag von buddy67 » 03.08.2022 11:03:00

JTH hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 10:42:27
tobo hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 10:38:34
Würde mich mal interessieren, was der Autor zu diesem sudo=sudo meint.
Das find ich auch etwas merkwürdig :?
Die Bash überprüft nur das erste Wort eines Befehls auf einen Alias, alle Wörter danach werden nicht überprüft, heißt bei einem Befehl wie "sudo irgendwas" wird nur das erste Wort (sudo) per bash auf einen Alias geprüft, "irgendwas" wird nicht auf einen Alias geprüft. wenn wie im obigen Beispiel sudo='sudo ' (mit Leertaste hinter "sudo") in der .bashrc steht und man gibt "sudo irgendwas" ein dann wird "irgendwas" jetzt doch auf einen Alias geprüft....

Benutzeravatar
Meillo
Moderator
Beiträge: 8817
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Anfängerproblem: Alias

Beitrag von Meillo » 03.08.2022 11:06:09

buddy67 hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 11:03:00
JTH hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 10:42:27
tobo hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 10:38:34
Würde mich mal interessieren, was der Autor zu diesem sudo=sudo meint.
Das find ich auch etwas merkwürdig :?
Die Bash überprüft nur das erste Wort eines Befehls auf einen Alias, alle Wörter danach werden nicht überprüft, heißt bei einem Befehl wie "sudo irgendwas" wird nur das erste Wort (sudo) per bash auf einen Alias geprüft, "irgendwas" wird nicht auf einen Alias geprüft. wenn wie im obigen Beispiel sudo='sudo ' (mit Leertaste hinter "sudo") in der .bashrc steht und man gibt "sudo irgendwas" ein dann wird "irgendwas" jetzt doch auf einen Alias geprüft....
Interessant! Wieder was gelernt. :THX:
Use ed once in a while!

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Anfängerproblem: Alias

Beitrag von JTH » 03.08.2022 11:18:54

Meillo hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 11:06:09
buddy67 hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 11:03:00
Die Bash überprüft […]
Interessant! Wieder was gelernt. :THX:
Dito :THX:

Das heißt man könnte, um deutlicher zu machen, dass sudo/root-Rechte involviert sind, den ersten Alias hier zu

Code: Alles auswählen

alias up='apt update && apt upgrade'
ändern und dann explizit so aufrufen

Code: Alles auswählen

~$ sudo up
Manchmal bekannt als Just (another) Terminal Hacker.

tobo
Beiträge: 1991
Registriert: 10.12.2008 10:51:41

Re: Anfängerproblem: Alias

Beitrag von tobo » 03.08.2022 12:15:21

Sollte dadurch dann nicht ein

Code: Alles auswählen

sudo apt update && apt upgrade
ausgeführt werden?

Benutzeravatar
kalle123
Beiträge: 2712
Registriert: 28.03.2015 12:27:47
Wohnort: Mönchengladbach

Re: Anfängerproblem: Alias

Beitrag von kalle123 » 03.08.2022 12:23:37

Ob der Link zum YT Video noch mal kommt :?:

cu KH

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Anfängerproblem: Alias

Beitrag von JTH » 03.08.2022 14:48:18

tobo hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 12:15:21
Sollte dadurch dann nicht ein

Code: Alles auswählen

sudo apt update && apt upgrade
ausgeführt werden?
Jo, hast recht. Ich sollte mich vielleicht lieber an den Nachsatz in der Manpage halten :|
man bash hat geschrieben:For almost every purpose, aliases are superseded by shell functions.

Um das zu erreichen, was ich meinte, müsst mans wohl noch extra verpacken:

Code: Alles auswählen

alias up='sh -c "apt update && apt upgrade"'
(Es sei denn, das kollidiert dann wieder mit dem, was sudo an Argumenten akzeptiert. Wenig Erfahrung mit. Ich halt mich lieber hier raus :lol: )
Manchmal bekannt als Just (another) Terminal Hacker.

michaa7
Beiträge: 4632
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Anfängerproblem: Alias

Beitrag von michaa7 » 03.08.2022 15:20:19

Lieber Anfänger,

ich fühle mich nach mehr als 15 Jahren Linux immer noch als Anfänger, wenn auch als fortgeschrittener Anfänger. In soweit magst du meinen Ratschlag in der Pfeife rauchen, aber dennoch hier ist er:

So lange du Anfänger bist (und es gibt durchaus ernst zunehmende Fachleute, die das immer noch so handhaben wollen) lass den ganzen sudo Kram. Es steigert durchaus die Übersicht und dadurch die Sicherheit, wenn du strikt trennst zwischen normalem Nutzerverhalten und systemrelevanten Arbeiten als root.

Und wenn du schon mit Aliasen arbeiten willst, kreiere doch erstmal *für root* einen funktionierenden Alias (das ist schon praktisch genug) bevor du dir mittels der in ein Alias verwursteten sudo Komplexität mit einem Schuß durch beide Füsse schießt ...

my 2 cts
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Milo83
Beiträge: 21
Registriert: 08.03.2022 15:27:12

Re: Anfängerproblem: Alias

Beitrag von Milo83 » 03.08.2022 21:37:01

Hallo euch allen,

vielen Dank für euren Beistand.
Also hier der Link zum Video https://www.youtube.com/watch?v=0jZawRTgWB4

Dabei wird erklärt, dass
alias sudo='sudo'
notwendig ist, damit sudo im vorherigen alias akzeptiert wird.

Und jetzt das wirklich verwunderliche:
Ich habe in meiner Verzweiflung die Datei .bash_aliases gelöscht und komplett neu erschaffen.

Dazu habe ich cat > .bash_aliases.txt genutzt.
alias Befehle, wie beschrieben, eingefügt,

die Bezeichnung geändert auf .bash_aliases :facepalm:
und
source .bashrc

UND: es funktioniert.
Danke euch für eure Hilfe, das hat mich echt beschäftigt.

Benutzeravatar
Meillo
Moderator
Beiträge: 8817
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Anfängerproblem: Alias

Beitrag von Meillo » 03.08.2022 21:53:48

Milo83 hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 21:37:01
Also hier der Link zum Video https://www.youtube.com/watch?v=0jZawRTgWB4
Bei 07:00 beginnt das Alias-Zeug.

Milo83 hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 21:37:01
Dabei wird erklärt, dass
alias sudo='sudo'
notwendig ist, damit sudo im vorherigen alias akzeptiert wird.
Wirklich erklaeren tut er das ja nicht, er behauptet es nur. Die Behauptung, dass das notwendig waere, ist falsch. Es funktioniert auch ohne diesen zweiten Alias.
Use ed once in a while!

tobo
Beiträge: 1991
Registriert: 10.12.2008 10:51:41

Re: Anfängerproblem: Alias

Beitrag von tobo » 03.08.2022 22:56:03

Ja, so wie dieser Alias hier benutzt wird, ist er unnötig, aber würde man ihn brauchen, dann wäre er falsch. Der Sachverhalt ist genau so, wie buddy67 es beschrieben hat:

Code: Alles auswählen

$ echo "sudo aupd && sudo aupg" >t.sh
$ alias aupd="apt update"
$ alias aupg="apt upgrade"
$ . ./t.sh
[sudo] password for root: 
sudo: aupd: command not found
$ alias sudo=sudo
$ . ./t.sh
[sudo] password for root:
sudo: aupd: command not found
$ alias sudo="sudo "
$ . ./t.sh
[sudo] password for root: 
Hit:1 https://...
Hit:2 https://...
Hit:3 https://...
Hit:4 https://...
Hit:5 https://,,,
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
[sudo] password for root: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$

Milo83
Beiträge: 21
Registriert: 08.03.2022 15:27:12

Re: Anfängerproblem: Alias

Beitrag von Milo83 » 06.08.2022 18:25:58

Vielen Dank für all eure Mühen.

Das hat mir schonmal weiter geholfen :hail:

Antworten