Zobrazujú sa príspevky s označením commands. Zobraziť všetky príspevky
Zobrazujú sa príspevky s označením commands. Zobraziť všetky príspevky

utorok 7. novembra 2023

nedeľa 29. marca 2020

Spočítanie riadku v súbore

Možno len obyčajná somarina, ale občas to človek potrebujeme. Napríklad potrebujem nainštalovať niečo na zopár serverov. Je rozdiel, či to robím s 3 servermi alebo, či ich je 300.


piatok 17. januára 2020

utorok 17. decembra 2019

Update Debian 9

Update Debianu:

Alebo ako som si updatoval operačný systém. (Nie upgrade na novšiu verziu)

1. Zistíme, či máme vôbec voľné miesto:


root@guliverkel:/home/martin# df -h /dev/sda3
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        15G  3.9G   11G  27% /


2. Zálohujem si grub


root@guliverkel:/home/martin# mkdir /media/data2/grub
root@guliverkel:/home/martin# cp /boot/grub/grub.cfg /media/data2/grub

root@guliverkel:/home/martin# ls -lh /media/data2/grub
total 12K
-r--r--r-- 1 root root 12K Dec 17 08:08 grub.cfg

3. Pozriem sa na to, akú konkrétnu verziu Debianu mám, plus aké mám jadro:


root@guliverkel:/home/martin# cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@guliverkel:/home/martin# uname -r
4.9.0-8-amd64





4. Môžem spustiť prvý krok updatu (apt-get update) alebo v týchto novších verziách stačí apt update


root@guliverkel:/home/martin# apt update
Ign:1 http://ftp.sk.debian.org/debian stretch InRelease
Get:2 http://ftp.sk.debian.org/debian stretch Release [118 kB]
Get:3 http://ftp.sk.debian.org/debian stretch Release.gpg [2,365 B]                                                                                                                                                                                                         
Get:4 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB]                                                                                                                                                                                         
Get:5 http://ftp.sk.debian.org/debian stretch/main Sources [6,747 kB]                                                                                                                                                                                                       
Get:6 http://security.debian.org/debian-security stretch/updates/non-free Sources [1,216 B]                                                                                                                                                                                 
Get:7 http://security.debian.org/debian-security stretch/updates/main Sources [202 kB]                                                                                                                                                                                       
Get:8 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [509 kB]                                                                                                                                                                               
Get:9 http://security.debian.org/debian-security stretch/updates/main Translation-en [224 kB]                                                                                                                                                                               
Get:10 http://security.debian.org/debian-security stretch/updates/non-free amd64 Packages [1,596 B]                                                                                                                                                                         
Get:11 http://ftp.sk.debian.org/debian stretch/contrib Sources [44.7 kB]                                                                                                                                                                                                     
Get:12 http://ftp.sk.debian.org/debian stretch/non-free Sources [79.4 kB]                                                                                                                                                                                                   
Get:13 http://ftp.sk.debian.org/debian stretch/main amd64 Packages [7,086 kB]                                                                                                                                                                                               
Get:14 http://ftp.sk.debian.org/debian stretch/main Translation-en [5,385 kB]                                                                                                                                                                                               
Get:15 http://ftp.sk.debian.org/debian stretch/non-free amd64 Packages [78.3 kB]                                                                                                                                                                                             
Get:16 http://ftp.sk.debian.org/debian stretch/non-free Translation-en [80.3 kB]                                                                                                                                                                                             
Get:17 http://ftp.sk.debian.org/debian stretch/contrib amd64 Packages [50.9 kB]                                                                                                                                                                                             
Fetched 20.7 MB in 6s (3,284 kB/s)                                                                                                                                                                                                                                           
Reading package lists... Done                                                                                                                                                                                                                                               
Building dependency tree                                                                                                                                                                                                                                                     
Reading state information... Done                                                                                                                                                                                                                                           
83 packages can be upgraded. Run 'apt list --upgradable' to see them. 


5. Tu mi vyhodí, čo bude upgradovať (len časť vypíšem)


root@guliverkel:/home/martin# apt list --upgradable                                                                                                                                                                                                                           
Listing... Done                                                                                                                                                                                                                                                             
base-files/oldstable 9.9+deb9u11 amd64 [upgradable from: 9.9+deb9u9]                                                                                                                                                                                                         
debian-archive-keyring/oldstable 2017.5+deb9u1 all [upgradable from: 2017.5]                                                                                                                                                                                                 
e2fslibs/oldstable 1.43.4-2+deb9u1 amd64 [upgradable from: 1.43.4-2]                                                                                                                                                                                                         
e2fsprogs/oldstable 1.43.4-2+deb9u1 amd64 [upgradable from: 1.43.4-2]       

6. spustím upgrade balíčkov:


root@guliverkel:/home/martin# apt upgrade
Reading package lists... Done
Building dependency tree     
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:

83 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 176 MB of archives.
After this operation, 244 MB of additional disk space will be used.


7. spustím apt dist-upgrade


