[1] Podstawowe komendy

31 stycznia 2024 Wyłączono przez Adam [zicherka] Nogły

Poniżej zamieszczam kilka podstawowych komend, które ułatwią zarządzanie systemem FreeBSD.

ls

Wyświetla listę katalogów w bieżącym katalogu.

Składnia:

root@vfbsd02:~ # ls -opcje plik

Opcje:

-l – dłuższa lista plikow (z uprawnieniami, znacznikami czasu, właścicielem i grupą)

-d – wyświetla katalogi bez przeszukiwania (jak zwykłe pliki)

-h – używa wielokrotności bajtow (K – kilobajt, M – Megabajt). Może być stosowana tylko z (-l)

-F – dołącza do nazw symbole (/ do katalogów, * do plikow wykonywalnych, @ do łączy symbolicznych)

root@vfbsd02:~ # ls -l
total 356
-rw-r--r--  1 adam  wheel  331376 Nov 26 07:27 plik.txt
drwxr-xr-x  2 root  wheel     512 Nov 26 07:26 test
^|_||_||_|  ^ |__|  |___|  |____| |____| |___| |_______|
| |  |  |   | |         |  |      |      |     |
| |  |  |   | właściciel|  rozmiar|     godzina|
| |  |  |   liczba łączy|         data         nazwa
| |  |  |               grupa
| |  |  uprawnienia wszystkich
| |  uprawnienia grupy
| uprawnienia właściciela [r=odczyt][w=zapis][x=wykonanie][-=brak uprawnień]
typ pliku [-=zwykły][d=katalog][l=łącze symboliczne]

Przykłady:

Wyświetl listę wszystkich plików w katalogu bieżącym, łącznie z ukrytymi i zastosuj dłuższy format wyświetlania:

root@vfbsd02:~ # ls –la

Wyświetl pliki i katalogi znajdujące się w katalogu [/] oraz zaczynające się na [u]:

root@vfbsd02:~ # ls -d /u*

Wyświetl listę plików i katalogów, w katalogu bieżącym, których nazwy kończą się na [.txt], łącznie z plikami ukrytymi oraz zastosuj dłuższy format wyświetlania:

root@vfbsd02:~ # ls -ald *.txt

W standardowym profilu powłoki systemu FreeBSD zdefiniowano dwa skróty, o których zapewne mało kto wie, ale każdy z nich korzysta. Są to [ll] oraz [l] (małe litery „L”). Polecenie [ll] odpowiada [ls -alFo], czyli wyświetla najczęściej potrzebne informacje o bieżącym katalogu. Zaś polecenie [l] odpowiada [ls -l].

cd

Zmienia bieżący katalog.

Składnia:

root@vfbsd02:~ # cd nazwa_katalogu

Przykłady:

Zmień katalog na [/tmp]:

root@vfbsd02:~ # cd /tmp

Przejdź do katalogu domowego aktualnie zalogowanego użytkownika:

root@vfbsd02:/tmp # cd

Przejdź do katalogu głównego [/]:

root@vfbsd02:~ # cd /

Zmień bieżący katalog na [/usr/local/etc]:

root@vfbsd02:/ # cd /usr/local/etc

Przejdź do katalogu nadrzędnego:

root@vfbsd02:/usr/local/etc # cd ..

pwd

Wyświetla nazwę katalogu bieżącego.

Składnia:

root@vfbsd02:~ # pwd

Przykłady:

root@vfbsd02:~ # pwd
/root

whoami

Wyświetla nazwę zalogowanego użytkownika.

Składnia:

root@vfbsd02:~ # whoami

Przykłady:

root@vfbsd02:~ # whoami
root

cp

Polecenie służące do kopiowania plików.

Składnia:

root@vfbsd02:~ # cp -opcje plik_źródłowy plik_docelowy

Opcje:

-i – przed zastąpieniem pliku pyta o potwierdzenie

-R – jeżeli [plik_źrodlowy] to katalog to kopiuje całe drzewo katalogów (z zawartością, rekurencyjnie)

-p – zachowanie oryginalnych atrybutow, jeślipozwalają na to uprawnienia

Przykłady:

Skopiuj plik [plik.txt] do nowego pliku o nazwie [nowy-plik.txt]:

root@vfbsd02:~ # cp plik.txt nowy_plik.txt

Skopiuj plik [plik.txt] do katalogu [/usr/local/etc]:

root@vfbsd02:~ # cp plik.txt /usr/local/etc

