Zum Inhalt springen
  • 0

debian Alias funktioniert nicht


Gast vaDYaL

Frage

Hey Leute,

ich habe folgendes Problem:
In der /etc/bash.bashrc Datei habe ich folgende Zeilen hinzugefügt:

 

        export LS_OPTIONS='--color=auto'
        eval "`dircolors`"
        alias ls='ls -al $LS_OPTIONS'
        alias dir='ls -al $LS_OPTIONS'
        alias rm='rm -i'
        alias cp='cp -i'
        alias mv='mv -i'

        GREEN="\[$(tput setaf 2)\]"
        RESET="\[$(tput sgr0)\]"
        export PS1="${GREEN}${debian_chroot:+($debian_chroot)}\u@\h:\w${RESET}\$ "

Die meisten funktionieren auch.
Nur ls klappt nicht.
Weder die Farben, noch -al ist dabei.

weiß jemand wie ich dieses Alias zum Laufen bekomme, oder was ich da falsch gemacht habe?

Link zu diesem Kommentar
Auf anderen Seiten teilen

17 Antworten auf diese Frage

Empfohlene Beiträge

  • 1

Kannst ja mal die "üblichen Verdächtigen" durchsuchen, wo Aliase normalerweise drinstehen, zB:

grep -r "alias ls" ~/.bash* ~/.profile /etc/profile.d/ /etc/profile /etc/bash.bashrc

Tatsächlich sollte exakt dein Output, nämlich

vor 2 Stunden schrieb de.von666:

alias ls='ls --color=auto'

ein default Eintrag in deiner /home/$USER/.bashrc sein, wenn sie unmodifiziert ist.

Und die wird später eingelesen als die /etc/bash.bashrc, somit wird dein Alias überschrieben ;) Siehe auch:

https://askubuntu.com/questions/815066/whats-the-difference-between-bashrc-and-etc-bash-bashrc

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1

Manchmal findest du in der .bashrc auch sowas:

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

Das ist distributionsabhängig.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1

Das grep command heißt erstmal nur, dass es in irgendeiner Datei drin steht. Nicht zwangsläufig, dass die Inhalte auch angewendet werden.

Hast du die Shell anschließend frisch aufgemacht? ;) Erst dann werden die Inhalte beim Start mit geladen. Alternativ, im laufenden Betrieb:

source /home/$USER/.bashrc

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1
vor 52 Minuten schrieb de.von666:

Gibt es eigentlich einen Weg, dass die $USER/.bashrc nicht genutzt wird, stattdessen nur die "globale" unter /etc/bash.bashrc?

Hm. Ist bewusst nicht so gedacht. Die Idee ist, Variablen etc "topdown" zu definieren.

Aber wenn $USER nun gar keine .bashrc hat ... dann passiert da auch nix mit. Du kannst ja auch eine anlegen mit 0 Byte und die nur für root beschreibbar machen. Aber so richtig sinnvoll ist dat nich ...

Wenn Du nicht willst das ein User rumgeistert dann nimm ihm die Shell einfach weg und starte sein Programm direkt über die /etc/passwd oder setz ihn in eine restricted shell

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1

Wenn man allen Usern etwas "aufzwingen" möchte, also nicht nur in den systemweiten Konfigs, sondern tatsächlich (per default) auf User-Level, dann könnte man hier mal reinschauen:

/etc/skel/.bashrc

/etc/skel/ ist das "Grundgerüst" für ein /home/$USER Verzeichnis, und wenn man da etwas ändert, sollte es in diesem (neuen) Zustand für alle neu angelegten User übernommen werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 4 Minuten schrieb charmanta:

Die /etc/bash.bashsrc sollte auch tabu sein. Sowas baut man, wenn überhaupt, nur ins lokale Profil

Ist eine Vorgabe von meinem Chef :)
 

Zitat

$ command -v ls

@GoooseDanke für den Tipp.
Wenn ich das eingebe, kommt bei mir auch nur das raus: 

alias ls='ls --color=auto'

Dabei sollte dort doch -al mit dabei stehen :(
Hast du eine Idee wie ich dafür sorgen kann, dass das mit berücksichtigt wird?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 25 Minuten schrieb charmanta:

schau doch zur Sicherheit auch nochmal nach dass der Alias nicht noch später überschrieben wird ?

wird er nicht, zumindest nicht in dieser Datei.
Das System ist frisch und hat außer den oben genannten keinerlei Aliase

 

EDIT: Huch, jetzt habe ich den Thread mit meinem Arbeitsaccount geöffnet und mit meinem privaten fortgeführt xD

Bearbeitet von deRoOx
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 14 Stunden schrieb charmanta:

Bitte trotzdem nur einen Account ;) sonst trifft Dich ChiefWiggies Rache