root@guliverkel:/home/martin# apt dist-upgrade
Reading package lists... Done
Building dependency tree     
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@guliverkel:/home/martin#


8. Keďže sa natiahli aj nejaké nové manuály, updatujem aj tie pomocou príkazu catman

catman - update man stránok

(niečo z catmanu)

root@guliverkel:/home/martin# catman

Updating cat files for section 1 of man hierarchy /usr/share/man
2to3-2.7, 2to3-3.5, 7z, 7za, 7zr, Xorg.wrap, acpi_available, add-apt-repository, apm_available, appres, appstreamcli, apropos, apt-extracttemplates, apt-ftparchive, apt-listchanges, apt-sortpkgs, ar, arch, ark, asn1parse, aspell,

9. rebootujem operačný systém (reboot and pray)

init 6

10. zistím, či sa nezmenil grub, verziu OS a jadra:


root@guliverkel:/home/martin# cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@guliverkel:/home/martin# uname -r
4.9.0-8-amd64
root@guliverkel:/home/martin# uptime -s
2019-12-17 08:22:25




nedeľa 8. decembra 2019

Príkaz who s niektorými prepínačmi

Dnes si trochu predstavíme príkaz who.

(# v bashi znamená komentár, tu to bude pred prepínačom takisto.)

Príkaz who slúži na to, aby nám ukázal, kto je pripojený na našom operačnom systéme.

Ako vidíte, som tu len ja:


martin@guliverkel:~$ who
martin   tty7         2019-12-08 09:08 (:0)
martin   pts/0        2019-12-08 09:08 (:0)
martin   pts/1        2019-12-08 11:34 (:0)


príkaz má ale niektoré zaujímavé prepínače.


# ukáže nám v ľudskom tvare, kedy nabootoval systém. Ako vidíte, systém sa nabootoval o 09:04:

who -b

martin@guliverkel:~$ who -b 
         system boot  2019-12-08 09:04
martin@guliverkel:~$


# who -a znamená all, tj. máme tám informáciu o tom, kedy systém nabootoval, aký používa runlevel, kto je prihlásený a podobne

martin@guliverkel:~$ who -a
           system boot  2019-12-08 09:04
           run-level 5  2019-12-08 09:04
LOGIN      tty1         2019-12-08 09:04               639 id=tty1
martin   + tty7         2019-12-08 09:08 02:34        1117 (:0)
martin   + pts/0        2019-12-08 09:08 02:30        1200 (:0)
martin   - pts/1        2019-12-08 11:34   .         11369 (:0)


# who -r napíše informáciu o runleveli

martin@guliverkel:~$ who -r
         run-level 5  2019-12-08 09:04

(Čo je to runlevel? Tu som o tom napísal článok, kde to vysvetľujem. Jednou vetou povedané, operačný systém sa rozhoduje, či má mať grafické prostredie, iba príkazový riadok alebo tzv. single mode.)



# celkom sypmatický prepínač je aj -u ako users. Napíše vám ako dlho je užívateľ prihlásený.

# who -u

martin@guliverkel:~$ who -u
martin   tty7         2019-12-08 09:08 02:57        1117 (:0)

Čo je to číslo 1117? je to PID: pozri tu:

root@guliverkel:/home/martin# ps aux | grep 1117
martin    1117  0.0  0.0   4276  1572 ?        S    09:08   0:00 /bin/sh /usr/bin/startkde


Obrázok: https://www.tecmint.com/linux-who-command-examples/


článok som napísal:

martin@guliverkel:~$ date
Sun Dec  8 12:04:20 CET 2019

Boot proces - jednoducho

Boot počítača:


Keď zapneme počítač, server, RPI alebo niečo, kde je nainštalovaný Linux, prebehne pár krokov.

1. BIOS
2. MBR
3. GRUB
4. Kernel
5. init
6. runlevel



1. BIOS proces

Basic input/output system. Načítajú sa najjednoduchšie vstupno-výstupné zariadenia.

2. MBR

je to len 512 kb súbor, ktorý spustí proces bootovania. (bootovanie znamená spúšťanie.) MBR je master boot record, tj. je to záznam, kde sa nachádzajú informácie na spúšťanie ďalších procesov. Predstavte si, keď otvoráte obchod. Toto je niečo ako kľúč, ktorým otvoríte dvere.(Musíte ale aj ďalšie veci otvoriť, tj. vypnúť alarm, zapnúť počítače, rozchodiť si pokladne, dať tam peniaze, atď.)

3. GRUB

Najjednoduchšie vysvetlenie: ide o tabuľku, ktorá vám vyberá, ktorý operačný systém (s ktorým konkrétnym jadrom chcete zapnúť.)

4. KERNEL

Kernel je jadro operačného systému Linux. Je to mozog alebo srdce operačného systému, stará sa o všetko.

5. init

Keď sa zapne operačný systém, init je úplne prvý proces. (Ten proces sa stará o všetky ostatné procesy, pokiaľ to ešte nevedia. Spúšťa ich, zapína, pripája disky, zapína sieť, atď...)

Čitali ste Na západe nič nové a pamätáte si na Katza? Ak nie, najprv prečítajte knihu, lebo nepochopíte bootovanie v linuxe. Init je ako Katz, tiež sa o všetkých staral.

6. runlevel

Runlevel je spôsob práce. Pokiaľ chcete pozerať Ramba, musíte mať nainštalované grafické prostredie. grafické prostredie ==GUI 
úloha: napíšte príkaz runlevel v grafickom prostredí.


Servery nepotrebujú často grafické prostredie, ale zároveň nemôžete pozerať ramba.

Uloha: Napíšte príkaz runlevel tu.  (v príkazovom riadku.)

Pomocou runlevelu vieme určovať, ktorá služba má byť zapnutá po reštarte operačného systému.  (Napríklad webový server, poštový server, rambo server.)



článok bol napísaný:

martin@guliverkel:~$ date
Sun Dec  8 11:55:56 CET 2019

streda 4. decembra 2019

Príkaz history s časom

Úvod


História v linuxe je dôležitá. Keď spravujeme mnoho serverov, nemusíme si všetko vždy pamätať. Nie je to predsa Hviezdoslavov Kubín. Isto nebudeme mať v pamäti všetky IP, porty a ďalšie gebuziny.

Ako si zobrzím históriu? Príkazom history. Ako tu:

martin@guliverkel:~$ history
    1  su
    2  df -hTP
    3  su
    4  s
    5  su
    6  df -h
    7  su
    8  df -h
    9  su
   10  history
martin@guliverkel:~$




vidíte, urobil som tieto príkazy ako užívateľ martin. (Každý užívateľ má svoju históriu.) Tu je užívateľ root:

root@guliverkel:/home/martin# history
    1  lspci 
    2  apt update
    3  apt-cache search iwlwifi
    4  apt install firmware-iwlwifi
    5  ip a 
    6  apt install net-tools
    7  ifconfig 
    8  reboot 
    9  ifconfig 
   10  ifconfig  -a
   11  apt install mc
   12  apt install kde-plasma-desktop
   13  apt install fsprotect
   14  apt install firmware-linux firmware-linux-nonfree
   15  apt install firmware-realtek
   16  mc
   17  df -h
   18  reboot 
   19  apt install wicd
   20  apt install wicd vlc krusader chromium libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-draw ark 
   21  cat /etc/resolv.conf 
   22  echo "kamarat mi poradil, ze to je dobre" > /boot/grub/grub.cfg
   23  history > /root/prve_kroky.txt

Tie čísla sú dôležité, môžem pracovať s výkričníkom. Výkričník+číslo, vykoná mi príkaz: napr. príkaz 10

root@guliverkel:/home/martin# !10
ifconfig  -a
eth91: =nepojde inernet



Timestamp   


Čo tak si urobiť históriu s tým, aby som vedel, kedy som ju spúšťal. Tj. vytvorme si dátum a čas:

Ako na to?

1. krok: zapnem google
2. krok: píšem do googlu: linux history with timestamp
3. krok. Defiujem si premennú HISTTIMEFORMAT
4. krok. takto: HISTTIMEFORMAT="%d/%m/%y %T "
5. krok: napíšeme príkaz history teraz. Tu je výstup

56  04/12/19 05:57:44 ls
   57  04/12/19 05:57:53 echo a ja taka carna
   58  04/12/19 05:57:57 pwd
   59  04/12/19 05:58:34 chmod 777 /var/log/


Chceme to aj do budúcna (tj. pre ďalšie prihlásenie, preto si treba premennú exportovať.) do súboru .bashrc - bodka je skrytý súbor

Takto:
root@guliverkel:/home/martin# echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc 

Odhlásil som sa a vidím históriu opäť:

root@guliverkel:/home/martin# echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc 
root@guliverkel:/home/martin# exit
martin@guliverkel:~$ su
Password:
root@guliverkel:/home/martin# history
    1  04/12/19 06:01:18 lspci 
    2  04/12/19 06:01:18 apt update
    3  04/12/19 06:01:18 apt-cache search iwlwifi
    4  04/12/19 06:01:18 apt install firmware-iwlwifi
    5  04/12/19 06:01:18 ip a 
    6  04/12/19 06:01:18 apt install net-tools
    7  04/12/19 06:01:18 ifconfig 
    8  04/12/19 06:01:18 reboot 
    9  04/12/19 06:01:18 ifconfig 
   10  04/12/19 06:01:18 ifconfig  -a
   11  04/12/19 06:01:18 apt install mc
   12  04/12/19 06:01:18 apt install kde-plasma-desktop
   13  04/12/19 06:01:18 apt install fsprotect
   14  04/12/19 06:01:18 apt install firmware-linux firmware-linux-nonfree
   15  04/12/19 06:01:18 vlc /data/customer/turkish_rambo

Ďalšie učenie: https://linuxize.com/post/history-command-in-linux/