Skopiuj katalog [/var/log] do nowego katalogu [/tmp/log-backup] z całą zawartością drzewa katalogów, oraz z zachowaniem atrybutów:

root@vfbsd02:~ # cp -R -p /var/log /tmp/log-backup

mkdir

Tworzy katalog o danej nazwie

Składnia:

root@vfbsd02:~ # mkdir nazwa_katalogu

Przykłady:

Stwórz katalog [Dokumenty] w katalogu bieżącym:

root@vfbsd02:~ # mkdir Dokumenty

Stwórz katalog [Praca] w katalogu [Dokumenty]:

root@vfbsd02:~ # mkdir Dokumenty/Praca

rm

Usuwa pliki i katalogi

Składnia:

root@vfbsd02:~ # rm -opcje plik

Opcje:

-i – przed usunięciem każdego pliku prosi o potwierdzenie

-r – usuwa podkatalogi

Przykłady:

Usuń katalog [Dokumenty] ze wszystkimi plikami i podkatalogami, które się w nim znajdują:

root@vfbsd02:~ # rm -r Dokumenty

Usuń pojedynczy plik [nowy-plik.txt] z bieżącego katalogu:

root@vfbsd02:~ # rm nowy_plik.txt

Usuń wszystkie pliki z rozszerzeniem [*.doc] z katalogu [/usr/local/etc] stosując potwierdzenie usunięcia każdego takiego pliku:

root@vfbsd02:~ # rm -i /usr/local/etc/*.doc

mv

Przenosi lub zmienia nazwę pliku.

Składnia:

root@vfbsd02:~ # mv -opcje źródło cel

Opcje:

-i – żądanie potwierdzenia każdej operacji przeniesienia lub zmiany nazwy gdy ta operacja może spowodować zastąpienie obiektu w lokalizacji docelowej.

Przykłady:

Przenieś plik o nazwie [plik.txt] z katalogu [/usr/local/etc] do katalogu domowego aktualnie zalogowanego użytkownika i wyświetl żądanie potwierdzenia ewentualnego nadpisania pliku:

root@vfbsd02:~ # mv -i /usr/local/etc/plik.txt ~

overwrite /root/plik.txt? (y/n [n]) y

Zmień nazwę pliku [plik.txt] na [dokument.doc]:

root@vfbsd02:~ # mv plik.txt dokument.doc

Zmień nazwę katalogu [test] na [dokumenty]:

root@vfbsd02:~ # mv test dokumenty

find

Wyszukuje pliki w drzewie katalogów. Możesz podać pełną nazwę lub użyć symboli wieloznacznych.

Składnia:

root@vfbsd02:~ # find katalog -opcje ciąg

Opcje:

-name xxx – wyszukuje nazwy zawierające ciąg xxx, jeżeli używane są symbole wieloznaczne (* lub ?) należy ująć je w nawiasy

-user xxx – wyszukuje pliki użytkownika xxx

-group xxx – wyszukuje pliki grupy xxx

Przykłady:

Wyszukaj wszystkie pliki [.doc] w katalogu [/usr]:

root@vfbsd02:~ # find /usr -name "*.doc"

Przeszukaj cały system plików i wyświetl informacje o wystąpieniach pliku [Makefile.doc]:

root@vfbsd02:~ # find / -name Makefile.doc

Wyszukaj pliki o nazwie [dokument.doc] w katalogu bieżącym i jego podkatalogach:

root@vfbsd02:~ # find . -name dokument.doc

Wyszukaj wszystkie pliki w katalogu [/usr], których właścicielem jest użytkownik [www]:

root@vfbsd02:~ # find /usr -user www

file

Porównuje plik z preinstalowaną listą znanych typów plików i wyświetla opis tego typu.

Składnia:

root@vfbsd02:~ # find nazwa_pliku

Przykłady:

Wyświetl opis typu pliku [dokument.doc]:

root@vfbsd02:~ # file dokument.doc
dokument.doc: Unicode text, UTF-8 text, with very long lines (593)

Wyświetl opis wszystkich typów plików w katalogu bieżącym:

root@vfbsd02:~ # file *

less

Umożliwia wyświetlenie zawartości pliku tekstowego i przewijanie danych wyjściowych innych poleceń gdy nie mieszczą się na ekranie.

