Spis treści

Powłoka i środowisko pracy

DO PRZYGOTOWANIA

Samodzielnie należy przed tym laboratorium przygotować:

NIEOBOWIĄZKOWO, dla zainteresowanych: 101 Bash Commands and Tips for Beginners to Experts

WPROWADZENIE

Powłoki w środowisku GNU

Środowisko pracy aplikacji

Typowe zmienne

PWD  USER    EDITOR  VISUAL
HOME TERM    PATH    MAIL
LANG DISPLAY LOGNAME SHLVL SHELL

Definiowanie zmiennych środowiskowych

Ustawianie w Sh:

ZMIENNA=WARTOSC ; export ZMIENNA

Bash:

export ZMIENNA=WARTOSC

Usuwanie:

unset ZMIENNA

Csh:

setenv ZMIENNA WARTOSC

Usuwanie:

unsetenv ZMIENNA

Wyświetlanie (w przypadku zmiennej wyexportowanej):

printenv ZMIENNA

W powłoce Sh (Bash):

echo $ZMIENNA

Zmiana znaku zachęty

Bash (opis w bash(1), „PROMPTING” (ZACHĘTA POWŁOKI))

export PS1='\u@\h:\w '

Tcsh (tcsh(1), „set prompt”))

set prompt = "%n@%m:%~ "

Inne prompty to: PS2 PS3 i prompt1 prompt2.

Re/Definiowanie poleceń

Do re/definiowania poleceń powłoki służy alias. Do usuwania definicji: unalias.

Bash:

alias ls='ls -F'
alias ll='ls -l'
unalias ls

Tcsh:

alias ls 'ls -F'
alias ll 'ls -l'
unalias ls

Cytowanie napisów

W środowisku powłoki są używane 3 znaki specjalne pozwalające na konstruowanie/cytowanie napisów:

- cudzysłowy , tekst w nich zawarty jest jednym napisem, w którym powłoka może interpertować znaki specjalne, np. podstawiać wartości zmiennych,

- apostrofy ', j.w. tylko BEZ możliwości interpretowania znaków specjalnych - tekst jest dokładnie cytowany,

- odwrócone apostrofy ` (obok klawisza Tab), zawartość tekstu jest traktowana jako polecenie, uruchamiana przez kolejna powłokę, a wynik działania polecenia jest podstawiany jako tekst.

Przeglądanie plików tekstowych

cat [plik1 plik2 ... plikN]

Inicjalizacja pracy powłok

Pliki inicjalizacyjne

Bash (opis w bash(1): INVOCATION, FILES)

/etc/profile 
~/.bash_profile
~/.bash_login 
~/.profile
/etc/bash.bashrc 
~/.bashrc
~/.bash_logout

Tcsh (tcsh(1): Startup and shutdown, FILES)

/etc/csh.cshrc 
/etc/csh.login
~/.tcshrc
~/.cshrc
~/.login
/etc/csh.cshrc
~/.tcshrc
~/.cshrc
/etc/csh.logout 
~/.logout

GNU Readline

Edytory tekstu

ĆWICZENIA

20 Typy powłok

21 Zmienne środowiskowe

bash
COS=tam
printenv COS
echo $COS
bash
printenv COS
echo $COS
exit
export COS
printenv COS
echo $COS
bash
printenv COS
echo $COS
exit
exit

22 Aliasy

alias strona='lynx -display_charset=iso-8859-2 http://galaxy.uci.agh.edu.pl/~gjn/dydaktyka'

23 Cytowanie napisów

Proszę porównać działanie:

echo $SHELL
echo "$SHELL"
echo '$SHELL'
echo \$SHELL
echo \\$SHELL
echo \$$SHELL
echo "system to: uname" 
echo "system to: 'uname'" 
echo "system to: `uname`" 
echo "ls -l"
echo 'ls -l'
echo `ls -l`

24 Inicjalizacja powłok

tcsh
tcsh -l
bash
bash --login

Wskazówka: Aby przetestować, czy poprawnie zdefiniowali Państwo plik inicjalizacyjny można np. zdefiniować w nim zmienną środowiskową, komunikat wyświetlany przy pomocy echo lub alias (patrz kolejna sekcja), a następnie logując się do odpowiedniej powłoki (np. poprzez bash –login, tcsh) sprawdzić, czy alias jest znany (a zatem poprawnie wczytano i zinterpretowano plik inicjalizacyjny).

25 GNU Readline

Testować w GNU Bash, notacja funkcji GNU Emacs:

Poniższe ćwiczenie należy wykonać na w powłoce bash, zamiast <T> należy wciskać tabulator:

le<T><T>ss /e<T>/pas<T>
echo $HO<T><T>ME
cd ~s<T><T>

Należy przeglądać podręcznik do basha, część Readline, Completion. Zaobserwować działanie Readline w innych programach GNU, np. Emacs: uruchomić edytor, Ctrl+C C+F TabTab.

Dla poszerzenia wiedzy