Ważne polecenia i programy
polecenie | opis |
---|---|
cd |
zmiana katalogu |
pwd |
wypisanie katalogu roboczego (bieżącego) |
mkdir |
tworzenie nowego katalogu |
cat |
wypisanie zawartości pliku |
man |
podręcznik systemowy |
less |
oglądanie plików |
Podstawy nawigacji w less (a także w man):
klawisz | działanie |
---|---|
q | wyjście |
/słowo<enter> |
wyszukiwanie |
n | wyszukaj następne wystąpienie |
N | wyszukaj poprzednie |
G | przewiń do końca |
gg | przewiń do początku |
h | przewiń w lewo |
j | przewiń w dół |
k | przewiń w górę |
l | przewiń w prawo |
13g | przejdź do linii 13 |
<spacja> |
przewiń stronę w dół |
C-u |
przewiń pół strony w górę |
C-d |
przewiń pół strony w dół |
Podstawowe użycie podręcznika systemowego:
$ man komenda
wyświetla informacje na temat polecenia komenda
.
Proszę zwrócić uwagę na często stosowaną konwencję przy podawaniu poleceń do wpisania w terminalu:
$ ls
oznacza żeby wykonać polecenie ls. Symbol dolara mówi tylko, że to polecenie powinien wykonać zwykły, nieuprzywilejowany użytkownik, nie należy go przepisywać. Dla odróżnienia, gdyby polecenie wymagało uprawnień administratora, zapisane byłoby ze znakiem # z przodu:
# shutdown -h now
Konwencja ta wynika z typowego zakończenia zachęty w interpreterze poleceń sh
i pochodnych.
Przekierowania
$ wywolanie > wyjscie
$ wywolanie >> wyjscie
$ wywolanie < wejscie
Odpowiednio: przekierowanie standardowego wyjścia do pliku wyjscie, zastępując poprzednią zawartość, przekierowanie standardowego wyjścia do pliku wyjscie, dopisując za istniejącą zawartością, przekierowanie standardowego wejścia z pliku wejscie.
deskryptor | strumień |
---|---|
0 | stdin |
1 | stdout |
2 | stderr |
Przekierowanie strumienia o danym numerze:
$ wywolanie 2> plik
Przekierowanie między deskryptorami (strumieniami).
Przypomnienie: 1>&2
przekierowuje dane ze strumienia 1 do 2.
We wszystkich sytuacjach, gdy trzeba sprawdzić zawartość jakiegoś pliku, można użyć cat
lub less
.
Przypomnienie: man ls
wyświetli podręcznik systemowy dla ls
.
ls
– wyświetlanie listy plików
Wywołać:
$ ls
zmienić katalog na /etc
i ponownie wywołać ls
Co drukuje ls bez żadnych parametrów?
Wywołać ls
z jednym zwykłym plikiem jako parametrem.
Wywołać ls
z dwoma zwykłymi plikami jako parametrami.
(Zwykły plik, czyli plik nie będący katalogiem ani plikiem specjalnym, na przykład /etc/passwd /etc/group)__
Wywołać ls
z katalogiem jako parametrem, wywołać ls z dwoma katalogami (Można użyć np katalogu domowego) i katalogu ~/Desktop
.
Wywołać ls
z kilkoma parametrami, gdzie część to pliki, a część katalogi.
Zaobserwować: Jakie są różnice gdy wywołaniem z plikiem i katalogiem jako parametrem? Co się dzieje, gdy podamy kilka plików i katalogów jako parametry? (5p)
ls
– użycie opcji. W tym ćwiczeniu należy znaleźć w podręczniku systemowym informacje o potrzebnych opcjach. Spróbować zarówno długiego (rozszerzenie GNU), jak i krótkiego (POSIX) wariantu opcji.
Wyświetlić listę wszystkich plików w katalogu domowym, uwzględniając pliki ukryte.
Zmienić zachowanie ls tak, aby przy podaniu katalogu jako parametr zachowanie było takie samo jak w przypadku zwykłych plików
Posortować wyświetlaną listę plików według daty modyfikacji
Zobaczyć listę ze szczegółami – opcja -l
– przeczytać jakie informacje się tam znajdują.
Wyświetlić listę ze szczegółami, zawierającą pliki ukryte i posortowaną wg. czasów. Zaobserwować, że krótkie opcje można łączyć pod jednym - (polecenie -xyz) lub pisać oddzielnie (polecenie -x -y -z).
Utworzyć katalog lab2 i wejść do niego, aby tam tworzyć wszystkie pliki powstałe w ramach dalszych ćwiczeń:
$ mkdir lab2
$ cd lab2
sort i stdin, stdout, stderr Uruchomić sort bez parametrów, wpisać kilka linii tekstu, na koniec podać nową linię (enter) i koniec pliku (Ctrl-D
) Zaobserwować efekt. W tym przypadku standardowym wejściem był tekst wpisany z klawiatury, a standardowym wyjściem drukowanie tekstu w terminalu.
Uruchomić sort z przekierowaniem standardowego wyjścia do pliku wyjscie.txt:
$ sort > wyjscie.txt
Powtórzyć wpisywanie sekwencji na stdin. Obejrzeć powstały plik z użyciem programu less:
$ less wyjscie.txt
Posortować odwrotnie plik wyjscie.txt
:
$ sort -r < wyjscie.txt
Sort nie będzie czytał standardowego wejścia, gdy podamy mu plik lub pliki do posortowania jako argument:
$ sort -r wyjscie.txt
Przekierowania można łączyć. Skopiować plik wyjscie.txt
do wejscie.txt
:
$ cp wyjscie.txt wejscie.txt
Można przekierować więcej niż jeden strumień na raz. Wywołać sort z przekierowaniem wejścia z pliku wejscie.txt
i wyjścia do wyjscie2.txt
na raz. Obejrzeć efekt programem less.
Co się stanie, gdy przekierujemy wejście i wyjście z/do tego samego pliku? (7p)
Sprawdzić co się stanie, gdy dwa razy wywołamy program z przekierowaniem wyjścia do tego samego pliku. Spróbować w tym celu przekierowania ( >
) i dopisywania ( >>
). Jakie są różnice między >
a >>
?
stdout
, stderr
Wywołać
$ sort /etc/passwd > plik_wyjsciowy.txt
z przekierowaniem wyjścia do pliku. Następnie umyślnie podać nazwę nieistniejącego pliku, czy cały czas wszystko drukowane przez program jest przekierowane do pliku? A co się stanie po przekierowaniu stderr?
Przekierowanie wyjścia błędów na standardowe wyjście:
$ ls /etc/passwd /etc/group /etc/abcdef >plik 2>&1 # Wszystko trafia do jednego pliku
Sprawdzić, czy kolejność przekierowań 2>&1 i >plik ma znaczenie.
Jaki jest skutek polecenia
$ ls /etc/passwd /etc/group /etc/abcdef >plik1 2>&1 >plik2
? (jakiś chętny do wyjaśnienia całej grupie)?
pipe |
$ ls --help
Drukuje zbyt długą informację, by mieściła się na jednym ekranie.
Spróbować
$ ls --help | less
Na chwilę zapomnijmy o tym, że ls ma opcje pozwalające kontrolować sortowanie. Cały czas możemy posortować wynik ls z użyciem sort. Na przykład w odwrotnej kolejności:
$ ls /etc | sort -r
Wynik nie mieści się na ekranie?
$ ls /etc | sort -r | less
Wywołać:
$ ls /etc/passwd /etc/group /etc/abdefg | less
Spróbować przewinąć wynik – co trafiło, a co nie trafiło do less? Dlaczego? (Jakiś chętny to wyjaśnienia wszystkim?) Spróbować użyć |&
zamiast |
|, filtry Użyć podręcznika systemowego (manual), aby zapoznać się z podanymi poleceniami.
Używając cut, sort, head wypisać 4 pierwsze alfabetycznie słowa z pierwszej kolumny pliku /etc/passwd (najpierw sprawdzić jaki jest separator kolumn w /etc/passwd) (Jakiś chętny to wyjaśnienia wszystkim?)
Używając cut i sort stworzyć posortowaną listę nazw z pierwszej kolumny plików /etc/passwd i /etc/group (obu plików połączonych). Wynik powinien znaleźć się w pliku moja_lista.txt Dodatkowo: usunąć z pliku wynikowego duplikaty nazw (Jakiś chętny to wyjaśnienia wszystkim?)
Używając head i tail wypisać linie o numerach 4,5,6,7 z /etc/passwd (Jakiś chętny to wyjaśnienia wszystkim?)
Program dmesg wyświetla komunikaty jądra systemu Linux, na przykład te dotyczące sprzętu. Wypisać na ekran komunikaty zawierające ciąg usb. Wypisać ostatnie 10 linii komunikatów. (Jakiś chętny to wyjaśnienia wszystkim?) Użyć grep
i tail
.