Gdy ilość wierszy jest większa aniżeli jest możliwe do wyświetlenia, możesz użyć klawiszy strzalek do przewijania ekranu. Wciśnięcie [Shift+/] włącza proste narzędzie do wyszukiwania tekstu/słowa. Aby zakończyć wyświetlanie należy nacisnąć [Q].

Składnia:

root@vfbsd02:~ # less -opcje plik

Opcje:

-N – wyświetla numery wierszy

-M – informuje o liczbie wyświetlonych i pozostałych do wyświetlenia wierszy

Przykłady:

Wyświetl zawartość pliku [dokument.doc]:

root@vfbsd02:~ # less dokument.doc

Aby wyświetlić zawartość pliku [/tmp/dokument.doc], z wyświetlaniem numeracji wierszy, oraz informacją o już wyświetlonych i jeszcze pozostałych do wyświetlenia wierszy:

root@vfbsd02:~ # less -NM /tmp/dokument.doc

Polecenie [less] może być wykorzystane do przeglądania wyników innych poleceń – przykładowo [ls]. Symbol przetwarzania potokowego umożliwia przesłanie danych wyjściowych polecenia pierwszego na wejście polecenia [less].

Przykładowo wyświetlenie zawartości katalogu [/var/lib] z możliwością przewijania wyników:

root@vfbsd02:~ # ls -l /usr/lib | less

grep

Umożliwia wyszukiwanie ciągu znaków w plikach lub danych wyjściowych innych poleceń. Po znalezieniu wyświetla cały wiersz zawierający szukany ciąg.

Składnia:

root@vfbsd02:~ # grep ciąg_znaków plik

Przykłady:

Wyszukaj ciąg „Port” w pliku [sshd_config]:

root@vfbsd02:~ # grep Port /etc/ssh/sshd_config

Wykorzystując przetwarzanie potokowe [|] można analizować dane wyjściowe innych poleceń.

Przykładowo przeszukamy zawartość katalogu głównego i poszukamy wystąpień słowa „usr”:

root@vfbsd02:~ # ls -l / | grep usr

Można także wyszukiwać ciąg znaków, który zawiera spacje, należy wtedy ten ciąg zawrzeć w podwójnym apostrofie:

root@vfbsd02:~ # cat /COPYRIGHT  | grep "All rights reserved"

su

Zmienianie tożsamości użytkownika, lub inaczej mówiąc przełączanie się na innego użytkownika. Jeżeli nie podamy nazwy użytkownika na którą chcemy się przełączyć to system przełączy nas na użytkownika [root] – ale tylko wtedy, gdy wpisujący to polecenie użytkownik należy do grupy [wheel].

Składnia:

root@vfbsd02:~ # su nazwa_użytkownika

Przykłady:

Przełącz się na użytkownika [root], pod warunkiem, że użytkownik [user1] należy do grupy [wheel]:

user1@vfbsd02:~ $ su
Password: # wpisz hasło użytkownika [root]
root@vfbsd02:/home/user1 #

Przełącz się na konto użytkownika [user2]:

user1@vfbsd02:~ $ su user2

chown

Zmienia właściciela i/lub grupę pliku lub katalogu.

Jeśli nie jesteś superużytkownikiem, możesz zmieniać właściciela tylko dla plików, których jesteś właścicielem.

Składnia:

root@vfbsd02:~ # chown -opcje właściciel:grupa plik

Opcje:

-R – zmiana właściciela/grupy we wszystkich podkatalogach – rekurencyjnie

Przykłady:

Zmień właściciela pliku [dokument.doc] na [user1]:

root@vfbsd02:~ # chown user1 dokument.doc

Zmień przypisanie do grupy katalogu [dokumenty] na grupę [user1]:

root@vfbsd02:~ # chown :user1 dokumenty

Zmień właściciela i grupę pliku [rc.conf] na [root] i [wheel]:

root@vfbsd02:~ # chown root:wheel /etc/rc.conf

Zmień właściciela katalogu [public_html] i wszystkich podrzędnych katalogów i plików na [user1]:

root@vfbsd02:~ # chown -R user1 /home/user1/public_html/

chmod

Polecenie zmieniające uprawnienia do odczytu, zapisu i wykonania dla plików i katalogów.

  • Odczyt [r]:
    • Pliku – można odczytać jego zawartość
    • Katalogu – można wyświetlić jego zawartość
  • Zapis [w]:
    • Pliku – zmiana zawartości oraz usunięcie
    • Katalogu – zmiana nazwy/zawartości oraz usuwanie
  • Wykonanie [x]:
    • Pliku – pozwala załadować jego zawartość do pamięci oraz wykonać/uruchomić jak program
    • Katalogu – pozwala skorzystać z polecenia [cd]