Schon gekommen ^^
Spaß beiseite, bin gerade dabei dass mit ihm zu klären. Werde dann nur diesen Account behalten :)

 

vor 13 Stunden schrieb Han_Trio:

Kannst ja mal die "üblichen Verdächtigen" durchsuchen, wo Aliase normalerweise drinstehen, zB:



grep -r "alias ls" ~/.bash* ~/.profile /etc/profile.d/ /etc/profile /etc/bash.bashrc

Tatsächlich sollte exakt dein Output, nämlich

ein default Eintrag in deiner /home/$USER/.bashrc sein, wenn sie unmodifiziert ist.

Und die wird später eingelesen als die /etc/bash.bashrc, somit wird dein Alias überschrieben ;) Siehe auch:

https://askubuntu.com/questions/815066/whats-the-difference-between-bashrc-and-etc-bash-bashrc

War tatsächlich so wie du sagtest :)
Daraufhin habe ich dann die /home$USER/.bashrc gefunden und dementsprechend editiert.
Den grep Befehl, den du vorgeschlagen hast, habe ich dann erneut getestet. So wurde dann nur noch alias ls='ls -al --color=auto' angezeigt.
Jedoch wird immer noch nur das normale ls genutzt :(

vor 9 Stunden schrieb Gooose:

Das ist distributionsabhängig.

Ups, dachte das genannt zu haben. Genutzt wird sowohl Debian 9, als auch 10.
Teste das auf beiden Systemen gleichzeitig

Bearbeitet von deRoOx
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 2 Minuten schrieb Han_Trio:

Das grep command heißt erstmal nur, dass es in irgendeiner Datei drin steht. Nicht zwangsläufig, dass die Inhalte auch angewendet werden.

Hast du die Shell anschließend frisch aufgemacht? ;) Erst dann werden die Inhalte beim Start mit geladen. Alternativ, im laufenden Betrieb:


source /home/$USER/.bashrc

 

Okay... Man merkt dass ich echt wenig Linux Erfahrung besitze 😆
So hat das dann funktioniert.
Du hilfst mir echt immer wieder, danke!

Gibt es eigentlich einen Weg, dass die $USER/.bashrc nicht genutzt wird, stattdessen nur die "globale" unter /etc/bash.bashrc?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 1 Stunde schrieb de.von666:

Gibt es eigentlich einen Weg, dass die $USER/.bashrc nicht genutzt wird, stattdessen nur die "globale" unter /etc/bash.bashrc?

Viele Linux User würden sich hier ein wenig eingesperrt führen. Manche pflegen ihre dotfiles / configs via GitHub (oder Änhliches) und nutzen ihre gewohnte Umgebung auch für ihren Arbeitsrechner. Diese "ls Vorgabe" würde ich direkt wieder überschreiben. Wenn ich keinen Zugriff auf meine lokale .bashrc hätte, würde ich mir einfach ein ~/startup.sh Script schreiben, um meine gewohnte umgebung wiederherzustellen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 5 Minuten schrieb Gooose:

Viele Linux User würden sich hier ein wenig eingesperrt führen. Manche pflegen ihre dotfiles / configs via GitHub (oder Änhliches) und nutzen ihre gewohnte Umgebung auch für ihren Arbeitsrechner. Diese "ls Vorgabe" würde ich direkt wieder überschreiben. Wenn ich keinen Zugriff auf meine lokale .bashrc hätte, würde ich mir einfach ein ~/startup.sh Script schreiben, um meine gewohnte umgebung wiederherzustellen.

In solch einer Situation kann ich das durchaus nachvollziehen.
Hier geht es aber um eine Situation, in der auf dem Server ls alles direkt anzeigen soll.
Der Server wird nur von 2 Personen genutzt, die die Befehle genauso haben wollen.
Jedoch werden in Zukunft wahrscheinlich je nach Verwendungszweck noch weitere User dafür angelegt, bei denen diese Konfiguration ebenfalls gelten soll.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 28 Minuten schrieb Gooose:

Was ist "alles"?

etwas unglücklich formuliert von mir.
damit ist natürlich gemeint, dass das Kommando "ls" IMMER "ls -al --color=auto" ausführen soll :)

 

 

vor 27 Minuten schrieb Han_Trio:

Wenn man allen Usern etwas "aufzwingen" möchte, also nicht nur in den systemweiten Konfigs, sondern tatsächlich (per default) auf User-Level, dann könnte man hier mal reinschauen:

/etc/skel/.bashrc

/etc/skel/ ist das "Grundgerüst" für ein /home/$USER Verzeichnis, und wenn man da etwas ändert, sollte es in diesem (neuen) Zustand für alle neu angelegten User übernommen werden.

Das wäre die perfekte Lösung, probiere ich aus :)

EDIT: @Han_Trio perfekt, sowas brauchte ich, danke!

Bearbeitet von deRoOx
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...