Część 1: Obsługa bash'a
stosowanie tabulatora - naciśnięcie tabulatora uzupełnia komendę, którą aktualnie wpisujemy (pojawia się wybór dostępnych komend).
W podobny sposób, gdy wpisujemy ścieżkę, bash samodzielnie uzupełnia nazwy katalogów/plików.
Przykład użycia:
tomek@Zuerst:~> ki //tutaj nacisnąć tabulator a bash zaproponuje dostępne komendy
kicker kio_media_realfolder
kill kioobex_start
killall kioslave
kinfocenter kio_system_documenthelper
kinstalltheme kio_uiserver
kioclient kipidcrawclient
kioexec kitchensync
kio_http_cache_cleaner kivio
kio_media_mounthelper
tomek@Zuerst:~> kill //kolejne naciśnięcia taba zmniejszają listę dostępnych opcji
kill killall
tomek@Zuerst:~> kill //i tak dalej dopuki nie uzupełni rządanej komendy
klawisze strzałka do góry / w dół - wybór poprzedniego polecenia / przegląd poprzednich poleceń.
Gdy wpisujemy polecenie działają również strzałki w lewo i w prawo oraz home i end pozwalające edycję polecenia.
kombinacja SHIFT + strzałka do góry / w dół / Page down / Page up - w przypadku poleceń wyrzucających na ekran dużo tekstu
możemy przewijać okno shella o linijkę lub o całe strony. Czasem działa również rolka w myszce :)
używanie clear - czyści ekran (możemy wciąż przewijać okno metodami powyżej)
używanie przełączników do poleceń (opcji) - modyfikują działanie poleceń.
Przełączniki możemy użyć na jeden z możliwych sposobów:
- opcje jednoliterowe po jednym myślniku (
ls -l )
- opcje jednoliterowe sklejone - jeden myślnik i dwie opcje (
ls -li )
- opcje długie po dwóch myślnikach (
ls --inode )
- opcje długie po dwóch myślnikach z parametrem (
ls --hide=*txt )
Opcje długie można stosować zamiennie z krótkimi (często sie dublują).
Opcje krótkie można sklejać w dowolnej kolejności.
Przykład użycia:
tomek@Zuerst:/tmp> ls -l
razem 0
-rw-r--r-- 1 tomek users 0 paź 16 00:48 plik1
-rw-r--r-- 1 tomek users 0 paź 16 00:48 plik2
-rw-r--r-- 1 tomek users 0 paź 16 00:48 test2.txt
-rw-r--r-- 1 tomek users 0 paź 16 00:48 test.txt
tomek@Zuerst:/tmp> ls -li
razem 0
161510 -rw-r--r-- 1 tomek users 0 paź 16 00:48 plik1
161512 -rw-r--r-- 1 tomek users 0 paź 16 00:48 plik2
161508 -rw-r--r-- 1 tomek users 0 paź 16 00:48 test2.txt
161494 -rw-r--r-- 1 tomek users 0 paź 16 00:48 test.txt
tomek@Zuerst:/tmp> ls --inode
161510 plik1 161512 plik2 161508 test2.txt 161494 test.txt
tomek@Zuerst:/tmp> ls --inode -l
razem 0
161510 -rw-r--r-- 1 tomek users 0 paź 16 00:48 plik1
161512 -rw-r--r-- 1 tomek users 0 paź 16 00:48 plik2
161508 -rw-r--r-- 1 tomek users 0 paź 16 00:48 test2.txt
161494 -rw-r--r-- 1 tomek users 0 paź 16 00:48 test.txt
tomek@Zuerst:/tmp> ls --hide=*txt
plik1 plik2
tomek@Zuerst:/tmp> ls -li --hide=*txt
razem 0
161510 -rw-r--r-- 1 tomek users 0 paź 16 00:48 plik1
161512 -rw-r--r-- 1 tomek users 0 paź 16 00:48 plik2
stosowanie znaków globalnych / wyrażeń regularnych - Jeżeli chcemy objąć poleceniem kilka plików stosujemy tzw wyrażenia regularne.
- * -zastępuje dowolny ciąg znaków (pusty też)
- ? -zastępuje dokładnie jeden znak
- [] - w tym miejscu może wystąpić jeden ze znaków z nawiasu... można stosować zakresy !!!
Przykład użycia:
tomek@Zuerst:/tmp> ls //lista plików
foto.html foto.ico nomy nowy
tomek@Zuerst:/tmp> ls --hide=n* //ukrywamy wszystkie na litere n
foto.html foto.ico
tomek@Zuerst:/tmp> ls --hide=foto.* //ukrywamy wszytkie zaczynające sie na foto.
nomy nowy
tomek@Zuerst:/tmp> ls --hide=foto.??? //j.w. plus trzy znaki rozszerzenia
foto.html nomy nowy
tomek@Zuerst:/tmp> ls --hide=foto.???? //j.w. ale cztery znaki rozszerzenia
foto.ico nomy nowy
tomek@Zuerst:/tmp> ls --hide=no[mw]y //ukrywamy wszystkie zaczynające się na no trzeci
foto.html foto.ico //znak m lub w i ostatni y
tomek@Zuerst:/tmp> ls --hide=no[m-z]y //j.w. ale trzecia litera z zakresu m-z !!!
foto.html foto.ico
ubijanie zawieszonych programów - Jeżeli nasz terminal nie odpowiada na polecenia,
nie wiemy jak opuścić program, bo zgubiliśmy się w opcjach:
- CTRL + 'c' - ubija aktywny program
- CTRL + 'z' - zawiesza aktywny program
- 'q', "quit", czasem CTRL+Q (okienka), ALT+F4 (okienka) - wychodzi z programu
- kill -9 (numer pid) - ubija program o podanym pid (wykonywać z innego terminalu)
- killall (nazwa programu) - ubija wszytkie programy o tej nazwie (wykonywać z innego terminalu)
- xkill - potem klikamy w zawieszone okienko które zostaje ubite (wykonywać z innego terminalu)
Oczywiście niektóre z tych metod nie są bezpieczne i można utracić niezapisane dane.
W większości przypadków jedna z podanych metod rozwiąże sprawe :)
obsługa man - wyświetla manual do podanego polecenia.
Jeżeli nie wiemy czego szukamy używamy przełącznika '-k' :)
Przykład użycia:
tomek@Zuerst:~> man
Jakiej strony podręcznika potrzebujesz?
tomek@Zuerst:~> man -k bash
bash (1) - GNU Bourne-Again SHell
bashbug (1) - report a bug in bash
bashbuiltins (1) - bash built-in commands, see bash(1)
rbash (1) - restricted bash, see bash(1)
tomek@Zuerst:~>man bash
Uruchamia się manual. Poruszamy się po nim domyślnie: strzałkami/pagedown/pageup/end/home/spacja.
Wpisanie "/" (slash'a) i szukanego tekstu (/szukany ciąg) i zatwierdzenie enterem podświetli wszystkie wystąpienia takiego ciągu w tekscie.
Przewijamy potem klawiszem: n -> do przodu, N -> do tyłu.
Pomoc podczas uruchomionego programu man wyświetlamy wciskając klawisz "h" --> zostaje wyświetlona pomoc do pomocy :)
Bardzo podobnym poleceniem do man jest info.
Część 2: Porównanie poleceń w DOS'a i shell'a w Linuksie (Unixie):
DOS |
Unix/Linux |
Opis |
\ |
/ |
w uniksie jest jedno drzewo plików rozpoczynające się od korzenia głównego "/". Nie ma liter przypisanych do patycji. |
dir |
ls
ls -l
ls -al |
wyświetlenie zawartości katalogu |
tree |
tree |
wypisanie katalogu w postaci drzewa |
cd katalog |
cd katalog |
przejście do podanego katalogu (samo cd przechodzi do katalogu głównego) |
cd |
pwd |
wyświetlenie bieżącego katalogu |
copy |
cp |
kopiowanie plików/katalogów |
move |
mv |
przenoszenie plików/katalogów |
del |
rm |
usuwanie plików |
mkdir |
mkdir |
tworzenie katalogów |
echo |
echo |
wypisywanie tekstu |
deltree/rmdir |
rm -r rmdir |
usuwanie katalogów |
nc |
mc |
menadżer plików |
edit |
vi, nano, mcedit, kwrite(gui) |
popularne edytory |
telnet |
telnet/ssh |
praca na zdalnym komputerze |
type |
cat |
wyświetlenie zawartości pliku |
more |
more/less |
wyświetlanie plików (troche wygodniejsze dla użytkownika) |
cls |
clear |
czyszczenie ekranu |
Wybrane polecenia i ich przełączniki:
ls - wypisuje pliki z katalogu
przełączniki:
- -a -dodatkowo pliki ukryte
- -l -długa lista z wszystkimi informacjami
- -i -wypisuje dodatkowo numery "inode" plików
- -h -wielkość plików jako KB, MB itd
- -f -bez sortowania
- -S -sortuje według wielkości
- -t -sortuje według czasu modyfikacji
- -r -odwraca sortowanie
- --hide=(wzorzec) -ukrywa pliki według wzorca (dozwolone znaki globalne)
Przykład użycia:
tomek@Zuerst:/tmp> ls
plik1 plik2 test2.txt test.txt
tomek@Zuerst:/tmp> ls -a
. .. plik1 plik2 test2.txt test.txt
tomek@Zuerst:/tmp> ls -l
razem 0
-rw-r--r-- 1 tomek users 0 paź 16 00:48 plik1
-rw-r--r-- 1 tomek users 0 paź 16 00:48 plik2
-rw-r--r-- 1 tomek users 0 paź 16 00:48 test2.txt
-rw-r--r-- 1 tomek users 0 paź 16 00:48 test.txt
tomek@Zuerst:/tmp> ls -i
161510 plik1 161512 plik2 161508 test2.txt 161494 test.txt
tomek@Zuerst:/tmp> ls -li
razem 0
161510 -rw-r--r-- 1 tomek users 0 paź 16 00:48 plik1
161512 -rw-r--r-- 1 tomek users 0 paź 16 00:48 plik2
161508 -rw-r--r-- 1 tomek users 0 paź 16 00:48 test2.txt
161494 -rw-r--r-- 1 tomek users 0 paź 16 00:48 test.txt
tomek@Zuerst:/tmp> ls -li --hide=*txt
razem 0
161510 -rw-r--r-- 1 tomek users 0 paź 16 00:48 plik1
161512 -rw-r--r-- 1 tomek users 0 paź 16 00:48 plik2
touch - zmienia czas dostępu i modyfikacji pliku. Gdy pliku o podanej nazwie nie ma, zostaje utworzony.
Przykład użycia:
tomek@Zuerst:/tmp> ls -l
razem 8
-rw-r--r-- 1 tomek users 302 kwi 28 2006 favicon.ico
-rw-r--r-- 1 tomek users 3406 mar 12 2006 foto.html
tomek@Zuerst:/tmp> touch nowy
tomek@Zuerst:/tmp> ls -l
razem 8
-rw-r--r-- 1 tomek users 302 kwi 28 2006 favicon.ico
-rw-r--r-- 1 tomek users 3406 mar 12 2006 foto.html
-rw-r--r-- 1 tomek users 0 paź 16 01:30 nowy
tomek@Zuerst:/tmp> touch foto.html
tomek@Zuerst:/tmp/tmp> ls -l
razem 8
-rw-r--r-- 1 tomek users 302 kwi 28 2006 favicon.ico
-rw-r--r-- 1 tomek users 3406 paź 16 01:30 foto.html
-rw-r--r-- 1 tomek users 0 paź 16 01:30 nowy
Część 3: Kilka słów o systemie plików Linuksa
wszystkie rysunki i większość treści znaleziona w internecie :) do paragrafów dołożyłem linki do pełnych opracowań (wybrałem tylko ważne dla nas fragmenty)
dodatkowo dodaje swoje
link do oryginału
Unixowy system plików ma wiele zadziwiających właściwości,
których nie mają inne systemy plików. Podstawowa sprawa - to dowiązania.
Każdy plik charakteryzuje specyficzna liczba
,
która pozwala go odróżnić od innych. Liczba ta oznacza tzw. numer inode'a.
Sam inode to struktura danych, w której są wszystkie informacje o pliku za wyjątkiem nazwy.
Przeniesienie informacji o pliku z katalogu do inode'a daje znakomite możliwości.
....
Istnieje także możliwość wskazywania na jeden plik większej ilości dowiązań
(tak teraz będziemy mówić na pozycję w tablicy katalogów).
Dzięki temu można dostać się do jednego pliku z kilku różnych ścieżek
.
Do tworzenia dowiązań służy polecenie ln.
....
Istnieje także inny rodzaj dowiązań - dowiązanie symboliczne.
Tak naprawdę dowiązanie symboliczne jest krótkim plikiem z zapisaną ścieżką dostępu do oryginalnego pliku.
System wykorzystuje to, by przy próbie otwarcia dowiązania symbolicznego otworzyć właściwy plik.
Dowiązania symboliczne mają swoje wady i zalety. Zaletą jest fakt,
że po skasowaniu głównego pliku dowiązanie symboliczne przestaje działać - tak jak skrót w Windows.
Natomiast wadą jest fakt, że dowiązanie symboliczne przestanie działać po przeniesieniu głównego pliku.
Zajmuje też dodatkowego inode'a. Dowiązania symboliczne są najlepsze do tworzenia skrótów lub innych nazw pliku.
Tworzy się je poleceniem ln -s .
Przykład użycia:
tomek@Zuerst:/tmp> echo czesc > plik //tworzymy plik
tomek@Zuerst:/tmp> ln plik link.twardy //tworzymy twardy link
tomek@Zuerst:/tmp> ln -s plik link.miekki //tworzymy miękki link
tomek@Zuerst:/tmp> ls -li
razem 8
161508 lrwxrwxrwx 1 tomek users 4 paź 16 02:41 link.miekki -> plik
161494 -rw-r--r-- 2 tomek users 6 paź 16 02:41 link.twardy
161494 -rw-r--r-- 2 tomek users 6 paź 16 02:41 plik
tomek@Zuerst:/tmp> cat plik //wypisujemy pliki
czesc
tomek@Zuerst:/tmp> cat link.twardy
czesc
tomek@Zuerst:/tmp> cat link.miekki
czesc
Jak widać twarde dowiązanie wskazuje na ten sam numer iNode'a (pierwsza kolumna), natomiast link miękki wskazuje na nazwe.
Jest to bardzo ważna różnica...
Dodatkowo liczba dowiązań do danego iNode'a jest w 3 kolumnie (jedna nazwa wskazuje na iNode 161508 i dwie nazwy na 161494.
Zobaczmy co się stanie po usunięciu pliku oryginalnego:
tomek@Zuerst:/tmp> rm plik //usuwamy plik
tomek@Zuerst:/tmp> ls -li
razem 4
161508 lrwxrwxrwx 1 tomek users 4 paź 16 02:41 link.miekki -> plik
161494 -rw-r--r-- 1 tomek users 6 paź 16 02:41 link.twardy
tomek@Zuerst:/tmp> cat link.twardy //wypisujemy pliki
czesc
tomek@Zuerst:/tmp> cat link.miekki
cat: link.miekki: Nie ma takiego pliku ani katalogu
Dowiązanie miękkie przestało działać, gdyż plik docelowy nie istnieje. Dowiązanie twarde działa normalnie, ale zmniejszyła się liczba dowiązań (trzecia kolumna).
Miejsce na dysku będzie zwolnione po usunięciu ostaniego dowiązania twardego.
Montowanie urządzeń do systemu plików:
link do oryginału
Przed użyciem systemu plików należy go zamountować. System operacyjny sprawdza, niektóre części systemu plików w celu upewnienia się, że działa. Ponieważ w Unixie pliki przechowywane w jednym drzewie nowy system plików będzie tworzył zawartość jakiegoś katalogu.
Dla przykładu: grafika poniżej pokazuje systemy plików, ich katalogi główne zostały zaznaczone.