Aby zmodyfikować uprawnienia pliku lub katalogu należy być jego właścicielem lub superużytkownikiem.

Składnia:

root@vfbsd02:~ # chmod -opcje tryb plik

Opcje:

-R – zmiana uprawnień do wszystkich obiektów wewnątrz katalogu (rekurencyjnie).

Przykłady:

Poniżej przedstawiam jak odczytywać 3 cyfrowy tryb pliku. Jest to wartość jaką operuje polecenie [chmod].

-rwxr-xr--  1 adam  wheel  331376 Nov 26 07:27 plik.txt
 |_||_||_|
  |  |  |
  |  |  r -> [r=4] = 4 = trzecia cyfra (uprawnienia dla wszystkich)
  |  |
  |  r-x -> [r=4]+[x=1] = 5 = druga cyfra (uprawnienia dla grupy)
  |
  rwx -> [r=4]+[w=2]+[x=1] = 7 = pierwsza cyfra (uprawnienia dla właściciela)

W tym przykładzie plik [plik.txt] ma przypisany trym 754, każda cyfra jest sumą wartości r (read-odczyt), w (write-zapis), x (execute-wykonaie).

Aby zmienić uprawnienia pliku [dokument.doc] przypisując mu prawo odczytu, zapisu i wykonania dla wszystkich wykonaj:

root@vfbsd02:~ # chmod 777 dokument.doc

Aby zmienić uprawnienia katalogu [dokumenty] przypisując prawo do odczytu, zapisu i wykonania właścicielowi, prawo odczytu grupie, a wykluczyć dostęp użytkownikom spoza grupy wykonaj:

root@vfbsd02:~ # chmod 740 dokumenty

df

Wyświetla informacje o ilości wolnego miejsca w zainstalowanych systemach plików.

Składnia:

root@vfbsd02:~ # df -opcje

Opcje:

-h – wyświetla w sposób przyjazny użytkownikowi dane

-c – w ostatnim wierszy wyświetla ilość wolnego miejsca

Przykłady:

Wyświetl ilość wolnego miejsca stosując większe jednostki (megabajty, gigabajty), oraz pokazując sumę wolnego miejsca:

root@vfbsd02:~ # df -hc
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ada0p2     46G    6.5G     35G    15%    /
devfs          1.0K    1.0K      0B   100%    /dev
total           46G    6.5G     35G    15%

du

Wyświetla informację o ilości zajmowanego miejsca przez pliki/katalogi.

Składnia:

root@vfbsd02:~ # du -opcje nazwa_pliku

Opcje:

-d x – wyświetlawszystkie pliki i katalogi x katalogow w głąb drzewa systemu plików

-c – podsumowanie dla wszystkich plikow i katalogow

-h – używa sufiksów K dla kilobajtow i M dla megabajtow

-a – wyświetla wszystko oprócz plikow ukrytych

Przykłady:

Wyświetl informacje o ilości miejsca zajmowanego przez pliki i katalogi w katalogu [/usr] z użyciem sufiksów dla jednostek:

root@vfbsd02:~ # du -d 1 -h /usr

Wyświetl informacje o ilości miejsca zajmowanego przez wszystkie pliki w katalogu bieżącym (wraz z podkatalogami) i wyświetl wiersz sumy:

root@vfbsd02:~ # du -ca

mount

Włącza inne systemy plików (w tym napędy CD/DVD/BR) i inne systemy plików do obecnego systemu plików komputera.

Składnia:

root@vfbsd02:~ # mount -opcje urządzenie węzeł

Opcje:

-t – deklaracja systemu plików urządzenia do zamontowania (msdos, ufs, cd9660, htfs, udf, nfs).

Przykłady:

Zamontuj dysk CD [/dev/cd0] w katalogu [/mnt]:

root@vfbsd02:~ # mount -t cd9660 /dev/cd0 /mnt

Zainstaluj partycję [a] wycinka [2] dysku twardego [ad3] w węźle [/mnt]:

root@vfbsd02:~ # mount /dev/ad3s2a /mnt

umount

Wyłączna, usuwa inne systemy plików z systemu plików komputera.

Wyjęcie wymiennego nośnika bez wcześniejszego odmontowania grozi uszkodzeniem lub utratą danych na tymże nośniku.

