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.