Montując ostatnie dwa systemy plików odpowiednio w katalogu /home i /usr, wszystko to na pierwszym systemie plików, otrzymamy spójne drzewo katalogów:

Montowań można dokonać w sposób następujący:
$ mount /dev/hda2 /home
$ mount /dev/hda3 /usr
Pierwszy argument oznacza plik urządzenia zawierający system plików. Drugi argument to katalog, w którym należy zamontować zawartość urządzenia. Po zamontowaniu zawartość systemu plików podanego urządzenia staje się zawartością katalogu. Zauważ różnicę między urządzeniem /dev/hda2, a /home. Plik urządzenia umożliwia dostęp do surowych danych, natomiast, po zamontowaniu, katalog udostępnia te dane w postaci plików i katalogów. Katalog, do którego montujemy system plików nazywany jest punktem montowania.
Linux obsługuje wiele systemów plików. mount próbuje odgadnąć typ systemu (co może mu się nie udać). Aby jawnie podać system plików należy posłużyć się opcją -t typ;
...
Punkt montowania nie powinien zawierać plików - będą one niedostępne aż do odmontowania systemu plików (otwarte pliki będą nadal dostępne). Nie czyni to szkody, a czasami może być pożyteczne: załóżmy, że /tmp i /var/tmp są synonimami, niech /tmp będzie łączem symbolicznym do /var/tmp. Podczas startu systemu, przed zamontowaniem /var, katalog /var/tmp znajdujący się na głównym systemie plików jest używany. Montując /var przesłaniamy /var/tmp. Jeżeli /var/tmp nie istniałby na głównym systemie plików nie możnaby tworzyć plików tymczasowych przez zamontowaniem /var.
Jeżeli nie zamierzasz zmieniać systemu plików użyj opcji -r - w ten sposób zamontujesz go w trybie wyłącznie do odczytu. Jądro odrzuci wszelkie próby zapisu , oraz nie będzię aktualizować czasu dostępu do iwęzłów. Montowanie w trybie wyłącznie-do-odczytu jest niezbędne dla niezapisywalnych mediów (np. CD-ROM-ów).
Jako ćwiczenie podmontujemy nasz sieciowy dysk z: pod katalog /mnt/z.
Jeżeli katalog /mnt/z nie istnieje, należy go utworzyć.
Następnie wykonujemy polecenie podłączenia sieciowego systemu plików (zamiast "sXXXX", podajemy własną nazwę użytkownika i własny katalog):
[root@localhost root]# mkdir /mnt/z
[root@localhost root]# mount -t smbfs //z/sXXXX /mnt/z -o username=sXXXX,workgroup=pjwstk
Password:
[root@localhost root]# cd /mnt/z
[root@localhost z]# ls
//powinno wyświetlić wasze pliki na dysku z
|