Skip to content

Instantly share code, notes, and snippets.

@cytrowski
Forked from chajr/linux_bash_commands.md
Created November 22, 2017 18:37
Show Gist options
  • Save cytrowski/3d4539808c75ff8a3c523ee75a35a6ea to your computer and use it in GitHub Desktop.
Save cytrowski/3d4539808c75ff8a3c523ee75a35a6ea to your computer and use it in GitHub Desktop.

Polecenia konsoli Linux

Operacje na plikach i katalogach

  • pwd - aktualny katalog
  • ls -la - listuje wszystkie dostępne pliki
  • ls -lat - listuje wszystkie dostępne pliki posortowane według czasu modyfikacji
  • cp -r {nazwa pliku/katalogu} {miejsce docelowe} - kopiuje plik lub cały katalog z zawartością we wskazane miejsce
  • mv {nazwa pliku/katalogu} {miejsce docelowe} - przenosi plik lub cały katalog z zawartością we wskazane miejsce (jeśli lokalizacja pliku docelowego jest taka sama jak pliku do przeniesienia, zmienia nazwę)
  • du -sh - pokazuje zajętość całego katalogu
  • du -sh * - pokazuje rozmiar poszczególnych plików i katalogów
  • du -sh `ls -A` - pokazuje rozmiar wszystkich (w tym ukrytych) plików i katalogów (można też użyć $(ls -A))
  • du -hs .[^.]* - pokazuje rozmiar wszystkich ukrytych plików
  • du -ah - pokazuje zajętość wszystkich plków w katalogu
  • ls -ld .* - wyświetla wszystkie ukryte pliki i katalogi
  • df -h - pokazuje zajętość wszystkich dysków
  • df -a - pokazuje zajętość wszystkich urządzeń
  • df -hT - pokazuje zajętość punktu montowania wraz z systememe plików
  • chmod 0755 {nazwa pliku/katalogu} - zmiana praw dostępu (4-read, 2-write, 1-execute)
  • chmod ugo-x {nazwa pliku/katalogu} - odbiera prawa wykonywania wszystkim użytkownikom (user, group, other)
  • chown user:group {nazwa pliku/katalogu} - właściciela i grupy
  • ls | wc -l - liczba plików i katalogów w aktualnym katalogu
  • tree - drzewo katalogów i plików
  • tree -ugphD - drzewo katalogów i plików wraz z informacjami o plikach i katalogach
  • find -iname {nazwa pliku} - szuka podanego pliku bez uwzględnienia wielkości liter
  • find -size +100M - szuka plików powyżej 100mb
  • find / {pattern} - wyszukuja podanego wzorca w głównym katalogu i podkakatalogach
  • find . -maxdepth 1 -name '*.json' -delete - usuwa dużą ilość plików z rozszerzeniem *.json
  • cksum {nazwa pliku} - pokazuje sumę kontrolną CRC i rozmiar pliku
  • ln -s {cel} {nazwa} - tworzy link do pliku lub katalogu
  • "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" - zwraca ścierzkę w której zanjduje się uruchomiony skrypt
  • ls -R | sort -R | tail -1 - wybiera losowy katalog lub plik z drzewa katalogu
  • *rename -v 's/.pdf$/.doc/' .pdf - zmienia nazwwy wszystkich plików *.pdf
  • (cd /{some}/{dir}/ && ls -l) - zmienia katalog, wykonuje komendę i powraca do aktualnego katalogu
  • chgrp - zmienia grupę dla plików/katalogów

