Ubuntu/Podstawowe polecenia

Terminal czyli emulator konsoli służy do komunikacji z systemem za pomocą wydawanych poleceń.
Terminal uruchamiamy z menu Programy-> Akcesoria-> Terminal.
Konsolę w trybie pełnoekranowym otwieramy, wciskając jednocześnie klawisze Alt+Control+F1 (od F1 do F6), natomiast w okienku, wciskając jednocześnie klawisze lewy CTRL i lewy ALT oraz literę t
Na 7 konsoli uruchomiony jest x-server, czyli interface graficzny systemu, więc wciskając Alt+Control+F7 wracamy do "części graficznej" naszego systemu. Jeśli to nie działa, zajrzyj do poprzedniego modułu


Obeznanie się z Terminalem

edytuj


Po uruchomieniu konsoli widzisz następujący tekst:

[nazwa użytkownika]@[nazwa komputera]:~$

U mnie wygląda to tak:

michal@michal-laptop:~$

Ten ciąg pokazuje nam, że nie jest wykonywana żadna czynność i możesz wpisać swoje polecenie.
Miejsce, w którym jesteś po uruchomieniu Terminala to katalog domowy użytkownika:

/home/[nazwa użytkownika] 

Jeśli chcesz się dowiedzieć gdzie się znajdujesz i do jakich katalogów możesz przejeść wpisz komendę:

ls

Zostaną wyświetlone katalogi do których możesz przejść:

michal@michal-laptop:~$ ls
Dokumenty                               MojePliki  Publiczny  Wideo
dwhelper                                Muzyka     Pulpit
                                        Obrazy     Sieć
                                        Photos     Szablony
michal@michal-laptop:~$ 

Załóżmy że na pulpicie masz katalog (folder) Frex i chcesz wejść do niego.
W tym celu przechodzimy do pulpitu:

cd Pulpit

Następnie wydaj ponownie komendę "ls" aby zobaczyć jakie znajdują się tam pliki lub katalogi:

ls

Otrzymasz miej więcej taki obraz:

michal@michal-laptop:~/Pulpit$ ls
16565            Frex                             PolishHolidays.ics
33111            lightning-0.9-tb-linux.xpi       
Berlin2Wide.jpg  Niezapisany dokument 1.txt
michal@michal-laptop:~/Pulpit$ 

Teraz już widzisz katalog Frex i możesz do niego wejść wpisując komendę:

cd Frex

Jesteś teraz w katalogu Frex

michal@michal-laptop:~/Pulpit$ cd Frex
michal@michal-laptop:~/Pulpit/Frex$ 

Informacja o systemie / komputerze

edytuj

Architektura

  • procesora CPU
  • jądra systemu ( kernel)
  • pakietów


Dla jakiej architektury zostało skompilowane jadro:[1]

  uname -p 


Architektura pakietów :

 dpkg-architecture --list

Dodatkowe architektury ( MultiArchSpec):

 dpkg --print-foreign-architectures



Cechy procesora ( fizycznego) :

 cat /proc/cpuinfo
 lscpu
 

Znajdź dostępne obrazy systemu (ang. image) za pomocą polecenia multipass:[2]

  multipass find


Przykładowy wynik:

Image                       Aliases           Version          Description
snapcraft:core18            18.04             20201111         Snapcraft builder for Core 18
snapcraft:core20            20.04             20210921         Snapcraft builder for Core 20
snapcraft:core22            22.04             20220426         Snapcraft builder for Core 22
snapcraft:devel                               20230112         Snapcraft builder for the devel series
core                        core16            20200818         Ubuntu Core 16
core18                                        20211124         Ubuntu Core 18
18.04                       bionic            20230112         Ubuntu 18.04 LTS
20.04                       focal             20230111         Ubuntu 20.04 LTS
22.04                       jammy,lts         20230107         Ubuntu 22.04 LTS
22.10                       kinetic           20230112         Ubuntu 22.10
daily:23.04                 devel,lunar       20230110         Ubuntu 23.04
appliance:adguard-home                        20200812         Ubuntu AdGuard Home Appliance
appliance:mosquitto                           20200812         Ubuntu Mosquitto Appliance
appliance:nextcloud                           20200812         Ubuntu Nextcloud Appliance
appliance:openhab                             20200812         Ubuntu openHAB Home Appliance
appliance:plexmediaserver                     20200812         Ubuntu Plex Media Server Appliance
anbox-cloud-appliance                         latest           Anbox Cloud Appliance
charm-dev                                     latest           A development and testing environment for charmers
docker                                        latest           A Docker environment with Portainer and related tools
jellyfin                                      latest           Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media.
minikube                                      latest           minikube is local Kubernetes



Informacje systemowe

edytuj

Wyświetlenie strony "manual" (podręcznika systemowego):

man [polecenie]

display

edytuj

demon


display servers[4]

  • Xorg
  • Wayland[5]


Aktualny display

ps -e | grep tty

Przykładowy wynik:

  2379 tty2     00:00:00 gdm-x-session
  2381 tty2     00:02:39 Xorg
  2419 tty2     00:00:00 gnome-session-b


ps -ef | grep -i tty
UID          PID    PPID  C STIME TTY          TIME CMD
a           2379    2305  0 08:24 tty2     00:00:00 /usr/libexec/gdm-x-session --run-script env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --session=ubuntu
root        2381    2379  6 08:24 tty2     00:02:46 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -novtswitch -verbose 3
a           2419    2379  0 08:24 tty2     00:00:00 /usr/libexec/gnome-session-binary --session=ubuntu
a           6690    6090  0 09:07 pts/1    00:00:00 grep --color=auto -i tty


display managers[6]

  • lightDM
  • gdm3 ( domyślny)
  • SDDM

desktop environments

  • KDE
  • Unity
  • LXDE
  • XFCE
  • Openbox
  • Fluxbox



Aktualny menadżer

  • in window Settings/About/Windowing system
  • xeyes[7]


echo $XDG_SESSION_TYPE

lub

 cat /etc/X11/default-display-manager
 

lub

echo $DESKTOP_SESSION
echo $WAYLAND_DISLAY


cat /etc/X11/default-display-manager

/usr/sbin/gdm3


systemctl status display-manager
 ● gdm.service - GNOME Display Manager
     Loaded: loaded (/lib/systemd/system/gdm.service; static)
     Active: active (running) since Thu 2023-08-03 08:22:57 CEST; 51min ago
   Main PID: 1363 (gdm3)
      Tasks: 3 (limit: 18827)
     Memory: 6.7M
        CPU: 220ms
     CGroup: /system.slice/gdm.service
             └─1363 /usr/sbin/gdm3

Aug 03 08:22:58 zalman gdm3[1363]: Gdm: GdmDisplay: Session never registered, failing
Aug 03 08:22:58 zalman gdm3[1363]: Gdm: Child process -1436 was already dead.
Aug 03 08:22:58 zalman gdm3[1363]: Gdm: GdmDisplay: Session never registered, failing
Aug 03 08:22:58 zalman gdm3[1363]: Gdm: Child process -1436 was already dead.
Aug 03 08:22:58 zalman gdm-launch-environment][1608]: pam_unix(gdm-launch-environment:session): session opened for user gdm(uid=126) by (uid=0)
Aug 03 08:24:05 zalman gdm-password][2305]: gkr-pam: unable to locate daemon control file
Aug 03 08:24:05 zalman gdm-password][2305]: gkr-pam: stashed password to try later in open session
Aug 03 08:24:05 zalman gdm-password][2305]: pam_unix(gdm-password:session): session opened for user a(uid=1000) by (uid=0)
Aug 03 08:24:05 zalman gdm-password][2305]: gkr-pam: gnome-keyring-daemon started properly and unlocked keyring
Aug 03 08:24:10 zalman gdm3[1363]: Gdm: Child process -1661 was already dead.


Przełączanie pomiędzy display-managerami[8]

sudo dpkg-reconfigure lightdm

lub

sudo dpkg-reconfigure gdm3


Zmiana serwera wyświetlania ( ang. display server)[9]

Edytuj ustawienia zawarte w pliku /etc/gdm3/custom.conf

sudo gedit /etc/gdm3/custom.conf

zmień na:

WaylandEnable=true

Wyłącz ( przez znak komentarza ) 2 linie w pliku /usr/lib/udev/rules.d/61-gdm.rules[10]

sudo gedit /usr/lib/udev/rules.d/61-gdm.rules

Tak to powinno wyglądać :

 LABEL="gdm_prefer_xorg"
 #RUN+="/usr/lib/gdm-runtime-config set daemon PreferredDisplayServer xorg"
 GOTO="gdm_end"

 LABEL="gdm_disable_wayland"
 #RUN+="/usr/lib/gdm-runtime-config set daemon WaylandEnable false"
 GOTO="gdm_end"


zapisz i restart:

sudo systemctl restart gdm3


w oknie logowania (ang. GDM login screen = it's not on the login (username) page. It's on the password entry page ) kliknij ikonę ustawień ( ang. gear icon or cogwheel (⚙️) obok przycisku logowania ( ang. the sign in button) i wybierz opcje

  • Ubuntu ( czyli Wayland)
  • Ubuntu on Xorg


Sprzęt kompatybilny

 sudo gedit /etc/gdm3/custom.conf


Jeśli system ( hardware) nie jest kompatybilny z Wayland, to domyślnie używany jest xorg

wersja

edytuj

Wyświetlenie informacji o wersji Ubuntu:[11]

lsb_release -a

lub :

uname -m && cat /etc/*release

Wyświetlenie informacji o procesorze komputera:

cat /proc/cpuinfo

Wyświetlenie informacji o wersji Ubuntu:

cat /proc/version

Wyświetlenie wszystkich informacji o komputerze - płycie głównej, procesorze i jego architekturze, etc. [12]:

sudo lshw

Wyświetlenie nazwy jądra systemu operacyjnego, sieciową nazwę systemu i numeru edycji jądra systemu:

uname -a

Wyświetlenie informacji o dostępnej pamięci w kilobajtach:

free

Wyświetlenie informacji o dostępnej pamięci w megabajtach:

free -m

Wyświetlenie informacji o dostępnej pamięci w gigabajtach:

free -g

Wyświetlanie użycia CPU

iostat -c 3

Uruchomienie interfejsu wysokiego poziomu dla menedżera pakietów:

aptitude

procesy

edytuj

Wyświetlenie wszystkich uruchomionych procesów na komputerze:

ps -el

w formie drzewa

pstree

Dodanie flagi -p do polecenia spowoduje wyświetlenie każdej gałęzi z jej identyfikatorem procesu.

pstree -p

Wyświetlenie numeru procesu PID programu gimp (program gimp musi być uruchomiony)

pidof gimp

Zakończenie procesu programu( na przykład PID 4895, w Debianie wpisujemy kill 4895 ):

kill -9 4895

Wybrane polecenia

edytuj

Poniższe polecenia umożliwiają poruszanie się po systemie.

  • GUI
    • brasero


kopiowanie cd[13]

  • 2 etapowe[14]
    • utworzyć obraz dysku ISO z dysku CD-ROM, DVD lub Blu-ray
    • zapisać iso na CD


cdrdao copy


Sprawdzamy napęd CD

cat /proc/sys/dev/cdrom/info
 lsblk
 lsscsi


Wypalamy CD[15]

  • wodim -prcap
  • growisofs
  • genisoimage
growisofs -Z /dev/sr0=/path/to/iso_file

Lista dysków podpiętych do SATA ( dawniej SCSI):

 ls /dev/sd*

lub lsblk = LiSt BlocK devices

 lsblk

nazwy oznaczają:

  • sda = pierwszy dysk
    • sda1 = pierwsza partycja na pierwszym dysku
    • sda2 = druga partycja na pierwszym dysku
  • sdb = drugi dysk
  • sdc = trzeci dysk


Sprawdzamy typ dysku sdc

   sudo hdparm -i /dev/sdc


Lista dysków:

 sudo lshw -class disk -short

Nazwa dysku USB:[16]

 lsblk -o NAME,TRAN

lub:

 find /dev/disk -ls | grep usb


dysk startowy

edytuj

Dysk instalacyjny Ubuntu tworzymy za pomoca Start Disk Creator


użyciem GNU ddrescue: [17]

Instalacja :

 sudo apt install gddrescue

Użycie

 sudo ddrescue systemrescue-8.03-amd64.iso /dev/sdc --force -D


literę dysjku usb sprawdzamy za pomocą lsblk

Operacje na plikach i katalogach

edytuj

Wejście do katalogu:

cd [nazwa katalogu]

Wejście do katalogu root:

cd /

Wyjście do nadrzędnego katalogu (np. z w katalogu "/home/[nazwa użytkownika]" do katalogu "/home"):

cd ..

Cofnięcie się do poprzedniego katalogu

 cd -

Tworzenie katalogu:

mkdir [nazwa katalogu]

Tworzenie pustego pliku tekstowego:

touch [nazwa pliku]

Usuwanie pliku:

rm [nazwa pliku]

Usuwanie rekurencyjne (katalog i podkatalogi):

rm -r [nazwa katalogu]

Kopiowanie pliku do katalogu

sudo cp [nazwa pliku] [lokalizacja katalogu]

Kopiowanie pliku firewall do katalogu init.d

sudo cp firewall /etc/init.d/

Wyświetlenie zawartości katalogu w którym się znajdujesz:

ls

Wyświetlenie zawartości katalogu z dodatkowymi informacjami (np. właściciel pliku/katalogu, prawa dostępu):

ls -l

Wyświetlenie zawartości katalogu włącznie z plikami ukrytymi

ls -a

Wyszukiwanie plików w okresowo aktualizowanej bazie danych.np locate *alarm.ogg

locate [nazwa pliku lub rozszerzenie]

Edytowanie plików

edytuj

Możemy edytować pliki :

Zarządzanie pakietami

edytuj

Zarządzanie pakietami

Wyszukiwanie pakietów:

sudo apt-cache search [nazwa pakietu Ubuntu]

Instalowanie programu:

sudo apt-get install [nazwa programu]

Odinstalowanie programu:

sudo apt-get remove [nazwa programu]

Usuwanie nieużywanych pakietów:

sudo apt-get autoremove

Czyszczenie systemu:

sudo apt-get clean
 lub
sudo apt-get autoclean

Naprawianie uszkodzonych pakietów:

sudo dpkg --configure -a

Instalowanie pakietów Debiana:

sudo dpkg -i [nazwa pakietu].deb

Instalacja plików nagłówkowych jadra:[20]

  $ sudo apt install linux-headers-$(uname -r)
 /sbin/ldconfig -p

szukamy

 ldconfig -p | grep nazwa

Operacje na archiwach

edytuj

Rozpakowanie archiwum "tar":

tar -xvf archiwum.tar

Rozpakowanie archiwum "tar.gz":

tar -zxvf archiwum.tar.gz

Rozpakowanie archiwum "tar.bz2":

tar -jxvf archiwum.tar.bz2

Rozpakowanie archum "tar.xz':

tar -Jxf jakis_plik.tar.xz

Rozpakowanie archuwim .zip

7z x archiwum.zip

Rozpakowanie archiwum .rar

unrar x archiwum.rar

Operacje na obrazach

edytuj

Aby manipulować obrazami z poziomu terminala musimy zainstalować dodatkowy pakiet imagemagick:

sudo apt-get install imagemagick

Aby uzyskać podstawowe informację o obrazie użyj komendy identify:

identify [nazwa pliku].jpg

Aby uzyskać szczegółowe informacje o obrazie użyj komendy identify -verbose:

identify -verbose [nazwa pliku].jpg 

Aby zamienić format pliku graficznego na inny (przekonwertować go) użyj komendy convert. Obsługiwane formaty to .jpg, .bmp, .pcx, .gif, .png, .tiff, .xpm:

convert mojdom.jpg mojdom.png
convert mojpies.tiff mojpies.pcx

Aby z obrazu utworzyć ikonę o wymiarach 120x120 pikseli użyj komendę create thumbnails :

convert -thumbnail 120x120 photo.jpg photo1.png

Aby z obrazu utworzyć ikonę o wymiarach 120x120 pikseli z obramowaniem grubości 8 pikseli użyj następującego wariantu:

convert -thumbnail 120x120 -border 8 photo.jpg photo1.png

Aby z obrazu utworzyć ikonę o wymiarach 120x120 pikseli z obramowaniem grubości 8 pikseli, przekręcone o 8 stopni użyj następującego wariantu:

convert -thumbnail 120x120 -border 8 -rotate 8 photo.jpg photo1.png

Aby postarzeć zdjęcie (używając efektu sepii) użyj następujących komend:

convert -sepia-tone 75% samochod.jpg starysamochod.png

Aby zmienić zdjęcię na szkicowane użyj komendy:

convert -charcoal photo.jpg photoszkic.png

Dźwięk

edytuj

Test ALSA:[21]

aconnect -i

Uruchomienie interfejsu miksera "ALSA" do konfiguracji i przechwytywania dźwięku:

alsamixer


konwersje

edytuj

Plik z muzyką typu wav ( np z CD) do pliku flac

 ffmpeg -i [Plik].wav [Plik].flac

Informacje sieciowe

edytuj

Pokazanie aktualnego ruchu w sieci wszystkich urządzeń sieciowych, np. modem DSL, karta Ethernet,etc.
Aby użyć tej komendy zainstaluj najpierw program "CBM" a po instalacji wpisz komendę:

cbm

Wyświetlenie statusu aktywnych interfejsów sieciowych, np. twój IP:

ifconfig

Wyświetlenie wszystkich aktywnych połączeń z/do twojego systemu:

sudo netstat -tup

Wyszukiwanie numeru IP strony:

net lookup [adres strony]

Narzędzie ping:

ping [adres IP / adres WWW]

Wyświetlanie bramy domyślnej:

route -n

Po wpisaniu komendy w terminalu otrzymamy:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0  eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0  eth1
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0  eth1

Gdzie 192.168.0.1 jest adresem bramy domyślnej.

Uruchamianie programów w Terminalu

edytuj

Niektóre programy możesz uruchomić w Terminalu poprzez wpisanie ich nazwy.
Załóżmy że chcemy uruchomić program graficzny GIMP.

W tym celu uruchom Terminal za pomocą :

  • menu Programy-> Akcesoria-> Terminal
  • skrótu : ctrl-alt-t

i wpisz:

gimp

Kalendarz

edytuj

Wyświetlenie kalendarza na bieżący miesiąc:

cal

Wyświetlenie listy wszystkich użytkowników:

who

opcje programu

edytuj

Najczęściej aby uzyskać podstawowe informacje o opcjach programu należy wywołać go z opcją "-h" lub "--help" np:

netstat -h
 lub
netstat --help

lub skorzystać z gsettings[22]

 gsettings list-recursively | grep -i gedit


Sprawdzamy domyślny edytor w trybie tekstowym:

 echo $EDITOR

lub

env | grep EDITOR

Sprawdzamy dostęþne edytory dla sudo:

 sudo update-alternatives --config editor
 

lub aktualnie zalogowanego uzytkownika:

update-alternatives --config editor


 4 dostępne alternatywy dla editor (dostarczającego /usr/bin/editor).

  Wybór       Ścieżka          Priorytet  Status
------------------------------------------------------------
* 0            /bin/nano           40        tryb auto
  1            /bin/ed            -100       tryb ręczny
  2            /bin/nano           40        tryb ręczny
  3            /usr/bin/mcedit     25        tryb ręczny
  4            /usr/bin/vim.tiny   15        tryb ręczny

Proszę wcisnąć <enter>, aby pozostawić bieżący wybór[*]; albo wpisać wybrany numer:

W wersji 22.04 domyślnym edytorem jest vim, uruchamiany poleceniem

vi


Porównaj

Zmienne Środowiskowe

edytuj

Zmienne środowiskowe (ang-environment variables) to zbiór dynamicznych wartości, wpływających na sposób w jaki działać będą uruchomione procesy (programy).

Dodawanie zmiennych środowiskowych i ich zapisanie

Uruchom Terminal z prawami roota następnie edytuj ukryty plik .profile edytorem emacs. Jeśli nie masz tego edytora to go zainstaluj wydając polecenie w terminalu

aptitude install emacs

Po jego instalacji edytuj plik .profile wpisując

emacs .profile

Zobaczysz mniej więcej taki obraz

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
	. "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Jeśli chcesz utworzyć nową zmienną to wpisz jej nazwę i wartość jaką będzie ona miała. Na przykład zmienna=wartość. Nazwę zmiennej piszemy wielkimi literami. Jeśli chcesz by zmienna była zawsze dosŧępna musimy ją zapisać w pliku .profile. Na przykład tworzymy zmienną LD o wartości "/usr/local/ayam/bin/plugins". Teraz dodaj ją do pliku .profile na końcu wpisując

###exports
export LD=/usr/local/ayam/bin/plugins

Następnie zapisz plik .profile. Teraz za każdym razem gdy uruchomisz komputer twoja zmienna będzie dostępna.

Odnośniki

edytuj
  1. stackoverflow question: how-to-find-the-linux-processor-chip-architecture
  2. ubuntu docs: virtualization-multipass
  3. freedesktop : colord
  4. askubuntu question: ubuntu-on-wayland
  5. wiki.ubuntu: Wayland
  6. techpiezo: switch-display-manager-in-ubuntu-22-04
  7. unix stackexchange question: what-is-the-purpose-of-xeyes ?
  8. itsfoss : switch-xorg-wayland
  9. linuxconfig: how-to-enable-disable-wayland-on-ubuntu-22-04-desktop
  10. askubuntu question: cant-use-wayland-with-nvidia-510-drivers-on-ubuntu-22-04-lts
  11. howtouselinux : 4-ways-to-check-linux-version by David Cao November 15, 2022
  12. HardWare LiSter = lshw
  13. yolinux TUTORIAL : CD Burn
  14. cyberciti tips: linux-creating-cd-rom-iso-image
  15. baeldung : linux terminal-burn-iso-cd-dvd
  16. askubuntu : how-to-tell-which-device-the-usb-drive-is-assigned-as
  17. 3 Ways to Create Bootable Ubuntu USB Startup by Disk James KiarieMay 21, 2020 Categories
  18. Jeex
  19. Okteta - edytor plików binarnych
  20. tecmint: install-kernel-headers-in-ubuntu-and-debian
  21. | How to install GENPO - MIDI-Organ.net
  22. gsettings-tool