technicznego udostępniących pliki. Jedni potrzebują specjalnych
rozwiązań i specjalnych aplikacji innych zadowoli SFTP oraz SSHFS.
</p>
+ <h1 id="12.userenv">12. Konfiguracja środowiska użytkownika</h1>
+ <p>
+ Chcąc przedstawić użytkownikom dostępnę środowiska często przedstawia
+ się podział, na środowisko tekstowe (TUI/CLI) lub środowisko
+ graficzne. Dla uproszczenia też zastosowuje tutaj ten podział.
+ Ze względu na to, że istnieje bardzo duża liczba dostępnych
+ <em>środowisk graficznych</em> oraz fakt, że jego obecność do
+ normalnego działania systemu jest zbędna, w tym rodziale skupimy się
+ głównie na <em>środowisku tesktowym</em>, a tym jest głównie powłoka.
+ </p>
+ <h2 id="12.1.shellsmode">12.1. Rodzaje powłok</h2>
+ <p>
+ Obrębie konfiguracji środowiska tekstowego użytkownika, pojęcie
+ <em>rodzaje powłok</em>, nie tyczy się programów powłoki takich jak
+ BASH czy CSH. Tutaj zakładamy, że BASH jest naszą domyślną powłoką
+ oraz że to jej używamy. Powłoka może <strong>interaktywna</strong>
+ (korzystamy z niej domyślnie np. logując się do systemu.) lub
+ <strong>nieinteraktywna</strong> (taki rodzaj powłoki uruchamiają
+ skrypty powłoki [będzie o nich w ostatnim rozdziale]). Innym rodzajem
+ podziału działania powłoki może być <strong>powłoka logowania</strong>
+ oraz <strong>powłoka bez logowania</strong>
+ </p>
+ <p>
+ Powłoka logowania uruchamiana jest za każdym razem kiedy,
+ (najprościej rzecz ujmując) wymagane jest uprzednio logowania aby
+ uruchomić sesję powłoki. Logując się jeden z konsol na serwerze
+ uruchamiamy interaktywną połokę logowania podobnie jest w przypadku
+ połączeń zdalnych z wykorzystaniem protokołu SSH.
+ </p>
+ <p>
+ Drugim rodzajem jest powłoka bez logowania, tyczy się ona głównie
+ środowisk graficznych, bo tego rodzaju działanie powłoki jest
+ zapewnianie programy typu <em>emulator terminala</em> oraz
+ <em>multiplekser terminala</em> jak <strong>GNU Screen</strong> lub
+ <strong>tmux</strong>.
+ </p>
+ <p>
+ Określenie tego czy powłoką, którą używany jest powłoką logowania
+ czy też bez logowania następuje poprzez analizę wartości zwróconej
+ przez polecenie <code class="code-inline">echo $0</code>.
+ </p>
+<pre class="code-block">
+xf0r3m@debian:~$ echo $0
+-bash
+xf0r3m@vm-6bee73e:~$ echo $0
+bash
+</pre>
+ <p>
+ Pierwsza powłoka została zinicjowana przez połączenie SSH na
+ maszynie wirtualnej. W przypadku wartości zwróconej przez powyższe
+ polecenie na tym hoście, nazwę powłoki poprzedza myślnik
+ (<code class="code-inline">-</code>), co oznacza, że jest to powłoka
+ logowania, wartość zmiennej bez myślnika, oznacza powłokę bez
+ logowania. Druga powłoka została uruchomiona na drugiej karcie tego
+ samego emulatora terminala, na którym pisze ten tekst.
+ </p>
+ <p>
+ Istnieje mozliwość uruchomienia wielu kombinacji rodzaji powłoki,
+ nawet możliwość uruchomienia nieinteraktywnej powłoki logowania.
+ </p>
+ <h2 id="12.2.userenvfiles">12.2. Pliki środowiska użytkownika</h2>
+ <p>
+ Dlaczego o tym wspominam, otóż różne rodzaje powłok mogą korzystać z
+ różnych plików uruchomieniowych, z ktorych składa się środowisko
+ użytkowników. Tych plików jest kilka, głównego podziału możemy
+ doknac tylko i wyłącznie na podstawie <em>logowania</em> zatem:
+ </p>
+ <ul>
+ <li><em>~/.profile</em> - powłoki logowania.</li>
+ <li><em>~/.bashrc</em> - powłoki bez logowania</li>
+ </ul>
+ <p>
+ Jak możemy wnioskować po obecności tyldy (<strong>~</strong>), te
+ pliki są plikami użytkownika, chociaż w systemie może znaleźć się
+ także wersja systemowa. Tak jest w przypadku dysrybucji Debian,
+ pliki znajdują się kolejno <em>/etc/profile</em> lub
+ <em>/etc/bash.bashrc</em>. W każdym systemie znajdują się te pliki.
+ Pliki globalne posiadają kilka różnic o tych użytkowników. Ale my
+ w ramach tego materiału skupiamy sie głównie
+ <em>środowisku użytkownika</em> więc i na plikach użytkownika
+ poprzestaniemy. Tego typu pliki posiada każdy w swomim systemie
+ więc nie mam sensu ich tutaj przytaczać.
+ </p>
+ <p>
+ Jeśli przyjrzymy się plikowi <em>~/.profile</em> to zauważymy, że
+ wewnątrz ładowany jest plik <em>~/.bashrc</em>. Tak więc powłoka
+ logowania zostanie zainicjowana również zgodnie z plikiem
+ <em>~/.bashrc</em>. Na koniec do zmiennej zawierającej ścieżkę
+ wyszukiwania poleceń dodane są lokalne katalogi, w których to
+ użytkownik powinien przechowywać swoje pliki binarne. I to cały plik
+ konfigurjący powłokę logowania. Znacznie bogatszym plikiem jest
+ plik konfigurujący powłokę bez logowania. Wewnątrz nie go znajdują
+ się miedzy innymi:
+ </p>
+ <ul>
+ <li>Konstrukcja dodająca polecenia do konfiguracji w przypadku
+ powłoki nieinteraktywnej jak i interkatywnej.</li>
+ <li>Domyślne ustawienia historii BASH.</li>
+ <li>Ustawienie formatu oraz kolorów dla znaku zachęty na podstawie
+ terminala na którym uruchomiona jest powłoka.</li>
+ <li>Ustawienie aliasów polecenia <em>ls</em> włączających domyślne
+ kolorowanie elementów.</li>
+ </ul>
+ <p>
+ Generalnie plik <em>~/.bashrc</em> jest plikiem, który przechowuje
+ informacje na temat:
+ </p>
+ <ul>
+ <li>Aliasów.</li>
+ <li>Zmiennej zawierającej ścieżkę wyszukiwania poleceń,</li>
+ <li>Definicji wyglądu znaku zachęty,</li>
+ <li>Domyślnego edytora (obecnie wykorzystywany jest do tego inny
+ program),</li>
+ <li>Programu stronicującego oraz jego domyślnego zachowania,</li>
+ <li>Domyślnych uprawnień nadawanych nowotworzonym elementom
+ (maska uprawnień).</li>
+ </ul>
+ <p>
+ Jeśli potrzebujemy zmienić coś z powyższych zaganień to należy
+ umieścić je w tym pliku.
+ </p>
</div>
<p style="margin: 15px; padding: 0; outline: 0;">
2022; COPYLEFT; ALL RIGHTS REVERSED;