lszk Napisano Wrzesień 2, 2005 Zgłoszenie Share Napisano Wrzesień 2, 2005 Do systemu loguje się przez startx, więc napisałem sobie mały skrypt umozliwiający wybór środowiska do uruchomienia. Dopisałem sobie alias na ten skrypt w ~/.bashrc. Jednak po ponownym uruchomieniu kompa skrypt się nie wykonuje, bo alias nie działa. Żeby go odpalić, musze wydać polecenie source ~/.bashrc. Próbowałem też z plikiem ~/.bash_profile, ale też nie wyszło. Mam co prawda 2 koncepcje, jakby można to zrobić inaczej, ale dlaczego nie działa ta sztuczka z ~/.bashrc? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
asasyn Napisano Wrzesień 2, 2005 Zgłoszenie Share Napisano Wrzesień 2, 2005 Próbowałeś może alias w="nazwa_skryptu" ???Po naciśnięciu klawisza w powinien się odpalić skrypt który napisałeś, tak przynajmniej ja myslę Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
lszk Napisano Wrzesień 2, 2005 Autor Zgłoszenie Share Napisano Wrzesień 2, 2005 (edytowane) Alias podrobiłem pod polecenie startx alias startx='~/bash/start' Pod pojedyńczą litere nie sprawdzałem → zrobie z ciekawości, jak stargam do końca film z torrenta. [edit] Właśnie zaobserwowałem takie coś. Po reboocie i startx X'sy normalnie startują bez udziału mojego skryptu. Po odpaleniu polecenia startx już w fluxie, wybór środowiska się pojawia. czyli wychodzi na to, że z pliku ~/.bashrc sys czyta dopiero za uruchomieniu x'sów? To gdzie możnaby dopisać taki alias, aby się uruchamiał przez x'sami? Np. po zalogowaniu. Ofkoz chodzi mi o inne miejsce niż w /etc/init.d/ Edytowane Wrzesień 2, 2005 przez lszk Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
asasyn Napisano Wrzesień 2, 2005 Zgłoszenie Share Napisano Wrzesień 2, 2005 Hmm, na slacku jako user dawałem xwmconfig i miałem wybór.Jakby gotowy skrypt przenieść do /bin i dać mu chmod +s /bin/nazwa_skryptu Przecież np polecenia systemowe są w /bin jako wykonywalne, są wczytywane i user może je odpalać. Nie chcę wyjśc na durnia, ale spróbuj. Jakbyś z kolei dał go do /etc/init.d to musiałbyś zrobić chyba symlinka do /etc/rc.d/rc3.d Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
lszk Napisano Wrzesień 2, 2005 Autor Zgłoszenie Share Napisano Wrzesień 2, 2005 W moim 1-szym poście pisałem, że mam jeszcze dwie inne koncepcje na jego odpalenie. Właśnie jedną z nich jest przekopiowanie skryptu do /bin (a drugą do /etc/init.d ). Tylko jestem ciekawy, jakby to zrobić przez ten zakichany alias. Przecież musi się jakoś dać :| Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gryhild Napisano Wrzesień 2, 2005 Zgłoszenie Share Napisano Wrzesień 2, 2005 Witam. A jak dopiszesz do /etc/bashrc ? Wtedy ten alias powinien być globalny, dla wszystkich Możesz jeszcze do /etc/profile, dokładnie nie pamiętam które miejsce było lepciejsze Może żadne Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
lszk Napisano Wrzesień 2, 2005 Autor Zgłoszenie Share Napisano Wrzesień 2, 2005 U mnie jest /etc/bash.bashrc, ale w nim też nie działa. W necie znalazłem skrypt również do wyboru X'sów dla Slacka. I autor zaleca dopisać info do ~/.bashrc → link. Czyli jemu chyba musi chodzić :| Mnie tam szczerze mówiąc jest wszystko jedno, czy uruchamiam przez alias, czy przez skrypt z /bin, ale chciałbym wiedziec, jak to zrobić (na przyszłość). A ten plik w /etc może sobie być globalny, ale ważne jest, żeby zaczął 'działac' przed uruchomieniem środowiska graficznego. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
patpi Napisano Wrzesień 2, 2005 Zgłoszenie Share Napisano Wrzesień 2, 2005 a jak podlinkujesz .bashrc do .bash_login to dziala? (mozliwe ze nie masz tego pliku, a bedzie tylko bash_logout i go trzeba spreparowac podobnie ) [mowie z glowy teraz tego nie moge sprawdzic] Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@perl Napisano Wrzesień 2, 2005 Zgłoszenie Share Napisano Wrzesień 2, 2005 a jak podlinkujesz .bashrc do .bash_login to dziala? to raczej nie zadziala bo lszk alias wprowadzal do .bash_profile ktore to wykonywane jest pierwsze i przetwarza .bashrc dla mnie bledne jest wykonanie aliasu i powinno byc wyrazone nie przez tylde tylko zmienna systemowa $HOME: alias startx='$HOME/bash/nazwa' Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
lszk Napisano Wrzesień 3, 2005 Autor Zgłoszenie Share Napisano Wrzesień 3, 2005 Niestety perl, też nie działa :/ cat .bashrc |grep bash alias startx='$HOME/bash/start' Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@perl Napisano Wrzesień 3, 2005 Zgłoszenie Share Napisano Wrzesień 3, 2005 Niestety perl, też nie działa :/ a sprawdz czy .bashrc jest u Ciebie w ogole przetwarzany, dodaj tam jakies echo albo cos podobnego A jak dopiszesz do /etc/bashrc ? Wtedy ten alias powinien być globalny, dla wszystkich Możesz jeszcze do /etc/profile, dokładnie nie pamiętam które miejsce było lepciejsze aliasy, funkcje, znak zachety itp. umieszcza sie w .bashrc lub globalnie dla wszystkich uzytkownikow w /etc/bashrc w .bash_profile oraz globalnie w /etc/profile umieszczona jest wstepna konfiguracja srodowiska (czyli np. eksporty zmiennych srodowiskowych potrzebne do prawidlowego dzialania itp.) Pod pojedyńczą litere nie sprawdzałem → zrobie z ciekawości, jak stargam do końca film z torrenta. .bashrc przetwarzany jest za kazdym wywolaniem powloki (czyli po zmianie tego pliku konfiguracyjnego wystarczy zalogowac sie na nowa konsole zeby .bashrc zostal przetworzony), inaczej jest z /etc/bashrc ktore jest uruchamiane/przetwarzane zaraz przy starcie systemu (tzn. przy pierwszym wywolaniu powloki) Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
lszk Napisano Wrzesień 3, 2005 Autor Zgłoszenie Share Napisano Wrzesień 3, 2005 .bashrc przetwarzany jest za kazdym wywolaniem powloki (czyli po zmianie tego pliku konfiguracyjnego wystarczy zalogowac sie na nowa konsole zeby .bashrc zostal przetworzony Skoro tak, więc echo 'echo $USER' > .bashrc Teraz ctrl+alt+f2, logowanie i nie ma. Jak wpisze su lszk i hasło, to się pokaże wynik $USER. Nie wiem, czy to ma znaczenie, ale domyślnie po zalogowaniu na danego usera wyświetla się zwartosć jakiegoś pliku (skryptu) → data ostatniego logowania, wersja kernela i takie tam. Może poprostu zawartość tego pliku przysłanie te z ~/.bashrc? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
gajownik Napisano Wrzesień 3, 2005 Zgłoszenie Share Napisano Wrzesień 3, 2005 .bashrc przetwarzany jest za kazdym wywolaniem powloki (czyli po zmianie tego pliku konfiguracyjnego wystarczy zalogowac sie na nowa konsole zeby .bashrc zostal przetworzony), inaczej jest z /etc/bashrc ktore jest uruchamiane/przetwarzane zaraz przy starcie systemu (tzn. przy pierwszym wywolaniu powloki) No ie całkiem: When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior. When a login shell exits, bash reads and executes commands from the file ~/.bash_logout, if it exists. When an interactive shell that is not a login shell is started, bash reads and executes commands from ~/.bashrc, if that file exists. This may be inhibited by using the --norc option. The --rcfile file option will force bash to read and execute commands from file instead of ~/.bashrc. W fedorowym ~/.bash_profile jest dodatkowo coś takiego: # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$HOME/bin:$PATH export PATH unset USERNAME Dopiero wtedy ~/.bashrc jest cztany podczas logowania. Jak wpisze su lszk A nie su - lszk ? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
lszk Napisano Wrzesień 3, 2005 Autor Zgłoszenie Share Napisano Wrzesień 3, 2005 W fedorowym ~/.bash_profile jest dodatkowo coś takiego: No widocznie na Fedorze jest inaczej cat .bash_profile export PATH=$PATH:$HOME/bin Tak ja mam. A nie su - lszk ? Nawet bez myślnika zadziałało, skoro widziałem zawartość $USER, więc widocznie aż tak ważne to nie było Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@perl Napisano Wrzesień 3, 2005 Zgłoszenie Share Napisano Wrzesień 3, 2005 inaczej jest z /etc/bashrc ktore jest uruchamiane/przetwarzane zaraz przy starcie systemu (tzn. przy pierwszym wywolaniu powloki) No ie całkiem faktycznie tutaj sie przejezyczylem, chodzilo mi o /etc/profile (u mnie w przeciwienstwie do informacji z tej strony z manulala, /etc/profile nie uruchamia sie za kazdym wywolaniem basha, tylko raz przy pierwszym wywloaniu dla uzytkownika) Nawet bez myślnika zadziałało, skoro widziałem zawartość $USER, więc widocznie aż tak ważne to nie było to troche dziwne bo moim zdaniem przy wywolaniu bez myslnika nie powinno w ogole przetwarzac plikow konfiguracyjnych tylko powloka powinna pracowac na zmiennych srodowiskowych juz zaladowanych Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się