Distribuce
-
Redhat
-
Item 3854
Otázka
dobry den,
nastavil jsem si v $HOME/.bash_profile nejake aliasy, napr:
...
alias wget='wget -c -a wget.log'
...
presto se mi do systemu nenastavi a po zadani prikazu alias na radku se objevi jen gloablni aliasy systemu. jak se to da napravit?


Odpovědi
A používáš BASH ?
Po přepsání souboru načetl jsi znovu soubor .bash_profile pomocí příkazu tečka ". .bash_profile" ? Tj tečka_mezera_souboristeckou enter. Mě to funguje OK
RH má bash jako defaultní login shell od nemapěti (aspoň tedy od mé , takže pokud se v tom nějak nevrtal (chsh, vi /etc/passwd, ...), tak bash určitě používá.
Že by se nastavení aliasů nějak ,,zapomnělo``, považuji za nepravděpodobné, takže to vypadá, že se .bash_profile spíš nespustil.
Nevím, co přesně myslíte ,,nastavením do systému``.
$HOME/.bash_profile se pouští při přihlášení. Co je přesně přihlášení (login shell) viz bash(1), sekce INVOCATION, ale např. puštění dalšího xtermu jím (normálně) není. Taky to znamená, že se jakékoli změny v .bash_profile se projeví až při dalších přihlášeních.
Nejdřív bych proto zjistil, jestli (kdy) se tedy pouští, např. si tam připište
echo Running $HOME/.bash_profile!
a uvidíte.
ano pouzivam bash
nastavením do systému = ze se nastavi/nenastavi (inicializuji/neinicializuji) aliasy co mam v .bash_profile
mam na zacatku .bash_profile:
echo "in .bash_profile..." a spousti se (jde vydet pri prihlasovani), promenne ($NECO) ktere tam nastavuji se inicalizuji, ale aliasy proste ne 
po zadani ". .bash_profile" aliasy "naskocili" (viz nize), takze stale nevim kde je chyba 
ZKRACENO:
[homer@kayak homer]$ alias
# toto je std. alias v RH
alias l.='ls -d .* --color=tty'
[homer@kayak homer]$ . .bash_profile
in .bash_profile...
[homer@kayak homer]$ alias
alias l.='ls -d .* --color=tty'
alias wget='wget -c -a wget.log'
[homer@kayak homer]$
oprava: videt
omlouvam se 
Problém bude v tom že soubor se nacítá pouze jednou při spuštení loginu a přihlášení pokud potom provedeme změnu má to vliv pouze až na další spuštěné bashy které když se ukončí tak to zase zapomenout, příkaz tečka to vnutí i tomu již spuštěnému , takže se nemusíme odhlašovat a znovu přihlašovat, viz dokumentace k bash.
Jinak pokud ten soubor spustíš tak se vytvoří nový bash kde se soubor provede po skončení se zase vše zapomene.
To ja vim, al proste aliasy se NENACTOU pri prihlasovani, to je to divne 
Předpokládám, že jste zkoušel vypsat aliasy na konci .bash_profile a stále tam byly. Předpokládám, že shell se pouští jako /bin/bash a ne pod nějakým jiným názvem. Předpokládám, že ten problém máte při lokálním přihlašování, nejlépe na konzole. Předpokládám, že neděláte žádné takové zvěrstvo, jako že byste z .bash_profile pouštel další shell. Předpokládám správně?
$HOME/.bash_profile je úplně poslední inicializační skript, který by bash měl pouštět. Takže jestli na jeho konci aliasy existují a v interaktivním shellu už ne, tak je to podivné.
Když pustíte jen tak bash -l tak tam taky nejsou?
osobne mam vsechny aliasy v ~/.bashrc a vsechno
funguje bez problemu
Já sice mám taky aliasy v ~/.bashrc, ale fungují, i když je dám do ~/.bash_profile (dokonce je to vhodnější místo). A pokud někomu nefungují, tak je prostě něco špatně.
|