Na początek może parę słów o ustawianiu wyglądu. Może pomyślisz, że wygląd nie ma nic wspólnego z wygodą pracy, jeśli tylko stuka się w klawiaturę. Otóż nieprawda. Ot, taka głupia sprawa, jak prompt (znak zachęty). Zdarza mi się pracować na kilku komputerach jednocześnie (zdalna praca przez ssh) - takie coś wcale nie jest rzadkie w środowisku un*xa! Więc pracuję na kilku komputerach, ale wypadałoby wiedzieć, który terminal jest od czego. Dlatego podoba mi się prompt, jaki widziałem w RedHacie: [user@host working-dir]$. Od razu widzę, jako kto pracuję, na którym kompie jestem i gdzie w systemie plików się znajduję. Prompt ustawia się banalnie, bo odpowiada zań zmienna $PS1 (prompt string 1). Istnieje też zmienna $PS2, ale rzadko widuje się jej efekty, które zresztą są dostatecznie czytelne. Zatem, co może znaleźć się w $PS1? Jakikolwiek tekst, z następującymi sekwencjami escape'owymi:
Mój prompt wygląda tak: '[\u@\h \W]\$ ' (oczywiście bez
cudzysłowiów, ale ze spacją na końcu).
Żeby było ciekawiej, bash może przed każdym pojawieniem się prompta odpalić
jakieś polecenie. To polecenie powinno być umieszczone w zmiennej
$PROMPT_COMMAND. Na przykład data w formacie
"DD/MM/YY": PROMPT_COMMAND="'echo" -n $( date +%d/%m/%y )'. Komenda
wykonuje: date wyświetlające datę w zadanym formacie, przechwycenie
tego i wypisanie echem bez znaku nowej linii (i po to w zasadzie była
ta zabawa: date schodzi do nowej linii, czego ja nie chciałem). Ja sam
nie używam tej zmiennej, ale może ty uznasz, że jednak jest przydatna.
Po więcej informacji odsyłam do man bash, sekcja PROMPTING (choć
raczej niewiele nowych rzeczy znajdziesz)
W sumie domyślnym zestawem są skróty podobne do emacsowych. Możliwe jest ustawienie skrótów w stylu vi, ale po pierwsze emacsowe do używania basha są moim zdaniem wygodniejsze (bo już się przyzwyczaiłem :] ), a po drugie nie udało mi się tego ustawić na stałe (pewnie burak w bashu).
Napis ^A oznacza wciśnięcie Ctrl+A, natomiast M-A - [lewy Alt]+A, ewentualnie
"wciśnij [Esc], po czym wciśnij A".
OSTRZERZENIE: często zdarza się, że zamiast ^A czy ^D zostaje wciśnięta
sekwencja ^S. Powoduje to zatrzymanie wyświetlania na terminalu. Ponowne
włączenie odświeżania następuje po wciśnięciu ^Q. Pod gołą konsolą (nie
w X-Window) prawdopodobnie będzie działać także wyłączenie [ScrollLock].
Tu się nie będę za dużo rozpisywał. Alias to taki zamiennik: jak wpiszesz nazwę aliasu, to zostanie rozwinięta do pełnej komendy. Składnia: alias kupa='echo "Teraz wypiszemy _kupa_"'. I od tej pory ilekroć wpiszesz w konsoli kupa, pojawi się tekst Teraz wypiszemy _kupa_. Co fajniejsze, możesz sobie zrobić alias alias ls="'ls" --color -hsCF', i od tej pory gdy wpiszesz ls, pojawi ci się kolorowy listing z rozmiarami plików i z wyświetleniem, jakiego typu to plik (co robią opcje, to sobie poczytasz manual do ls, ważne jest, że teraz polecenie ls uruchomi się od razu z odpowiednimi parametrami). Nie musisz wybierać nazwy starego polecenia na nazwę aliasu: alias ll="'ls" -l' i masz ładne wypisanie listy plików w długim formacie. A zdejmowanie aliasów odbywa się intuicyjną komendą unalias ll (gdzie ll to nazwa aliasu). Lista aliasów pojawia się po wpisaniu samego alias
No, tyle fajnych rzeczy się dowiedziałeś, dobrze by było, żeby po każdym zalogowaniu takie coś się działo. Bash korzysta z kilku plików ustawień. Po pierwsze primo, z globalnego pliku /etc/profile albo /etc/bashrc (zależy, który masz, choć bash [o ile dobrze pamiętam] czyta domyślnie /etc/profile). Po drugie primo, z lokalnego pliku ~/.bashrc albo ~/.profile (należy wypróbować oba). Po trzecie, jeśli masz jakiś plik ustawień, którego bash nie czyta, a nie chce ci się przepisywać całej zawartości, to te trzy linijki załatwią sprawę:
if [ -r /sciezka/do/pliku/ustawien ]; then . /sciezka/do/pliku/ustawien fi |
Tutaj kropka oznacza "znajdź plik o takiej nazwie i wstaw z niego komendy tutaj". Od zwykłego wykonania pliku różni się to tylko tym, że zmiany środowiska (w tym aliasów) w pliku będą widoczne na zewnątrz, a sam plik nie musi mieć praw wykonywalności.