Podstawowe komendy LINUX

Pomoc


man – wyświetla stronę manuala dla polecenia 'program’

  • man program

info – podobnie jak man, wyświetla stronę pomocy dla polecenia 'program’.

Gdy nie znajdzie strony info, szuka strony man i ja wyświetla.

  • info program, pinfo program

–help – każdy program ma opcję –help lub -h, która wyświetla krótką pomoc

  • jakis_program –help

Logowanie


logout – komenda służąca do wylogowania się z terminala


exit – komenda służąca do zakończenia procesu powłoki: tcsh, bash, itp.

Może być używana w skryptach. Pozwala też zwrócić kod wyjścia ze skryptu:

  • exit
  • exit 127

passwd – zmień hasło użytkownika


^D – (Ctrl-D) wysyła komunikat EOF (end-of-file) do terminala

Oznacza koniec wprowadzania danych. W powłoce 'bash’ skutkuje zazwyczaj zamknięciem terminala


whoami – wyświetla nazwę użytkownika


id – wyświetla obecną nazwę i grupę użytkownika oraz ich numery (UID i GID)


su – komenda do przelogowania się jako inny użytkownik (su, od 'switch user’)

Pozwala, w tym samym terminalu, zmienić uprawnienia do wykonywania komend chwilowo na innego użytkownika (zmienić aktualny UID i GID)

  • su username – zmień użytkownika na użytkownika o nazwie 'username’
  • su – username   – zmień użytkownika, wyczyść zmienne środowiskowe i ustaw nowe wartości zmiennych HOME, SHELL, USER, LOGNAME, PATH

finger – wypisuje wszystkich użytkowników obecnie zalogowanych na danej maszynie (i ich terminale)

  • finger
  • finger @komputer – użytkownicy zalogowani na komputerze o nazwie 'komputer;
  • finger username – wypisuje informacje o użytkowniku 'username’ i wszystkie terminale na których jest zalogowany
  • finger Marek – wypisuje informacje o wszystkich użytkownikach o imieniu 'marek’

w – podobnie jak finger wypisuje zalogowanych użytkowników i ich aktywne terminale


Podstawowe komendy


cd – zmienia aktualny katalog (od 'change directory’)

  • cd dirname – zmienia aktualny katalog na 'dirname’
  • cd dir1/dir2/dir3 – wchodzi do katalogu 'dir3′, który jest w katalogu 'dir2′, który jest w 'dir1′
  • cd   – z dowolnego miejsca, zmienia katalog na domowy
  • cd .. – przechodzi do katalogu o jeden wyższego w drzewie katalogów niż obecny
  • cd /home/dir – z dowolnego miejsca, przechodzi do katalogu zaczynając od początku drzewa: /
  • cd –  – przechodzi do poprzedniego katalogu

pwd – wypisuje ścieżkę obecnego katalogu (od 'print working directory’)


ls – listuje katalog

  • ls – listuje katalog . (ls .)
  • ls plik1 plik2 plik3 – listuje tylko wymienione pliki
  • ls *.txt – wypisze wszystkie pliki o nazwie kończącej się na ’.txt’
  • ls katalog1 katalog2 – listuje wymienione katalogi
  • ls -l – szczegółowa lista
  • ls -a – wypisuje również ukryte pliki (czyli te których nazwa zaczyna się kropką)
  • ls -R – listuje katalogi rekursywnie (czyli wyświetla również zawartość podkatalogów)
  • ls -d – wyświetla tylko nazwy katalogów, tak jak zwyczajnych plików, czyli nie listuje ich zawartości

cat – wypisuje wszystkie podane mu pliki na standardowe wyjście

  • cat plik – jeśli nie przekierujemy standardowego wyjścia do innego pliku (>, >>) lub programu (|), to wypisze plik na ekran
  • cat plik1 plik2 plik3 – wypisze po kolei zawartość wszystkich plików

tac – wypisuje wszystkie podane mu pliki na standardowe wyjście, ale w odwraca kolejność linii

  • tac plik1 plik2 – wypisze połączone oba pliki, od ostatniej do pierwszej linii

echo – powtarza na standardowym wyjściu słowa podane w argumencie

  • echo costam wypisz, czy echo „costam wypisz” – wypisze 'costam wypisz’ i zakończy znakiem nowej linii
  • echo -n „costam wypisz” – po wypisaniu argumentów, nie wypisze znaku nowej linii
  • echo $HOME – wypisuje zawartość zmiennej środowiskowej HOME

wc – liczy linie, słowa, i znaki w pliku

gdy nie podamy argumentu, czyta ze standardowego wejścia

  • cat plik1 plik2 | wc -l – policzy wszystkie linie z połączonych plików plik1 plik2
  • wc plik – wypisze linie słowa i znaki oraz nazwę pliku
  • wc -m – tylko znaki (lub –chars)
  • wc -l – tylko linie (lub –lines)
  • wc -w – tylko słowa (lib –words)

less – wygodne i szybkie przeglądanie plików tekstowych

  • less plik – wyświetla zawartość pliku i pozwala przewijać strony (q-wyjście)

Pliki i katalogi


touch – zmienia czas dostępu i modyfikacji pliku, lub jeśli plik nie istnieje – tworzy go.

  • touch plik

cp – kopiuje plik

  • cp plik1 plik2 – stworzy ./plik2 identyczny z plik1
  • cp plik3 ../katalog/jakis/ – stworzy plik ../katalog/jakis/plik3
  • cp pom.* podkatalog/ – skopiuje wszystkie pliki zaczynające się na 'pom.’ do ./podkatalog/
  • cp plik5 ~/katalog/jakis/pliczek – stworzy plik ~/katalog/jakis/pliczek

mv – przesuwa plik (tym samym służy również do zmiany nazwy)

  • mv plik1 plik2 – zmieni nazwę pliku z ./plik1 na plik2
  • mv plik3 ../katalog/jakis/ – przesunie plik do ../katalog/jakis/plik3
  • mv plik4 podkatalog/ – przesunie plik ./podkatalog/plik4
  • mv plik5 ~/katalog/jakis/pliczek – przesunie i zmieni nazwę ~/katalog/jakis/pliczek

rm – kasuje plik

  • rm plik –
  • rm -r katalog – kasuje wszystko w katalogu i wszystkie jego podkatalogi (–recursive)
  • rm -f plik – nie pyta się czy skasować (–force)

mkdir – tworzy katalog

  • mkdir moj_nowy_katalog
  • mkdir /home/users/ja/moj_nowy_katalog

rmdir – usuwa pusty katalog

  • rmdir katalog

chmod – zmienia prawa dostępu do pliku

grupy użytkowników: u – user, g – group, o – others, a – all

prawa dostępu: r – read, w – write, x – execute

  • chmod o+r plik – udziel innym prawo do czytania pliku
  • chmod a-x plik – zabierz wszystkim prawo do wykonywania pliku
  • chmod g=rw plik – ustaw prawa do czytania i pisania dla swojej grupy
  • chmod -R go+w katalog – ustawia prawa wszystkim plikom w katalogu i jego podkatalogach (–recursive)

locate – wypisuje gdzie ostatnio, na tym komputerze, był widziany plik o podanej nazwie (lub fragmencie nazwy)


locate raport.txt – locate pdf


find – przejrzyj katalog w poszukiwaniu danego pliku

  • find . -name raport.txt
  • find /home/user -name „rap*xt”

Przekierowania


> – przekierowanie wyjścia z programu do pliku.

Standardowym wyjściem każdego programu jest ekran (konsola tekstowa) a standardowym wejściem jest klawiatura. Można te wejścia i wyjścia przekierowywać dowolnie.

  • echo „ala ma kota” > plik.txt – wyjście z programu echo wpisze do pliku plik.txt
  • ls -l > lista.dat – wypisze listę plików do pliku lista.dat

>> – doklejenie wyjścia z programu na koniec pliku

  • echo „ala ma psa” >> plik.txt – dopisze „ala ma psa” na koniec pliku plik.txt
  • ls -l > lista.dat – wypisze listę plików do pliku lista.dat

| – 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 program liczący wiersze.
  • ls -l | lpr – program drukujący 'lpr’ dostanie na wejście listę plików
  • cat plik.txt | tac | grep „coś” | head > cosie.txt – wypisanie pliku.txt na program 'tac’, który odwraca kolejność wierszy, wynik tego przekierowany na 'grep’, który wypisze tylko linie zawierające słowo „coś”, wynik tego wysłany na program 'head’, który pośle dalej tylko pierwsze 10 wierszy na wyjście, które przekierowaliśmy do pliku cosie.txt.

>! – przekierowanie do pliku. Działa podobnie jak >, ale kontynuuje nawet gdy plik już istnienie. Działa w „tcsh”.

  • echo „ala ma kota” > plik.txt – gdy plik.txt istnieje, ta komenda może się nie powieść.
  • echo „ala ma kota” >! plik.txt – konieczne będzie użycie wykrzyknika >!
  • echo „ala ma kota” >| plik.txt – to samo tylko w 'bash’

< – przekierowanie pliku jako standardowego wejścia.

  • szachy < ruchy.txt – jeśli program szachy przyjmuje ruchy na standardowe wejście, możemy te ruchy spisać do pliku i podać programowi w ten sposób
  • cat ruchy.txt | szachy – to samo można też zrobić tak

<< – podanie na wejście następujących później linii.

  • szachy << DO_KONCA
    E2-B4
    H5-A1
    C6-F5
    DO_KONCA
     – podanie tzw. dokumentu w miejscu. Wszystkie następujące linie między etykietami 'DO_KONCA’ będą podane na standardowe wejście programu 'szachy’.
  • echo „E2-B4
    H5-A1
    C6-F5″ | szachy
     – to samo można też zrobić tak
  • echo -e „E2-B4\nH5-A1\nC6-F5” | szachy – to samo można też zrobić tak

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. Je też możemy przekierowywać, na przykład w inne miejsce niż wyjście zwykłe. Działa w „bash”, nie w „tcsh”.

  • find -name „plik.*” >znalezione.log 2>bledy.log – pliki znalezione przez 'find’ wylądują w znalezione.log, komunikaty o błędach nie zaciemnią nam wyniku i wpiszą się do innego pliku – bledy.log
  • cp -r dane/ backup/ 2>error.log – jeśli podczas kopiowania całego katalogu wystąpią błędy, wszystkie komunikaty zostaną wpisane do error.log
  • ( ls > plik.log ) >& plik.err – w 'tcsh’ nie można przekierować samego wyjścia dla błędów, stąd konieczność takiej konstrukcji.

&> lub >& – przekierowanie obu wyjść do pliku.

  • ls >& plik.log – standardowe wyjście i standardowe wyjście dla błędów jest przekierowane do plik.log
  • ls >plik.log 2>&1 – to samo, ale działa tylko w 'bash’. Przekierowanie wyjścia, a potem skopiowanie go na wyjście dla błędów.
  • ls &> plik.log – to samo co >& ale w notacji bardziej właściwej dla 'bash’.

man bash

  • polecam aby uzyskać więcej informacji

man tcsh

  • polecam aby uzyskać więcej informacji

Procesy


ps – wypisuje procesy uruchomione na komputerze

  • ps – wyświetla procesy uruchomione przez użytkownika
  • ps a – wyświetl 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 (od: forest)
  • ps –help – 😛

bg – uruchamia na nowo zatrzymane (Ctrl-Z) zadanie, ale w tle, tak jakby zostało ono uruchomione z &

  • bg – uruchamia ostatnio zatrzymane zadanie
  • bg NUMER – uruchamia zadanie o danym numerze na liście zatrzymanych zadań (jobs)

fg – uruchamia na nowo zatrzymane (Ctrl-Z) zadanie, na pierwszym planie

  • fg – uruchamia ostatnio zatrzymane zadanie
  • fg NUMER – uruchamia zadanie o danym numerze na liście zatrzymanych zadań (jobs)

jobs – wyświetla listę zatrzymanych zadań


kill – zabija podany proces

PID – jest to numer identyfikacyjny procesu (process id), można go odczytać np. używając polecenia 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.

  • xcalc & – uruchamia program xcalc w tle, dzięki temu mamy wolną konsole

top – interaktywne narzędzie do monitorowania procesów

Sortuje procesy po ich bieżącym użyciu procesora, po użyciu pamięci, itp.


Edytory


vim – zaawansowany edytor tekstowy w trybie tekstowym

Vi iMproved – nowa wersja znanego edytora Vi. Posiada

  • podświetlanie składni dla wielu języków programowania
  • możliwość edycji kilku plików na raz
  • bogatego helpa
  • bardzo zaawansowane funkcje edycji

gvim – vim w trybie graficznym


emacs – zaawansowany edytor tekstowy w trybie graficznym

Emacs podobnie jak Vim jest wszechstronnym edytorem obsługującym wiele języków i posiadającym bogate funkcje.


uemacs – edytor tekstowy w trybie tekstowym

Micro Emacs jest tekstową wersją Emacsa


joe – prosty edytor tekstowy

Joe’s Own Editor. Nadaje się do pisania prostych dokumentów


mcedit – edytor tekstowy w trybie tekstowym

mcedit jest wbudowanym w Midnight Commandera edytorem.

Posiada m.in. podświetlanie składni.


Sieć


pine – program do obsługi poczty

Bardzo dobry, szybki i wygodny program do sprawdzania i wysyłania poczty elektronicznej. Jego największą zaletą jest to, że działa w trybie tekstowym, więc można uruchomić go na zdalnym terminalu.


ssh – program do zdalnego logowania używając szyfrowanego połączenia

Najważniejszy sieciowy program. Umożliwia logowanie się na dowolny komputer na świecie, przy czym połączenie jest bezpieczne dzięki algorytmom szyfrującym opartym na kluczach RSA.

  • ssh anatres – zaloguje mnie na 'antares’a
  • ssh ja@anatres – zaloguje mnie jako użytkownika 'ja’ na 'antares’a
  • ssh ja@antares komenda – zaloguje mnie tylko by wykonać na 'antares’ie komendę

scp – program do kopiowania plików używając szyfrowanego połączenia SSH

scp łączy się z podanym serwerem i kopiuje podane pliki między oboma komputerami

’scp’do połączenia używa programu 'ssh’

  • scp plik ja@antares:~/moje_pliki/ – skopiuje plik do mojego katalogu na antaresie ~/moje_pliki/
  • scp ja@antares:/var/log/plik . – do bieżącego katalogu skopiuje podany plik z antaresa

rlogin – prosty protokół zdalnego logowania

  • rlogin antares – zaloguje mnie na 'antares’a

ping – program diagnostyczny sprawdzający czy istnieje połączenie sieciowe z danym komputerem.

  • ping antares.astrouw.edu.pl – sprawdzamy czy antares odpowiada (i jak szybko)

Dyski


df – wypisuje rozmiary i ilość dostępnego miejsca na zamontowanych dyskach (w kilobajtach i w procentach)

  • df
  • df /dev/sda1 – ogranicz wyniki tylko do jednej partycji
  • df -h – wyświetl rozmiary w wygodnych dla użytkownika jednostkach (human readable)
  • df -m – rozmiary w megabajtach

du – policz rozmiary katalogów i plików zawartych w podanym katalogu

  • du – rozmiar obecnego katalogu
  • du katalog – policz rozmiar podanego katalogu
  • du -s – wypisz tylko sumę, a nie rozmiary poszczególnych podkatalogów
  • du -sm – wypisz tylko sumę dla każdego katalogu i podaj rozmiar w megabajtach
  • du -sm dir* | sort -n – posortuj wyniki od najmniejszego do największego z podanych katalogów

Środowisko


which – wypisuje gdzie znajduje się plik z programem o podanej nazwie

  • which ls – zlokalizuj 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 (’aliasów’), które są obecnie ustawione w środowisku

  • alias – wypisuje aliasy
  • alias ls 'ls –color=auto’ – definiuje nowy alias o nazwie 'ls’ i podanej treści


Urządzenia systemowe


/dev/null – studnia bez dna. Urządzenie do którego możemy pisać do woli, a wszystko co wpiszemy przepada.

  • find -name „plik.*” 2>/dev/null – jeśli wsród wyników szukania nie chcemy oglądać komunikatów o błędach
  • latex plik.tex >/dev/null – program wykona wszystkie czynności, ale nie zaśmieci nam konsoli logami
  • licz >/dev/null 2>/dev/null & – jeśli chcemy puścić program w tle, a potem się wylogować (zamknąć konsole), musimy przekierować wyjścia z programu tak, aby nie próbował pisać do nieistniejącego już urządzenia. Urządzenie 'null’ jest zawsze.

/dev/zero – składnica zer. Jest to urządzenie do czytania, które nigdy się nie kończy. Można z niego wczytać dowolną liczbę bajtów, a wszystkie będą równe zero.

  • dd if=/dev/zero of=zera.txt count=1000 – wczyta tysiąc zer do pliku 'zera.txt’.
  • cat /dev/zero – radzę nie próbować
  • head -c 10 /dev/zero > zera.txt – wypisze pierwsze 10 bajtów z '/dev/zero’ do pliku 'zera.txt’. W wyniku mamy plik z dziesięcioma zerami.

/dev/random – zbiór liczb losowych. Jest to urządzenie do czytania, które daje prawdziwie losowe dane. Korzysta przy tym z systemowego zbiornika entropii, który jest uzupełniany dzięki różnym przejawom aktywności użytkownika. Zbiór ten może się wyczerpać, dlatego nie należy z niego czytać wielu liczb na raz.

  • od -t x1 -N 100 /dev/random – wypisze pierwsze 100 losowych bajtów z urządzenia /dev/random na ekran (w systemie szesnastkowym)

/dev/urandom – zbiór liczba pseudolosowych. Jest to urządzenie do czytania, które podaje liczby pseudolosowe. Ma ich do dyspozycji dowolnie dużo.

  • od -t d1 -N 100 /dev/urandom – wypisze pierwsze 100 bajtów z urządzenia /dev/urandom na ekran (w systemie dziesiętnym)

/dev/stdin – standardowe wejście aktualnego procesu. Każdy proces który próbuje czytać z tego urządzenia, dostanie zawartość własnego wejścia.

  • echo „ma kota” | cat ala.txt /dev/stdin – program cat połączy zawartość pliku ala.txt z tym co dostał na standardowe wejście

/dev/stdout – standardowe wyjście aktualnego programu. Gdy proces wypisze coś do pliku /dev/stdout, pojawi się to na jego standardowym wyjściu.

  • a2ps –output plik.ps plik.txt – program a2ps stworzy dokument postscript w pliku plik.ps
  • a2ps –output /dev/stdout plik.txt – program a2ps wypisze dokument na ekran (jego standardowe wyjście)

/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.

W zależności od dystrybucji linuxa poleceniem

apt-get update – aktualizuje się repozytorium

później za pomocą komend apt-get –help (dostęp do pomocy)

$apt-get install mc – komenda instaluje Midnight Commander

koniec! 🙂