Pliki

  • cat {plik 1} {plik 2} {plik n} >> {plik docelowy} - dodaje content z plików 1, 2 i 3 do pliku docelowego
  • cat {prefix} > {plik docelowy}* - łączy pliki z podanym prefixem w jeden
  • split -v 5M {plik} {prefix} - dzieli podany plik na części po 5MB i dodaje prefix
  • nl {nazwa pliku} - pokazuje zawartość pliku wraz numerami linii
  • dd - kopiowanie pliku wraz z konwersją typu (dd if=/home/user/Downloads/debian.iso of=/dev/sdb1 bs=512M; sync)
  • rm {nazwa pliku} - kasuje plik
  • touch {nazwa pliku} - tworzy pusty plik
  • ls -la | grep ^- | wc -l - pokazuje liczbę plików w katalogu
  • mv `ls | head -n 2000` test/ - przenosi 2000 plików do katalogu test
  • less - wyświetla zawartość pliku
  • less {plik} | grep "wyrażenie regularne" - szuka w wybranym pliku podanej wartości
  • tail -f {nazwa pliku} - pokazuje zmiany na żywo w podanym pliku
  • tail -2 {plik} - wyświetla 2 ostatnie linie w pliku
  • stat {nawza pliku} - informacje o pliku
  • file {nazwa pliku} - pokazuje typ pliku
  • head -2 {plik} - pokazuje 2 wiersze z podanego pliku
  • head -c5 {plik} - wyświetli 5 pierwszych liter
  • md5sum {plik} - oblicza sumę md5
  • sha1sum {plik} oblicza sumę sha1
  • wc -l {plik} - liczba linii w pliku
  • find . -type f | wc -l - liczba samych plików w katalogu
  • grep -ri "{pattern}" /jakis/katalog/* - wyszukuje podany pattern we wszystkich plikach w katalogu i podkatalogach, bez względu na wielkość liter
  • grep –color -rw "{pattern}" . - szuka tylko całych słów, zwraca pokolorowany otput
  • grep -c "{pattern}" . - zwraca ilość znalezionych wzorców w plikach
  • diff {plik1} {plik2} - porównuje ze sobą 2 pliki
  • find {pattern} | xargs rm - szuka plików i kasuje wszystkie znalezione
  • ls -laR | grep ^- | wc -l - zlicza ilość plików w katalogu i podkatalogach
  • find . -type f | sort -R | tail -1 - wyszukuje losowy plik
  • locate {file} - znajduje wszystkie pliki o podanej nazwie
  • cmp {plik1} {plik2} - pokazuje różnicę między plikami
  • cmp --verbose {pliki} - pokazuje kody różnic (bajt różnicy, kod znaku 1, kod znaku 2)

Katalogi

  • rm -fr {nazwa katalogu lub pliku} - umożliwia kasowanie katalogu i zawartości wraz z wymuszeniem
  • mkdir {nazwa pliku} - tworzy katalog (mkdir {katalog} && cd {katalog} - po utworzeniu od razu otwiera katalog)
  • touch {nazwa pliku} - tworzy pusty plik
  • ls -la | grep ^- | wc -l - pokazuje liczbę plików w katalogu
  • mv `ls | head -n 2000` test/
  • du -sckx * | sort -nr - sortuje katalogi według rozmiaru
  • cd - - powraca do poprzedniego katalogu (przed wykonaniem polecenia cd {katalog})
  • watch "ls -lrt | tail -10" - obserwowanie zmian na katalogu
  • mkdir -p ~/katalog/{bin,src,pkg} - tworzy katalog i w nim bin, src, pkg na tym samym poziomie

Archiwa

  • tar -xzvf {nazwa pliku} - rozpakowuje archiwum *.tar.gz
  • tar -vzcf {nazwa archiwum} {nazwa pliku/katalogu} - archiwizuje wskazany plik/katalog do podanego pliku jako tar.gz
  • gzip {nazwa} - kompresuje pliki jako .gz
  • gunzip {nazwa} - rozpakowuje archiwum *.gz
  • zip -r0 {plik.zip} {katalog} - zapisuje zawartość katalogu do pliku zip bez kompresji

Użytkownicy

  • last - pokazuje listę ostatnich logowań użytkowników (-n {liczba})
  • whoami - podaje nazwę aktualnego użytkownika
  • users - zalogowani użytkownicy
  • id - pokazuje id użytkowika, grupy, oraz do jakich grup należy\
  • sudo su - {nazwa użytkownika} - przełącza na konto innego użytkownika
  • groups - pokazuje grupy do których należy użytkownik
  • w - pokazuje kto jest zalogowany i co robi
  • who - pokazuje kto jest zalogowany
  • wall {wiadomość} - wysyłą wiadomość do użytkowników
  • mesg - status wyświetlania wiadomości w terminalu (mesg y - włącza, mesg n - wyłącza)
  • write {użytkownik} - włącza tryb pisania wiadomości do użytkownika
  • passwd - zmiana własnego hasła
  • adduser {user} {grupa} - dodaje nowego użytkownika
  • userdel {nazwa} - usuwa użytkownika
  • addgroup {nazwa} - dodaje grupę
  • groupdel {nazwa} - usuwa grupę
  • users | wc -w - liczba zalogowanych użytowników
  • sudo runuser -l {nazwa użytkownika} -c '{polecenie}' - uruchamia poprzez innego użytkownika {polecenie}
  • sudo su - {nazwa użytkownika} -c "{polecenie}" - jak powyżej
  • usermod - modyfikuje ustawienia użytkownika
  • sudo usermod -a -G {grupa} {user} - dodaje usera do grupy
  • sudo gpasswd -a {user} {grupa} - j/w

Data i czas

  • cal - pokazuje kalendarz aktualnego miesiąca
  • date - pokazuje aktualną datę
  • date +"%T : %Y" - pokazuje datę w formacie HH:MM:SS : YYYY
  • sleep {sec} && {polecenie} - uruchamia polecenie po określonej liczbie sekund

System

  • uname -a - pokazuje informację o systemie Linux
  • reboot - urucahmia ponownie
  • shutdown -h {now | liczba minut | godzina:minuta} - zamyka system natychmiast lub po podanej liczbie minut, lub czasie
  • init 0 - zabija cały system
  • uptime -p && uptime -s - pokazuje czas pracy systemu, oraz datę uruchomienia
  • getconf LONG_BIT lub arch pokazuje architekturę systemu
  • dstat - listat statystyk systemowych
  • free pokazuje ilość dostępnej pamięci
  • hostname - pokazuje nazwę komputera w sieci
  • who -r - pokazuje czas uruchomienia systemu ortaz jego poziom
  • runlevel - pokazuje poziom na którym zainicjalizowano system
  • top -bn1 | grep -i "%Cpu" | head -1 | sed "s/., ([0-9],.)% (id|be).*/\1/;s/,/./" | awk '{print 100 - $1}' - pokazuje zużycie procesora
  • free | grep Mem | awk '{print $4/$2 * 100.0}' - ilość wolnej pamięci w procentach
  • free | grep Mem | awk '{print $3/$2 * 100.0}' - ilość zajętej pamięci w procentach
  • iostat -d /dev/sda | sed -n "4p" - pokazuje zużycie dysku (/dev/sda)
  • cat /proc/loadavg | awk '{print $1,$2,$3}' - pokazuje load systemowy
  • printenv - pokazuje wszystkie zmienne środowiskowe i ich wartości
  • sudo dmidecode -t system - informacje o systemie (w tym o urządzeniu)

