Skip to content

Instantly share code, notes, and snippets.

@chajr
Last active May 28, 2024 05:43
Show Gist options
  • Save chajr/56cebd4be19b09f52b65 to your computer and use it in GitHub Desktop.
Save chajr/56cebd4be19b09f52b65 to your computer and use it in GitHub Desktop.

Revisions

  1. chajr revised this gist Nov 10, 2019. 1 changed file with 21 additions and 3 deletions.
    24 changes: 21 additions & 3 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -61,6 +61,8 @@
    * **lsattr {plik/katalog}** - lista rozszerzonych atrybutów (tylko partycje ext) (chattr - ustawia atrybut)
    * **chattr {plik/katalog}** - ustawia rozszerzone atrybuty
    * **find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && {polecenie}" \;** - wykonuje polecenie w każdym podkatalogu obecnej lokalizacji
    * **ls -1 | grep -Z -v '{regex}' | while read f; do mv "$f" {katalog docelowy}; done** - przenosi znalezione pliki do katalogu docelowego
    * **exa -1**

    ### Pliki
    * **cat {plik 1} {plik 2} {plik n} >> {plik docelowy}** - dodaje content z plików 1, 2 i 3 do pliku docelowego
    @@ -99,6 +101,8 @@
    * **grep -o {wzorzec} {plik} | sort --unique | wc -l** - ilość unikalnych wystąpień wzorca
    * **grep -o {wzorzec} {plik} | sort | uniqu -c** - pokazuje posortowane wzorce + ilość ich wystąpień
    * **grep -rcw** - szuka rekursywnie wzorca w postaci całych słów i wyświetla tylko ilość znalezionych
    * **-l** - pokazuje tylko nazwy plikÓw z wzorcem
    * **-L** - pokazuje tylko nazwy plikÓw bez wzorca
    * **diff {plik1} {plik2}** - porównuje ze sobą 2 pliki
    * **-y** - pokazuje w kolumnach (2 pliki, 2 kolumny)
    * **-a** - traktuja jako tekst
    @@ -125,6 +129,7 @@
    * **uuencode {plik} > {plik ze stringiem}** - konwertuje blik binarny na wartość tekstową (`uudecode` - proces odwrotny)
    * **find {katalog} -type f -exec du -sh {} + | sort -rh | head -n 5** - znajduje 5 największych plików w katalogu
    * **... -type f -printf "%s %p\n" ...**
    * **expand -t 4 {input} > {output}** - zmienia taby na 4 spacje w pliku input i zapisuje do output (-i - tylko początkowe taby)

    ### Media
    * **identify -format '%Q' {plik}** - zwraca informacje na temat kompresji
    @@ -159,7 +164,10 @@
    * **whoami** - podaje nazwę aktualnego użytkownika
    * **users** - zalogowani użytkownicy
    * **users | wc -w** - liczba zalogowanych użytkowników
    * **id** - pokazuje id użytkownika, grupy, oraz do jakich grup należy\
    * **id** - pokazuje id użytkownika, grupy, oraz do jakich grup należy
    * **-u** - id usera
    * **-g** - id grupy
    * **-G** - wszystkie grupy usera
    * **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
    @@ -398,12 +406,12 @@
    * **ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'** - j/w
    * __ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'__ - j/w
    * __ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'__ - j/w
    * **nc {ip} {port}** - ustawa połączenie tcp & udp z serwerem
    * **nc {ip} {port}** - ustawia połączenie tcp & udp z serwerem
    * **nc -z -v 127.0.0.1 1-1000** - skanowanie portów od 1 do 1000
    * **nc -z 127.0.0.1 1-100** - tylko te z którymi udało się połączyć
    * **nc -z -n -v 127.0.0.1 1-1000 2>&1 | grep succeeded** - j/w
    * **nc -l {port}** - nasłuchuje na porcie
    * **nc -l {port}| tar xzvf -** - zapisuje output do spakowanego pliku
    * **nc -l {port} | tar xzvf -** - zapisuje output do spakowanego pliku
    * **tar -czf - * | nc {ip} {port}** - wysyła spakowane pliki przez netcata
    * **while true; do printf 'HTTP/1.1 200 OK\n\n%s' "$(cat index.html)" | nc -l {port}; done** - tworzy prosty serwer pokazujący plik index.html (while - żeby działało cały czas)
    * **iptables -I INPUT -p tcp -m tcp --dport {port} -j ACCEPT** - dodaje port do wpisu w+ iptables
    @@ -491,6 +499,7 @@
    * **htpasswd -nb -B {user} {pass} | cut -d ":" -f** - generuje i zwraca hash hasła
    * **grep -r -P '[^\x00-\x7f]' {plik}** - wyszukuje znaki unicode w pliku
    * **openssl passwd -apr1** - generuje hash hasła
    * **openssl rand -hex {długość}** - generuje hasło o podanej długości (*2)

    ---

    @@ -505,6 +514,11 @@
    * **sed -i -- 's/{pattern}/{replace}/g' {plik}** - zastępuje znaleziony wzorzec w pliku
    * **... | cut -d' ' -f1** - tnie po spacji i podaje pierwszy element (-f 2- - od 2 i dalej; -2 do 2)
    * **sed -i '1s/^/{string}\n/' {plik}** - dodaje string na początek pliku
    * **tr ':' '\n'** - zamienia podany znak na inny, tu : na nową linię
    * **tr 'a-z' 'A-Z'** - zamienia litery na duże
    * **tr -d ‘is’** - kasuje wyrażenie
    ** **tr -s " "** - zastępuje wiele spacji pojedynczą
    * **tr -cd** - kasuje nieliczbowe znaki

    ---

    @@ -549,6 +563,10 @@
    * **ctrl+r** - szuka poprzedniej komendy
    * **ctrl+d** - wylogowuje z obecnej sesji
    * **!!** - powtarza poprzednie polecenie
    * **!-6** - uruchamia komendę uruchomioną 6 kroków wcześniej
    * **!$** - argumenty poprzednio uruchomionej komendy
    * **!^** - pierwszy argument poprzednio uruchomionej komendy
    * **!{komenda}:2** - drugi argument ostatnio uruchomionej komendy podanej w nawiasach

    ---

  2. Michał Adamiak revised this gist Aug 16, 2019. 1 changed file with 14 additions and 6 deletions.
    20 changes: 14 additions & 6 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -123,6 +123,8 @@
    * **cat << EOF > {plik}** - uruchamia wpisywanie danych do pliku, linie oddzielone enterem
    * **EOF** - kończy wpisywanie do pliku
    * **uuencode {plik} > {plik ze stringiem}** - konwertuje blik binarny na wartość tekstową (`uudecode` - proces odwrotny)
    * **find {katalog} -type f -exec du -sh {} + | sort -rh | head -n 5** - znajduje 5 największych plików w katalogu
    * **... -type f -printf "%s %p\n" ...**

    ### Media
    * **identify -format '%Q' {plik}** - zwraca informacje na temat kompresji
    @@ -174,9 +176,13 @@
    * **sudo su - {nazwa użytkownika} -c "{polecenie}"** - jak powyżej
    * **su - {user}** - przełącza usera
    * **usermod** - modyfikuje ustawienia użytkownika
    * **usermod -a -G {grupa} {user}** - dodaje usera do grupy
    * **gpasswd -a {user} {grupa}** - j/w
    * ** -u {id} {user}** - zmienia id usera
    * ** -a -G {grupa} {user}** - dodaje usera do grupy
    * **gpasswd -a {user} {grupa}** - dodaje usera do grupy
    * **htpasswd {user} {pass}** - tworzy plik htpasswd (-c nowy plik o wskazanej nazwie)
    * **groupmod -g {id} {grupa}** - zmienia id grupy
    * **find / -group {id} -exec chgrp -h {user} {} \ || true** - szuka plikw z podanym id usera i zmienia im usera;
    * **find / -user {id} -exec chown -h {grupa} {} \ || true** - szuka plikw z podanym id grupy i zmienia im grupę;

    ---
    ## Data i czas
    @@ -345,13 +351,13 @@
    * **netstat -tulnp tcp** - tylko tcp
    * **sudo lsof -i -P -n | grep LISTEN** - lista otwartych portów i procesów ich nasłuchujących
    * **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
    * **nethogs"** - pokazuje zużycie sieci i transfery do konkretnych hostów
    * **ip route get 8.8.8.8 | awk '{print $NF; exit}'** - pokazuje ip komputera wewnątrz sieci
    * **hostname --ip-address** - lokalne ip komputera
    * **nmap -sn {ip}/24** - skanuje adresy w poszukiwaniu hostów (/24,16,8 - mask adresu np /16 -> 127.0.x.x, 24 -> 127.0.0.x)
    * **nmap {hostname}** - pokazuje otwarte porty i serwisy na podanym hoście
    * **nmap -p 1-1000 {hostname}** - pokazuje otwarte porty i serwisy na podanym hoście od 1 do 1000
    * **nmap -sn 192.168.1.0/24** - skanuje w poszukiwaniu działających ip
    * **nmap -sn 192.168.0.0/24** - skanuje w poszukiwaniu działających ip
    * **arp-scan 192.168.0.0/24** - j/w
    * **hostname -I** - pokazuje lokalne ip komputera
    * **hostname -f** - nazwa hosta (długa, -s - krótka)
    @@ -483,6 +489,8 @@
    * **xfd -fa "{czcionka}"** - pokazuje pełną listę znaków dla podanej czcionki
    * **sudo sshfs -p {port} -o allow_other,IdentityFile={id_rsa} {domena}:{katalog} /mnt/{punk montowania}** - montuje jako dysk katalog na zewnętrznym serwerze
    * **htpasswd -nb -B {user} {pass} | cut -d ":" -f** - generuje i zwraca hash hasła
    * **grep -r -P '[^\x00-\x7f]' {plik}** - wyszukuje znaki unicode w pliku
    * **openssl passwd -apr1** - generuje hash hasła

    ---

    @@ -494,7 +502,7 @@
    * **awk '{gsub(/{pattern}/,"{replace}")}' {plik}** - Szuka i zastępuje wszystkie wzorce znalezione w pliku
    * **awk '{gsub(/[0-9]+\.216\.104\.10/,"10.216.104.1")}' php.ini**
    * **sed -n '44,92p' {plik}** - pokazuje linie 44-92 z pliku (samo 92p - 92 linia)
    * **sed -i --'s/{pattern}/{replace}/g' {plik}** - zastępuje znaleziony wzorzec w pliku
    * **sed -i -- 's/{pattern}/{replace}/g' {plik}** - zastępuje znaleziony wzorzec w pliku
    * **... | cut -d' ' -f1** - tnie po spacji i podaje pierwszy element (-f 2- - od 2 i dalej; -2 do 2)
    * **sed -i '1s/^/{string}\n/' {plik}** - dodaje string na początek pliku

    @@ -549,7 +557,7 @@
    * **sudo apt -f --fix-broken install** - naprawia zależności

    ## Suse
    * **cat /var/log/boot.log** -
    * **cat /var/log/boot.log** - 2
    * **tail -30 /var/log/messages** -
    * **tail -30 /var/log/messages | awk '{print $3,$5,$6,$7,$8,$9,$10}'** -
    * **zypper search -s {openssh}** - szuka pakietu z poprzednimi wersjami
  3. Michał Adamiak revised this gist May 31, 2019. 1 changed file with 19 additions and 0 deletions.
    19 changes: 19 additions & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -376,7 +376,10 @@
    * **-sS** - pokazuje błędy tylko jeśli zapytanie się nie udało
    * **-v --ipv4 -I** - pokazuje krok po kroku co dzieje się z zapytaniem
    * **-k** - pozwala na połączenie jeśli są problemy z certyfikatem ssl
    * **-w {format}** - formatuje wyjście względem ustawionego formatu
    * **-u {username:password}** - logowanie przez basic http authorization
    * **for ((i=0;i<=30;i++)); do curl -I "{url}/$i"; done;** - odpala 30 url-i z dopiskiem numeru na końcu i zwraca tylko headery
    * **curl -s -o /dev/null -w "%{http_code}\\n"** - pokaże tylko kody odpowiedzi http
    * **whois {domena}** - podaje informacje o domenie internetowej
    * **dig {domena}** - informacje o DNS
    * **wget -r {url}** - pobiera rekursywnie z podanego url-a
    @@ -479,6 +482,7 @@
    * **alias {alias}** - j/w
    * **xfd -fa "{czcionka}"** - pokazuje pełną listę znaków dla podanej czcionki
    * **sudo sshfs -p {port} -o allow_other,IdentityFile={id_rsa} {domena}:{katalog} /mnt/{punk montowania}** - montuje jako dysk katalog na zewnętrznym serwerze
    * **htpasswd -nb -B {user} {pass} | cut -d ":" -f** - generuje i zwraca hash hasła

    ---

    @@ -539,3 +543,18 @@
    * **!!** - powtarza poprzednie polecenie

    ---

    ## Ubuntu
    * **sudo dpkg -i --force-overwrite {*.deb}** - wymusza uruchomienie pakietu
    * **sudo apt -f --fix-broken install** - naprawia zależności

    ## Suse
    * **cat /var/log/boot.log** -
    * **tail -30 /var/log/messages** -
    * **tail -30 /var/log/messages | awk '{print $3,$5,$6,$7,$8,$9,$10}'** -
    * **zypper search -s {openssh}** - szuka pakietu z poprzednimi wersjami
    * **sudo zypper install --oldpackage {openssh-7.6p1-lp150.7.4}** - zainstalowanie starszej wersji pakietu

    ## MacOS

    ---
  4. Michał Adamiak revised this gist Mar 27, 2019. 1 changed file with 9 additions and 1 deletion.
    10 changes: 9 additions & 1 deletion linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -48,6 +48,8 @@
    * **-ok rm {} \;** - pyta czy usunąć plik
    * **find . -inum {węzeł} -ok rm {} \;** - kasowanie pliku z uszkodzoną nazwą (`ls -i` - zwróci numer węzła pliku)
    * **find / –perm –4000** - znajduje pliki z ustawionym _setuid_
    * **find . -type l ! -exec test -e {} \; -print** - wyszukuje zepsute symlinki
    * **find . -type l ! -exec test -e {} \; -print0 | xargs -0 rm** - wyszukuje i automatycznie kasuje zepsute symlinki
    * **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 ścieżkę w której znajduje się uruchomiony skrypt
    @@ -228,13 +230,16 @@
    * **crontab -l -u {user}** -
    * **vim /etc/crontab** - systemowy crontab (/etc/cron.hourly/)
    * **for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l 2>/dev/null | grep -v '^#; done** - lista wpisów dla wszystkich userów
    * **smem -t -P {proces}** - podaje zużycie pamięci wszystkich procesów pasujących do wzorca
    * **smem -t -k -c pss -P {proces} | tail -n 1** - jw ale podsumowanie dla bardziej realnych danych (pamięć tylko procesu, nie współdzielona)

    ### Urządzenia
    * **mount {urządzenie} {ścieżka 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 -r -o loop {obraz.iso} {/katalog}** - montuje obraz.iso do katalogu /katalog (-r tylko do odczytu)
    * **sudo mount -t auto -o loop {name}.img {dir}** - montuje obraz (-t automatycznie wybiera system plików)
    * **blkid** - id urządzeń blokowych
    * **sudo fsck -Cyv {/dev/sdx}** - skanuje i naprawia system plików na dysku
    * **lsusb** - lista urządzeń usb
    @@ -272,9 +277,12 @@
    * **-J** - output jako json
    * **sudo hdparm -r 0 /dev/{device}** - usuwa flagę tylko do odczytu
    * **sudo dd if=/dev/zero of=/dev/{device} status=progress** - niszczy dane na nośniku
    * **sudo dd if=/dev/zero of={plik}.img status=progress** - tworzy pusty obraz (*.iso*, *.image*, */dev/urandom*)
    * **sudo dd if=/dev/zero of={plik}.img bs=1M count=1200 status=progress** - tworzy pusty obraz (1.2GB) (*.iso*, *.image*, */dev/urandom*)
    * **dd if=/dev/mem | hexdump -C | less** - przeglądanie pamięci
    * **dcfldd** - bardziej rozbudowana wersja **dd** [github](https://github.com/adulau/dcfldd)
    * **sudo mkfs -t ext4 {name}.img** - tworzy partycję na podanym obrazie
    * **fdisk -l** - wyświetlenie partycji i informacji na ich temat
    * **lsblk -o NAME,FSTYPE,MOUNTPOINT,PARTLABEL,SIZE,RO** - lista urządzeń blokowych z listą informacji (nazwa, system plików, punkt montowania, label, rozmiar, tylko do odczytu)
    * **sudo fdisk /dev/sdg** - operacje na dysku

    ### Procesy
  5. chajr revised this gist Feb 7, 2019. 1 changed file with 47 additions and 8 deletions.
    55 changes: 47 additions & 8 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -22,7 +22,9 @@
    * **chmod g=-w;o=-w {plik}**
    * **chmod go=-w {plik}**
    * **chmod u+x {plik}**
    * **u+s** - ustawia SUID
    * **u+s** - ustawia setuid _(lub chmod 4755 -> rwsr-xr-x)_
    * **g+s** - ustawia setgid _(lub chmod 2644 -> rw-r-s-r--)_
    * **o+t** - ustawia sticky _(lub chmod 1777 -> rwxrwxrwt)_
    * **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
    @@ -41,9 +43,11 @@
    * **-user** - użytkownik (-group)
    * **-atime -mtime -ctime** - czasy modyfikacjo, dostępu etc
    * **find {dir} -type f -mtime +10d -exec rm {} \;** - kasuje pliki starsze niż 10 dni (rm {} - nawiasy zastępowane nazwą pliku)
    * **find {katalog}/ -size +1G -exec bash -c "ls -lh '{}'" \;** - wyszukuje pliki większe niż 1GB i listuje je w outpucie
    * **find {dir} -type d -exec sh -c '{program} $0/*' {} \; - wykonuje program dla wszystkich plików w katalogu
    * **-ok rm {} \;** - pyta czy usunąć plik
    * **find . -inum {węzeł} -ok rm {} \;** - kasowanie pliku z uszkodzoną nazwą (`ls -i` - zwróci numer węzła pliku)
    * **find / –perm –4000** - znajduje pliki z ustawionym _setuid_
    * **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 ścieżkę w której znajduje się uruchomiony skrypt
    @@ -71,7 +75,7 @@
    * **touch {nazwa pliku}** - tworzy pusty plik
    * **ls -la | grep ^- | wc -l** - pokazuje liczbę plików w katalogu (-lar - + podkatalogi)
    * **mv \`ls | head -n 2000\` test/** - przenosi 2000 plików do katalogu test
    * **less** - wyświetla zawartość pliku
    * **less** - wyświetla zawartość pliku (podobne: `more`)
    * **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
    @@ -245,9 +249,11 @@
    * **hciconfig -a** - Bluetooth info
    * **awk '/sd/ {print $3"\t"$10 / 2 / 1024}' /proc/diskstats** - pokazuje statystyki dysków zaczynających sie na `sd`
    * **udevadm info -q all -n /dev/sda1** - szczegółowe informacje na temat dysku
    * **udevadm monitor** - monitoruje urządzenia
    * **lsinput** - lista urządzeń wejściowych
    * **lshal** - informacja o urządzeniach HAL
    * **lpq** - status drukowania
    * **lpq** - status podłączonych drukarek i drukowania
    * **lpq -P {nazwa drukarki} {nazwa pliku}** - drukuje plik na wskazanej drukarce
    * **lpstat** - j/w (-d domyślna drukarka)
    * **lp {plik}** - dodaje plik do kolejki drukowania
    * **lprm {id}** - usuwa z kolejki do druku
    @@ -257,10 +263,19 @@
    * **hcitool inq** - znalezione i nie podłączone urządzenia
    * **sudo hcitool info {mac}** - informacje o urządzeniu
    * **hcitool con** - podłączone urządzenia bluetooth
    * **inxi -Fxz** - szczegółowe informacje na temat systemu
    * **inxi -Fxz** - szczegółowe/iso informacje na temat systemu
    * **file -sL {/dev/...}** - zwraca szczegółowe informacje o dysku (np typ plików)
    * **sudo parted -l** - jw, ale dla wszystkich dysków
    * **sudo lsblk -f** - jw
    * **rfkill** - zarządzanie urządzeniami radiowymi
    * **list** - lista urządzeń
    * **-J** - output jako json
    * **sudo hdparm -r 0 /dev/{device}** - usuwa flagę tylko do odczytu
    * **sudo dd if=/dev/zero of=/dev/{device} status=progress** - niszczy dane na nośniku
    * **sudo dd if=/dev/zero of={plik}.img status=progress** - tworzy pusty obraz (*.iso*, *.image*, */dev/urandom*)
    * **dd if=/dev/mem | hexdump -C | less** - przeglądanie pamięci
    * **dcfldd** - bardziej rozbudowana wersja **dd** [github](https://github.com/adulau/dcfldd)
    * **sudo fdisk /dev/sdg** - operacje na dysku

    ### Procesy
    * **pstree** - pokazuje drzewo procesów
    @@ -280,6 +295,7 @@
    * **watch -n 1 -d "ps -p {id} -o %cpu,%mem"**
    * **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 {nazwa}** - przywraca podany proces
    * **fg {proces}** - przenosi podany proces w tło
    * **pidof {program}** - zwraca id procesu o podanej nazwie
    * **watch -n 1 -d "{polecenie}"** - uruchamia polecenie i obserwuje wynik co sekundę z zaznaczeniem zmian
    @@ -402,23 +418,33 @@
    * **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 prawym 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 /jakaś/ścieżka | head -1\`** - uruchamia taila na najnowszym pliku w podanym katalogu
    * **tail -f jakaś/ścieżka/\`ls --format=single-column -t /jakaś/ścieżka | 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 pojedynczych liniach (zamienia spacje na nowy wiersz)
    * **echo $PATH | tr ':' '\n'** - pokazuje ścieżki ze zmiennej `$PATH` w osobnych liniach
    * **{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)
    * **-e 'ssh -p {port}'** - połączenie na innym niż domyślny port
    * **-L** - Podąża za symlinkami
    * **-a** - pomija symlinki
    * **-z** - kompresuje pliki do przesyłania
    * **-P** - --progress and --partial
    * **-P** - --progress and --partial
    * **-v** - zwiększa ilość informacji
    * **-r** - rekursywnie
    * **-p** - zachowuje uprawnienia
    * **-o** - zachowuje właściciela
    * **-g** - zachowuje grupę
    * **-t** - zachowuje czas modyfikacji
    * **-h** - numery w formacie łatwym do odczytania
    * **-l** - kopiuje symlinki jako symlinki
    * **-q** - nie pokazuje wiadomości (tylko błędy)
    * **--del** - (--delete-during) operacja usuwania podczas synchronizacji
    * **--delete-after** - operacja usuwania po synchronizacji
    * **--log-file** - zapisuje informacje do loga
    * **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 wykonania} ; sleep 100 ; done** - wykonuje skrypt co określony czas
    @@ -492,3 +518,16 @@
    * **echo "ibase=16; {liczba}" | bc** - hex do decimal
    * **echo $((0x{hex}))**
    * **echo "ibase=2;obase=8; {liczba}" | bc** - binary do octal

    ---

    ## Skróty
    * **ctrl+c** - zatrzymuje aktualny proces
    * **ctrl+z** - przenosi proces w tło
    * **ctrl+u** - kasuje wpisaną linię
    * **ctrl+w** - kasuje jedno słowo z linii
    * **ctrl+r** - szuka poprzedniej komendy
    * **ctrl+d** - wylogowuje z obecnej sesji
    * **!!** - powtarza poprzednie polecenie

    ---
  6. Michał Adamiak revised this gist Nov 22, 2018. 1 changed file with 75 additions and 48 deletions.
    123 changes: 75 additions & 48 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -11,42 +11,59 @@
    * __du -sh \`ls -A\`__ - pokazuje rozmiar wszystkich (w tym ukrytych) plików i katalogów (można też użyć `$(ls -A)`)
    * __du -sh .[!.]*__ - jak powyżej
    * __du -hs .[^.]*__ - pokazuje rozmiar wszystkich ukrytych plików
    * **du -ah** - pokazuje zajętość wszystkich plków w katalogu
    * **du -ah** - pokazuje zajętość wszystkich plików w katalogu
    * __ls -ld .*__ - wyświetla wszystkie ukryte pliki i katalogi
    * **ls -li /etc | sort -n** - sortuje listę plików względem ich węzłów
    * **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
    * **df -hT** - pokazuje zajętość punktu montowania wraz z systemem 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)
    * **chmod g=-w;o=-w {plik}**
    * **chmod go=-w {plik}**
    * **chmod u+x {plik}**
    * **u+s** - ustawia SUID
    * **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 / {pattern}** - wyszukuja podanego wzorca w głównym katalogu i podkatalogach
    * __find . -maxdepth 1 -name '*.json' -delete__ - usuwa dużą ilość plików z rozszerzeniem `*.json`
    * **find . -type f -ctime -2 -print0** - pokazuje pliki utworzone w ciagu 2 dni i wyswietla jako linia (+1 starsze niz 2 dni)
    * **find . -type f -ctime -2 -print0** - pokazuje pliki utworzone w ciągu 2 dni i wyświetla jako linia (+1 starsze niz 2 dni)
    * **f** - plik
    * **d** - katalog
    * **c** - specjalny plik znakowy
    * **p** - plik fifo (named pipe)
    * **l** - link
    * **s** - socket
    * **-user** - użytkownik (-group)
    * **-atime -mtime -ctime** - czasy modyfikacjo, dostępu etc
    * **find {dir} -type f -mtime +10d -exec rm {} \;** - kasuje pliki starsze niż 10 dni (rm {} - nawiasy zastępowane nazwą pliku)
    * **find {dir} -type d -exec sh -c '{program} $0/*' {} \; - wykonuje program dla wszystkich plików w katalogu
    * **-ok rm {} \;** - pyta czy usunąć plik
    * **find . -inum {węzeł} -ok rm {} \;** - kasowanie pliku z uszkodzoną nazwą (`ls -i` - zwróci numer węzła pliku)
    * **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
    * **"$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"** - zwraca ścieżkę w której znajduje 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
    * **rename -v 's/\.pdf$/\.doc/' *.pdf** - zmienia nazwy 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
    * **echo {pliki/katalogi} | xargs -n 1 cp -vr {katalog}** - kopiuje pliki/katalogi do katalogu (-n ile przyjmuje argumentow, 1-kazdy element z echo)
    * **lsattr {plik/katalog}** - lista rozszerzonych atrybutów (tylko partycje ext) (chattr - ustawia atrybu)
    * **echo {pliki/katalogi} | xargs -n 1 cp -vr {katalog}** - kopiuje pliki/katalogi do katalogu (-n ile przyjmuje argumentów, 1-każdy element z echo)
    * **lsattr {plik/katalog}** - lista rozszerzonych atrybutów (tylko partycje ext) (chattr - ustawia atrybut)
    * **chattr {plik/katalog}** - ustawia rozszerzone atrybuty
    * **find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && {polecenie}" \;** - wykonuje polecenie w każdym podkatalogu obecnej lokalizacji

    ### 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 (np `cat baza_*.sql >> baza.sql`)
    * **split -v 5M {plik} {prefix}** - dzieli podany plik na części po 5MB i dodaje prefix
    * **split -l 1000** - dzieli po 1000 linii
    * **split -b 1000** - dzieli po 1000 bajtw (b|k|m)
    * **split -`expr \`wc -l {plik} | awk '{print $1}'\` /$k` {plik} {prefix}** - dzieli plik na $k równych części
    * **csplit -k {plik} 100 {99}** - dzieli plik na części po 100 linii (ostatnia może być dłuższa)
    * **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)
    * **dd id=/dev/device of=~/device.img** - kopiuje każdy bajt z urządzenia device do pliku
    @@ -66,38 +83,40 @@
    * **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 -ri "{pattern}" /jakiś/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
    * **grep -v "{pattern}" .** - zwraca wszystko z pominięciem wzorca
    * **grep -v "^git\|docker"**
    * **grep -C 2 {pattern}** - zwraca 2 linie otaczające znaleziony fragment (2 z góry i 2 z dołu)
    * **grep --include={plik} -A 1 -rn {scierzka} -e {wzorzec}** - szuka wzorca w sierzce i podanym pliku, wyswietla scierzke, numer linii + linia ponizej znalezionej
    * **grep -o {wzorzec} {plik} | sort --unique | wc -l** - ilosc unikalnych wystapien wzorca
    * **grep -o {wzorzec} {plik} | sort | uniqu -c** - pokazuje posortowane wzorce + ilosc ich wystapien
    * **grep --include={plik} -A 1 -rn {ścieżka} -e {wzorzec}** - szuka wzorca w ścieżce i podanym pliku, wyświetla ścieżkę, numer linii + linia poniżej znalezionej
    * **grep -o {wzorzec} {plik} | sort --unique | wc -l** - ilość unikalnych wystąpień wzorca
    * **grep -o {wzorzec} {plik} | sort | uniqu -c** - pokazuje posortowane wzorce + ilość ich wystąpień
    * **grep -rcw** - szuka rekursywnie wzorca w postaci całych słów i wyświetla tylko ilość znalezionych
    * **diff {plik1} {plik2}** - porównuje ze sobą 2 pliki
    * **-y** - pokazuje w kolumnach (2 pliki, 2 kolumny)
    * **-a** - traktuja jako tekst
    * **-n** - format rcs
    * **-w** - ignoruje biale spacje
    * **diff <(sed -n '1p' {plik}) <(sed -n '1p' {plik})**
    * **diff -Nyrw dir1 dir2** - pokazuje różnice w plikach między dwoma katalogami
    * **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)
    * **cmp -bl <(sed -n '1p' {plik}) <(sed -n '1p' {plik})** - porwnuje pierwsze linie z plikow
    * **cmp -bl <(sed -n '1p' {plik}) <(sed -n '1p' {plik})** - porównuje pierwsze linie z plików
    * **lsof** - pokazuje wszystkie otwarte pliki
    * **lsof -p {pid}** - pliki otwarte przez podany proces
    * **fdupes -rnS {dir} >> duplicated** - znajduje i zapisuje do pliku listę zduplikowanych plików
    * **qemu-img convert -f raw -O qcow2 image.img image.qcow2** - konwertuje pliki obrazw (np VM)
    * **qemu-img convert -f raw -O qcow2 image.img image.qcow2** - konwertuje pliki obrazów (np VM)
    * **foremost -v -i {image} -o {out}** - odzyskiwanie skasowanych plików z obrazu do katalogu out
    * **flock -xn {test.lock} -c "{script}"** - uruchamia skrypt i ustawia locka na pliku {test.lock}, do zakończenia nie da się ponownie uruchomić
    * **echo '{string}' | cat - {plik} > temp && mv temp {plik}** - dodaje string na początek pliku
    * **cat << EOF > {plik}** - uruchamia wpisywanie danych do pliku, linie oddzielone enterem
    * **EOF** - kończy wpisywanie do pliku
    * **uuencode {plik} > {plik ze stringiem}** - konwertuje blik binarny na wartość tekstową (`uudecode` - proces odwrotny)

    ### Media
    * **identify -format '%Q' {plik}** - zwraca informacje na temat kompresji
    @@ -131,13 +150,13 @@
    * **last** - pokazuje listę ostatnich logowań użytkowników (-n {liczba})
    * **whoami** - podaje nazwę aktualnego użytkownika
    * **users** - zalogowani użytkownicy
    * **users | wc -w** - liczba zalogowanych użytowników
    * **id** - pokazuje id użytkowika, grupy, oraz do jakich grup należy\
    * **users | wc -w** - liczba zalogowanych użytkowników
    * **id** - pokazuje id użytkownika, 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
    * **wall {wiadomość}** - wysyła 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
    @@ -173,7 +192,7 @@
    ---
    ## System
    * **uname -a** - pokazuje informację o systemie Linux
    * **uname -snrvm** - j/w tylko bardziej szczegłowo
    * **uname -snrvm** - j/w tylko bardziej szczegółowo
    * **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
    @@ -182,7 +201,7 @@
    * **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
    * **who -r** - pokazuje czas uruchomienia systemu oraz 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
    @@ -192,7 +211,7 @@
    * **printenv** - pokazuje wszystkie zmienne środowiskowe i ich wartości
    * **sudo dmidecode -t system** - informacje o systemie (w tym o urządzeniu)
    * **top -l 1 -s 0 | grep PhysMem** - ilość zużytej i wolnej pamięci
    * **lsmod** - pokazuje status modułw w jądrze linuxa
    * **lsmod** - pokazuje status modułów w jądrze linuxa
    * **lsb_release -a** - informacje o dystrybucji (-s skrócone)
    * **cat /proc/version** - j/w
    * **cat /etc/*-release** - j/w
    @@ -207,7 +226,7 @@
    * **for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l 2>/dev/null | grep -v '^#; done** - lista wpisów dla wszystkich userów

    ### Urządzenia
    * **mount {urządzenie} {ścierzka docelowa}** - montuje urządzenie
    * **mount {urządzenie} {ścieżka docelowa}** - montuje urządzenie
    * **unmount {urządzenie**} - odmontowuje urządzenie
    * **mount -l** - lista podłączonych urządzeń
    * **lsblk** - lista urządzeń blokowych ( -l)
    @@ -224,7 +243,7 @@
    * **lspci** - urządzenia podpięte pod szynę PCI
    * **watch "dmesg | tail -20"** - podgląd na żywo logów systemowych
    * **hciconfig -a** - Bluetooth info
    * **awk '/sd/ {print $3"\t"$10 / 2 / 1024}' /proc/diskstats** - pokazuje statystyki dyskow zaczynajacych sie na `sd`
    * **awk '/sd/ {print $3"\t"$10 / 2 / 1024}' /proc/diskstats** - pokazuje statystyki dysków zaczynających sie na `sd`
    * **udevadm info -q all -n /dev/sda1** - szczegółowe informacje na temat dysku
    * **lsinput** - lista urządzeń wejściowych
    * **lshal** - informacja o urządzeniach HAL
    @@ -263,13 +282,13 @@
    * **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
    * **watch -n 1 -d "{polecenie}"** - uruchamia polecenie i obserwuje wynik co sekundę z zaznaczeniem zmian
    * **iotop** - pokazuje operacje i/o
    * **jobs** - pokazuje polecenia uruchomione w terminalu i przeniesione w tło
    * **kill %1** - zabina proces w tle
    * **kill %1** - zabija proces w tle
    * **fg %2** - przywraca proces z tła (bez % ostatni)
    * **bg** - przenosi proces w tło, po zatrzymaniu przez `CTRL-Z`
    * **top -U {user} -o cpu -p {id}** - statystyki zuzżycia procesu przez użytkownika o id (na żywo)
    * **top -U {user} -o cpu -p {id}** - statystyki zużycia procesu przez użytkownika o id (na żywo)
    * **pgrep {program}** - zwraca id procesu dla podanej nazwy programu
    * **renice {numer} {pid}** - zmienia priorytet procesu o podanym id, im niższy tym wyższy priorytet (np -19, default: 0)
    * **pkill {program}** - zabija podany program
    @@ -290,7 +309,7 @@
    * **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
    * **scp -r {źródło} {cel}** - kopiuje plik poprzez ssh ([email protected]:/some/path/file) razem z podkatalogami
    * **-l {val}** - limit transferu w Kbit/s (8000 -> 1MB)
    * **curl ipinfo.io** - bardziej szczegółowe informacje o komputerze
    * **netstat** - wyświetla listę aktywnych połączeń TCP i UDP
    @@ -308,21 +327,24 @@
    * **nmap -sn {ip}/24** - skanuje adresy w poszukiwaniu hostów (/24,16,8 - mask adresu np /16 -> 127.0.x.x, 24 -> 127.0.0.x)
    * **nmap {hostname}** - pokazuje otwarte porty i serwisy na podanym hoście
    * **nmap -p 1-1000 {hostname}** - pokazuje otwarte porty i serwisy na podanym hoście od 1 do 1000
    * **nmap -sn 192.168.1.0/24** - skanuje w poszukiwaniu działających ip
    * **arp-scan 192.168.0.0/24** - j/w
    * **hostname -I** - pokazuje lokalne ip komputera
    * **hostname -f** - nazwa hosta (długa, -s - krtka)
    * **cat /etc/services | less** - podgląd wszystkich portów i programów je wykożystujących
    * **hostname -f** - nazwa hosta (długa, -s - krótka)
    * **cat /etc/services | less** - podgląd wszystkich portów i programów je wykorzystujących
    * **tcpdump -i any port {port}** - pokazuje całą komunikację na wskazanym porcie
    * **tcpdump -i {nazwa sieci}** - pokazuje całą komunikację na wskazanej sieci (np z ifconfig)
    * **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 -si -H "Host: host.com" "http://server-name/"** - testowanie serwera za load balancerem (host - główna strona, server-name - docelowy serwer za load balancerem)
    * **curl -sS -d key=val {url}** - wysyła dane POST, -sS pokazuje tylko błędy jeśli krytuczne (-G - GET)
    * **curl -sS -d key=val {url}** - wysyła dane POST, -sS pokazuje tylko błędy jeśli krytyczne (-G - GET)
    * **-d {key=val}** - post data
    * **-G {key=val}** - get data
    * **-H {Name: value}** - header data
    * **-i** - pokazuje headery w output
    * **-I** - pokazuje tylko headery w output
    * **-L** - podążaj za relokacją ze strony
    * **-N** - bez bufora, pokazuje na bierząco dane przychodzące
    * **-N** - bez bufora, pokazuje na bieżąco dane przychodzące
    * **-o** - zapisuje output do pliku (-o- - force)
    * **-O | --remote-name** - nazywa plik tak samo jak ten z serwera
    * **-s** - nie pokazuje błędów i progresu
    @@ -350,9 +372,9 @@
    * **nc -l {port}** - nasłuchuje na porcie
    * **nc -l {port}| tar xzvf -** - zapisuje output do spakowanego pliku
    * **tar -czf - * | nc {ip} {port}** - wysyła spakowane pliki przez netcata
    * **while true; do printf 'HTTP/1.1 200 OK\n\n%s' "$(cat index.html)" | nc -l {port}; done** - tworzy prosty serwwer pokazujący plik index.html (while - żeby działało cały czas)
    * **while true; do printf 'HTTP/1.1 200 OK\n\n%s' "$(cat index.html)" | nc -l {port}; done** - tworzy prosty serwer pokazujący plik index.html (while - żeby działało cały czas)
    * **iptables -I INPUT -p tcp -m tcp --dport {port} -j ACCEPT** - dodaje port do wpisu w+ iptables
    * **iptables -A INPUT -s {ip} -j DROP** - blokuje adress IP
    * **iptables -A INPUT -s {ip} -j DROP** - blokuje adres IP
    * **iptables -D INPUT -s {ip} -j DROP** - usuwa z listy blokowanych
    * **iptables --list** - lista wpisów
    * **iptables-save** - zapisuje ustawienia
    @@ -363,11 +385,11 @@
    ## 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
    * **which {nazwa polecenia}** - podaje ścieżkę do polecenia
    * **whereis {nazwa polecenia}** - podaje ścieżkę 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
    * **history** - pokazuje historię poleceń konsoli
    * **{polecenie} | column -t** - formatuje wynik polecenia w kolumny
    * **expr {wyrażenie matematyczne}** - rozwiązuje wyrażenia matematyczne
    * **expr {arg1} = {arg2}** - czy oba argumenty są identyczne (|, &, \<, \>, <=, >=, \!=, +, -, *, /, %)
    @@ -378,11 +400,11 @@
    * **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
    * **while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &** - pokazuje datę i czas w prawym 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
    * **tail -f jakas/scierzka/\`ls --format=single-column -t /jakaś/ścieżka | 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} | tr '\ ' '\n'** - wyświetla wynik polecenia w pojedynczych 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)
    @@ -399,11 +421,15 @@
    * **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
    * **while true; do {polecenie lub skrypt do wykonania} ; sleep 100 ; done** - wykonuje skrypt co określony czas
    * **mplayer -vo caca {film}** - odtwarzanie filmów w konsoli
    * **multitail -l 'ssh user@host "tail -f /var/log/log.log"' -l 'ssh user@host2 "tail -f /var/log/log.log"'** - podgląd logów z 2 serwerów na raz
    * **echo -n "Hello" | od -A n -t x1** - wyświetla tekst jako wartości hex
    * **echo -n "Hello" | hd** - wyświetla tekst jako wartości hex + oryginalny string (hd, xxd)
    * **od {opcja} {plik}** - wyświetla zawartość pliku jako wartości danego znaku
    * **-c** - pokazuje znaki niedrukowane
    * **-x** - jako wartości hex
    * **-b** - jako wartości octalne
    * **history | cut -c 8- | grep -Eo "^{name}.*" | sort --uniq** - wyszukuje w historii unikalne komendy zaczynające się od wyrażenia
    * **history | cut -c 8- | grep -v "^{name}\|{name2}.*" | sort --uniq** - wyszukuje w historii unikalne komendy nie zaczynające się od wyrażenia name lub name2
    * **history | awk '{ $1=""; print }'** - wyświetla tylko komendy z historii (print substr($0,2) - bez spacji na początku)
    @@ -417,20 +443,21 @@
    * **wget -O- -q wttr.in/Poland+{miasto}** - pogoda
    * **type {alias}** - pokazuje komendę powiązaną z podanym aliasem
    * **alias {alias}** - j/w
    * **xfd -fa "{czcionka}"** - pokazuje pełną listę znaków dla podanej czcioki
    * **xfd -fa "{czcionka}"** - pokazuje pełną listę znaków dla podanej czcionki
    * **sudo sshfs -p {port} -o allow_other,IdentityFile={id_rsa} {domena}:{katalog} /mnt/{punk montowania}** - montuje jako dysk katalog na zewnętrznym serwerze

    ---

    ## Stream
    * **awk '{print $4/$2}'** - wyswietla parameter 4 i 2 z wejscia podzielone przez siebie (oddzielone spacja) ($NF - liczba pol, $NR - liczba rekordow)
    * **awk 'BEGIN{for(i=32;i<128;i++)printf "%c",i}'** - wyświetla listę znakow (32-128)
    * **awk -F'/' '{print $3}'** - dzieli input wzgledem znaku `/` i wyswietla 3 element
    * **awk '{print $4/$2}'** - wyświetla parameter 4 i 2 z wejścia podzielone przez siebie (oddzielone spacja) ($NF - liczba pol, $NR - liczba rekordów)
    * **awk 'BEGIN{for(i=32;i<128;i++)printf "%c",i}'** - wyświetla listę znaków (32-128)
    * **awk -F'/' '{print $3}'** - dzieli input względem znaku `/` i wyświetla 3 element
    * **awk '{s+=$1} END {print s}** -
    * **awk '{gsub(/{pattern}/,"{replace}")}' {plik}** - Szuka i zastępuje wszystkie wzorce znalezione w pliku
    * **awk '{gsub(/[0-9]+\.216\.104\.10/,"10.216.104.1")}' php.ini**
    * **sed -n '44,92p' {plik}** - pokazuje linie 44-92 z pliku (samo 92p - 92 linia)
    * **sed -i --'s/{pattern}/{replace}/g' {plik}** - zastępuje zneleziony wrzozec w pliku
    * **... | cut -d' ' -f1** - tnie po spacji i podaje pirwszy element (-f 2- - od 2 i dalej; -2 do 2)
    * **sed -i --'s/{pattern}/{replace}/g' {plik}** - zastępuje znaleziony wzorzec w pliku
    * **... | cut -d' ' -f1** - tnie po spacji i podaje pierwszy element (-f 2- - od 2 i dalej; -2 do 2)
    * **sed -i '1s/^/{string}\n/' {plik}** - dodaje string na początek pliku

    ---
    @@ -439,7 +466,7 @@
    * **{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} 2>> {file|program}** - Redirect and append stderr to file or program (to samo co {command} >> {plik} 2>&1)
    * **{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
    @@ -450,8 +477,8 @@
    * **echo "\xe2\x9c\x93"** - ✓
    * **tty** - zwraca nazwę terminala
    * **ttylog -d /dev/pts/{numer}** - wyświetla informacje z innego terminala
    * **script -f /dev/tty3** - zapisje wszystkie informacje z terminala (np zapis wszystkich działań w terminalu) do innego terminala, lub pliku (-f {plik})
    * **retty $({id procesu})** - przełącza proces z innego termianala na obecny
    * **script -f /dev/tty3** - zapisuje wszystkie informacje z terminala (np zapis wszystkich działań w terminalu) do innego terminala, lub pliku (-f {plik})
    * **retty $({id procesu})** - przełącza proces z innego terminala na obecny
    * **... | bash -s {param}** - uruchamia skrypt w bash i podaje na standardowe wejście parametr
    * **fc** - history manager
    * **echo $(( 2#101011 ))** - zamienia binary na decimal (101011 -> 43)
  7. Michał Adamiak revised this gist Nov 5, 2018. 1 changed file with 14 additions and 3 deletions.
    17 changes: 14 additions & 3 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -96,6 +96,8 @@
    * **foremost -v -i {image} -o {out}** - odzyskiwanie skasowanych plików z obrazu do katalogu out
    * **flock -xn {test.lock} -c "{script}"** - uruchamia skrypt i ustawia locka na pliku {test.lock}, do zakończenia nie da się ponownie uruchomić
    * **echo '{string}' | cat - {plik} > temp && mv temp {plik}** - dodaje string na początek pliku
    * **cat << EOF > {plik}** - uruchamia wpisywanie danych do pliku, linie oddzielone enterem
    * **EOF** - kończy wpisywanie do pliku

    ### Media
    * **identify -format '%Q' {plik}** - zwraca informacje na temat kompresji
    @@ -116,8 +118,9 @@
    * **take ~/katalog/{bin,src,pkg}** - j/w

    ### 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`
    * **tar -xvzf {nazwa pliku}** - rozpakowuje archiwum `*.tar.gz`
    * **tar -cvzf {nazwa archiwum} {nazwa pliku/katalogu}** - archiwizuje wskazany plik/katalog do podanego pliku jako `tar.gz`
    * **tar -tvf {nazwa archiwum}** - lista zarchiwizowanych elementów
    * **gzip {nazwa}** - kompresuje pliki jako `.gz`
    * **gunzip {nazwa}** - rozpakowuje archiwum `*.gz`
    * **zip -r0 {plik.zip} {katalog}** - zapisuje zawartość katalogu do pliku `zip` bez kompresji
    @@ -348,7 +351,12 @@
    * **nc -l {port}| tar xzvf -** - zapisuje output do spakowanego pliku
    * **tar -czf - * | nc {ip} {port}** - wysyła spakowane pliki przez netcata
    * **while true; do printf 'HTTP/1.1 200 OK\n\n%s' "$(cat index.html)" | nc -l {port}; done** - tworzy prosty serwwer pokazujący plik index.html (while - żeby działało cały czas)
    * **iptables -I INPUT -p tcp -m tcp --dport {port} -j ACCEPT** - dodaje port do wpisu w iptables
    * **iptables -I INPUT -p tcp -m tcp --dport {port} -j ACCEPT** - dodaje port do wpisu w+ iptables
    * **iptables -A INPUT -s {ip} -j DROP** - blokuje adress IP
    * **iptables -D INPUT -s {ip} -j DROP** - usuwa z listy blokowanych
    * **iptables --list** - lista wpisów
    * **iptables-save** - zapisuje ustawienia
    * **iptables -A INPUT -s {ip} -p tcp --destination-port {port} -j DROP** - blokuje wskazany port

    ---

    @@ -380,6 +388,9 @@
    * **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)
    * **-e 'ssh -p {port}'** - połączenie na innym niż domyślny port
    * **-L** - Podąża za symlinkami
    * **-a** - pomija symlinki
    * **-z** - kompresuje pliki do przesyłania
    * **-P** - --progress and --partial
    * **--log-file** - zapisuje informacje do loga
    * **for i in {1..10}; do {polecenie}; done** - uruchamia {polecenie} 10x
    * **look {wyraz}** - podpowiada składnię wyrazu
  8. chajr revised this gist Oct 17, 2018. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -95,6 +95,7 @@
    * **qemu-img convert -f raw -O qcow2 image.img image.qcow2** - konwertuje pliki obrazw (np VM)
    * **foremost -v -i {image} -o {out}** - odzyskiwanie skasowanych plików z obrazu do katalogu out
    * **flock -xn {test.lock} -c "{script}"** - uruchamia skrypt i ustawia locka na pliku {test.lock}, do zakończenia nie da się ponownie uruchomić
    * **echo '{string}' | cat - {plik} > temp && mv temp {plik}** - dodaje string na początek pliku

    ### Media
    * **identify -format '%Q' {plik}** - zwraca informacje na temat kompresji
    @@ -300,6 +301,7 @@
    * **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
    * **hostname --ip-address** - lokalne ip komputera
    * **nmap -sn {ip}/24** - skanuje adresy w poszukiwaniu hostów (/24,16,8 - mask adresu np /16 -> 127.0.x.x, 24 -> 127.0.0.x)
    * **nmap {hostname}** - pokazuje otwarte porty i serwisy na podanym hoście
    * **nmap -p 1-1000 {hostname}** - pokazuje otwarte porty i serwisy na podanym hoście od 1 do 1000
    @@ -404,6 +406,7 @@
    * **wget -O- -q wttr.in/Poland+{miasto}** - pogoda
    * **type {alias}** - pokazuje komendę powiązaną z podanym aliasem
    * **alias {alias}** - j/w
    * **xfd -fa "{czcionka}"** - pokazuje pełną listę znaków dla podanej czcioki

    ---

    @@ -417,6 +420,7 @@
    * **sed -n '44,92p' {plik}** - pokazuje linie 44-92 z pliku (samo 92p - 92 linia)
    * **sed -i --'s/{pattern}/{replace}/g' {plik}** - zastępuje zneleziony wrzozec w pliku
    * **... | cut -d' ' -f1** - tnie po spacji i podaje pirwszy element (-f 2- - od 2 i dalej; -2 do 2)
    * **sed -i '1s/^/{string}\n/' {plik}** - dodaje string na początek pliku

    ---

  9. Michał Adamiak revised this gist Oct 4, 2018. 1 changed file with 17 additions and 0 deletions.
    17 changes: 17 additions & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -95,6 +95,10 @@
    * **qemu-img convert -f raw -O qcow2 image.img image.qcow2** - konwertuje pliki obrazw (np VM)
    * **foremost -v -i {image} -o {out}** - odzyskiwanie skasowanych plików z obrazu do katalogu out
    * **flock -xn {test.lock} -c "{script}"** - uruchamia skrypt i ustawia locka na pliku {test.lock}, do zakończenia nie da się ponownie uruchomić

    ### Media
    * **identify -format '%Q' {plik}** - zwraca informacje na temat kompresji
    * **convert -quality 70 {źródło} {cel}** - zmienia stopień kompresji pliku np jpg
    * **identify -verbose {img}** - odczytuje metadane z obrazu
    * **exiftool {img}** - jw

    @@ -186,9 +190,17 @@
    * **top -l 1 -s 0 | grep PhysMem** - ilość zużytej i wolnej pamięci
    * **lsmod** - pokazuje status modułw w jądrze linuxa
    * **lsb_release -a** - informacje o dystrybucji (-s skrócone)
    * **cat /proc/version** - j/w
    * **cat /etc/*-release** - j/w
    * **cat /etc/system-release** - j/w
    * **lslk** - lista locków
    * **modprobe -a {modul1} {modul2}** - ładuje podane moduły które pasują do wzorca
    * **-c** - lista załadowanych modułów
    * **crontab -e** -
    * **crontab -l** - lista wpisów w contab
    * **crontab -l -u {user}** -
    * **vim /etc/crontab** - systemowy crontab (/etc/cron.hourly/)
    * **for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l 2>/dev/null | grep -v '^#; done** - lista wpisów dla wszystkich userów

    ### Urządzenia
    * **mount {urządzenie} {ścierzka docelowa}** - montuje urządzenie
    @@ -261,6 +273,7 @@
    * **xkill** - umożliwia zabijanie okienkowych procesów, należy wskazać kursorem proces do zabicia
    * **pidstat -hruvp {pid1}{pid2} 5** - monitoruje 2 procesy i pokazuje co 5s
    * **pmap -x {proces id}** - podaje szczegółowe informacje na temat zużycia pamięci przez proces i jego zależności
    * **ps --no-headers -o "rss,cmd" -C {nazwa procesu} | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }'** - sumaryczne zużycie pamięci dla procesu

    ---

    @@ -311,6 +324,7 @@
    * **-S** - pokazuje błędy
    * **-sS** - pokazuje błędy tylko jeśli zapytanie się nie udało
    * **-v --ipv4 -I** - pokazuje krok po kroku co dzieje się z zapytaniem
    * **-k** - pozwala na połączenie jeśli są problemy z certyfikatem ssl
    * **for ((i=0;i<=30;i++)); do curl -I "{url}/$i"; done;** - odpala 30 url-i z dopiskiem numeru na końcu i zwraca tylko headery
    * **whois {domena}** - podaje informacje o domenie internetowej
    * **dig {domena}** - informacje o DNS
    @@ -387,6 +401,9 @@
    * **mysqluc -e "help utilities"**
    * **tig** **grv** - wizualna reprezentacja git-a
    * **curl -N tty.zone/\[0-2\]\?auto\&cols=$((COLUMNS))** - demo narzędzi graficznych pod terminal
    * **wget -O- -q wttr.in/Poland+{miasto}** - pogoda
    * **type {alias}** - pokazuje komendę powiązaną z podanym aliasem
    * **alias {alias}** - j/w

    ---

  10. Michał Adamiak revised this gist Jul 20, 2018. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -94,6 +94,9 @@
    * **fdupes -rnS {dir} >> duplicated** - znajduje i zapisuje do pliku listę zduplikowanych plików
    * **qemu-img convert -f raw -O qcow2 image.img image.qcow2** - konwertuje pliki obrazw (np VM)
    * **foremost -v -i {image} -o {out}** - odzyskiwanie skasowanych plików z obrazu do katalogu out
    * **flock -xn {test.lock} -c "{script}"** - uruchamia skrypt i ustawia locka na pliku {test.lock}, do zakończenia nie da się ponownie uruchomić
    * **identify -verbose {img}** - odczytuje metadane z obrazu
    * **exiftool {img}** - jw

    ### Katalogi
    * **rm -fr {nazwa katalogu lub pliku}** - umożliwia kasowanie katalogu i zawartości wraz z wymuszeniem
  11. Michał Adamiak revised this gist Jul 17, 2018. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -93,6 +93,7 @@
    * **lsof -p {pid}** - pliki otwarte przez podany proces
    * **fdupes -rnS {dir} >> duplicated** - znajduje i zapisuje do pliku listę zduplikowanych plików
    * **qemu-img convert -f raw -O qcow2 image.img image.qcow2** - konwertuje pliki obrazw (np VM)
    * **foremost -v -i {image} -o {out}** - odzyskiwanie skasowanych plików z obrazu do katalogu out

    ### Katalogi
    * **rm -fr {nazwa katalogu lub pliku}** - umożliwia kasowanie katalogu i zawartości wraz z wymuszeniem
    @@ -219,6 +220,9 @@
    * **sudo hcitool info {mac}** - informacje o urządzeniu
    * **hcitool con** - podłączone urządzenia bluetooth
    * **inxi -Fxz** - szczegółowe informacje na temat systemu
    * **file -sL {/dev/...}** - zwraca szczegółowe informacje o dysku (np typ plików)
    * **sudo parted -l** - jw, ale dla wszystkich dysków
    * **sudo lsblk -f** - jw

    ### Procesy
    * **pstree** - pokazuje drzewo procesów
  12. chajr revised this gist Jul 8, 2018. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -155,6 +155,7 @@
    * **date -R** - Fri, 18 May 2018 12:20:07 +0200
    * **date -jnu** - Fri May 18 10:21:13 UTC 2018
    * **date -v -1d '+%m-%d-%y'** - 05-17-18
    * **date -d @{timestamp}** - konwertuje timestamp na datę
    * **sleep {sec} && {polecenie}** - uruchamia polecenie po określonej liczbie sekund (45m - minuty)

    ---
    @@ -217,6 +218,7 @@
    * **hcitool inq** - znalezione i nie podłączone urządzenia
    * **sudo hcitool info {mac}** - informacje o urządzeniu
    * **hcitool con** - podłączone urządzenia bluetooth
    * **inxi -Fxz** - szczegółowe informacje na temat systemu

    ### Procesy
    * **pstree** - pokazuje drzewo procesów
    @@ -251,6 +253,7 @@
    * **-p $(pgrep {program})** - dla podanego programu
    * **xkill** - umożliwia zabijanie okienkowych procesów, należy wskazać kursorem proces do zabicia
    * **pidstat -hruvp {pid1}{pid2} 5** - monitoruje 2 procesy i pokazuje co 5s
    * **pmap -x {proces id}** - podaje szczegółowe informacje na temat zużycia pamięci przez proces i jego zależności

    ---

    @@ -300,6 +303,7 @@
    * **-s** - nie pokazuje błędów i progresu
    * **-S** - pokazuje błędy
    * **-sS** - pokazuje błędy tylko jeśli zapytanie się nie udało
    * **-v --ipv4 -I** - pokazuje krok po kroku co dzieje się z zapytaniem
    * **for ((i=0;i<=30;i++)); do curl -I "{url}/$i"; done;** - odpala 30 url-i z dopiskiem numeru na końcu i zwraca tylko headery
    * **whois {domena}** - podaje informacje o domenie internetowej
    * **dig {domena}** - informacje o DNS
  13. chajr revised this gist Jun 16, 2018. 1 changed file with 7 additions and 1 deletion.
    8 changes: 7 additions & 1 deletion linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -43,7 +43,7 @@

    ### 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
    * __cat {prefix}* >> {plik docelowy}__ - łączy pliki z podanym prefixem w jeden (np `cat baza_*.sql >> baza.sql`)
    * **split -v 5M {plik} {prefix}** - dzieli podany plik na części po 5MB i dodaje prefix
    * **split -l 1000** - dzieli po 1000 linii
    * **split -b 1000** - dzieli po 1000 bajtw (b|k|m)
    @@ -211,6 +211,12 @@
    * **lpstat** - j/w (-d domyślna drukarka)
    * **lp {plik}** - dodaje plik do kolejki drukowania
    * **lprm {id}** - usuwa z kolejki do druku
    * **sudo service bluetooth status** - status bluetooth na maszynie
    * **hciconfig scan** - skanuje bluetooth
    * **hcitool dev** - informacje o urządzeniu bluetooth na maszynie
    * **hcitool inq** - znalezione i nie podłączone urządzenia
    * **sudo hcitool info {mac}** - informacje o urządzeniu
    * **hcitool con** - podłączone urządzenia bluetooth

    ### Procesy
    * **pstree** - pokazuje drzewo procesów
  14. Michal Adamiak revised this gist May 30, 2018. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -345,6 +345,9 @@
    * **{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)
    * **-e 'ssh -p {port}'** - połączenie na innym niż domyślny port
    * **-L** - Podąża za symlinkami
    * **--log-file** - zapisuje informacje do loga
    * **for i in {1..10}; do {polecenie}; done** - uruchamia {polecenie} 10x
    * **look {wyraz}** - podpowiada składnię wyrazu
    * **md5sum {plik}** - oblicza skrót md5
  15. Michal Adamiak revised this gist May 25, 2018. 1 changed file with 8 additions and 1 deletion.
    9 changes: 8 additions & 1 deletion linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -71,11 +71,16 @@
    * **grep -c "{pattern}" .** - zwraca ilość znalezionych wzorców w plikach
    * **grep -v "{pattern}" .** - zwraca wszystko z pominięciem wzorca
    * **grep -v "^git\|docker"**
    * **grep -C 2 {pattern}** - zwraca 2 linie otaczające znaleziony fragment (2 z góry i 2 z dołu)
    * **grep --include={plik} -A 1 -rn {scierzka} -e {wzorzec}** - szuka wzorca w sierzce i podanym pliku, wyswietla scierzke, numer linii + linia ponizej znalezionej
    * **grep -o {wzorzec} {plik} | sort --unique | wc -l** - ilosc unikalnych wystapien wzorca
    * **grep -o {wzorzec} {plik} | sort | uniqu -c** - pokazuje posortowane wzorce + ilosc ich wystapien
    * **grep -rcw** - szuka rekursywnie wzorca w postaci całych słów i wyświetla tylko ilość znalezionych
    * **diff {plik1} {plik2}** - porównuje ze sobą 2 pliki (-y w kolumnach, -a traktuja jako tekst, -n - format rcs, -w ignoruje biale spacje)
    * **diff {plik1} {plik2}** - porównuje ze sobą 2 pliki
    * **-y** - pokazuje w kolumnach (2 pliki, 2 kolumny)
    * **-a** - traktuja jako tekst
    * **-n** - format rcs
    * **-w** - ignoruje biale spacje
    * **diff <(sed -n '1p' {plik}) <(sed -n '1p' {plik})**
    * **find {pattern} | xargs rm** - szuka plików i kasuje wszystkie znalezione
    * **ls -laR | grep ^- | wc -l** - zlicza ilość plików w katalogu i podkatalogach
    @@ -85,6 +90,7 @@
    * **cmp --verbose {pliki}** - pokazuje kody różnic (bajt różnicy, kod znaku 1, kod znaku 2)
    * **cmp -bl <(sed -n '1p' {plik}) <(sed -n '1p' {plik})** - porwnuje pierwsze linie z plikow
    * **lsof** - pokazuje wszystkie otwarte pliki
    * **lsof -p {pid}** - pliki otwarte przez podany proces
    * **fdupes -rnS {dir} >> duplicated** - znajduje i zapisuje do pliku listę zduplikowanych plików
    * **qemu-img convert -f raw -O qcow2 image.img image.qcow2** - konwertuje pliki obrazw (np VM)

    @@ -252,6 +258,7 @@
    * **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
    * **-l {val}** - limit transferu w Kbit/s (8000 -> 1MB)
    * **curl ipinfo.io** - bardziej szczegółowe informacje o komputerze
    * **netstat** - wyświetla listę aktywnych połączeń TCP i UDP
    * **netstat -at** - lista portów TCP
  16. Michal Adamiak revised this gist May 22, 2018. 1 changed file with 16 additions and 1 deletion.
    17 changes: 16 additions & 1 deletion linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -322,6 +322,11 @@
    * **history** - pokazuje historię polecień konsoli
    * **{polecenie} | column -t** - formatuje wynik polecenia w kolumny
    * **expr {wyrażenie matematyczne}** - rozwiązuje wyrażenia matematyczne
    * **expr {arg1} = {arg2}** - czy oba argumenty są identyczne (|, &, \<, \>, <=, >=, \!=, +, -, *, /, %)
    * **expr {string} : {regexp}** - sprawdza czy string pasuje do wzorca
    * **expr substr {string} {start} {długoś}** - wycina cześć stringa
    * **expr index {string} {chars}** - zwraca index znaku w stringu
    * **expr length {string}** - długość tekstu
    * **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
    @@ -384,10 +389,20 @@
    * **echo "\u9c93"** - 鲓
    * **echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"** -  ±  ➦ ✘ ⚡ ⚙
    * **echo "\xe2\x9c\x93"** - ✓
    * **echo $(( 2#101011 ))** -
    * **tty** - zwraca nazwę terminala
    * **ttylog -d /dev/pts/{numer}** - wyświetla informacje z innego terminala
    * **script -f /dev/tty3** - zapisje wszystkie informacje z terminala (np zapis wszystkich działań w terminalu) do innego terminala, lub pliku (-f {plik})
    * **retty $({id procesu})** - przełącza proces z innego termianala na obecny
    * **... | bash -s {param}** - uruchamia skrypt w bash i podaje na standardowe wejście parametr
    * **fc** - history manager
    * **echo $(( 2#101011 ))** - zamienia binary na decimal (101011 -> 43)
    * **echo "obase=2; {liczba}" | bc** - decimal do binary
    * **echo "obase=8; {liczba}" | bc** - decimal do octal
    * **printf "%on" {octal}**
    * **echo "obase=16; {liczba}" | bc** - decimal do hex
    * **printf "%xn" {liczba}**
    * **echo "ibase=2; {liczba}" | bc** - binary do decimal
    * **echo "ibase=8; {liczba}" | bc** - octal do decimal
    * **echo "ibase=16; {liczba}" | bc** - hex do decimal
    * **echo $((0x{hex}))**
    * **echo "ibase=2;obase=8; {liczba}" | bc** - binary do octal
  17. Michal Adamiak revised this gist May 22, 2018. 1 changed file with 88 additions and 12 deletions.
    100 changes: 88 additions & 12 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -38,11 +38,15 @@
    * **(cd /{some}/{dir}/ && ls -l)** - zmienia katalog, wykonuje komendę i powraca do aktualnego katalogu
    * **chgrp** - zmienia grupę dla plików/katalogów
    * **echo {pliki/katalogi} | xargs -n 1 cp -vr {katalog}** - kopiuje pliki/katalogi do katalogu (-n ile przyjmuje argumentow, 1-kazdy element z echo)
    * **lsattr {plik/katalog}** - lista rozszerzonych atrybutów (tylko partycje ext) (chattr - ustawia atrybu)
    * **chattr {plik/katalog}** - ustawia rozszerzone atrybuty

    ### 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
    * **split -l 1000** - dzieli po 1000 linii
    * **split -b 1000** - dzieli po 1000 bajtw (b|k|m)
    * **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)
    * **dd id=/dev/device of=~/device.img** - kopiuje każdy bajt z urządzenia device do pliku
    @@ -54,7 +58,7 @@
    * **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
    * **stat {nawza pliku}** - rozszerzone 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
    @@ -82,6 +86,7 @@
    * **cmp -bl <(sed -n '1p' {plik}) <(sed -n '1p' {plik})** - porwnuje pierwsze linie z plikow
    * **lsof** - pokazuje wszystkie otwarte pliki
    * **fdupes -rnS {dir} >> duplicated** - znajduje i zapisuje do pliku listę zduplikowanych plików
    * **qemu-img convert -f raw -O qcow2 image.img image.qcow2** - konwertuje pliki obrazw (np VM)

    ### Katalogi
    * **rm -fr {nazwa katalogu lub pliku}** - umożliwia kasowanie katalogu i zawartości wraz z wymuszeniem
    @@ -93,6 +98,7 @@
    * **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
    * **take ~/katalog/{bin,src,pkg}** - j/w

    ### Archiwa
    * **tar -xzvf {nazwa pliku}** - rozpakowuje archiwum `*.tar.gz`
    @@ -107,6 +113,7 @@
    * **last** - pokazuje listę ostatnich logowań użytkowników (-n {liczba})
    * **whoami** - podaje nazwę aktualnego użytkownika
    * **users** - zalogowani użytkownicy
    * **users | wc -w** - liczba zalogowanych użytowników
    * **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
    @@ -120,14 +127,13 @@
    * **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
    * **su - {user}** - przełącza usera
    * **usermod** - modyfikuje ustawienia użytkownika
    * **usermod -a -G {grupa} {user}** - dodaje usera do grupy
    * **gpasswd -a {user} {grupa}** - j/w
    * **htpasswd** -
    * **htpasswd {user} {pass}** - tworzy plik htpasswd (-c nowy plik o wskazanej nazwie)

    ---
    ## Data i czas
    @@ -148,6 +154,7 @@
    ---
    ## System
    * **uname -a** - pokazuje informację o systemie Linux
    * **uname -snrvm** - j/w tylko bardziej szczegłowo
    * **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
    @@ -165,6 +172,12 @@
    * **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)
    * **top -l 1 -s 0 | grep PhysMem** - ilość zużytej i wolnej pamięci
    * **lsmod** - pokazuje status modułw w jądrze linuxa
    * **lsb_release -a** - informacje o dystrybucji (-s skrócone)
    * **lslk** - lista locków
    * **modprobe -a {modul1} {modul2}** - ładuje podane moduły które pasują do wzorca
    * **-c** - lista załadowanych modułów

    ### Urządzenia
    * **mount {urządzenie} {ścierzka docelowa}** - montuje urządzenie
    @@ -177,33 +190,55 @@
    * **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)
    * **-short** - jak wyżej, wersja skrócona (`-html` zapisuje w wersji html)
    * **-class disk** - informacje o dyskach
    * **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
    * **hciconfig -a** - Bluetooth info
    * **awk '/sd/ {print $3"\t"$10 / 2 / 1024}' /proc/diskstats** - pokazuje statystyki dyskow zaczynajacych sie na `sd`
    * **udevadm info -q all -n /dev/sda1** - szczegółowe informacje na temat dysku
    * **lsinput** - lista urządzeń wejściowych
    * **lshal** - informacja o urządzeniach HAL
    * **lpq** - status drukowania
    * **lpstat** - j/w (-d domyślna drukarka)
    * **lp {plik}** - dodaje plik do kolejki drukowania
    * **lprm {id}** - usuwa z kolejki do druku

    ### 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
    * **ps aux | grep {nazwa}** - szuka procesów o podanym wyrażeniu
    * **ps -LF -u {nazwa użytkownika}** - pokazuje procesy użytkownika
    * **ps -p {id} -o %cpu,%mem** - pokazuje zużycie ramu i procesora dla podanego procesu
    * **watch -n 1 -d "ps -p {id} -o %cpu,%mem"**
    * **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
    * **iotop** - pokazuje operacje i/o
    * **jobs** - pokazuje polecenia uruchomione w terminalu i przeniesione w tło
    * **kill %1** - zabina proces w tle
    * **fg %2** - przywraca proces z tła (bez % ostatni)
    * **bg** - przenosi proces w tło, po zatrzymaniu przez `CTRL-Z`
    * **top -U {user} -o cpu -p {id}** - statystyki zuzżycia procesu przez użytkownika o id (na żywo)
    * **pgrep {program}** - zwraca id procesu dla podanej nazwy programu
    * **renice {numer} {pid}** - zmienia priorytet procesu o podanym id, im niższy tym wyższy priorytet (np -19, default: 0)
    * **pkill {program}** - zabija podany program
    * **-p $(pgrep {program})** - dla podanego programu
    * **xkill** - umożliwia zabijanie okienkowych procesów, należy wskazać kursorem proces do zabicia
    * **pidstat -hruvp {pid1}{pid2} 5** - monitoruje 2 procesy i pokazuje co 5s

    ---

    @@ -219,32 +254,61 @@
    * **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
    * **sudo lsof -i -P -n | grep LISTEN** - lista otwartych portów i procesów ich nasłuchujących
    * **netstat -at** - lista portów TCP
    * **netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'** - nazwa aktualnie używanej sieci
    * **netstat -anp tcp | grep -i "listen"** - pokazuje nasłuchiwane połączenia tcp
    * **netstat -nr** - pokazuje tablicę routingu
    * **netstat -tuln** - lista otwartych połączeń
    * **netstat -tulnp tcp** - tylko tcp
    * **sudo lsof -i -P -n | grep LISTEN** - lista otwartych portów i procesów ich nasłuchujących
    * **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 -sn {ip}/24** - skanuje adresy w poszukiwaniu hostów (/24,16,8 - mask adresu np /16 -> 127.0.x.x, 24 -> 127.0.0.x)
    * **nmap {hostname}** - pokazuje otwarte porty i serwisy na podanym hoście
    * **nmap -p 1-1000 {hostname}** - pokazuje otwarte porty i serwisy na podanym hoście od 1 do 1000
    * **hostname -I** - pokazuje lokalne ip komputera
    * **hostname -f** - nazwa hosta (długa, -s - krtka)
    * **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)
    * **curl -si -H "Host: host.com" "http://server-name/"** - testowanie serwera za load balancerem (host - główna strona, server-name - docelowy serwer za load balancerem)
    * **curl -sS -d key=val {url}** - wysyła dane POST, -sS pokazuje tylko błędy jeśli krytuczne (-G - GET)
    * **-d {key=val}** - post data
    * **-G {key=val}** - get data
    * **-H {Name: value}** - header data
    * **-i** - pokazuje headery w output
    * **-I** - pokazuje tylko headery w output
    * **-L** - podążaj za relokacją ze strony
    * **-N** - bez bufora, pokazuje na bierząco dane przychodzące
    * **-o** - zapisuje output do pliku (-o- - force)
    * **-O | --remote-name** - nazywa plik tak samo jak ten z serwera
    * **-s** - nie pokazuje błędów i progresu
    * **-S** - pokazuje błędy
    * **-sS** - pokazuje błędy tylko jeśli zapytanie się nie udało
    * **for ((i=0;i<=30;i++)); do curl -I "{url}/$i"; done;** - odpala 30 url-i z dopiskiem numeru na końcu i zwraca tylko headery
    * **whois {domena}** - podaje informacje o domenie internetowej
    * **dig {domena}** - informacje o DNS
    * **wget -r {url}** - pobiera rekursywnie z podanego url-a
    * **-O {plik}** - zapisuje output do pliku
    * **-c** - wznawia ściąganie częściowo ściągniętego pliku
    * **lsof -n -i:80 | grep LISTEN** - lista programów nasłuchujących port 80 (-iTCP:80 - tylko TCP)
    * **dsh -vMm {serwer, ...} -c {polecenie}** - uruchamia polecenia na zewnętrznych maszynach
    * **netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'** - nazwa aktualnie używanej sieci
    * **if=`netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'` && ifconfig ${if}** - szczegóły aktualnie używanej sieci
    * **if=`netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'` && ifconfig ${if} | awk '{ if ($1 ~/inet$/) { print $2} }'** - zwraca ip
    * **ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'** - j/w
    * __ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'__ - j/w
    * __ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'__ - j/w
    * **nc {ip} {port}** - ustawa połączenie tcp & udp z serwerem
    * **nc -z -v 127.0.0.1 1-1000** - skanowanie portów od 1 do 1000
    * **nc -z 127.0.0.1 1-100** - tylko te z którymi udało się połączyć
    * **nc -z -n -v 127.0.0.1 1-1000 2>&1 | grep succeeded** - j/w
    * **nc -l {port}** - nasłuchuje na porcie
    * **nc -l {port}| tar xzvf -** - zapisuje output do spakowanego pliku
    * **tar -czf - * | nc {ip} {port}** - wysyła spakowane pliki przez netcata
    * **while true; do printf 'HTTP/1.1 200 OK\n\n%s' "$(cat index.html)" | nc -l {port}; done** - tworzy prosty serwwer pokazujący plik index.html (while - żeby działało cały czas)
    * **iptables -I INPUT -p tcp -m tcp --dport {port} -j ACCEPT** - dodaje port do wpisu w iptables

    ---

    @@ -286,16 +350,24 @@
    * **history | awk '{ $1=""; print }'** - wyświetla tylko komendy z historii (print substr($0,2) - bez spacji na początku)
    * **history | fc -ln** - j/w
    * **for ((i=32;i<=127;i++)); do printf '%03o\t' "$i"; done;echo "\n""** - liczby od 32-127 przedstawione w notacji ósemkowej
    * **mysqldump --host -u -p --no-create-info --single-transaction -d {db_name} > sb.sql** - eksport danych bez info
    * **--no-create-db --where="date_time>'2015-08-01'"**
    * **mysqluc -e "help utilities"**
    * **tig** **grv** - wizualna reprezentacja git-a
    * **curl -N tty.zone/\[0-2\]\?auto\&cols=$((COLUMNS))** - demo narzędzi graficznych pod terminal

    ---

    ## Stream
    * **awk '{print $4/$2}'** - wyswietla parameter 4 i 2 z wejscia podzielone przez siebie (oddzielone spacja) ($NF - liczba pol, $NR - liczba rekordow)
    * **awk 'BEGIN{for(i=32;i<128;i++)printf "%c",i}'** - wyświetla listę znakow (32-128)
    * **awk -F'/' '{print $3}'** - dzieli input wzgledem znaku `/` i wyswietla 3 element
    * **awk '{s+=$1} END {print s}** -
    * **awk '{gsub(/{pattern}/,"{replace}")}' {plik}** - Szuka i zastępuje wszystkie wzorce znalezione w pliku
    * **awk '{gsub(/[0-9]+\.216\.104\.10/,"10.216.104.1")}' php.ini**
    * **sed -n '44,92p' {plik}** - pokazuje linie 44-92 z pliku (samo 92p - 92 linia)
    * **sed -i --'s/{pattern}/{replace}/g' {plik}** - zastępuje zneleziony wrzozec w pliku
    * **... | cut -d' ' -f1** - tnie po spacji i podaje pirwszy element (-f 2- - od 2 i dalej; -2 do 2)

    ---

    @@ -313,5 +385,9 @@
    * **echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"** -  ±  ➦ ✘ ⚡ ⚙
    * **echo "\xe2\x9c\x93"** - ✓
    * **echo $(( 2#101011 ))** -
    * **awk -F'/' '{print $3}'** - dzieli input wzgledem znaku `/` i wyswietla 3 element
    * **tty** - zwraca nazwę terminala
    * **ttylog -d /dev/pts/{numer}** - wyświetla informacje z innego terminala
    * **script -f /dev/tty3** - zapisje wszystkie informacje z terminala (np zapis wszystkich działań w terminalu) do innego terminala, lub pliku (-f {plik})
    * **retty $({id procesu})** - przełącza proces z innego termianala na obecny
    * **... | bash -s {param}** - uruchamia skrypt w bash i podaje na standardowe wejście parametr
    * **fc** - history manager
  18. chajr revised this gist May 18, 2018. 1 changed file with 62 additions and 11 deletions.
    73 changes: 62 additions & 11 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -9,7 +9,7 @@
    * **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 -sh .[!.]* *__ - jak powyżej
    * __du -sh .[!.]*__ - jak powyżej
    * __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
    @@ -18,6 +18,9 @@
    * **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)
    * **chmod g=-w;o=-w {plik}**
    * **chmod go=-w {plik}**
    * **chmod u+x {plik}**
    * **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
    @@ -26,24 +29,26 @@
    * **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`
    * **find . -type f -ctime -2 -print0** - pokazuje pliki utworzone w ciagu 2 dni i wyswietla jako linia (+1 starsze niz 2 dni)
    * **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
    * **echo {pliki/katalogi} | xargs -n 1 cp -vr {katalog}** - kopiuje pliki/katalogi do katalogu (-n ile przyjmuje argumentow, 1-kazdy element z echo)

    ### 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)
    * **dd id=/dev/device of=~/device.img** - kopiuje każdy bajto z urządzenia device do pliku
    * **dd id=/dev/device of=~/device.img** - kopiuje każdy bajt z urządzenia device do pliku
    * **rm {nazwa pliku}** - kasuje plik
    * **touch {nazwa pliku}** - tworzy pusty plik
    * **ls -la | grep ^- | wc -l** - pokazuje liczbę plików w katalogu
    * **ls -la | grep ^- | wc -l** - pokazuje liczbę plików w katalogu (-lar - + podkatalogi)
    * **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
    @@ -61,14 +66,20 @@
    * **grep –color -rw "{pattern}" .** - szuka tylko całych słów, zwraca pokolorowany otput
    * **grep -c "{pattern}" .** - zwraca ilość znalezionych wzorców w plikach
    * **grep -v "{pattern}" .** - zwraca wszystko z pominięciem wzorca
    * **grep -v "^git\|docker"**
    * **diff {plik1} {plik2}** - porównuje ze sobą 2 pliki
    * **grep -v "^git\|docker"**
    * **grep --include={plik} -A 1 -rn {scierzka} -e {wzorzec}** - szuka wzorca w sierzce i podanym pliku, wyswietla scierzke, numer linii + linia ponizej znalezionej
    * **grep -o {wzorzec} {plik} | sort --unique | wc -l** - ilosc unikalnych wystapien wzorca
    * **grep -o {wzorzec} {plik} | sort | uniqu -c** - pokazuje posortowane wzorce + ilosc ich wystapien
    * **grep -rcw** - szuka rekursywnie wzorca w postaci całych słów i wyświetla tylko ilość znalezionych
    * **diff {plik1} {plik2}** - porównuje ze sobą 2 pliki (-y w kolumnach, -a traktuja jako tekst, -n - format rcs, -w ignoruje biale spacje)
    * **diff <(sed -n '1p' {plik}) <(sed -n '1p' {plik})**
    * **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)
    * **cmp -bl <(sed -n '1p' {plik}) <(sed -n '1p' {plik})** - porwnuje pierwsze linie z plikow
    * **lsof** - pokazuje wszystkie otwarte pliki
    * **fdupes -rnS {dir} >> duplicated** - znajduje i zapisuje do pliku listę zduplikowanych plików

    @@ -112,16 +123,27 @@
    * **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
    * **su - {user}** - przełącza usera
    * **usermod** - modyfikuje ustawienia użytkownika
    * **sudo usermod -a -G {grupa} {user}** - dodaje usera do grupy
    * **sudo gpasswd -a {user} {grupa}** - j/w
    * **usermod -a -G {grupa} {user}** - dodaje usera do grupy
    * **gpasswd -a {user} {grupa}** - j/w
    * **htpasswd** -

    ---
    ## 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
    * **date --date="2 days ago"**
    * **date "+%Y-%m-%d"**
    * **date "+%H:%M:%S"**
    * **date +"%D %T"** - 05/18/18 12:16:46
    * **date +%N** - 563339704
    * **date +%s** - 1526638758
    * **date -R** - Fri, 18 May 2018 12:20:07 +0200
    * **date -jnu** - Fri May 18 10:21:13 UTC 2018
    * **date -v -1d '+%m-%d-%y'** - 05-17-18
    * **sleep {sec} && {polecenie}** - uruchamia polecenie po określonej liczbie sekund (45m - minuty)

    ---
    ## System
    @@ -161,6 +183,7 @@
    * **lspci** - urządzenia podpięte pod szynę PCI
    * **watch "dmesg | tail -20"** - podgląd na żywo logów systemowych
    * **hciconfig -a** - Bluetooth info
    * **awk '/sd/ {print $3"\t"$10 / 2 / 1024}' /proc/diskstats** - pokazuje statystyki dyskow zaczynajacych sie na `sd`

    ### Procesy
    * **pstree** - pokazuje drzewo procesów
    @@ -204,15 +227,24 @@
    * **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
    * **hostname -f** - nazwa hosta (długa, -s - krtka)
    * **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)
    * **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
    * **lsof -n -i:80 | grep LISTEN** - lista programów nasłuchujących port 80 (-iTCP:80 - tylko TCP)
    * **dsh -vMm {serwer, ...} -c {polecenie}** - uruchamia polecenia na zewnętrznych maszynach
    * **netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'** - nazwa aktualnie używanej sieci
    * **if=`netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'` && ifconfig ${if}** - szczegóły aktualnie używanej sieci
    * **if=`netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'` && ifconfig ${if} | awk '{ if ($1 ~/inet$/) { print $2} }'** - zwraca ip
    * **ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'** - j/w
    * __ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'__ - j/w
    * __ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'__ - j/w

    ---

    @@ -250,6 +282,20 @@
    * **echo -n "Hello" | od -A n -t x1** - wyświetla tekst jako wartości hex
    * **echo -n "Hello" | hd** - wyświetla tekst jako wartości hex + oryginalny string (hd, xxd)
    * **history | cut -c 8- | grep -Eo "^{name}.*" | sort --uniq** - wyszukuje w historii unikalne komendy zaczynające się od wyrażenia
    * **history | cut -c 8- | grep -v "^{name}\|{name2}.*" | sort --uniq** - wyszukuje w historii unikalne komendy nie zaczynające się od wyrażenia name lub name2
    * **history | awk '{ $1=""; print }'** - wyświetla tylko komendy z historii (print substr($0,2) - bez spacji na początku)
    * **history | fc -ln** - j/w
    * **for ((i=32;i<=127;i++)); do printf '%03o\t' "$i"; done;echo "\n""** - liczby od 32-127 przedstawione w notacji ósemkowej

    ---

    ## Stream
    * **awk '{print $4/$2}'** - wyswietla parameter 4 i 2 z wejscia podzielone przez siebie (oddzielone spacja) ($NF - liczba pol, $NR - liczba rekordow)
    * **awk 'BEGIN{for(i=32;i<128;i++)printf "%c",i}'** - wyświetla listę znakow (32-128)
    * **awk '{s+=$1} END {print s}** -
    * **awk '{gsub(/{pattern}/,"{replace}")}' {plik}** - Szuka i zastępuje wszystkie wzorce znalezione w pliku
    * **awk '{gsub(/[0-9]+\.216\.104\.10/,"10.216.104.1")}' php.ini**
    * **sed -n '44,92p' {plik}** - pokazuje linie 44-92 z pliku (samo 92p - 92 linia)

    ---

    @@ -261,6 +307,11 @@
    * **{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
    * **{command} &> /dev/null** - Redirect whole output to /dev/null
    * **echo -n "{tekst}"** - wyświetla tekst bez znaku nowej linii
    * **echo "\u9c93"** - 鲓
    * **echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"** -  ±  ➦ ✘ ⚡ ⚙
    * **echo "\xe2\x9c\x93"** - ✓
    * **echo $(( 2#101011 ))** -
    * **awk -F'/' '{print $3}'** - dzieli input wzgledem znaku `/` i wyswietla 3 element
    * **tty** - zwraca nazwę terminala
  19. chajr revised this gist May 18, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -61,7 +61,7 @@
    * **grep –color -rw "{pattern}" .** - szuka tylko całych słów, zwraca pokolorowany otput
    * **grep -c "{pattern}" .** - zwraca ilość znalezionych wzorców w plikach
    * **grep -v "{pattern}" .** - zwraca wszystko z pominięciem wzorca
    * * **grep -v "^git\|docker"**
    * **grep -v "^git\|docker"**
    * **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
  20. chajr revised this gist May 18, 2018. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -60,6 +60,8 @@
    * __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
    * **grep -v "{pattern}" .** - zwraca wszystko z pominięciem wzorca
    * * **grep -v "^git\|docker"**
    * **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
  21. chajr revised this gist May 18, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -36,7 +36,7 @@

    ### 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
    * __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)
  22. chajr revised this gist May 14, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -147,7 +147,7 @@
    * **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
    * **sudo mount -r -o loop {obraz.iso} {/katalog}** - montuje obraz.iso do katalogu /katalog (-r tylko do odczytu)
    * **blkid** - id urządzeń blokowych
    * **sudo fsck -Cyv {/dev/sdx}** - skanuje i naprawia system plików na dysku
    * **lsusb** - lista urządzeń usb
  23. chajr revised this gist May 14, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -40,6 +40,7 @@
    * **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)
    * **dd id=/dev/device of=~/device.img** - kopiuje każdy bajto z urządzenia device do pliku
    * **rm {nazwa pliku}** - kasuje plik
    * **touch {nazwa pliku}** - tworzy pusty plik
    * **ls -la | grep ^- | wc -l** - pokazuje liczbę plików w katalogu
  24. chajr revised this gist Apr 16, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -246,6 +246,7 @@
    * **multitail -l 'ssh user@host "tail -f /var/log/log.log"' -l 'ssh user@host2 "tail -f /var/log/log.log"'** - podgląd logów z 2 serwerów na raz
    * **echo -n "Hello" | od -A n -t x1** - wyświetla tekst jako wartości hex
    * **echo -n "Hello" | hd** - wyświetla tekst jako wartości hex + oryginalny string (hd, xxd)
    * **history | cut -c 8- | grep -Eo "^{name}.*" | sort --uniq** - wyszukuje w historii unikalne komendy zaczynające się od wyrażenia

    ---

  25. chajr revised this gist Apr 13, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -157,6 +157,7 @@
    * **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
    * **hciconfig -a** - Bluetooth info

    ### Procesy
    * **pstree** - pokazuje drzewo procesów
  26. chajr revised this gist Apr 9, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -67,6 +67,7 @@
    * **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)
    * **lsof** - pokazuje wszystkie otwarte pliki
    * **fdupes -rnS {dir} >> duplicated** - znajduje i zapisuje do pliku listę zduplikowanych plików

    ### Katalogi
    * **rm -fr {nazwa katalogu lub pliku}** - umożliwia kasowanie katalogu i zawartości wraz z wymuszeniem
  27. chajr revised this gist Apr 9, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -192,6 +192,7 @@
    * **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
    * **sudo lsof -i -P -n | grep LISTEN** - lista otwartych portów i procesów ich nasłuchujących
    * **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
  28. chajr revised this gist Apr 7, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -66,6 +66,7 @@
    * **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)
    * **lsof** - pokazuje wszystkie otwarte pliki

    ### Katalogi
    * **rm -fr {nazwa katalogu lub pliku}** - umożliwia kasowanie katalogu i zawartości wraz z wymuszeniem
  29. chajr revised this gist Apr 7, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -241,6 +241,7 @@
    * **mplayer -vo caca {film}** - odtwarzanie filmów w konsoli
    * **multitail -l 'ssh user@host "tail -f /var/log/log.log"' -l 'ssh user@host2 "tail -f /var/log/log.log"'** - podgląd logów z 2 serwerów na raz
    * **echo -n "Hello" | od -A n -t x1** - wyświetla tekst jako wartości hex
    * **echo -n "Hello" | hd** - wyświetla tekst jako wartości hex + oryginalny string (hd, xxd)

    ---

  30. chajr revised this gist Apr 7, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions linux_bash_commands.md
    Original file line number Diff line number Diff line change
    @@ -240,6 +240,7 @@
    * **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
    * **multitail -l 'ssh user@host "tail -f /var/log/log.log"' -l 'ssh user@host2 "tail -f /var/log/log.log"'** - podgląd logów z 2 serwerów na raz
    * **echo -n "Hello" | od -A n -t x1** - wyświetla tekst jako wartości hex

    ---