PJs list - shortened Flashcards
bash
bash/bash shell to popularna powłoka systemów uniksowych
Jest domyślną powłoką w większości dystrybucji systemu GNU/Linux oraz systemów macOS od wersji 10.3 do 10.14
cd
change directory
zmienia katalog, na ten który podamy
cd wywołane bez argumentów przeniesie nas do katalogu domowego aktualnego użytkownika
ls
list
wylistowuje wszystkie elementy, które znajdują się w danej lokalizacji
ls -R wylistowywanie rekurencyjne
ls -a również pliki ukryte
ls -l z dodatkowymi atrybutami np. rozmiar, data modyfikacji
mkdir
make directory
tworzenie nowego katalogu o nazwie jaką podamy
mkdir -p
tworzy całą ścieżkę do katalogów
rmdir
remove directory
usuwa katalog, gdy jest on pusty
rm
remove
usuwa katalog wraz z jego zawartością
rm -i komputer pyta nas czy usunąć
cp
copy
kopiowanie plików/katalogów
cp plik 1 plik 2
skopiuj plik 1 i zapisz jako plik 2 (jeśli plik 2 istnieje to zostanie nadpisany)
mv
move
przeniesienie plików/ katalogów do innej lokalizacji oraz zmiana ich nazwy poprzez nadpisanie
pwd
print working directory
wyświetla ścieżkę do katalogu, w którym aktualnie się znajdujemy
find
find
przeszukiwanie plików i katalogów
find -name
find -type
find kat -name “jagoda”
w katalogu nazwie kat znajdź plik jagoda
touch
touch
utworzenie nowego pliku, bądź uaktualnienie jego daty
cat
concatenate
1 argument:
wyświetlenie zawartości pliku na ekranie
kopiuje standardowe wejście na standardowe wyjście, dzięki temu przy podaniu większej liczby argumentów możemy łączyć kilka plików w jeden
grep
global regular expression print
przeszukiwanie zawartości plików za pomocą wzorców (wyrażeń regularnych)
grep ,,Litwo” pantadeusz.txt
bardzo dużo opcji dodatkowych
grep -c zlicza liczbę wystąpień wzorca
grep -i ignoruje rozróżnianie wielkich liter,
grep -x dopasowuje wzorzec tylko do całych linii,
grep -w dopasowuje wzorzec tylko do całych słów,
pipe
pipe
łącznik
dzięki niemu można użyć wiele komend jednocześnie po kolei, gdyż jest to mechanizm strumienia danych z wyjścia jednej komendy na drugą.
Aby wykonać polecenie na prawach roota wpisujemy w konsolę ________
$ sudo polecenie
Następnie zostaniemy poproszeni o hasło. Przez kolejne 5 minut będziemy mogli wykonywać polecenia na prawach roota bez podawania hasła.
Aby przełączyć się na użytkownika root wpisuję w terminal _______
$ sudo su
Jak utworzyć nowego usera w systemie Ubuntu?
adduser lub useradd
$ sudo adduser jagoda
tworzy się wtedy katalog domowy użytkownika i jest on dodawany do grupy głównej
Jak dodać użytkownika do istniejącej grupy?
$ sudo usermod -a -G nazwagrupy nazwaużytkownika
- a jest od append
- G jest od Group
Jak usunąć usera w systemie Ubuntu
deluser lub userdel
Jak zarządzać hasłami w systemie Linux?
passwd
to komenda, która pozwala nadać lub zmienić hasło użytkownika
Z uprawnieniami root możemy zmienić hasło innego użytkownika.
Gdy wykonujemy tą komendę jako zwykły użytkownik, to zmieniamy własne hasło.
Lista wszystkich kont utworzonych w systemie Linux znajduje się w pliku _____
/etc/passwd
Jakich komend używamy aby ustawić adres IP w Linuxie?
$ ifconfig -a
$ ifconfig <nazwa_karty> <adres_ip> netmask <adres_maski> up</adres_maski></adres_ip></nazwa_karty>
lub
$ ip a
$ ip a add <adres_IP> dev <nazwa_karty>
$ ip l set <nazwa_karty> up</nazwa_karty></nazwa_karty></adres_IP>
Jakie pliki służą w Ubuntu do ustawienia adresu IP?
Od Ubuntu 17.10:
etc/netplan/50-cloud-init.yaml
$ netplan apply
W starszych wersjach Ubuntu:
etc/network/interfaces
$ etc/init.d/networking restart
ARP
ang. Address Resolution Protocol
protokół warstwy sieci zestawu TCP/IP
protokół ten pozwala m.in na mapowanie
adresów logicznych WARSTWY SIECIOWEJ (3) na adresy fizyczne WARSWY ŁĄCZA DANYCH
Adres logiczny np. IP
Adres fizyczny np. MAC
Adres MAC
ang. Media Access Control Address
fizyczny identyfikator urządzenia
unikatowy (niepowtarzalny) numer identyfikacyjny urządzenia sieciowego (najcześciej karty sieciowej) nadawany przez producenta i służący do kontrolowania dostępu do mediów
Adres IP
logiczny identyfikator urządzenia podpiętego do sieci Internet
Występuje w postaci liczby 32 (IPv4) lub 128 bitowej (IPv6)
IPv4
IP w wersji 4
czyli czwarta wersja protokołu komunikacyjnego IP przeznaczonego dla Internetu
Jest to adres logiczny w postaci liczby 32- bitowej zapisanej w kodzie dziesiętnym porządku big endian (najbardziej znaczący bajt umieszczony jest jako pierwszy)
Adres IPv4 zapisany jest jako cztery oddzielne bajty (oktety bo 1 bajt = 8 bitów) każdy z nich przyjmuje wartość od 0 do 255
IPv6
IP w wersji 6
następca IP w wersji v4. Został opracowany w efekcie kurczenia się puli adresów IPv4.
Adres IPv6 to liczba 128 bitowa zapisana jako osiem, 16-bitowych bloków (zapisanych w systemie szesnastkowym) oddzielonych dwukropkiem. Początkowe zera w bloku często się pomija.
Maska podsieci (maska adresu)
ang. subnetwork mask, address mask
ustawia zakres adresów IP z którymi mamy łączność
jest to liczba, która służy do określenia, która część adresu IP jest adresem podsieci, a która adresem hosta w tej podsieci
Ethernet
protokół warstwy fizycznej zestawu TCP/IP
standard obejmujący m.in specyfikację przewodów oraz sposób przesyłania nimi sygnałów
Ethernet jest wykorzystywany w budowie lokalnych sieci komuterowych
Brama sieciowa
ang. gateaway
punkt wejścia z jednej sieci do innych sieci
urządzenie w sieci, dzięki któremu komputery z sieci lokalnej mogą komunikować się przesyłać pakiety danych do komputerów w innych sieciach
Jest często utożsamiana z routerem
DNS
ang. domain name system
protokół warstwy aplikacji ł służący do zamiany publicznych adresów z postaci domenowej na numeryczną
Serwer DNS wyszukuje adres IP danej strony internetowej na podstawie adresu wpisanego przez użytkownika w przeglądarce.
SIT
ang. System Integration Testing
zestaw testów integracyjnych, czyli takich które mają przetestować zachowanie całego systemu
SIT obejmuje testy przeprowadzone w zintegrowanym środowisku sprzętowym i programowym (testowany jest jednocześnie hardware i software)
Dzięki SIT ocenia sięzgodność systemu z określonymi wymaganiami
SVT
ang. System Verification Test
testowanie po SIT pod kątem klienta i jego casów
ifconfig
polecenie Linux służące do konfiguracji interfejsów sieciowych
Ma postać
ifconfig <nazwa_interfejsu> <adres_IP>
netmask <adres_maski>
broadcast <adres_rozgłoszeniowy></adres_rozgłoszeniowy></adres_maski></adres_IP></nazwa_interfejsu>
Parametry netmask oraz broadcast są opcjonalne
Po wpisaniu:
$ ifconfig <interfejs></interfejs>
sprawdzimy jego status
Jeśli to polecenie nie jest dostępne instalujemy je za pomocą:
$ sudo apt install-net tools
route
ang. route
wpisany bez jakichkolwiek opcji służy do wyświetlenia tabeli trasowania, która wykorzystywana jest aby określićtrasę każdego pakietu wychodzącego z hosta
$ route add <cel>
$ route del <cel></cel></cel>
pozwalają dodać/usunąć trasy z tabeli trasowania
<cel> docelowy adres IP
</cel>
tcpdump
sniffer służący do śledzenia ruchu w sieci.
Pozwala na podsłuchiwanie, filtrowanie i przechwytywanie pakietów, które są przesyłane w sieci (bez względu na to, do którego hosta są adresowane),
gdyż program tcpdump ustawia kartę sieciową w tzw. „tryb promiscuous” dzięki któremu widać WSZYSTKIE pakiety przesyłane w sieci (zwykle karty sieciowe widzą jedynie pakiety adresowane bezpośrednio do nich)
Program przerywa pracę po wciśnięciu
[Ctrl]+[C].
tcp/wireshark umożliwia przeskanowanie ruchu np na jakimś porcie, albo dla jakiegoś adresu IP. Ten ruch np zrzucić do pliku i można sobie potem popatrzeć co się tam dzieje
ping
ang. Packet Internet Groper
komenda służąca do sprawdzenia statusu połączenia pomiędzy urządzeniem testującym a testowanym
Ping korzysta z protokołu ICMP (ang. Internet Control Message Protocol) wysyła Echo Request i oczekuje na Echo Reply, aby ustalić czy testowane urządzenie jest online i odpowie.
Ping służy więc do diagnozowania wydajności sieci, sprawdzania aktywności urządzeń w sieci.
Otrzymujemy informacje o czasie podróży pakietów w obie strony, o stanie łączności sieci.
chmod
ang.change mode
modyfikacja praw dostępu do pliku
Można zapisać te prawa numerycznie i literowo.
Kolejne czynności na plikach to:
read - ‘r’, 4
write - ‘w’, 2
execute - ‘x’, 1
7 = 4 + 2 + 1
Użytkownicy to:
user - u
group - g
others - o
all - a
ZAPIS NUMERYCZNY
$ chmod 777 plik
$ chmod 421 plik
chmod 7 7 7
u g o
mająwszystkie prawa rwx
chmod 4 2 1
u g o
user moze odczytywac, grupa moze zapisac, all mogą tylko executować
ZAPIS LITEROWY
$ chmod g=rw plik
nadaj grupie praw do czytania i pisania
$ chmod a-x plik
zabierz wszystkim prawo do wykonywania
chown
ang. change owner
pozwala na zmianę właściciela pliku/katalogu
$ sudo chown użytkownik plik
$ sudo chown :grupa plik
$ sudo chown użytkownik:grupa plik
Domyślnie właścicielem pliku czy katalogu jest użytkownik, który go stworzył.
Jak nadać uprawnienia
sudo użytkownikowi?
za pomocą usemode
$ usermod -a -G sudo użytkownik
Jak wyświetlić grupy, do których przydzielony jest użytkownik?
za pomocą getent i grep
$ getent grupa | grep użytkownik
Jak wykonywać polecenia na prawach roota?
$ sudo polecenie
su
su (switch user)
komenda do przelogowania się jako inny użytkownik
$ su użytkownik
pip
PyPI
install python package
narzędzie wiersza poleceń umożliwiający instalowanie modułów (bibliotek) Pythona
PyPI - Python Package Index -
strona, na której dostępna jest ogromna ilość pakietów do Pythona wraz z dokumentacją
to z niej pip ściąga instalowane przez nas pakiety
Jak wyświetlić listę procesów?
top, htop, ps, ps aux, ps axjf
Co to jest proces?
Kiedy uruchamiamy aplikację, system operacyjny tworzy jej proces (task). Procesy mogą być aktywne (running) albo uśpione (sleeping)
top
lista uruchomionych procesów wraz ze statystykami użytkowania
Jeśli top nie jest zainstalowane w systemie wpisujemy:
sudo apt-get install top
htop
Ulepszona wersją top nazywa się htop. Pokazuje dane dotyczące procesów w human readable format w B, KB, GB
ps
ps bez podania argumentów wyświetla niewielką tabelkę dot. procesów aktywnego użytkownika (wraz z aktywną sesją terminala)
ps aux
dodanie aux pokazuje procesy wszystkich użytkowników niezależnie od terminala.
ps axjf
pozwala zobaczyć całe drzewo, hierarchie procesów
ps axjf
pokazuje które procesy są nadrzędne do innych (columna COMMAND)
pid
process ID
identyfikator konkretnego procesu w systemie Linux
Tak system operacyjny identyfikuje i śledzi procesy
pgrep
polecenie pozwalające uzyskać identyfikator procesu
$ pgrep bash
>1017
$pgrep init
>1
kill
kill PID
to komenda, która powoduje zakończenie pracy procesu
$ kill 5486
wysyła sygnał TERM do procesu o numerze 5486, czego konsekwencją będzie
zamknięcie tego procesu
Jeśli proces nadal nie chce się zamknąć:
$ kill -KILL PID
Jeśli nie znamy pid i chcemy wpisać nazwę:
$ pkill bash
systemctl
systemctl umożliwia uruchamianie (start), zatrzymywanie (stop) lub restartowanie wybranego procesu (restart), a także sprawdzenie jesgo statusu
$ systemctl start proces1
$ systemctl stop proces1
$ systemctl restart proces1
$ systemctl status proces1
wyjście z vimtutora bez zapisywania zmian
:q!
zapisanie zmian w vimtutorze i wyjście z programu
:wq
jak włączyć vim editor z poziomu terminala
$ vim mojplik.txt
przesunięcie się na początek linii w vim
0
usuwanie w vim
d
insert mode w vim
i
cofnięcie ostatniej komendy
u
CTRL + R
replace w vim
rx
change operator w vim
x
jak sprawdzić gdzie znajduję się w vim
CTRL + G
przesunięcie się na początek pliku w vim
gg
przesunięcie się na koniec pliku w vim
g
przejście do np. 50 linii w vim
50g
szukanie frazy w vim
/fraza
zamiana słów na nowe w vim
:s/old/new/g
*g globally
zaznaczanie tekstu w vim
v
wykonanie zewnetrznej komendy Linux w vim
:! ls
wyjście z trybu insert w vim
ESC
kopiowanie tekstu w vim
v -zaznaczam tekst
y - kopiuje tekst (yank)
otwieranie helpa w vim
:help. lub. F1
:help cmd
(CTRL + W aby przełączać się pomiędzy okienkami helpa)
:q aby wyjść z helpa
interfejs sieciowy
urządzenia logiczne pozwalające na nawiązywanie połączeń różnego typu.
otoczenie sieciowe
katalog, który służy do przeglądania zasobów sieci,
SSH
protokół secure shell
nazwa dla całej rodziny protokołów
warstwy aplikacji zestawu TCP/IP
następca TELNET, który różni się od niego, że umożliwia szyfrowany transfer danych oraz rozpoznawanie użytkowników
jest używany w architekturze klient-serwer oraz serwer-klient
SSH jest zwykle używany do zdalnego logowania z komputerem/serwerem i wykonywania poleceń.
HTTP
hypertext transfer protocol
protokół warstwy aplikacji zestawu TCP/IP
umożliwia wymianę informacji poprzez przesyłanie dokumentów hipertekstowych w sieci WWW
FTP
file transfer protocol
protokół warstwy aplikacji zestawu TCP/IP
protokół służący do transferu plików między klientem a serwerem
umożliwia transfer w obu kierunkach
przeważnie dostęp jest autoryzowany conajmniej na poziomie uploadu plików
IP
Internet Protocol
protokół warstwy sieci zestawu TCP/IP
protokół internetowy to zbiór ścisłych reguł i kroków postępowania, które są automatycznie wykonywane przez urządzenia w celu nawiązania łączności i wymiany danych.
SCP
secure copy protocol
protokół warstwy aplikacji zestawu TCP/IP
protokół, który umożliwia bezpieczny transfer plików
korzysta z protokołu SSH
jego nazwa powstała z nazw protokołu SSH oraz polecenia Linux cp
jego przewagą nad protokołem FTP jest to, że oprócz szyfrowania potrafi również przekazać razem z plikiem jego podstawowe atrybuty (np. uprawnienia).
TELNET
protokół warstwy aplikacji zestawu TCP/IP
standard protokołu komunikacyjnego używany w sieciach komputerowych
obługuje tylko terminale alfanumeryczne (nie obsługuje myszy czy GU)
$ telnet <adres_ip>
$ telnet <nazwa_domenowa></nazwa_domenowa></adres_ip>
różni się od SSH tym, że połączenia nie są szyfrowane.
komputer-klienta wydaje polecenie, które wysyłane jest do serwera gdzie jest zainstalowane oprogramowanie telnetu, w odpowiedzi serwer odsyła komunikaty wyświetlane na komputerze klienta
git init
komenda, która pozwala zainicjować nowe, puste repozytorium lub ponownie utworzyć istniejące już repozytorium
tworzy się nowe repozytorium posiadające jedynie pustą, główną gałąź (jeszcze bez coimmitów)
git pull
pozwala pobrać wszystkie zmiany (także zmiany w kodzie) ze zdalnego repozytorium, uaktualnia nasze lokalne repozytorium
git fetch
git fetch to polecenie, które aktualizuje historię commitow, pozwala pobrać aktualne gałęzie i etykiety do naszego lokalnego repozytorium
Służy raczej do sprawdzania, czy są dostępne jakieś zmiany
git clone
klonuje repozytorium do nowego katalogu
git log
pozwala podejrzeć historię zmian danego repozytorium
zastosowanie flagi –oneline pozwala to zrobić w przydatnym dla oka formacie
git add
dodaje pliki do indeksu (na stage)
zmieniają one wtedy status z ‘zmodyfikowany’ na ‘śledzony’
. pozwala dodać wszystkie zmodyfikowane pliki
git status
po kilkukrotnym użyciu git add, można użyć polecenia git status, które wyświetli podsumowanie, mówiące nam o tym jaki status mają pliki w naszym projekcie oraz na jakim jesteśmy branchu
git commit
sprawia, że pliki zmieniają status z ‘śledzony’ na ‘zatwierdzony’
git push
wysyła commity do zdalnego repozytorium
jaki status mogą mieć pliki w Gicie
- zmodyfikowany (modified)
- śledzony (staged)
- zatwierdzony (commited)
git amend
edycja ostatniego commita
git branch
wyświetla, tworzy lub usuwa gałęzie w zależności od tego czy i jakich przełączników użyjemy
git merge
operacja scalenia lokalnych zmian ze zdalnym repozytorium
- tworzy merge commita
- nie daje zmian na head
Scalanie w Git umożliwia połączenie podzielonej historii. Polecenie git merge pozwala zebrać niezależne linie prac programistycznych utworzone za pomocą polecenia git branch i zintegrować je w pojedynczą gałąź
git rebase
operacja scalenia (w inny sposób niż git merge)
operacja zmiany bazy
- daje nasze zmiany na head (nadpisuje historie)
- nie robi merge commita
- przed git rebase powinniśmy zawsze zrobić git pull!
git checkout
pozwala przełączać się pomiędzy brancham
jeśli masz jakieś zmiany to git nie chce Cie przełączyć i musisz te zmiany odłożyć na półkę (shelf) przy pomocy komendy git stash
HEAD
Można powiedzieć, że HEAD jest czymś w rodzaju takiego wskaźnika, który mówi Ci gdzie teraz jesteś.
Kiedy już dociągniesz brakujące zmiany do swojego lokalnego repozytorium, to możesz powiedzieć, że jesteś na bieżąco z HEAD (ang. on top of the HEAD).
Kiedy na Twoim zdalnym repozytorium są zmiany, których jeszcze nie masz u siebie lokalnie, możesz powiedzieć, że jesteś za HEAD (ang. behind the remote HEAD)
protokół sieciowy
określa sposób transmisji danych na poziomie kanału fizycznego, określa procedury sterowania transmisją danych, jej inicjowanie, utrzymywanie i zatrzymywanie, a także kontrolę jej poprawności
dodawanie klucza ssh
$ ssh-keygen -o
po wygenerowaniu klucza dodajemy go:
$ ssh-add –apple-use-keychain ~/.ssh/id_ed25519
Aby sprawdzić czy mamy klucz:
$ cd ~/.ssh
$ ls
> id_dsa, id_rsa (klucze prywatne)
.pub (klucz publiczny, korespondujący)
WDM
Wavelength Division Multiplexing
zwielokrotnianie w dziedzinie długości fali
technologia pozwalająca na zwielokrotnienie sygnałów, przy użyciu światła laserowego
światło laserowe jest dzielone na kilkanaście-kilkaset fal o różnych długościach, które są przesyłane jednocześnie w tym samym medium transmisyjnym (we włóknie optycznym). Każda fala to kanał przenoszący informację.
na końcu sygnał jest demultipleksowany
W zależności od liczby kanałów wyróżnia siętechnologie:
- coarse WDM (16-18 kanałóW)
- dense WDM (więcej)
split()
pozwala dzielić string na podstawie regex
np.
test = “zmie-nna”
test.split(“-“)
> [‘zmie’, ‘nna’]
join()
pozwala połączyć zmienne dowolnym znakiem
Syntax:
“ separator “.join(iterable)
np.
myTuple = (“John”, “Peter”, “Vicky”)
x = “#”.join(myTuple)
> John#Peter#Vicky
Metoda join() pobiera wszystkie elementy w obiekcie iterowalnym (stringu, tupli, liście) i łączy je w jeden string.
Separator należy podać w stringu