Urządzenia

  • mount {urządzenie} {ścierzka docelowa} - montuje urządzenie
  • unmount {urządzenie} - odmontowuje urządzenie
  • mount -l - lista podłączonych urządzeń
  • lsblk - lista urządzeń blokowych ( -l)
  • sudo mount -o loop {obraz.iso} {/katalog} - montuje obraz.iso do katalogu /katalog
  • blkid - id urządzeń blokowych
  • sudo fsck -Cyv {/dev/sdx} - skanuje i naprawia system plików na dysku
  • lsusb - lista urządzeń usb
  • sudo fdisk -l - pokazuje informacje o systemie plików
  • sudo lshw - pełna lista urządzeń systemowych
  • sudo lshw -short - jak wyżej, wersja skrócona (-html zapisuje w wersji html)
  • lscpu - szczegółowe informacje na temat procesora
  • lsblk - szczegółowe informacje na temat urządzeń blokowych
  • lspci - urządzenia podpięte pod szynę PCI
  • watch "dmesg | tail -20" - podgląd na żywo logów systemowych

Procesy

  • pstree - pokazuje drzewo procesów
  • kill -9 {numer procesu} - zabija wskazany proces (kill)
  • kill -3 {numer procesu} - zakończenie procesu (quit)
  • kill -15 {numer procesu} - zakończenie procesu (terminate)
  • killall {nazwa} - zabija wszystkie procesy o podanej nazwie
  • ps aux | grep {nazwa} - szuka procesów o podanym wyrażeniu
  • ps -LF -u {nazwa użytkownika} - pokazuje procesy użytkownika
  • pidof {nazwa} - znajduje id podanego procesu
  • sudo update-rc.d {skrypt w init.d} defaults - dodaje skrypt do autostartu na domyślnym poziomie
  • sudo lsof - pokazuje otwarte pliki i procesy ich używające
  • ps -Af --no-headers | wc -l - liczba uruchomionych procesów
  • ps u - pokazuje polecenia uruchomione w konsolach
  • ps aux | head -1 && ps aux | grep {program} - szuka podanego programu, wraz z opisem kolumn z wyniku
  • nohup ./{nazwa}.sh > {nazwa}.log & - uruchamia proces ze skryptu z zapisem do logu, tak aby działał dalej po wyjściu z konsoli
  • bg - pokazuje procesy w tle
  • fg {proces} - przenosi podany proces w tło
  • pidof {program} - zwraca id procesu o podanej nazwie
  • watch -n 1 -d "{polecenie}" - uruchamia polecenie i obserwóje wynik co sekundę z zaznaczeniem zmian