Odmontowując system plików, upewnij się, że katalog bieżący nie jest katalogiem odinstalowywanego systemu plików. Jeżeli tak się zdarzy polecenie [umount] zwróci błąd [device busy].

Składnia:

root@vfbsd02:~ # umount węzeł

Przykłady:

Odinstaluj zamontowany w węźle [/mnt ]system plików:

root@vfbsd02:~ # umount /mnt

sockstat

Wyświetla listę otwartych portow komunikacji internetowej. Używając polecenia [grep] możesz wyodrębnić interesujące Cię porty.

Składnia:

root@vfbsd02:~ # sockstat -opcje

Opcje:

-l – lista gniazd, na których prowadzony jest nasłuch

-c – lista gniazd, na których zostały ustanowione połączenia

-4 – lista dla IPv4

-6 – lista dla IPv6

Przykłady:

Wyświetl listę wszystkich otwartych portów dla IPv4 oczekujących na żądania usług:

root@vfbsd02:~ # sockstat -4 –l

Wyświetl listę dla IPv4 wszystkich portów używanych przez serwer SSH:

root@vfbsd02:~ # sockstat -4 | grep ssh

Wyświetl listę procesów, które nasłuchują na porcie 25 dla IPv4:

root@vfbsd02:~ # sockstat -4 | grep 25

ifconfig

Sprawdza i modyfikuje konfiguracje połączenia sieciowego.

Polecenie uruchomione bez żadnego argumentu wyświetla listę wszystkich interfejsów sieciowych oraz informacje o ich konfiguracji.

Narzędzie to ma bardzo dużo innych opcji, których omówienie wykracza poza ten wpis.

Składnia:

root@vfbsd02:~ # ifconfig interfejs opcje

Opcje:

inet – zmienia adres komputera

netmask – zmienia maskę adresu IP komputera

Przykłady:

Zmień adres IP interfejsu o nazwie [vmx0] na 192.168.100.107 z maską 255.255.0.0:

root@vfbsd02:~ # ifconfig vmx0 inet 192.168.100.107 netmask 255.255.0.0

ping

Wysyła pakiety ICMP do wskazanej stacji i oczekuje na odpowiedź. W głównej mierze służy do kontroli dostępności komputera do sieci.

Składnia:

root@vfbsd02:~ # ping -opcje stacja

Opcje:

-c – liczba wyslanych pakietów, standardowo pakiety wysyłane są do chwili wciśnięcia kombinacji klawiszy [Ctrl+C]

Przykłady:

Wyślij pięć pakietów ICMP do stacji vfbsd01.zicher.lab:

root@vfbsd02:~ # ping -c5 vfbsd01.zicher.lab

netstat

Wyświetla informacje o topologii sieci.

Składnia:

root@vfbsd02:~ # netstat -opcje

Opcje:

-f – określa rodzinę protokołów

-r – wyświetla zawartość wszystkich tabel routingu

-rs – wyświetla statystyki routingu

Przykłady:

Wyświetl zawartość wszystkich tras:

root@vfbsd02:~ # netstat –r

Wyświetl informacje o stanie wszystkich aktywnych połączeń internetowych:

root@vfbsd02:~ # netstat -f inet

dig

Pobiera dane z serwerów DNS.

Składnia:

root@vfbsd02:~ # dig @serwer nazwa typ

Przykłady:

Do serwera DNS o nazwie [vfbsd01.zicher.lab] wyślij zapytanie o domenę [zicher.net]:

root@vfbsd02:~ # dig @vfbsd01.zicher.lab zicher.net

Do serwera DNS o adresie 192.168.100.106 wyślij zapytanie o rekord MX (przekaźnik poczty) do domeny [zicher.lab]:

root@vfbsd02:~ # dig @192.168.100.106 zicher.lab mx

traceroute

Wyświetla trasę danych jakie przeszły od komputera lokalnego do wskazanej zdalnej stacji.

Składnia:

root@vfbsd02:~ # traceroute -opcje stacja

Opcje:

-n – wyświetla adresy IP zamiast nazw DNS

Przykłady:

Prześledź trasę do stacji [vfbsd01.zicher.lab]:

root@vfbsd02:~ # traceroute vfbsd01.zicher.lab

Symbole wieloznaczne

* (gwiazdka) – zastępuje dowolny ciąg znaków.

? (pytajnik) – zastępuje dokładnie jeden znak.