[1] Podstawowe komendy
31 stycznia 2024Poniż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.