Crmgo Blog

KOMENDY LINUX

KOMENDY LINUX

POLECENIA LINUX Polecenie | Opis ---|--- arch | wyświetl architekturę komputera uname -m | uname -r | wyświetl używaną wersję jądra dmidecode -q | pokaż sprzętowe komponenty systemowe – (SMBIOS / DMI) hdparm -i /dev/hda | wypisz parametry dysku twardego hdparm -tT /dev/sda | przetestuj wydajność…

KOMENDY LINUX

KOMENDY LINUXA

 

Polecenie Opis
Informacje systemowe
arch wyświetl architekturę komputera
uname -m
uname -r wyświetl używaną wersję jądra
dmidecode -q wyświetl sprzętowe komponenty systemowe - (SMBIOS / DMI)
hdparm -i /dev/hda wypisz parametry dysku twardego
hdparm -tT /dev/sda przetestuj wydajność odczytu danych z dysku twardego
cat /proc/cpuinfo wyświetl informacje o procesorze
cat /proc/interrupts wyświetl przerwania
cat /proc/meminfo sprawdź użycie pamięci
cat /proc/swaps wyświetl plik(i) wymiany (swap)
cat /proc/version wypisz wersję jądra
cat /proc/net/dev wyświetl interfejsy sieciowe i statystyki dotyczące nich
cat /proc/mounts wyświetl zamontowane systemy plików
lspci -tv wyświetl urządzenia PCI w formie drzewa
lsusb -tv wyświetl urządzenia USB w formie drzewa
date wypisz datę systemową
cal 2007 wypisz kalendarz na rok 2007
date 041217002007.00 ustaw systemową datę i czas MMDDHHmmRRRR.SS (MiesiącDzieńGodzinaMinutyRok.Sekundy)
clock -w zapisz czas systemowy do BIOS-u
Zatrzymywanie systemu
shutdown -h now Zatrzymaj system
init 0
telinit 0
shutdown -h hours:minutes & zaplanuj zatrzymanie systemu o podanej godzinie
shutdown -c anuluj zaplanowane zatrzymanie systemu
shutdown -r now zrestartuj system
reboot
logout wyloguj się z systemu
Pliki i katalogi
cd /home przejdź do katalogu '/home'
cd .. przejdź do katalogu o jeden poziom wyżej
cd ../.. przejdź do katalogu o dwa poziomy wyżej
cd przejdź do katalogu domowego
cd ~user przejdź do katalogu domowego użytkownika user
cd - przejdź do katalogu, w którym znajdowałeś się przed przejściem do bieżącego katalogu
pwd wyświetl bieżący katalog
ls wyświetl zawartość bieżącego katalogu
ls -F wyświetl zawartość bieżącego katalogu z dodaniem symboli określających typ do nazw
ls -l wyświetl szczegółowe informacje o plikach i katalogach w bieżącym katalogu
ls -a wyświetl ukryte pliki i katalogi w bieżącym katalogu
ls *[0-9]* wyświetl pliki i katalogi zawierające cyfry w nazwie
tree wyświetl drzewo plików i katalogów, zaczynając od katalogu głównego (/)
lstree
mkdir dir1 utwórz katalog o nazwie 'dir1'
mkdir dir1 dir2 utwórz dwa katalogi jednocześnie
mkdir -p /tmp/dir1/dir2 utwórz drzewo katalogów
rm -f file1 usuń plik o nazwie 'file1'
rmdir dir1 usuń katalog o nazwie 'dir1'
rm -rf dir1 usuń katalog o nazwie 'dir1' oraz rekurencyjnie całą jego zawartość
rm -rf dir1 dir2 usuń dwa katalogi oraz rekurencyjnie ich zawartość
mv dir1 new_dir zmień nazwę lub przenieś plik lub katalog
cp file1 file2 skopiuj plik file1 do pliku file2
cp dir/* . skopiuj wszystkie pliki z katalogu dir do bieżącego katalogu
cp -a /tmp/dir1 . skopiuj katalog dir1 ze całą zawartością do bieżącego katalogu
cp -a dir1 dir2 skopiuj katalog dir1 do katalogu dir2
ln -s file1 lnk1 utwórz dowiązanie symboliczne do pliku lub katalogu
ln file1 lnk1 utwórz "twarde" (fizyczne) dowiązanie do pliku lub katalogu
touch -t 0712250000 fileditest zmodyfikuj datę i czas utworzenia pliku; jeśli plik nie istnieje, utwórz go z podaną datą i czasem (RRMMDDhhmm)
Wyszukiwanie plików
find / -name file1 znajdź pliki i katalogi o nazwie file1. Wyszukiwanie zaczynaj od katalogu głównego (/)
find / -user user1 znajdź pliki i katalogi należące do użytkownika user1. Wyszukiwanie zaczynaj od katalogu głównego (/)
find /home/user1 -name "*.bin" Znajdź wszystkie pliki i katalogi, których nazwy kończą się na '.bin'. Wyszukiwanie zaczynaj od '/home/user1'
find /usr/bin -type f -atime +100 znajdź wszystkie pliki w '/usr/bin', do których ostatni dostęp miał miejsce ponad 100 dni temu
find /usr/bin -type f -mtime -10 znajdź wszystkie pliki w '/usr/bin', utworzone lub zmienione w ciągu ostatnich 10 dni
find / -name *.rpm -exec chmod 755 '{}' \; znajdź wszystkie pliki i katalogi, których nazwy kończą się na '.rpm', i zmień ich uprawnienia dostępu
find / -xdev -name "*.rpm" znajdź wszystkie pliki i katalogi, których nazwy kończą się na '.rpm', ignorując nośniki wymienne, takie jak cdrom, floppy itp.
locate "*.ps" znajdź wszystkie pliki zawierające w nazwie '.ps'. Zaleca się wcześniej wykonanie polecenia 'updatedb'
whereis halt pokazuje lokalizację plików binarnych, kodu źródłowego i dokumentacji dotyczących pliku 'halt'
which halt wyświetla pełną ścieżkę do pliku 'halt'
Montowanie systemów plików
mount /dev/hda2 /mnt/hda2 montuje partycję 'hda2' w punkcie montowania '/mnt/hda2'. Upewnij się, że istnieje katalog punktu montowania '/mnt/hda2'
umount /dev/hda2 odmontowuje partycję 'hda2'. Przed wykonaniem opuść '/mnt/hda2'
fuser -km /mnt/hda2 wymuszone odmontowanie partycji. Stosowane w przypadku, gdy partycja jest używana przez jakiegoś użytkownika
umount -n /mnt/hda2 wykonaj odmontowanie bez zapisywania informacji w /etc/mtab. Przydatne, gdy plik ma atrybut "tylko do odczytu" lub brakuje miejsca na dysku
mount /dev/fd0 /mnt/floppy montuj dyskietkę
mount /dev/cdrom /mnt/cdrom montuj CD lub DVD
mount /dev/hdc /mnt/cdrecorder montuj CD-R/CD-RW lub DVD-R/DVD-RW(+-)
mount -o loop file.iso /mnt/cdrom zamontuj obraz ISO
mount -t vfat /dev/hda5 /mnt/hda5 montuj system plików Windows FAT32
mount -t smbfs -o username=user,password=pass//winclient/share /mnt/share montuj sieciowy system plików Windows (SMB/CIFS)
mount -o bind /home/user/prg /var/ftp/user "montuje" katalog w katalogu (binding). Dostępne od wersji jądra 2.4.0. Przydatne np. do udostępnienia zawartości katalogu użytkownika przez ftp przy pracy serwera ftp w "piaskownicy" (chroot), gdy nie można utworzyć dowiązań symbolicznych.
Przestrzeń dyskowa
df -h wyświetla informacje o zamontowanych partycjach z wyświetleniem całkowitej, dostępnej i użytej przestrzeni (Uw. tłumacza. opcja -h nie działa we wszystkich systemach *nix)
ls -lSr |more wyświetla listę plików i katalogów rekurencyjnie, posortowaną rosnąco według rozmiaru, umożliwiając podział na strony
du -sh dir1 oblicza i wyświetla rozmiar zajmowany przez katalog 'dir1' (Uw. tłumacza. opcja -h nie działa we wszystkich systemach *nix)
du -sk * | sort -rn wyświetla rozmiar i nazwy plików i katalogów, posortowane według rozmiaru
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n pokazuje rozmiar zajmowanej przestrzeni dyskowej przez pliki pakietu rpm, posortowane według rozmiaru (fedora, redhat itp.)
dpkg-query -W -f='${Installed-Size;10}t${Package}n'| sort -k1,1n pokazuje rozmiar zajmowanej przestrzeni dyskowej przez pliki pakietu deb, posortowane według rozmiaru (ubuntu, debian itp.)
Użytkownicy i grupy
groupadd group_name utwórz nową grupę o nazwie group_name
groupdel group_name usuń grupę group_name
groupmod -n new_group_name old_group_name zmień nazwę grupy old_group_name na new_group_name
useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1 utwórz użytkownika user1, przypisz mu jako katalog domowy /home/user1, jako powłokę /bin/bash, dodaj go do grupy admin i dodaj komentarz Nome Cognome
useradd user1 utwórz użytkownika user1
userdel -r user1 usuń użytkownika user1 i jego katalog domowy
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 zmień atrybuty użytkownika
passwd zmień hasło
passwd user1 zmień hasło użytkownika user1 (tylko root)
chage -E 2005-12-31 user1 ustaw datę wygaśnięcia konta użytkownika user1
pwck sprawdź poprawność systemowych plików kont. Sprawdzane są pliki /etc/passwd i /etc/shadow
grpck sprawdza poprawność systemowych plików kont. Sprawdzany jest plik /etc/group
newgrp [-] group_name zmienia główną grupę bieżącego użytkownika. Jeśli podasz "-", sytuacja będzie identyczna z tą, w której użytkownik wylogował się i zalogował ponownie. Jeśli nie podasz grupy, główna grupa zostanie przypisana z /etc/passwd
Udzielanie/zmiana uprawnień do plików
ls -lh podgląd uprawnień do plików i katalogów w bieżącym katalogu
ls /tmp | pr -T5 -W$COLUMNS wypisz zawartość katalogu /tmp i podziel wynik na pięć kolumn
chmod ugo+rwx directory1 dodaj uprawnienia do katalogu directory1 ugo(Użytkownik Grupa Inni)+rwx(Odczyt Zapis Wykonaj) - pełne uprawnienia dla wszystkich. To samo można zrobić w ten sposób "chmod 777 directory1"
chmod go-rwx directory1 odbierz grupie i wszystkim innym wszystkie uprawnienia do katalogu directory1.
chown user1 file1 przypisz właściciela pliku file1 jako użytkownika user1
chown -R user1 directory1 przypisz rekurencyjnie właściciela katalogu directory1 jako użytkownika user1
chgrp group1 file1 zmień grupę właściciela pliku file1 na group1
chown user1:group1 file1 zmień właściciela i grupę właściciela pliku file1
find / -perm -u+s znajdź, zaczynając od katalogu głównego, wszystkie pliki z ustawionym SUID
chmod u+s /bin/binary_file przypisz bit SUID do pliku /bin/binary_file. Daje to możliwość każdemu użytkownikowi uruchamiania pliku z uprawnieniami właściciela pliku.
chmod u-s /bin/binary_file usuń bit SUID z pliku /bin/binary_file.
chmod g+s /home/public przypisz bit SGID do katalogu /home/public.
chmod g-s /home/public usuń bit SGID z katalogu /home/public.
chmod o+t /home/public przypisz bit STIKY do katalogu /home/public. Pozwala usuwać pliki tylko właścicielom
chmod o-t /home/public usuń bit STIKY z katalogu /home/public
Specjalne atrybuty plików
chattr +a file1 pozwól otwierać plik do zapisu tylko w trybie dopisywania
chattr +c file1 pozwala jądrze na automatyczne kompresowanie/dekompresowanie zawartości pliku.
chattr +d file1 wskazuje narzędziu dump, aby ignorowało ten plik podczas wykonywania kopii zapasowej
chattr +i file1 robi plik niedostępnym dla jakichkolwiek zmian: edycja, usuwanie, przenoszenie, tworzenie dowiązań do niego.
chattr +s file1 pozwala na bezpieczne usuwanie pliku, tj. ustawiony atrybut s oznacza, że przy usuwaniu pliku miejsce zajmowane przez plik na dysku jest wypełniane zerami, co zapobiega możliwości odzyskania danych.
chattr +S file1 wskazuje, że przy zapisywaniu zmian zostanie wykonana synchronizacja, jak przy wykonaniu polecenia sync
chattr +u file1 ten atrybut wskazuje, że przy usuwaniu pliku jego zawartość zostanie zachowana i w razie potrzeby użytkownik będzie mógł ją przywrócić
lsattr wyświetl atrybuty plików
Archiwizowanie i kompresowanie plików
bunzip2 file1.bz2 dekompresuje plik 'file1.gz'
gunzip file1.gz
gzip file1 kompresuje plik 'file1'
bzip2 file1
gzip -9 file1 skompresuj plik file1 z maksymalną kompresją
rar a file1.rar test_file utwórz archiwum rar 'file1.rar' i dołącz do niego plik test_file
rar a file1.rar file1 file2 dir1 utwórz archiwum rar 'file1.rar' i dołącz do niego file1, file2 i dir1
unrar x file1.rar rozpakuj archiwum rar
tar -cvf archive.tar file1 utwórz archiwum tar archive.tar, zawierające plik file1
tar -cvf archive.tar file1 file2 dir1 utwórz archiwum tar archive.tar, zawierające plik file1, file2 i dir1
tar -tf archive.tar wyświetl zawartość archiwum
tar -xvf archive.tar rozpakuj archiwum
tar -xvf archive.tar -C /tmp rozpakuj archiwum do /tmp
tar -cvfj archive.tar.bz2 dir1 utwórz archiwum i skompresuj je za pomocą bzip2(Uw. tłumacza. opcja -j nie działa we wszystkich systemach *nix)
tar -xvfj archive.tar.bz2 dekompresuj archiwum i rozpakuj je(Uw. tłumacza. opcja -j nie działa we wszystkich systemach *nix)
tar -cvfz archive.tar.gz dir1 utwórz archiwum i skompresuj je za pomocą gzip
tar -xvfz archive.tar.gz dekompresuj archiwum i rozpakuj je
zip file1.zip file1 utwórz skompresowane archiwum zip
zip -r file1.zip file1 file2 dir1 utwórz skompresowane archiwum zip z dołączeniem kilku plików i/lub katalogów
unzip file1.zip dekompresuj i rozpakuj archiwum zip
Pakiety RPM (Fedora, Red Hat i podobne)
rpm -ivh package.rpm zainstaluj pakiet z wyświetlaniem komunikatów i paska postępu
rpm -ivh --nodeps package.rpm zainstaluj pakiet z wyświetlaniem komunikatów i paska postępu bez kontroli zależności
rpm -U package.rpm aktualizuj pakiet bez zmiany plików konfiguracyjnych; w przypadku braku pakietu, zostanie on zainstalowany
rpm -F package.rpm aktualizuj pakiet tylko jeśli jest zainstalowany
rpm -e package_name.rpm usuń pakiet
rpm -qa wyświetl listę wszystkich pakietów zainstalowanych w systemie
rpm -qa | grep httpd spośród wszystkich pakietów zainstalowanych w systemie, znajdź pakiet zawierający w swojej nazwie "httpd"
rpm -qi package_name wypisz informacje o konkretnym pakiecie
rpm -qg "System Environment/Daemons" wyświetl pakiety wchodzące w skład grupy pakietów
rpm -ql package_name wypisz listę plików wchodzących w skład pakietu
rpm -qc package_name wypisz listę plików konfiguracyjnych wchodzących w skład pakietu
rpm -q package_name --whatrequires wypisz listę pakietów wymaganych do zainstalowania konkretnego pakietu ze względu na zależności
rpm -q package_name --whatprovides show capability provided by a rpm package
rpm -q package_name --scripts wyświetl skrypty uruchamiane podczas instalacji/usuwania pakietu
rpm -q package_name --changelog wypisz historię rewizji pakietu
rpm -qf /etc/httpd/conf/httpd.conf sprawdź, do którego pakietu należy wskazany plik. Należy podać pełną ścieżkę i nazwę pliku.
rpm -qp package.rpm -l wyświetla listę plików wchodzących w skład pakietu, ale jeszcze nie zainstalowanych w systemie
rpm --import /media/cdrom/RPM-GPG-KEY importuj publiczny klucz podpisu cyfrowego
rpm --checksig package.rpm sprawdź podpis pakietu
rpm -qa gpg-pubkey sprawdź integralność zainstalowanej zawartości pakietu
rpm -V package_name sprawdź rozmiar, uprawnienia, typ, właściciela, grupę, sumę MD5 i datę ostatniej zmiany pakietu
rpm -Va sprawdź zawartość wszystkich pakietów zainstalowanych w systemie. Wykonuj z ostrożnością!
rpm -Vp package.rpm sprawdź pakiet, który jeszcze nie jest zainstalowany w systemie
rpm2cpio package.rpm | cpio --extract --make-directories *bin* wyodrębnij z pakietu pliki zawierające w swojej nazwie bin
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm zainstaluj pakiet skompilowany z kodu źródłowego
rpmbuild --rebuild package_name.src.rpm skompiluj pakiet z kodu źródłowego
YUM - narzędzie aktualizacji pakietów (Fedora, RedHat i podobne)
yum install package_name pobierz i zainstaluj pakiet
yum update aktualizuj wszystkie pakiety zainstalowane w systemie
yum update package_name aktualizuj pakiet
yum remove package_name usuń pakiet
yum list wypisz listę wszystkich pakietów zainstalowanych w systemie
yum search package_name znajdź pakiet w repozytorium
yum clean packages wyczyść cache rpm, usuwając pobrane pakiety
yum clean headers usuń wszystkie nagłówki plików, których system używa do rozwiązywania zależności
yum clean all wyczyść cache rpm, usuwając pobrane pakiety i nagłówki
Pakiety DEB (Debian, Ubuntu i podobne)
dpkg -i package.deb zainstaluj / zaktualizuj pakiet
dpkg -r package_name usuń pakiet z systemu
dpkg -l wyświetl wszystkie pakiety zainstalowane w systemie
dpkg -l | grep httpd spośród wszystkich pakietów zainstalowanych w systemie, znajdź pakiet zawierający w swojej nazwie "httpd"
dpkg -s package_name wyświetl informacje o konkretnym pakiecie
dpkg -L package_name wypisz listę plików wchodzących w skład pakietu zainstalowanego w systemie
dpkg --contents package.deb wyświetl listę plików wchodzących w skład pakietu, który jeszcze nie jest zainstalowany w systemie
dpkg -S /bin/ping znajdź pakiet, do którego należy wskazany plik.
APT - narzędzie zarządzania pakietami (Debian, Ubuntu i podobne)
apt-get install package_name zainstaluj / zaktualizuj pakiet
apt-cdrom install package_name zainstaluj / zaktualizuj pakiet z cdrom'a
apt-get update pobierz zaktualizowane listy pakietów
apt-get upgrade aktualizuj pakiety zainstalowane w systemie
apt-get remove package_name usuń pakiet zainstalowany w systemie, zachowując pliki konfiguracyjne
apt-get purge package_name usuń pakiet zainstalowany w systemie, usuwając pliki konfiguracyjne
apt-get check sprawdź integralność zależności
apt-get clean usuń pobrane archiwalne pliki pakietów
apt-get autoclean usuń stare pobrane archiwalne pliki pakietów
Podgląd zawartości plików
cat file1 wypisz zawartość pliku file1 na standardowe urządzenie wyjścia
tac file1 wypisz zawartość pliku file1 na standardowe urządzenie wyjścia w odwrotnej kolejności (ostatni wiersz staje się pierwszym itd.)
more file1 podział na strony zawartości pliku file1 na standardowe urządzenie wyjścia
less file1 podział na strony zawartości pliku file1 na standardowe urządzenie wyjścia, ale z możliwością przewijania w obie strony (w górę/w dół), wyszukiwania po zawartości itp.
head -2 file1 wypisz pierwsze dwa wiersze pliku file1 na standardowe urządzenie wyjścia. Domyślnie wypisywanych jest dziesięć wierszy
tail -2 file1 wypisz ostatnie dwa wiersze pliku file1 na standardowe urządzenie wyjścia. Domyślnie wypisywanych jest dziesięć wierszy
tail -f /var/log/messages wypisuj zawartość pliku /var/log/messages na standardowe urządzenie wyjścia w miarę pojawiania się w nim tekstu.
Manipulacje tekstem
cat file | grep -i "Criteria" > result.txt ogólny składnia wykonywania działań przetwarzających zawartość pliku i wyprowadzania wyniku do nowego
cat file | grep -i "Criteria" » result.txt ogólny składnia wykonywania działań przetwarzających zawartość pliku i wyprowadzania wyniku do istniejącego pliku. Jeśli plik nie istnieje, zostanie utworzony
grep Aug /var/log/messages z pliku '/var/log/messages' wybierz i wypisz na standardowe urządzenie wyjścia wiersze zawierające "Aug"
grep ^Aug /var/log/messages z pliku '/var/log/messages' wybierz i wypisz na standardowe urządzenie wyjścia wiersze zaczynające się od "Aug"
grep [0-9] /var/log/messages z pliku '/var/log/messages' wybierz i wypisz na standardowe urządzenie wyjścia wiersze zawierające cyfry
grep Aug -R /var/log/* wybierz i wypisz na standardowe urządzenie wyjścia wiersze zawierające "Aug", we wszystkich plikach znajdujących się w katalogu /var/log i poniżej
sed 's/stringa1/stringa2/g' example.txt w pliku example.txt zamień "string1" na "string2", wynik wypisz na standardowe urządzenie wyjścia.
sed '/^$/d' example.txt usuń puste wiersze z pliku example.txt
sed '/ *#/d; /^$/d' example.txt usuń puste wiersze i komentarze z pliku example.txt
echo 'test' | tr '[:lower:]' '[:upper:]' przekształć znaki z małych liter na wielkie
sed -e '1d' result.txt usuń pierwszy wiersz z pliku example.txt
sed -n '/string1/p' wyświetl tylko wiersze zawierające "string1"
sed -e 's/ *$//' example.txt usuń puste znaki na końcu każdego wiersza
sed -e 's/string1//g' example.txt usuń wiersz "string1" z tekstu nie zmieniając reszty
sed -n '1,8p;5q' example.txt weź z pliku od pierwszego do ósmego wiersza i z nich wypisz pierwsze pięć
sed -n '5p;5q' example.txt wypisz piąty wiersz
sed -e 's/0*/0/g' example.txt zamień sekwencję dowolnej liczby zer jednym zerem
cat -n file1 ponumeruj wiersze przy wyprowadzaniu zawartości pliku
cat example.txt | awk 'NR%2==1' przy wyprowadzaniu zawartości pliku, nie wyprowadzaj parzystych wierszy pliku
echo a b c | awk '{print $1}' wypisz pierwszą kolumnę. Domyślnie podziałem jest spacja/odstęp lub znak/tabulacja
echo a b c | awk '{print $1,$3}' wypisz pierwszą i trzecią kolumnę. Domyślnie podziałem jest spacja/odstęp lub znak/tabulacja
paste file1 file2 połącz zawartość file1 i file2 w formie tabeli: wiersz 1 z file1 = wiersz 1 kolumna 1-n, wiersz 1 z file2 = wiersz 1 kolumna n+1-m
paste -d '+' file1 file2 połącz zawartość file1 i file2 w formie tabeli z separatorem "+"
sort file1 file2 posortuj zawartość dwóch plików
sort file1 file2 | uniq posortuj zawartość dwóch plików, nie wyświetlając powtórzeń
sort file1 file2 | uniq -u posortuj zawartość dwóch plików, wyświetlając tylko unikalne wiersze (wiersze występujące w obu plikach nie są wypisywane na standardowe urządzenie wyjścia)
sort file1 file2 | uniq -d posortuj zawartość dwóch plików, wyświetlając tylko powtarzające się wiersze
comm -1 file1 file2 porównaj zawartość dwóch plików, nie wyświetlając wierszy należących do pliku 'file1'
comm -2 file1 file2 porównaj zawartość dwóch plików, nie wyświetlając wierszy należących do pliku 'file2'
comm -3 file1 file2 porównaj zawartość dwóch plików, usuwając wiersze występujące w obu plikach
Konwersja zestawów znaków i formatów plików
dos2unix filedos.txt fileunix.txt konwertuj plik formatu tekstowego z MSDOS na UNIX (różnica w znakach powrotu karetki)
unix2dos fileunix.txt filedos.txt konwertuj plik formatu tekstowego z UNIX na MSDOS (różnica w znakach powrotu karetki)
recode ..HTML < page.txt > page.html konwertuj zawartość pliku tekstowego page.txt do pliku html page.html
recode -l | more wypisz listę dostępnych formatów
Analiza systemów plików
badblocks -v /dev/hda1 sprawdź partycję hda1 pod kątem obecności bad-blocks
fsck /dev/hda1 sprawdź/przywróć integralność systemu plików linux partycji hda1
fsck.ext2 /dev/hda1 sprawdź/przywróć integralność systemu plików ext2 partycji hda1
e2fsck /dev/hda1
e2fsck -j /dev/hda1 sprawdź/przywróć integralność systemu plików ext3 partycji hda1, wskazując, że dziennik znajduje się tamże
fsck.ext3 /dev/hda1 sprawdź/przywróć integralność systemu plików ext3 partycji hda1
fsck.vfat /dev/hda1 sprawdź/przywróć integralność systemu plików fat partycji hda1
fsck.msdos /dev/hda1
dosfsck /dev/hda1
Formatowanie systemów plików
mkfs /dev/hda1 utwórz system plików linux na partycji hda1
mke2fs /dev/hda1 utwórz system plików ext2 na partycji hda1
mke2fs -j /dev/hda1 utwórz system plików ext3 z dziennikiem na partycji hda1
mkfs -t vfat 32 -F /dev/hda1 utwórz system plików FAT32 na partycji hda1
fdformat -n /dev/fd0 formatowanie dyskietki bez sprawdzania
mkswap /dev/hda3 utworzenie przestrzeni swap na partycji hda3
Przestrzeń swap
mkswap /dev/hda3 utworzenie przestrzeni swap na partycji hda3
swapon /dev/hda3 aktywuj przestrzeń swap, znajdującą się na partycji hda3
swapon /dev/hda2 /dev/hdb3 aktywuj przestrzenie swap, znajdujące się na partycjach hda2 i hdb3
Tworzenie kopii zapasowych (backup)
dump -0aj -f /tmp/home0.bak /home utwórz pełną kopię zapasową katalogu /home do pliku /tmp/home0.bak
dump -1aj -f /tmp/home0.bak /home utwórz inkrementalną kopię zapasową katalogu /home do pliku /tmp/home0.bak
restore -if /tmp/home0.bak przywróć z kopii zapasowej /tmp/home0.bak
rsync -rogpav --delete /home /tmp synchronizuj /tmp z /home
rsync -rogpav -e ssh --delete /home ip_address:/tmp synchronizuj przez tunel SSH
rsync -az -e ssh --delete ip_addr:/home/public /home/local synchronizuj lokalny katalog ze zdalnym katalogiem przez tunel ssh ze ściskaniem
rsync -az -e ssh --delete /home/local ip_addr:/home/public synchronizuj zdalny katalog z lokalnym katalogiem przez tunel ssh ze ściskaniem
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'ddof=hda.gz' utwórz "odcisk" lokalnego dysku w pliku na zdalnym komputerze przez tunel ssh
tar -Puf backup.tar /home/user utwórz inkrementalną kopię zapasową katalogu '/home/user' do pliku backup.tar, zachowując uprawnienia
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd/home/share/ && tar x -p' kopiowanie zawartości /tmp/local na zdalny komputer przez tunel ssh do /home/share/
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' kopiowanie zawartości /home na zdalny komputer przez tunel ssh do /home/backup-home
tar cf - . | (cd /tmp/backup ; tar xf - ) kopiowanie jednego katalogu do drugiego, zachowując uprawnienia i dowiązania
find /home/user1 -name '*.txt' | \ xargs cp -av --target-directory=/home/backup/--parents wyszukaj w /home/user1 wszystkie pliki, których nazwy kończą się na '.txt', i skopiuj je do innego katalogu
find /var/log -name '*.log' | tar cv --files-from=- |bzip2 > log.tar.bz2 wyszukaj w /var/log wszystkie pliki, których nazwy kończą się na '.log', i utwórz z nich archiwum bzip
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 utwórz kopię MBR (Master Boot Record) z /dev/hda na dyskietkę
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 przywróć MBR z dyskietki na /dev/hda
CDROM
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force clean a rewritable cdrom
mkisofs /dev/cdrom > cd.iso create an iso image of cdrom on disk
mkisofs /dev/cdrom | gzip > cd_iso.gz create a compressed iso image of cdrom on disk
mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd create an iso image of a directory
cdrecord -v dev=/dev/cdrom cd.iso burn an ISO image
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - burn a compressed ISO image
mount -o loop cd.iso /mnt/iso mount an ISO image
cd-paranoia -B rip audio tracks from a CD to wav files
cd-paranoia -- "-3" rip first three audio tracks from a CD to wav files
cdrecord --scanbus scan bus to identify the channel scsi
Sieć (LAN i WiFi)
ifconfig eth0 wyświetl konfigurację interfejsu sieciowego eth0
ifup eth0 aktywuj (podnieś) interfejs eth0
ifdown eth0 deaktywuj (opuść) interfejs eth0
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 ustaw interfejsowi eth0 adres ip i maskę podsieci
ifconfig eth0 promisc przełącz interfejs eth0 w tryb promiscuous do "chwytania" pakietów (sniffing)
ifconfig eth0 -promisc wyłącz tryb promiscuous na interfejsie eth0
dhclient eth0 aktywuj interfejs eth0 w trybie dhcp.
route -n wyświetl lokalną tablicę routingu
netstat -rn
route add -net 0/0 gw IP_Gateway ustaw domyślny adres ip bramy (default gateway)
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 dodaj trasę statyczną do sieci 192.168.0.0/16 przez bramę o adresie ip 192.168.1.1
route del 0/0 gw IP_gateway usuń domyślny adres ip bramy (default gateway)
echo "1" > /proc/sys/net/ipv4/ip_forward zezwól na przesyłanie pakietów (forwarding)
hostname wyświetl nazwę komputera
host www.yandex.ru rozwiąż nazwę www.yandex.ru hosta na adres ip i odwrotnie
host 93.158.134.3
ip link show wyświetl stan wszystkich interfejsów
mii-tool eth0 wyświetl status i typ połączenia dla interfejsu eth0
ethtool eth0 wyświetla statystykę interfejsu eth0 z wyprowadzeniem takich informacji, jak obsługiwane i bieżące tryby połączenia
netstat -tupn wyświetla wszystkie nawiązane połączenia sieciowe według protokołów TCP i UDP bez rozwiązywania nazw na adresy ip i PID'y oraz nazwy procesów zapewniających te połączenia
netstat -tupln wyświetla wszystkie połączenia sieciowe według protokołów TCP i UDP bez rozwiązywania nazw na adresy ip i PID'y oraz nazwy procesów nasłuchujących portów
tcpdump tcp port 80 wyświetl cały ruch na porcie TCP 80 (zwykle - HTTP)
iwlist scan przeskanuj eter pod kątem dostępności bezprzewodowych punktów dostępu
iwconfig eth1 wyświetl konfigurację bezprzewodowego interfejsu sieciowego eth1
Sieci Microsoft Windows (SAMBA)
nbtscan ip_addr rozwiąż nazwę netbios nbtscan nie jest instalowany domyślnie we wszystkich systemach, może być konieczna ręczna instalacja. nmblookup jest zawarty w pakiecie samba.
nmblookup -A ip_addr
smbclient -L ip_addr/hostname wyświetl zasoby udostępnione na maszynie windows
smbget -Rr smb:[//ip_addr[/share podobnie do wget może pobrać pliki z maszyn windows przez protokół smb
mount -t smbfs -o username=user,password=pass[//winclient[/share [/mnt[/share zamontuj zasób smb, udostępniony na maszynie windows, w lokalnym systemie plików
IPTABLES (zapora sieciowa)
iptables -t filter -nL wyświetl wszystkie łańcuchy reguł
iptables -nL
iptables -t nat -L wyświetl wszystkie łańcuchy reguł w tabeli NAT
iptables -t filter -F wyczyść wszystkie łańcuchy reguł w tabeli filter
iptables -F
iptables -t nat -F wyczyść wszystkie łańcuchy reguł w tabeli NAT
iptables -t filter -X usuń wszystkie użytkowskie łańcuchy reguł w tabeli filter
iptables -t filter -A INPUT -p tcp [--dport telnet -j ACCEPT zezwól na przychodzące połączenie przez telnet
iptables -t filter -A OUTPUT -p tcp [--dport http -j DROP zablokuj wychodzące połączenia HTTP
iptables -t filter -A FORWARD -p tcp [--dport pop3 -j ACCEPT zezwól na "przekazywanie" (forward) połączeń POP3
iptables -t filter -A INPUT -j LOG [--log-prefix "DROP INPUT" włącz logowanie przez jądro pakietów przechodzących przez łańcuch INPUT i dodawanie do komunikatu prefiksu "DROP INPUT"
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE włącz NAT (Network Address Translate) dla wychodzących pakietów na interfejsie eth0. Dopuszczalne przy użyciu dynamicznie przydzielanych adresów ip.
iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp [--dport 22 \ -j DNAT [--to-destination 10.0.0.2:22 przekierowanie pakietów, adresowanych do jednego hosta, na inny host
Monitorowanie i debugowanie
top wyświetl uruchomione procesy, zużywane przez nie zasoby i inne przydatne informacje (z automatycznym odświeżaniem danych)
ps -eafw wyświetl uruchomione procesy, zużywane przez nie zasoby i inne przydatne informacje (jednorazowo)
ps -e -o pid,args [--forest wypisz PID'y i procesy w formie drzewa
pstree wyświetl drzewo procesów
kill -9 98989 "zabij" proces o PID 98989 "na śmierć" (bez zachowania integralności danych)
kill -KILL 98989
kill -TERM 98989 Korektnie zakończ proces o PID 98989
kill -1 98989 zmusz proces o PID 98989 do ponownego odczytu pliku konfiguracyjnego
kill -HUP 98989
lsof -p 98989 wyświetl listę plików otwartych przez proces o PID 98989
lsof /home/user1 wyświetl listę otwartych plików z katalogu /home/user1
strace -c ls > /dev/null wypisz listę wywołań systemowych, utworzonych i otrzymanych przez proces ls
strace -f -e open ls > /dev/null wypisz wywołania bibliotek
watch -n1 'cat /proc/interrupts' wyświetl przerwania w czasie rzeczywistym
last reboot wyświetl historię restartów systemu
last user1 wyświetl historię logowania użytkownika user1 w systemie i czas jego przebywania w nim
lsmod wypisz załadowane moduły jądra
free -m wyświetl stan pamięci operacyjnej w megabajtach
smartctl -A /dev/hda kontrola stanu dysku twardego /dev/hda przez SMART
smartctl -i /dev/hda sprawdź dostępność SMART na dysku twardym /dev/hda
tail /var/log/dmesg wypisz dziesięć ostatnich wpisów z dziennika ładowania jądra
tail /var/log/messages wypisz dziesięć ostatnich wpisów z dziennika systemowego
Inne przydatne polecenia
apropos …keyword wypisuje listę poleceń, które w jakiś sposób odnoszą się do słów kluczowych. Przydatne, gdy wiesz, co robi program, ale nie pamiętasz polecenia
man ping wywołaj podręcznik dotyczący pracy programu, w tym przypadku - ping
whatis …keyword wyświetla opis działań wskazanego programu
mkbootdisk [--device /dev/fd0 `uname -r` tworzy rozruchową dyskietkę
gpg -c file1 szyfruje plik file1 za pomocą GNU Privacy Guard
gpg file1.gpg deszyfruje plik file1 za pomocą GNU Privacy Guard
wget -r www[.example[.com pobiera rekurencyjnie zawartość strony www[.example[.com
wget -c www[.example[.com/file[.iso pobierz plik www[.example[.com/file[.iso z możliwością zatrzymania i kontynuowania później
echo 'wget -c www[.example[.com/files[.iso' [| at 09:00 rozpocznij pobieranie o podanej godzinie
ldd /usr/bin/ssh wypisz listę bibliotek wymaganych do działania ssh
alias hh='history' przypisz alias hh do polecenia history

Ядро działa w jednej przestrzeni adresowej. Oznacza to, że jeden moduł lub sterownik może uszkodzić całe jądro.
Ctrl + Alt + F(1-6) przełączenie między wirtualnymi konsolami. ttyN – gdzie N to numer konsoli?
Ctrl + Alt + F7 przełączenie do konsoli graficznej
startx _uruchomienie systemu X Windows (przejście do trybu graficznego)
ho -r lub runlevel _wyświetlenie poziomu działania systemu operacyjnego !!!
init n (n od 0 do 6) uruchamia jeden z poziomów działania systemu, np. 3. Oznacza to uruchomienie pliku rc3.d, który zawiera dowiązania symboliczne do plików w katalogu init.d.
Nazwa dowiązania może zaczynać się od K-zatrzymanie lub S-uruchomienie, a następnie cyfra priorytetu uruchomienia.
*************
mount /dev/hda4 mnt/hda4 -t data=<tryb dziennika> _writeback, ordered, journal?
Tworzenie nowego systemu plików ext3
1. Utworzenie partycji za pomocą parted lub fdisk
2. Sformatowanie partycji za pomocą mkfs
3. Nadanie partycji etykiety za pomocą e2label
4. Utworzenie punktu montowania za pomocą mkdir
5. Dodanie partycji do pliku etcfstab
*************
GRUB bootloader
Naciśnięcie E – wejście do interfejsu edytora wpisów. Esc – anulowanie zmian i powrót do menu.
Naciśnięcie B (po edycji) – wykonanie poleceń i uruchomienie systemu operacyjnego
Naciśnięcie C – wejście do interfejsu wiersza poleceń, wprowadzanie poleceń i naciśnięcie Enter do wykonania
help all – wyświetlenie wszystkich poleceń
Wybór jądra i naciśnięcie - a. Na końcu linii dodaj przez spację numer runlevel
less /boot/grub/grub.conf _plik bootloadera
**************************
2.1 Superblok – ważne informacje o dyskach?
dumpe2fs /dev/sda1 | grep superblock _informacje o superblokach
Użycie zapasowego superbloku: wszystkie?
1. Uruchomienie z Live CD lub płyty instalacyjnej Centos
2. fsck -y -b 8193 /dev/sda1 _Sprawdzenie dysku 8193 – numer 1 z zapasowych superbloków
3. Montowanie systemu plików
3.1 Zwykłą metodą
3.2 Jeśli się nie udało:
mount sb=8193 /dev/sda1 /mnt _Nr z. super bloku /urządzenie /punkt.montowania
4. Dodanie do /etc/fstab opcji sb (sb=8193) do naszego systemu plików
*********************
Uprawnienia dostępu do plików
123 456 789
s t rwx rwx rwx
s _bit suid – 4 (000) plik uzyskuje uprawnienia nie uruchamiającego go użytkownika, ale właściciela pliku (narzędzie passwd) musi mieć uprawnienia do wykonania? ***w shellu, czerwonym kolorem wyróżnione są pliki z bitem suid.
t _bit sticky – 1 (000)
1/2/3 _czytanie/zapis/wykonanie dla właściciela
4/5/6 _czytanie/zapis/wykonanie dla grupy właściciela
7/8/9 _czytanie/zapis/wykonanie dla pozostałych
Uprawnienie do czytania oznaczone jest cyfrą 4, do zapisu – 2, do wykonania – 1
Jeśli wszystko jest dozwolone, to cyfra uprawnień, która jest ustawiana na plik dla danej grupy = 7.

chmod [opcje] [tryb] plik – zmiana uprawnień dostępu. -v – wyświetla informacje debugowe, -R – tryb rekurencyjny, zmiana uprawnień dla wszystkich podkatalogów i plików
chmod 4755 test.txt _4 – dodanie bitu suid, 7 – pełne uprawnienia właściciela, 5 i 5 – odczyt i wykonanie dla grupy i pozostałych – ta komenda dla pliku w katalogu domowym (folderze) roota zwróciła komunikat: You have new mail in /var/spool/mail/root ?
-rwsr-xr-x root root 1 _należy czytać jako rws (zamiast x jest s) rx rx, root – właściciel, root – grupa właściciela, 1 – liczba linków
Odwrócenie: chmod 0755 test.txt lub chmod 755 test.txt – 0 przed 7 jest podstawiane domyślnie.
chmod 750 test.txt – 0 zeruje wartość uprawnień
chmod -R u=rwx,g=rx,o=x myfiles – druga metoda zmiany uprawnień dostępu dla katalogu lub pliku.
chmod -R u-x,g-x,o-x myfiles – trzecia metoda zmiany uprawnień dostępu dla katalogu lub pliku osobno dla każdej grupy użytkowników, gdzie a – właściciel, g – grupa właściciela, o – wszyscy pozostali.
chmod -R a-x myfiles – czwarta metoda zmiany uprawnień dostępu dla katalogu lub pliku dla wszystkich użytkowników. W metodach 3 i 4 można użyć -/+
chmod +x script.sh – dodanie uprawnień do wykonania dla wszystkich grup. Piąta metoda zmiany uprawnień dostępu.

bit sgid – 2 (000) – dziedziczenie uprawnień grupy właściciela. Jeśli bit sgid jest ustawiony dla katalogu, to tworzone w nim pliki podczas uruchamiania będą przyjmować identyfikator grupy katalogu, a nie grupy, do której należy właściciel pliku.
Wykonywanie programu z uprawnieniami grupy właściciela? Jak poprawnie?
bit sgid dla pliku: chmod 2755 test.txt

bit sticky – 1 (000) – jeśli jest ustawiony na katalogu, to usuwać i zmieniać nazwy plików tego katalogu może tylko właściciel tego katalogu, właściciel pliku lub root. Same uprawnienia do zapisu w tym katalogu nie są wystarczające.
chmod 1755 test.txt

chown [opcje] [właściciel]:[grupa] test.txt – zmiana właściciela pliku i grupy. -v – wyświetla informacje debugowe, -R – tryb rekurencyjny.
[właściciel]:[grupa] – to nowy właściciel i nowa grupa.
chown -R user1:user1 * – zmiana właściciela i grupy dla wszystkich plików i podkatalogów bieżącego katalogu. Nie można zmienić właściciela podkatalogu. Kto ma uprawnienia do zmiany właściciela pliku lub katalogu?
chgrp group1 file1 – zmiana grupy.

umask XXXX – zmiana (ustawienie) trybu dostępu, określa uprawnienia dostępu dla nowo tworzonych katalogów i plików!!!
Wartość umask jest odejmowana od liczby 777 dla katalogów i od liczby 666 dla plików.
umask – sprawdzenie, jaki umask jest używany w systemie, u mnie: 0022.
Nowe katalogi: 0777 - 0022 = 0755. Nowe pliki 0666 - 0022 = 0644

umask 0 1 2 3 4 5 6 7
Maska trybu dostępu r w x r w - r - x r - - - w x - w - - - x - - -

mount [opcje] [urządzenie] [punkt_montowania] – montowanie plików
umount [opcje] [urządzenie] LUB [punkt_montowania] -f wymusza odmontowanie
mount – lista zamontowanych systemów plików
Podczas montowania można ustawić uprawnienia. Można zamontować cały system plików tylko do odczytu. Nadpisuje to wcześniej przypisane uprawnienia.
zamontuj CD: mount -t iso9660 /dev/cdrom /mnt _podaj typ systemu plików (dla CD nie jest wymagane)
zamontuj obraz: mount -o loop -t iso9660 image.iso /mnt/iso nie wyszło?
iso9660 do montowania systemów Unix i CD/DVD mount -t ext3 /dev/sda4 /disk mount nie tworzy partycji.
nfs do montowania sieciowego systemu plików
vfat, ntfs do montowania partycji Windows
ufs dla Solarisa
W pliku /etc/fstab znajduje się lista systemów plików do automatycznego montowania przy uruchamianiu systemu operacyjnego
[urządzenie] [punkt_montowania] [typ_fs] [opcje] [flaga dump _przestarzała] [flaga fsck (0-nie sprawdzaj, 1-sprawdzaj, 2-sprawdzaj po sprawdzeniu 1]
cat /etc/fstab –
nazwy urządzeń:
hdc – dyski twarde
scsi -

cat /etc/mtab (mount) – wyświetlanie informacji o zamontowanych systemach plików. Nie edytować ręcznie.
/etc/filesystems – lista możliwych systemów plików. Używana przez polecenie mount do automatycznego uzupełniania, jeśli nie podano klucza -t z typem systemu plików

System plików proc istnieje tylko w pamięci RAM. Używany jako interfejs do struktur danych jądra. Jest to wirtualny system plików, ładowany do pamięci operacyjnej przy starcie systemu i nie zajmuje miejsca na dysku twardym. Wiele plików w nim można zmieniać, zmieniając tym samym parametry jądra w czasie rzeczywistym.
cat /proc/cpuinfo, meminfo, mounts, devices, filesystems, modules, version, cmdline – lista parametrów przekazywanych jądrze przy uruchamianiu. Źródło informacji o systemie!!!

Praca z plikami:
Utwórz plik tekstowy za pomocą edytora vi/vim, przekierowując wyjście polecenia echo lub cat.
Edytor vim:
i – wprowadzanie tekstu. Esc – po wprowadzeniu, powrót do trybu edycji.
: – do wpisywania poleceń dotyczących pracy z plikami, edycji ustawień i innych poleceń.
Teraz można wpisywać: w – do zapisu pliku i q do wyjścia z edytora. q! – wyjście bez zapisu.
/ – wyszukiwanie
touch test.txt – aktualizacja czasu dostępu do wcześniej utworzonego pliku (utworzenie nowego w bieżącym katalogu). Domyślnie tworzony jest plik z uprawnieniami 644. Zazwyczaj zmienia się na 775/755
touch 'z spacją'.txt – utworzenie pliku ze spacją.

CP [opcje] [źródło] [miejsce_docelowe] – kopiowanie pliku lub katalogu.
cp test.txt test1.txt – utworzenie test1 jako kopii test.txt, cp /etc/test.txt ~ – kopiowanie test.txt do katalogu domowego.
cp -r /etc/ /root/dok – kopiowanie zawartości partycji /etc/ do nowo utworzonego folderu /root/dok, nie można kopiować pliku jednocześnie z tworzeniem folderu, tylko zawartość partycji.

mv [opcje] [źródło] [miejsce_docelowe] – przenoszenie plików
mv file.txt /tmp/ – przeniesienie file.txt do /tmp/ bez zmiany nazwy
mv /tmp/file.txt ~/file2.txt – przeniesienie file.txt, zmieniając nazwę na file2.txt

Link miękki wskazuje na plik, link twardy na deskryptor indeksowy pliku.
ln [opcje] [cel] [nazwa_linku] – tworzenie linków między plikami.
ln -s file.txt lnk – utworzenie linku symbolicznego (miękkiego) lnk (przez –s) – zamiast nazwy ścieżki pliku można podać alias, wskazuje na plik.
ln file2.txt file.txt – utworzenie linku twardego – wskazuje na deskryptor indeksowy pliku
unlink lnk – usunięcie linku miękkiego

cat – wyświetlanie zawartości, less – stronicowanie/wiersz po wierszu, q – wyjście, Shift + PgUp/PgDn – nawigacja.
cat test.txt test1.txt – wyświetlenie zawartości dwóch plików.
cat test.txt test1.txt > test2.txt – połączenie plików w jeden.
cat test1.txt > test2.txt – zastąpienie zawartości pliku test2 zawartością pliku test1.
cat test1.txt >> test2.txt – dołączenie zawartości pliku test1 do zawartości pliku test2.
cat - >> test1.txt – dodawanie danych do pliku test1 bezpośrednio z powłoki. Ctrl + C – zapisanie zmian.

head -n 20 test.txt – wyświetlenie pierwszych 20 wierszy pliku (domyślnie 10 wierszy).
tail -n 20 test.txt – wyświetlenie ostatnich 20 wierszy pliku (domyślnie 10 wierszy).
nl test.txt – wyświetlenie pliku z numeracją wierszy

df [opcje] [plik] – statystyki użycia systemu plików. Można użyć df, df -h lub df -h /dev/sda1.
du [opcje] [plik] – statystyki zajmowanego miejsca na dysku. du -hs /usr/share – wyświetlenie rozmiaru katalogu /usr/share.
-h – wyświetlanie statystyk w formacie przyjaznym dla człowieka – MB itp. -s – sumowanie wyników podkatalogów i plików w nich zawartych.

echo [opcje] [ciąg] – wyświetlanie ciągu tekstu. echo -n 'blablabla' – wyświetla blablabla w tym samym wierszu.
echo 'blablabla' – wyświetla blablabla w nowym wierszu.
echo 'blablabla' > file.txt – zastąpienie zawartości pliku, echo 'blablabla' >> file.txt – dołączenie do zawartości pliku

wc [opcje] [plik] – statystyki dotyczące pliku !!!
-c – liczba bajtów w pliku, -m – liczba znaków w pliku, -l – liczba wierszy w pliku, -L – długość najdłuższego wiersza
-w – liczba słów w pliku.

find [ścieżka_wyszukiwania] [opcja_wyszukiwania] [wartość] [opcja_działania] – wyszukiwanie plików lub katalogów.
-name – nazwa pliku lub katalogu, który należy znaleźć
-type – typ obiektu: f – zwykły plik, d – katalog, b – urządzenie blokowe, c – urządzenie znakowe, p – potok nazwany, l – dowiązanie symboliczne, s – gniazdo,
-size – użycie rozmiaru pliku jako kryterium wyszukiwania
-mtime – data modyfikacji
-ctime – czas ostatniej zmiany atrybutów pliku. Jaka jest różnica między mtime a ctime?
-atime – czas ostatniego dostępu do pliku touch?
-perm 777 – z uprawnieniami dostępu 777
-print – po prostu wydrukowanie ścieżki bezwzględnej pliku
-exec – wykonanie określonej komendy dla znalezionych obiektów
find / -name pab -type d
find /tmp/ -name core -type f -print | xargs /bin/rm –f – szukamy pliku, wyświetlamy go na ekranie za pomocą print, a następnie za pomocą xargs przekazujemy jako argument do komendy rm.
find /etc/ -perm 777 -type f – szukamy plików z uprawnieniami 777 w katalogu etc.
find /etc/ -name pablish -exec rm -rf {} \; – wykonanie komendy rm -rf dla znalezionych obiektów. Zamiast {} zostanie podstawione to, co znaleźliśmy jako argument.

F4 - otwarcie pliku
Praca z katalogami:
mkdir - tworzenie, ls - wyświetlanie, mv - zmiana nazwy/przenoszenie, rm -rf - usuwanie zajętych katalogów, rmdir - usuwanie pustych !!!
mkdir –p ~/test/cda/blabla _100% utworzenie podkatalogów w katalogu domowym
mkdir -p /root/dok/dir2{dir1,dir2,dir3} –tworzenie struktury katalogu dok/dir2 z 3 sekcjami dir1-3
«.» - bieżący katalog, «..» - katalog nadrzędny, dla katalogu głównego «.» = «..»
mkdir -m 700 dir2 - jawne ustawienie uprawnień dla nowego katalogu
rm -rf* - usunięcie całej zawartości bieżącego dysku,
gdzie -r - tryb rekurencyjny, -f - wyłączenie pytań o potwierdzenie
rmdir ~/test _usunięcie pustego podkatalogu katalogu domowego
mknod _tworzenie urządzeń zorientowanych na bajty - drukarki, modemy rm _delet?
mknod _tworzenie urządzeń zorientowanych na bloki - dysk twardy?
mknod _tworzenie potoków nazwanych rm _delet?
socket można usunąć rm

ls - wyświetlanie zawartości katalogu.
ls -lhR /etc/ | less -przekierowanie wyjścia przez potok do polecenia less
-a -wszystkie, w tym ukryte pliki (zaczynające się od kropki), -h -rozmiar plików, -l -wszystkie informacje, -i -inody (deskryptory indeksowe), -R -informacje o wszystkich podkatalogach -t –sortowanie według czasu, /*.txt –wyszukiwanie według wzorca
Man ls –pomoc.
q - wyjście, Pg Up, Pg Dn - przemieszczanie. / - wprowadzenie wyszukiwania, n - w dół N - w górę
ls ../.. _wyświetlenie dwa poziomy wyżej, ls ../man _znalezienie katalogu man na poziom wyżej
ls -l /dev/sda = file /dev/sda, ls –l /root /tmp /usr …- wyświetlenie kilku plików
ls –l /etc/*/*.conf –wyszukiwanie według rozszerzenia, „pomijając” 1 poziom
ls -l /etc/[^a-w]*.conf - szuka katalogów nie zaczynających się od a-w z rozszerzeniem conf.
ls –ld –uprawnienia do bieżącego katalogu.
cd – change directory –zmiana katalogu
cd /usr/share/doc - przejście po ścieżce bezwzględnej
cd - _do poprzedniego katalogu, cd .. _na poziom wyżej, cd ~ _do katalogu domowego,
cd ~/myfiles _przejście z dowolnego miejsca do nowo utworzonego podkatalogu katalogu domowego.

grep [opcje] wzorzec [ścieżka do pliku wyszukiwania] - Wyszukiwanie według wzorca.
rpm -qa | grep chk - wyszukiwanie chk w wyjściu wszystkich zainstalowanych w systemie pakietów.

/dev/null - tzw. czarna dziura, używana do pochłaniania niepotrzebnego wyjścia programów
command > /dev/nul 2>&1 - przekierowanie wszystkich błędów do /dev/null.
/dev/zero - można użyć do utworzenia pliku o określonym rozmiarze
dd if=/dev/zero of=file.iso bs=1024 count=1024 - utworzenie pliku iso o rozmiarze 1 Mb.
/dev/random, /dev/urandom - używane przez skrypty do generowania liczb losowych.

BASH:
# - wiersz poleceń z uprawnieniami administratora
$ - wiersz poleceń zwykłego użytkownika - można pracować w katalogu domowym bez wpływu na cały system

Ctrl + C - przerwanie bieżącego procesu (sygnał SIGINT)
Ctrl + D - wyjście z interpretera poleceń
Ctrl + L - wyczyszczenie ekranu
Ctrl + Z - przeniesienie procesu do trybu tła
Alt + D - usunięcie wszystkich znaków od bieżącej pozycji do końca słowa
Alt + R - wyczyszczenie całej linii
Podwójne TAB - wszystkie dostępne polecenia
Esc + D - usunięcie od kursora do końca słowa

echo $BASH_VERSION - wersja BASH. $ - znak zmiennej, czyli wyświetlenie zmiennej BASH_VERSION.
echo $BASH - lokalizacja BASH

Format poleceń: nazwa_polecenia [flagi/ opcje] [argumenty]
./nazwa_skryptu.sh - uruchomienie skryptu z katalogu domowego
Pliki konfiguracyjne BASH
1. Lokalne - znajdują się w katalogach domowych użytkowników systemu i mają priorytet nad Globalnymi.
.bash_logout - skrypt wykonywany przy wyjściu z systemu
.bash_history - plik z historią poleceń, który jest zapisywany do pliku po wyjściu użytkownika z systemu. Można skonfigurować, aby zapisywał się natychmiast?
.bash_profile - skrypt wykonywany przy logowaniu do systemu (w niektórych systemach używany jest bashlogin)
.bashrc - skrypt wykonywany za każdym razem, gdy otwierana jest nowa powłoka. Wykonywany jest on oraz wszystkie polecenia w nim wymienione.
2. Globalne:
/etc/profile
/etc/bashrc

history - wyświetlenie historii poleceń. Liczbę wierszy określa zmienna echo $HISTSIZE, domyślnie 1000 wierszy.
history N - wyświetlenie ostatnich N wierszy.
history -d N - usunięcie wiersza N.
!! - wykonanie ostatniego wprowadzonego polecenia
!N - wykonanie polecenia N
!string - ostatnie polecenie, które zaczyna się od ciągu string

Przekierowanie wejścia/wyjścia.
Deskryptor pliku - nieujemna liczba całkowita przypisywana przez system operacyjny do pliku otwieranego przez proces. W systemie stale otwarte są 3 deskryptory plików.

Numer Nazwa Opis Komentarz
0 stdin Standardowe wejście - wprowadzanie danych z klawiatury obsługuje klawiaturę
1 stdout Standardowe wyjście - wyświetlanie na ekranie monitora obsługuje monitor
2 stderr Służy do wyświetlania komunikatów o błędach

cat file1 file3 2>err_file - błąd wyjścia nieistniejącego pliku file3, przekierowany do nowo utworzonego pliku err_file. 2 - stderr.
cat < /etc/resolv.conf - przekierowanie z pliku.
cat > file, następnie enter, a następnie z nowej linii wprowadzamy tekst. Zakończenie wprowadzania: Ctrl + c. Wprowadzony tekst został dodany do nowo utworzonego pliku file.
date > date.txt - przy przekierowaniu do pliku istniejące dane są nadpisywane.
date >> date.txt - przy przekierowaniu do pliku, dopisanie do istniejących danych.
vi <(ls /etc) - przekierowanie zawartości katalogu etc do edytora tekstu. Pod jaką nazwą zapisać otrzymany wynik?
echo -e "'ls -l /etc/[^a-w]*.conf'\n" - szuka katalogów nie zaczynających się od a-w z rozszerzeniem conf. Nie działa??? '- ?
Możliwe przekierowania:

Skąd Dokąd
stdout Plik
stdout Stderr
stdout i stderr Stdout
stdout i stderr Stderr
stdout i stderr Plik
stderr Plik
stderr Stdout
Potoki łączą standardowe wyjście jednego polecenia z wejściem innego i oznaczane są symbolem: |
ls /usr/share | wc -l - podliczenie liczby wierszy w katalogu

Builtin wbudowane polecenia bash. enable (enable -a) - wyświetlenie wszystkich (wyświetla listę poleceń)
rpm -qa | grep hist - szuka w pakietach systemu fragmentu hist, takiego nie ma, ponieważ polecenie history jest wbudowane w bash.
Podczas uruchamiania najpierw wykonywane jest wbudowane polecenie, a dopiero potem następuje jego wyszukiwanie w zmiennej $PATH
enable -n pwd - wyłączenie wbudowanego polecenia pwd. Po tym zostanie wykonane systemowe polecenie pwd znajdujące się w /bin/pwd
enable -n - lista wyłączonych wbudowanych poleceń

Zmienne
Proces macierzysty > proces potomny > proces potomny itd.
Procesy mogą kolejno przekazywać informacje o zmiennych na niższy poziom od procesu macierzystego do potomnych, ale nie odwrotnie. Proces potomny nie może przekazać niczego do procesu macierzystego.
Value=10 – tworzenie zmiennej i nadawanie jej wartości. Zmienna będzie dostępna tylko w bieżącej sesji.
Export Value=10 – teraz można używać zmiennej z innych programów.
Unset value – usuwanie zmiennej
env – wyświetlenie zmiennych środowiskowych (wyeksportowanych). Tutaj zobaczymy je dopiero po wykonaniu polecenia: Export Value
typeset – wyświetlenie zmiennych środowiskowych, w tym utworzonych przez użytkownika.
Vim script.sh, sam skrypt:
#!/bin/bash
Echo $value
./script.sh – wykonanie skryptu w katalogu domowym roota.
Shell – jest procesem macierzystym dla skryptu. Mogliśmy разрешить mu używać zmiennej eksportując ją. Lub zabronić nie eksportując jej.
Popularne zmienne: wyświetlenie echo $
$HOSTNAME – nazwa hosta
$Shell – nazwa powłoki (interpretera poleceń)
$USER – nazwa zalogowanego użytkownika
$PATH – lista katalogów systemu operacyjnego, w których odbywa się wyszukiwanie polecenia, gdy wpisujemy je w konsoli. Wyszukiwanie odbywa się sekwencyjnie w katalogach, aż do pierwszego znalezienia.
$PWD – bieżący katalog roboczy
$HOME – bieżący katalog domowy użytkownika
$UID – cyfrowy identyfikator bieżącego użytkownika
$# – liczba przekazywanych argumentów
echo $PATH – zmienna przechowująca listę katalogów w systemie

Zmienne lokalne.
$0 – zawiera nazwę uruchamianego pliku
$1 – pierwszy argument
$2 – drugi argument
$PS1 – to monit wiersza poleceń

Vim script.sh, sam skrypt:
#!/bin/bash
Echo “first arg” - $0
Echo “second arg” - $1
…
Echo “10 arg” - ${10} – zaczynając od 10. argumentu, należy podawać je w nawiasach.
./script.sh first_arg second_arg – przekazanie skryptowi 1. i 2. argumentu

Przydatne polecenia:
cat /etc/passwd – wyświetlenie listy użytkowników
pwd – wyświetlenie bieżącego katalogu. pwd [-LP]
ps aux | grep mingetty – znalezienie wszystkich procesów systemu + wyświetlenie tylko tych zawierających słowo mingetty
whoami – zwraca bieżącą nazwę użytkownika, pod którym pracuje użytkownik.
netstat -nr – do analizy sieciowej
su user1 – przełączenie na innego użytkownika. Pytanie: w jakim przypadku po zmianie użytkownika na zwykłego, ma sens polecenie: cd ~ ?
exit – powrót do wiersza poleceń roota
useradd – dodanie użytkownika – command not found przy wprowadzaniu przed startx?
Pytanie sudo useradd PPetrov – błąd już po wprowadzeniu żądanego hasła?
#passwd Uliashov – zmiana hasła z poziomu roota na dowolne
$passwd Ivanov – zmiana hasła z poziomu użytkownika na zgodne z wymaganiami bezpieczeństwa.
date – wyświetlenie systemowej daty i czasu
env – wyświetlenie zmiennych środowiskowych (wyeksportowanych)
typeset – wyświetlenie zmiennych środowiskowych, w tym utworzonych przez użytkownika.
df –h – stopień wypełnienia przestrzeni dyskowej
rm mod pcspkr – załaduje sterownik jądra z pamięci operacyjnej
modprobe pcspkr
lsmod – lista modułów
modinfo pcspkr – wyświetlenie informacji o module

Lekcja nr 4

W każdym katalogu znajdują się 2 dowiązania. Dodanie każdego podkatalogu zwiększa liczbę dowiązań o +1.
Niektórzy wyłączają swap, aby uniknąć ciągłego drgania dysków.
fdisk -l – konfiguracja dysku twardego
free – statystyki pamięci operacyjnej
vnc viewer 10.95.4.229
System DOS pozwala na utworzenie 3 partycji
Primary – zwykła
Extended – rozszerzona, wewnątrz niej można utworzyć partycję logiczną
Partycje od 1 do 4 to Primary lub Extended. Od 5 w górę – logical
swapon -a / swapoff -a – podłączanie/odłączanie swap
etoolabel ???
partprobe?
Pobierz vnc viewer
mkswap – ???
mkfs hdc1(2-6)
Jeśli zamontujesz partycję w nowym folderze, tworzone w nim pliki będą znajdować się nie w folderze, ale na zamontowanej partycji

1 free
2 cat /proc/swaps
3 swapoff -a /dev/mapper/VolGroup00-LogVol01 - ścieżka z pkt. 2
4 mkfs /dev/mapper/VolGroup00-LogVol01
5 mkdir /novyi
6 mount /dev/mapper/VolGroup00-LogVol01 /novyi
7 utwórz foldery i pliki w folderze – punkt montowania
8 umount
9 mkswap /dev/mapper/VolGroup00-LogVol01 – oznaczenie urządzenia
10 swapon -a

alias ‘fuck’ = ‘init 0’ nie robić
Montowanie systemów plików (mount) może tylko root.
Można podłączyć zdalny system plików, np. na czas backupu.
W etc/fstab można wpisać uprawnienia użytkownika do montowania określonego folderu.

Lekcja nr 6

LVM – menedżer woluminów logicznych – zobacz opis w internecie.
LV > VG – grupa > PV – hd1, … dyski fizyczne są łączone w 1 grupę. Albo odwrotnie: 1 dysk jest dzielony na wiele woluminów???. Możliwa utrata wydajności ~ 5%.
vgs, pvs, lvs
Zadanie: uzyskać wolumin logiczny. ??????????
pvcreate /dev/hdc5
PV
VG
Vgcreate VG1 /dev/hdc5 - utworzenie grupy
Lvcreate –L 100M –n DataBase VG1 - utworzenie woluminu logicznego
Ls /dev/VG1/DataBase - sprawdzamy.
Wykonujemy:
1 free
2 cat /proc/swaps
3 swapoff -a /dev/mapper/VolGroup00-LogVol01 - ścieżka z pkt. 2 - odłączono
4 lvremove /dev/mapper/VolGroup00-LogVol01 - usunięto
5 cat /proc/swaps
6 vgs – pokaże wolne miejsce free
7 lvcreate –L 100M –n MYVOL1 VolGroup00
8 mkfs /dev/VolGroup00/MYVOL1 – formatowanie
8 mount /dev/mapper/VolGroup00-MYVOL2 /novyi lub mount /dev/VolGroup00/MYVOL1 /novyi
ls –l /Dev/VolGroup00 – dowiązanie do dev/mapper/Vol…
Można zrobić natychmiastowy zrzut stanu partycji:
lvcreate –s /dev//VolGroup00/MYVOL1 –n SNAP_MYVOL1 –L 100M - zrzut to również nowa partycja. Można ją podłączyć jako partycję do punktu montowania, ale jeśli utworzysz w niej plik, nie będzie on widoczny w zrzucie
Podczas tworzenia plików w punkcie montowania lvs pokaże zmiany partycji zrzutu
Przed zmianą danych, ich historia jest zapisywana w snapshocie
Snapshot jest tworzony w tej samej grupie woluminów.
Utwórz snapshot tylko do odczytu:
lvcreate –p r –s /dev//VolGroup00/MYVOL1 –n SNAP_MYVOL1 –L 100M – nie pozwoli na zapis w punkcie montowania.
Komendy:
Ctrl + r + wpisz szukany tekst
Ctrl + u – wyczyść cały output (błąd przy wpisywaniu hasła)
Ctrl + W – wyczyść po słowach
Ctrl + L – wyczyść ekran???
Alt + . – wyświetl ostatni parametr
Ctrl + S – blokada ekranu. Ctrl + Q - odblokuj

 

artykuł pochodzi stąd

Uwaga: wpis mógł powstać z pomocą AI i redakcji. Odpowiedzialny: Dmytro Lomaka, Kaltenkirchen.