Wenn ich ein Terminal in Ubuntu starte, erhalte ich folgenden Pfad aufecho $PATH
/home/myuser/anaconda3/condabin:/home/myuser/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Ich möchte diese Pfade mit dem Schlüsselwort „Spiele“ aus meinem entfernen $PATH
, konnte aber nicht herausfinden, wo Pfade wie /usr/games
, /user/local/games
, /usr/sbin
festgelegt sind.
Ich habe versucht, durchgrep xxx ~/.* -l
Dadurch werden Dateien erstellt /usr/bin
, die festlegen /usr/local/bin
usw.
Aber nicht für die oben genannten games
Pfade sbin
. Wie finde ich heraus, wo es eingestellt ist?
Antwort1
Es gibt mehrere Stellen, an denen es festgelegt werden kann. Zunächst kann es an einer oder mehreren der folgenden Stellen festgelegt werden:
- jedes Shell-Profil-Skript (z. B.
~/.bashrc
,/etc/profile
,/etc/bash.bashrc
,/etc/profile.d/*
, usw.) /etc/login.defs
/etc/security/pam_env.conf
/etc/environment
$HOME/.pam_environment
Antwort2
Wenn es in Ihrer persönlichen Umgebung nicht eingestellt ist, ist es für jeden Benutzer eingestellt. Das heißt irgendwo unter /etc
. Gehen Sie zu /etc
und geben Sie ein:
grep usr.games * */* */*/* 2> /dev/null
Bei einer Ubuntu-Installation erhalten Sie Folgendes:
environment:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
login.defs:ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
manpath.config:MANPATH_MAP /usr/games /usr/share/man
passwd:games:x:5:60:games:/usr/games:/usr/sbin/nologin
passwd-:games:x:5:60:games:/usr/games:/usr/sbin/nologin
Die passwd
Dateien sind für die Benutzerspiele bestimmt und daher nicht von Bedeutung. manpath
Sie dienen zum Lesen der Handbücher. Wenn Sie sie also von entfernen environment
und login.defs
, sind Ihre Spieltage vorbei.