Internet i sieć

  • curl ifconfig.me - pokazuje zewnętrzne ip komputera
  • wget http://ipinfo.io/ip -qO - - pokazuje zewnętrzne ip komputera
  • ifconfig - pokazuje ustawienia sieci
  • ifconfig {nazwa sieci} - pokazuje informacje o wskazanej sieci
  • ifconfig {nazwa sieci} | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}' - zwraca adres lokalny komputera
  • ifconfig {nazwa sieci} {down|up} - wyłącza lub włącza sieć
  • ssh-keygen - generuje nowy klucz ssh
  • mtr {ip lub domena} - połączenie ping i traceroute
  • scp -r {źródło} {cel} - kopiuje plik poprzes ssh ([email protected]:/some/path/file) razem z podkatalogami
  • curl ipinfo.io - bardziej szczegółowe informacje o komputerze
  • netstat - wyświetla listę aktywnych połączeń TCP i UDP
  • netstat -lntu - lista otwartych portów
  • netstat -at - lista portów TCP
  • sudo lsof -i -nP - pokazuje używane porty oraz powiązane z nimi procesy
  • iostat -d /dev/sda | sed -n "4p" - pokazuje zużycie sieci
  • ip route get 8.8.8.8 | awk '{print $NF; exit}' - pokazuje ip komputera wewnątrz sieci
  • nmap {hostname} - pokazuje otwarte porty i serwisy na podanym hoście
  • hostname -I - pokazuje lokalne ip komputera
  • cat /etc/services | less - podgląd wszystkich portów i programów je wykożystujących
  • tcpdump -i any port {port} - pokazuje całą komunikację na wskazanym porcie
  • nmap -sn {ip}/24 - skanuje adresy w poszukiwaniu hostów
  • curl -D {plik dla nagłówków} {url} > /dev/null - zapisuje nagłówki do pliku (nie generuje outputu)
  • curl -o- {url}.sh | bash - pobiera skrypt i wykonuje go na komputerze
  • curl -sS -d key=val {url} - wysyła dane POST, -sS pokazuje tylko błędy (-G - GET)
  • whois {domena} - podaje informacje o domenie internetowej
  • dig {domena} - informacje o DNS
  • wget -r {url} - pobiera rekursywnie z podanego url-a

Inne

  • reset - inicjalizuje ponownie konsolę
  • clear - czyści wpisy w konsoli
  • which {nazwa polecenia} - podaje ścierzkę do polecenia
  • whereis {nazwa polecenia} - podaje ścierzkę do polecenia, źródeł binarnych, bibliotek i pakietów
  • alias fuck='sudo $(history -p !!)' - fuck command
  • alias fuck='sudo $(fc -ln -1)' - fuck command 2
  • history - pokazuje historię polecień konsoli
  • {polecenie} | column -t - formatuje wynik polecenia w kolumny
  • expr {wyrażenie matematyczne} - rozwiązuje wyrażenia matematyczne
  • disown -a && exit {polecenie} - uruchamia polecenie w tle nawet po zamknięciu konsoli
  • bind -p - pokazuje skróty dostępne w bash
  • time {polecenie} - mierzy czas podanego polecenia
  • while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done & - pokazuje datę i czas w praym górnym rogu terminala
  • {polecenie} | tee {plik} - wyświetla wyjście oraz zapisuje do pliku wyjście polecenia
  • tail -f jakas/scierzka/`ls --format=single-column -t /jakas/scierzka | head -1` - uruchamia taila na najnowszym pliku w podanym katalogu
  • {polecenie} | awk '{ print $1 } - wyświetla pierwszy wyraz z wyniku polecenia
  • {polecenie} | tr '\ ' '\n' - wyświetla wynik polecenia w pojedyńczych liniach (zamienia spacje na nowy wiersz)
  • {polecenie} | xargs -n1 - działa jak powyżej
  • xxd -c 1 {plik} - wyświetla wartości hex dla każdego znaku linia po linii
  • rsync -vrpogthl --progress {katalog} {katalog backupu} - wykonuje backup katalogu, aktualizuje jedynie to co się zmieniło (opcje zapewniają backup praw, własności, czasów modyfikacji plików i symlinki jako symlinki)
  • for i in {1..10}; do {polecenie}; done - uruchamia {polecenie} 10x
  • look {wyraz} - podpowiada składnię wyrazu
  • md5sum {plik} - oblicza skrót md5
  • lpq - status podłączonych drukarek
  • lpq -P {nazwa drukarki} {nazwa pliku} - drukuje plik na wskazanej drukarce
  • mkpasswd -l 10 - generuje hasło 10 znakowe trudne do złamania
  • makepasswd --cahrs 10 - generuje hasło 10 znakowe trudne do złamania
  • while true; do {polecenie lub skrypt do wykoanaia} ; sleep 100 ; done - wykonuje skrypt co określony czas
  • mplayer -vo caca {film} - odtwarzanie filmów w konsoli

Terminal

  • {command} 1> {file|program} - Redirect stdout to file or program
  • {command} 1>> {file|program} - Redirect and append stdout to file or program
  • {command} 2> {file|program} - Redirect stderr to file or program
  • {command} 2>> {file|program} - Redirect and append stderr to file or program
  • {command} &> {file|program} - Redirect both stdout and stderr to file or program
  • {command} 2>&1 - Redirect stderr to stdout
  • {command} > /dev/null 2>&1 - Redirect whole output to /dev/null
  • {command} &>/dev/null - Redirect whole output to /dev/null
  • echo -n "{tekst}" - wyświetla tekst ze znakiem nowej linii
  • tty - zwraca nazwę terminala
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment