PATH setzen und löschen??
PATH setzen und löschen??
hi Leute
sagt mal ich habe ausversehen mit
export PATH=$PATH:/das/ist/das/fluxbox/verzeichnis
jetzt steht das da drin..ich wills aber gelöscht haben? wo ist die Datei die ich editieren muss?
kann man für jeden benutzer keinen anderen path definieren? so das benutzerspeziefisch programme ausführbar sind und nicht? wen ja wo und wie?
sagt mal ich habe ausversehen mit
export PATH=$PATH:/das/ist/das/fluxbox/verzeichnis
jetzt steht das da drin..ich wills aber gelöscht haben? wo ist die Datei die ich editieren muss?
kann man für jeden benutzer keinen anderen path definieren? so das benutzerspeziefisch programme ausführbar sind und nicht? wen ja wo und wie?
Spontan faellt mir dazu ein:latenite hat geschrieben:ja aber auch wenn ich mal nen ordner unter /usr/local/bin/my_scrips/test anlege und test löschen will...wie mache ich das???
Code: Alles auswählen
export PATH_BACKUP=$PATH
export PATH=$PATH:/das/ist/das/fluxbox/verzeichnis
# mach irgendwas
export PATH=$PATH_BACKUP
Desweiteren hatte ich mal das Problem, dass ich $HOME/bin in den Pfad aufgenommen haben
wollte. Dabei hatte ich mir wie folgt geholfen:
Datei ~/.bashrc editieren. Am Ende der Datei folgenden Aufruf einfügen:
Code: Alles auswählen
if [ "${UNIQUE_CALL}" != "already called" ]
then
export UNIQUE_CALL="already called"
export PATH=$PATH:$HOME/bin
fi
"bin"-Verzeichnis mit jedem BASH-Aufruf erneut an den PATH angehängt wird, wird mit der Umgebungsvariable
${UNIQUE_CALL} getestet, ob das "bin"-Verzeichnis bereits vorher einmal angehängt wurde.
Re: PATH setzen und löschen??
Noch eine Bemerkung: Zumindest ich kenne es so, dass Befehle wielatenite hat geschrieben:hi Leute
sagt mal ich habe ausversehen mit
export PATH=$PATH:/das/ist/das/fluxbox/verzeichnis
jetzt steht das da drin..ich wills aber gelöscht haben? wo ist die Datei die ich editieren muss?
Code: Alles auswählen
export PATH=$PATH:/das/ist/das/fluxbox/verzeichnis
neu aufmachst, sollte das System deine Eingabe bereits vergessen haben. Sie gilt nur
innerhalb der Shell, in der du sie gemacht hast (und in den von der Bash erzeugten Soehnen,
also wenn du von der Bash eine Bash aufrufst).
dolphin
-
- Beiträge: 260
- Registriert: 04.12.2006 11:37:59
meine /root/.bash_profile sieht so aus...
und meine /etc/profile so...
trotzdem findet die bash keins der scripte diei unter /bin/my_scripts/ liegen?
warum nur??
Code: Alles auswählen
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/bin/my_scripts:/scripts:
export PATH
unset USERNAME
Code: Alles auswählen
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/bin/my_scripts"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
fi
if [ "$PS1" ]; then
if [ "$BASH" ]; then
PS1='\u@\h:\w\$ '
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
export PATH
JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun-1.5.0.11/"
export JAVA_HOME
umask 022
trotzdem findet die bash keins der scripte diei unter /bin/my_scripts/ liegen?
warum nur??
Das ist schon komisch. Auf meinen Etch-Systemen hat der "root" kein ~/.bash_profile, nurmarkus_b hat geschrieben:Der PATH wird in /etc/profile und ~/.bash_profile gesetzt.latenite hat geschrieben:und wie kann ich nun diesen pfad sauerhaft aufnehmen?...welche datei muss ich edtieren??
die User haben eins. So richtig intuitiv fand ich diese Profile-Geschichten in der UNIX-Welt daher noch nie, sondern
eher widersprüchlich. In der DOS-Welt war es einfach: Da gab es die config.sys und die autoexec.bat und
alles das, was da drin stand, war logisch (und nachvollziehbar).
Also: Wie bereits oben angemerkt: Ich bin vor einiger Zeit zu dem Schluss gekommen, dass daslatenite hat geschrieben:trotzdem findet die bash keins der scripte diei unter /bin/my_scripts/ liegen?
warum nur??
System Pfad-Angaben dauerhaft speichert, wenn du sie in die ~/.bashrc schreibst, so wie oben
im Beitrag vom 21.07.2007 um 18:15:05 Uhr von mir gezeigt. Die Tilde ist dabei das Home-Verzeichnis
des aktuellen Users, du musst das also fuer jeden User machen.
Wenn du es systemweit speichern willst, dann probier mal aus, was markus_b angemerkt hat
(wobei ich das allerdings nicht getestet habe und daher nicht weiss, ob das tatsaechlich klappt).
Auch wichtig:
Deine Skripte unter /bin/my_scripts muessen ausführbar sein. Du solltest wissen,
was der Befehl
Code: Alles auswählen
chmod 755 datei
die Permissions von Dateien setzt.
dolphin
meine /root/.bashrc sieht so aus...
und ja chmod hab ic auf die schripte alle angewand..hab sie ja auch ausprobiert
kann es sein das es was damit zu tun hat das ich root bin??
oder habe ich in einem der 3 einen tippfehler? kommen das noch "" hin??
Code: Alles auswählen
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/bin/my_scripts:/scripts:
export PATH
unset USERNAME
kann es sein das es was damit zu tun hat das ich root bin??
oder habe ich in einem der 3 einen tippfehler? kommen das noch "" hin??
uuups verdreht
sorry das vermeindlich als .bashrc gepostetet war meine .bash_profile
hier die .bashrc in der tatsächlich noch kein PATH drin steht
in welcher systax füge ich hier die pfade ein??
hier die .bashrc in der tatsächlich noch kein PATH drin steht
Code: Alles auswählen
# ~/.bashrc: executed by bash(1) for non-login shells.
export PS1='\h:\w\$ '
umask 022
# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'
in welcher systax füge ich hier die pfade ein??
jippi es funktioniert
also ich habs danke eurer hilfe doch hinbekommen...
so sieht die .bashrc jetzt aus
#\a Das Bell-Zeichen, wie es durch die Tastenkombination [Ctrl][g] erzeugt wird
aber jetzt will ich noch das ich meine java.class datein von überall aus ausführen kann.
ablauf ist so...
ich erstelle mit vim "irgendwo" eine .java datei. dann führe ich javac /der/pfad/zur/datei aus.
soweit so gut..geht ja auch alles.
jetzt das problem:
da /der/pfad/zur/datei bei mir immer mal anders ist....weil ich z.B. noch einen unterordner auf mache nützt mir mein eintag in der ..bashrc
leider gar nichts wenn das .class file nicht genau da drin liegt.
also bekomme ich wenn ich java /pfad/zur/datei/derenunterordener/*.class eingebe wieder diesen fehler.
was ich will ist: das ich mit java /pfadangabe/*.class aus Jedem beliebigem Verzeichniss die Bytecodes ausführen kann.
das muss doch möglich sein?? oder ??
Edit KBDCALLS : CodeTags eingefügt, um die Leserlichkeit zu erhöhen. http://www.debianforum.de/forum/faq.php?mode=bbcode
so sieht die .bashrc jetzt aus
Code: Alles auswählen
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white# ~/.bashrc: executed by bash(1) for non-login shells.
#\a Das Bell-Zeichen, wie es durch die Tastenkombination [Ctrl][g] erzeugt wird
Code: Alles auswählen
#\d das aktuelle Datum im Format Thu Jan 18
#\e das Escape-Zeichen
#\H der gesamte (Host) -Name
#\h der Rechner (Host) -Name bis zum ersten Punkt
#\n ein Newline (LineFeed) -Zeichen
#\r ein Return (Carriage Return) -Zeichen
#\s der Programmname der Bash, also bash
#\t die aktuelle Systemzeit im 24-Stundenformat HH:MM:SS
#\T die aktuelle Systemzeit im 12-Stundenformat HH:MM:SS
#\@ die aktuelle Systemzeit im 12-Stundenformat mit am/pm (01:39am)
#\u der Username
#\v die Version der ausgeführten Bash (2.03)
#\V Das Release der Bash, bestehend aus der Versionsnummer und dem Patchlevel (2.03.1)
#\w das aktuelle Arbeitsverzeichnis in ausführlicher Darstellung, beispielsweise ~/LinuxMagazin/bash/teil6
#\W der letzte Teil des aktuellen Verzeichnisses, etwa teil6
#\! die (History-) Nummer der aktuellen Befehlszeile
#\# die Nummer der Befehlszeile in der aktuellen Bash-Sitzung
#\$ mit diesem Schlüssen wird der Rootaccount gekennzeichnet. Wenn die effektive UID gleich #Null ist, stellt die Bash das Hashmark dar, sonst ein Dollar-Zeichen
#\NNN Jedes beliebige ASCII-Zeichen kann durch Eingabe des oktalen Codes nach einem Backslash #erzeugt werden
#\\ der Backslash selbst wird durch zwei Backslash-Zeichen erzeugt
#\[ eine Folge von Steuerzeichen wird so eingeleitet
#\] die Folge von Steuerzeichen wird so beendet
Code: Alles auswählen
######################################################################################
export PS1='\[\033[01;37m\]\@\[\033[01;32m\]\u\[\033[01;34m\]@\[\033[01;32m\]\h\[\033[00;37m\] \w\[\033[01;33m\] ->\[\033[01;31m\] '
#export PROMPT_COMMAND='date +%H:%M:%S'
# export PS1='\h:\w\$ '
umask 022
# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
eval `dircolors /root/dircolors`
# eval $(dircolors -b /root/Desktop/dircolors)
alias ls='ls --color=auto'
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'
PATH=$PATH:/bin/my_scripts/
export PATH
JAVA_HOME=/
export JAVA_HOME
CLASSPATH=/usr/lib/:/java/
export CLASSPATH
############################################################################################
ablauf ist so...
ich erstelle mit vim "irgendwo" eine .java datei. dann führe ich javac /der/pfad/zur/datei aus.
soweit so gut..geht ja auch alles.
jetzt das problem:
da /der/pfad/zur/datei bei mir immer mal anders ist....weil ich z.B. noch einen unterordner auf mache nützt mir mein eintag in der ..bashrc
Code: Alles auswählen
PATH=$PATH:/bin/my_scripts/
export PATH
JAVA_HOME=/
export JAVA_HOME
CLASSPATH=/usr/lib/:/java/
export CLASSPATH
also bekomme ich wenn ich java /pfad/zur/datei/derenunterordener/*.class eingebe wieder diesen fehler.
Code: Alles auswählen
06:27 root@t23 ~ -> java /root/Desktop/java_toc/uebungen/Hello
Exception in thread "main" java.lang.NoClassDefFoundError: /root/Desktop/java_toc/uebungen/Hello
06:34 root@t23 ~ ->
das muss doch möglich sein?? oder ??
Edit KBDCALLS : CodeTags eingefügt, um die Leserlichkeit zu erhöhen. http://www.debianforum.de/forum/faq.php?mode=bbcode
Re: jippi es funktioniert
Ich hab nicht viel Zeit jetzt.
Nur kurz: In deinem Pfad muss ein . auftreten, wenn du das willst, was du oben beschrieben hast.
Besser ist aber, du laesst den Punkt weg und startest jede ausfuerhbare Datei so:
Nur kurz: In deinem Pfad muss ein . auftreten, wenn du das willst, was du oben beschrieben hast.
Code: Alles auswählen
PATH=$PATH:/bin/my_scripts/:.
export PATH
Code: Alles auswählen
./ausfuerhbare Datei