2. LINUX - podstawowe komendy¶
Wskazówka
Wszystko co znajduje się za znakiem # traktowane jest jako komentarz
2.1. POMOC¶
- man
- wyświetla stronę pomocy dla polecenia
man ls
- info
- podobnie jak man wyświetla stronę pomocy dla polecenia
info ls
- - - help
- każdy program w systemie posiada podręczną pomoc wyświetlaną parametrem - - help lub -h
ls --help
2.2. LOGOWANIE¶
- logout
- wylogowanie użytkownika z terminala
- exit
- zakończenie procesu powłoki
- passwd
- zmiana hasła użytkownika
passwd twoj_login
- ^D (Ctrl-D)
- wysyła komendę EOF (end-of-file) do terminala, oznacza koniec wprowadzania danych. W powłoce bash powoduje zamknięcie terminala
- whoami
- wyświetla nazwę użytkownika na którym jesteśmy zalogowani
- id
- wyświetla nazwę, grupę oraz UID i GID zalogowanego użytkownika
- su
- (switch user) służy do przelogowywania się na innego użytkownika. Pozwala, w tym samym terminalu, zmienić uprawnienia do wykonywania komend chwilowo na innego użytkownika (zmienić aktualny UID i GID)
su kasia #zmienia użytkownika na kasię
su - kasia # zmienia użytkownika na kasię podmieniając wszystkie zmienne środowisko na nowego użytkownika
- finger
- wypisuje wszystkich użytkowników obecnie zalogowanych w danym systemie
finger @213K21 #wyświetla użytkowników zalogowanych na komputerze 213K21
finger kasia #wyświetla informacje o użytkowniku kasia
- w
- podobnie jak finger, wyświetla informacje na temat zalogowanych użytkowników i ich aktywne terminale
2.3. PODSTAWOWE KOMENDY¶
- cd
- (change directory) - zmienia aktualny katalog
cd public #przechodzimy do katalogu public
cd public/img #przechodzimy do katalogu img który jest w katalogu public
cd ~ #przechodzimy do katalogu domowego
cd .. #przechodzimy do katalogu nadrzędnego
cd /home/kasia/public #z dowolnego miejsca przechodzimy do katalogu public który znajduje się w katalogu domowym kasi
cd - #przechodzimy do poprzedniego katalogu
- pwd
- (print working directory) - wyświetla ścieżkę obecnego katalogu
- ls
- listuje katalog
ls plik1 plik2 plik3 #listuje tylko wymienione pliki
ls *.txt #listuje wszystkie pliki kończące się na .txt
ls katalog1 katalog2 #listuje wymienione katalogi
ls -l #lista szczegółowa
ls -a #listuje również ukryte pliki (czyli te których nazwa zaczyna się kropką)
ls -R #listuje katalogi rekursywnie (czyli wyświetla także zawartość podkatalogów)
ls -d #wyświetla tylko nazwy katalogów tak jak zwykłych plików (nie listuje ich zawartości)
- cat
- wypisuje wszystkie podane pliki na standardowe wyjście od pierwszej do ostatniej linii
cat plik #jeśli nie przekierujemy wyjścia przy pomocy > lub >> to wypisze plik na ekran
cat plik1 plik2 plik3 #wypisze po kolei zawartość wszystkich plików
- tac
- wypisuje wszystkie podane pliki na standardowe wyjście od ostatniej do pierwszej linii
tar plik1 plik2 #wypisze połączone oba pliki od ostatniej do pierwszej linii
- echo
- powtarza na standardowym wyjściu słowo podane w argumentach
echo "to jest przykladowy text" #wypisze to jest przykladowy text i zakończy znakiem nowej linii
echo -n "przyladowy text" #to samo co powyżej ale nie przejdzie do nowej linii po zakończeniu wyświetlania
echo $HOME #wypisuje zawartość zmiennej środowiskowej HOME
- wc
- liczy linie, słoa i znaki w pliku, gdy nie podamy argumentu, czyta ze standardowego wejścia
cat plik1 |wc -l #policzy wszystkie wiersze z pliku
wc plik #wypisze ilość linii, słów oraz znaków w pliku
wc -m #liczy tylko znaki (--chars)
wc -l #liczy tylko linie (--lines)
wc -w #liczy tylko słowa (--words)
- less
- umożliwia przeglądanie plików tekstowych
less plik #wyświetla zawartość pliku i pozwala przewijać strony (spacja - przewijanie, q - wyjście)
2.4. PLIKI I KATALOGI¶
- touch
- zmienia czas dostepu i modyfikacji pliku, jeśli plik nie istnieje - tworzy go
touch plik
- cp
- kopiuje pliki/katalogi
cp plik1 plik2 #skopiuje plik1 do plik2
cp plik ../katalog/nadrzedny #skopiuje plik do ../katalog/nadrzedny/plik
cp pliki.* podkatalog/ #skopiuje wszystkie pliki które zaczynają się od 'pliki' do podkatalogu
cp plik ~/public #skopiuje plik do katalogu domowego użytkownika i podkatalogu public
- mv
- przenosi pliki/katalogi, umożliwia zmianę ich nazwy
mv plik1 plik2 #zmienia nazwę pliku1 na plik2
mv plik3 ../katalog/nadrzedny #przenosi plik do wskazanego katalogu nadrzędnego
mv plik4 podkatalog/ #przenosi plik do wskazanego podkatalogu
mv plik5 ~/public #przenosi plik do katalogu domowego użytkownika i podkatalogu public
- rm
- kasuje pliki/katalogi
rm plik #kasuje plik
rm -r katalog #kasuje katalog z całą zawartością (--recursive)
rm -f plik #nie zadaje pytania czy na pewno chcesz skazować ten plik (--force)
- mkdir
- tworzy katalog
mkdir katalog
mkdir /home/public/moj_katalog
rmdir katalog
- chmod
- zmienia prawa dostępu do pliku/katalogu grupy użytkowników: u - user, g - group, o - other, a - all prawa dostępu: r - read, w - write, x - execute
chmod o+r plik #udziela innym prawo do odczytu
chmod a-x plik #zabiera wszystkim prawo do wykonywania pliku
chmod g=rw plik #ustawia prawa odczytu i zapisu dla swojej grupy
chmod -R go+w katalog #ustawia prawa wszystkich plikom i katalogom dla grupy i innych
- chown
- zmienia właściciela i grupę dla pliku/katalogu
chown student.studenci plik #ustawia właściciela na student, grupę na studenci
- locate
- wypisuje, gdzie ostatnio na tym urządzeniu był widziany plik o podanej nazwie (lub fragmencie nazwy)
- find
- przeszukuje katalogi w poszukiwaniu zadanego pliku
find . -name raport.txt #przeszukuje biezące podkatalogi w poszukiwaniu pliku o nazwie raport.txt
find /home/student/public -name "rap*xt" #przeszukuje wskazaną ścieżkę i podkatalogi i wyświetli wszystkie pliki pasujące do wzorca
2.5. PRZEKIEROWANIA¶
- >
- przekierowanie wyjścia z programu, jeśli plik istnieje to zostanie nadpisany
echo "ala ma kota" > text.txt #utworzy plik text.txt i wpisze do niego zawartość echo
ls -l > lista.txt #wpisze do pliku wynik wykonania polecenia
- >>
- jeśli plik istnieje to zapis zostanie dokonany na końcu wskazanego pliku, jeśli nie istnieje to zadziała takie samo jak komendy powyżej.
- | (pipe, rura)
- przekierowanie wyjścia jednego programu na wejście drugiego
cat plik.txt | wc -l #cat wypisuje plik.txt na wyjście które przekierowujemy na wejście programu liczącego wiersze
ls -l | lpr #wyświetlone pliki zostaną podane na wejście programu drukującego lpr
- <
- przekierowanie pliku na standardowe wyjście
mysql < baza.sql #podanie na wejście programu mysql zawartości np. kopii bazy danych baza.sql
cat baza.sql | mysql #zadziała tak samo jak komenda powyżej
- <<
- podaje na wejście danych do czasu wystąpienia słowa końca wprowadzania
plik_program << KONIEC
to jest pierwsza linia
to jest drugia linia
itd
KONIEC #podanie słowa ustawionego na początku jako kończące wprowadzanie danych spowoduje zakończenie wprowadzania
- 2>
- przekierowanie standardowego wyjścia dla błędów do pliku. Oprócz standardowego wyjścia i wejścia, każdy program ma jeszcze standardowe wyjście dla błędów które można przekierować.
find - name "plik.*" > znalezione.log 2> bledy.log #pliki znalezione przez find znajdą się w logu znalezione.log natomiast komunikaty o błędach będą przekierowane do pliku z błędami.
- &> lub >&
- przekierowanie obu wyjść do pliku
ls >& plik.log #standardowe wyjście i standardowe wyjście dla błędów jest przekierowanie do pliku
ls > plik.log 2>&1 #to samo dla powłoki bash
2.6. PROCESY¶
- ps
- wypisuje procesy uruchomione na urządzeniu
ps #wyświetla procesy uruchomione przez użytkownika
ps a #wyświetla również procesy innych użytkowników
ps -l, ps -f, ps -F #więcej informacji o procesach (od: long, full, extra full)
ps f #wyświetla drzewo zależności procesów (forest)
- bg
- uruchamia na nowo zatrzymane (CTRL-Z) zadanie ale w tle, tak jakby zostało uruchomione z & na końcu
bg NUMER #uruchamia zadanie o danym numerze na liście zatrzymanych zadań (jobs)
- fg
- uruchamia na nowo zatrzymane (CTRL-Z) zadanie na pierwszym planie
- jobs
- wyświetla listę zatrzymanych zadań
- kill
- zabija podany proces PID - to numer identyfikacyjny procesu (process id), można go odczytać np. poleceniem ps
kill PID #wysyła do procesu o numerze PID sygnał do przerwania procesu
kill -KILL PID #zabija proces bez pytania
- &
- modyfikator który pozwala uruchomić od razu proces w tle
mc & #uruchamiamy mc w tle, dzięki temu mamy wolną konsolę
- top
- interaktywne narzędzie do monitorowania procesów Sortuje procesy według wybranych kolumn, domyślne po kolumnie użycia procesora
2.7. EDYTORY¶
- vim
- zaawansowany edytor tekstowy w trybie tekstowym. VI iMproved - nowa wersja znanego edytora Vi
- nano
- edytor tekstu oparty na bibliotece ncurses
- mcedit
- edytor tekstowy wbudowany w Midnight Commander, posiada m.in. podświetlanie składni
2.8. SIEƶ
- ssh
- program do terminalowego łączenia się ze zdalnym komputerem przy pomocy szyfrowanego połączenia.
- scp
- program do kopiowania plików używając szyfrowanego połączenia SSH
- ping
- program służący do diagnozowania połączeń sieciowych. Pozwala na sprawdzenie, czy istnieje połączenie pomiędzy hostami testującym i testowanym
2.9. DYSKI¶
- df
- wypisuje rozmiary i ilość dostępnego miejsca na zamontowanych dyskach
df /dev/sda1 #ogranicza wyniki tylko do jednej partycji
df -h #wyświetla wyniki w wygodnych dla użytkownika jednostkach (human readable)
df -m #rozmiary w megabajtach
- du
- (disk usage) - podlicza rozmiary katalogów i plików zawartych w podanym katalogu
du #rozmiar obecnego dysku
du katalog #policz rozmiar podanego katalogu
du -s #wypisz tylko sumę a nie rozmiary poszczególnych podkatalogów
du -sm # to samo co powyżej w megabajtach
du -sm dir* | sort -n #posortuj wyniki od najmniejszego do największego z podanych katalogów
2.10. ŚRODOWISKO¶
- which
- wypisuje gdzie znajduje się plik z programem o podanej nazwie
whoich ls #zlokalizuje plik który zostanie uruchomiony po wywołaniu komendy ls
- env
- wypisuje aktualne wartości wszystkich zmiennych środowiskowych
- alias
- ustawia i wypisuje definicje skrótowych komend, które są obecnie ustawione w systemie
alias #wypisuje aliasy
alias ls='ls --color=auto' #definiuje nowy alias o nazwie ls i podanej treści
2.11. URZĄDZENIA SYSTEMOWE¶
- /dev/null
- tzn nicość, wszystko co zostanie wysłane do tego urządzani przepada
find - name "plik.*" 2>/dev/null #wszystkie komunikaty o błędach zostaną usunięte
- /dev/zero
- składnica zer. Jest to urządzenie do czytania, które nigdy się nie kończy. Można z niego wyciągnąć dowolną liczbę bajtów.
dd if=/dev/zero of=zera.txt count=1000 #wczyta tysiąc zer do pliku zera.txt
- /dev/random
- zbiór liczb losowych. Jest urządzeniem do czytania, które daje prawdziwe losowe dane.
- /dev/urandom
- zbór liczb pseudolosowych.
- /dev/stdin
- standardowe wejście aktualnego programu. Każdy proces który próbuje czytać z tego urządzenia dostanie zawartość własnego wejścia.
- /dev/stdout
- standardowe wyjście aktualnego programu. Gdy proces wypisze coś do pliku /dev/stdout, pojawi się to na jego standardowym wyjściu
- /dev/stderr
- standardowe wyjście dla błędów aktualnego programu. Gdy proces wypisze coś do pliku /dev/stderr, pojawi się to na jego standardowym wyjściu dla błędów.