Podstawowe operacje w systemach Linux dla początkujących

Obrazek dla Podstawowe operacje w systemach Linux dla początkujących

Poradnik ten jest rozwinięciem podstaw zawartych w artykule „Podstawowe komendy w systemach Linux„. Obydwa poradniki przydadzą się jeśli dopiero zaczynasz przygodę z systemami Linux. Poruszę to kilka podstawowych operacji na plikach, które są miłe dla początkujących, a zarazem przydatne całe późniejsze linuksowe życie.

Jeżeli znasz podstawy z wyżej wspomnianego poradnika i potrafisz zalogować się zdalnie do konsoli poleceń lub masz maszynę przed sobą. Zaczynamy.

Pobieramy plik z sieci.

I od razu podajemy nazwę pod jaką ma być pobrany.

wget -O plik.txt https://wordpress.org/plugins/readme.txt

[root@srv1 temp]# wget -O plik.txt https://wordpress.org/plugins/readme.txt
--2021-05-24 10:50:34--  https://wordpress.org/plugins/readme.txt
Resolving wordpress.org (wordpress.org)... 198.143.164.252
Connecting to wordpress.org (wordpress.org)|198.143.164.252|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: ‘plik.txt’

plik.txt                                                [ <=>    ]   3.39K  --.-KB/s    in 0s

2021-05-24 10:50:35 (23.8 MB/s) - ‘plik.txt’ saved [3469]

[root@srv1 temp]# ls -l
total 4
-rw-r--r-- 1 root root 3469 May 24 10:50 plik.txt
[root@srv1 temp]#

 

Head and tail – czyli głowa i ogon.

Służy do wyświetlania pierwszych i ostatnich (domyślnie dziesięciu) linijek zawartości pliku. Parametr -n służy do określenia ilości linii do wyświetlenia, bez niego wartością domyślna jest 10.

head -n1 plik.txt

[root@srv1 temp]# head -n1 plik.txt
=== Plugin Name ===
[root@srv1 temp]#

tail -n1 plik.txt

[root@srv1 temp]# tail -n1 plik.txt
`<?php code(); // goes in backticks ?>`
[root@srv1 temp]#
[root@srv1 temp]# tail -n3 plik.txt
> Asterisks for *emphasis*. Double it up  for **strong**.

`<?php code(); // goes in backticks ?>`
[root@srv1 temp]#

 

Wyodrębnij linie z pliku i zapisz jako.

Wyodrębnij włącznie z linią 3 … i leć, aż do linii 10 z pliku plik.txt i zapisz pod nazwą „8linii.txt”.

sed -n 3,10p plik.txt > 8linii.txt

[root@srv1 temp]# sed -n 3,10p plik.txt > 8linii.txt
[root@srv1 temp]# ls -l
total 8
-rw-r--r-- 1 root root  209 May 24 11:00 8linii.txt
-rw-r--r-- 1 root root 3469 May 24 10:50 plik.txt
[root@srv1 temp]# cat 8linii.txt
Donate link: https://example.com/
Tags: comments, spam
Requires at least: 4.7
Tested up to: 5.4
Stable tag: 4.3
Requires PHP: 7.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

 

Znajdź plik w katalogu

Szukamy tylko w katalogu /root/ pliku o nazwie zaczynającej się od frazy „8li-„.

[root@srv1 temp]# pwd
/root/temp
[root@srv1 temp]# cd /root/
[root@srv1 ~]# find /root/ -name 8li*
/root/temp/8linii.txt

 

Znajdź katalog

Wskazujemy jako miejsce poszukiwania od katalogu /root/ wgłąb oraz dodajemy parametr „-type d” wskazujący iż chodzi nam tym razem o katalog, a nie plik, ponadto zaczynający się od frazy „te-„. Tak żeby złapać nazwą katalog /temp/.

[root@srv1 ~]# find /root/ -type d -name te*
/root/temp

 

Przeszukaj cały dysk w poszukiwaniu pliku.

Spróbujmy namierzyć nasz plik 8linii.txt. Poszukiwania zaczynamy od głównej ścieżki systemowej.

find / -name 8linii.txt

[root@srv1 /]# find / -name 8linii.txt
./root/temp/8linii.txt
[root@srv1 /]#

 

Przeszukaj pliki tekstowe w poszukiwaniu frazy.

Wiemy, że w naszych plikach z rozszerzeniem .txt powinna wystąpić fraza „Requires PHP” i takiej szukamy.

cat *.txt | grep „Requires PHP”

[root@srv1 temp]# cat *.txt | grep "Requires PHP"
Requires PHP: 7.0
Requires PHP: 7.0
[root@srv1 temp]#

lub można inaczej, bardziej efektywnie:

Szukaj wyrazu w plikach katalogu.

Użyjemy grep do przeszukiwania pliku pod kątem występowania danego wyrazu w danym katalogu:

grep -ir <wyraz> <ktalog>

[root@srv1 temp]# grep -ir Requires .
./plik.txt:Requires at least: 4.7
./plik.txt:Requires PHP: 7.0
./plik.txt:*   "Requires at least" is the lowest version that the plugin will work on
[root@srv1 temp]#

 

Utwórz plik z obecną datą.

Parametr -ne zostawi nam kursor w tej samej linii, a średnik (;)pozwoli na wykonanie kolejnej komendy w ciągu jednej linii poleceń.

Operator „>>” pozwala na dołączenie strumienia do istniejącego pliku, podczas gdy „>” pojedynczy, nadpisuje.

echo -ne „Obecna data: ” > data.txt; date >> data.txt

[root@srv1 temp]# echo -ne "Obecna data: " > data.txt;  date >> data.txt
[root@srv1 temp]# cat data.txt
Obecna data: Mon 24 May 11:28:36 CEST 2021
[root@srv temp]#

 

Połącz dwa pliki w Linux.

Połączymy dwa pliki w jeden nowy plik, który zostanie nadpisany na stary „plik.txt”.

 cat 8linii.txt data.txt > plik.txt

[root@srv1 temp]# cat 8linii.txt data.txt > plik.txt
[root@srv1 temp]# cat plik.txt
Donate link: https://example.com/
Tags: comments, spam
Requires at least: 4.7
Tested up to: 5.4
Stable tag: 4.3
Requires PHP: 7.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Obecna data: Mon 24 May 11:28:36 CEST 2021
[root@srv1 temp]#

operacje tekstowe

Ponadto, początkującym przyda się również znajomość ciekawych poleceń, takich jak:

Szybkie przełączanie się na uprawnienia 'root’ w konsoli.

su –

[admin@srv1 ~]$ su -
Password:
Last login: Mon May 17 15:43:44 CEST 2021 on pts/0
[root@srv1 ~]#

 

Nazwa hosta oraz informacje o systemie.

hostname oraz uname

[root@srv1 temp]# hostname
srv1.hostdev.pl

[root@srv1 temp]# uname -a
Linux srv1.hostdev.pl 4.18.0-240.22.1.el8_3.x86_64 #1 SMP Fri Apr 9 10:23:57 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@srv1 temp]#

 

Jak długo działa system operacyjny?

uptime

[root@srv1 ~]$ uptime
 16:54:07 up 26 days,  8:39,  1 user,  load average: 0.15, 0.07, 0.06
[root@srv1 ~]$

 

curl, skrót od „Klient dla URL-i”, to bardzo przydatne narzędzie w konsoli służące do przesyłania danych przy użyciu różnych protokołów. Możemy testować połączenia wykorzystując HTTP czy sprawdzać nagłówki, odpytywać API, wspiera SSL, proxy a nawet FTP.

Jaki jest mój zewnętrzny adres IP?

curl ifconfig.co/

[root@srv1 /]# curl ifconfig.co/
XX.XX.XX.186
[root@srv1 /]#

 

Test czy strona odpowiada protokołem HTTP/2?

curl -I -s –http2 https://www.hitme.pl/ | grep HTTP

[root@srv1 /]# curl -I -s --http2 https://www.hitme.pl/ | grep HTTP
HTTP/2 301
[root@srv1 /]#

 

Konwersja timestamp do formatu daty.

To już przesada, ale da się i tak :-).

curl -w „\n” https://showcase.api.linx.twenty57.net/UnixTime/fromunix?timestamp=1621854934

[root@da1 /]# curl -w "\n" https://showcase.api.linx.twenty57.net/UnixTime/fromunix?timestamp=1621854934
"2021-05-24 11:15:34"
[root@da1 /]#

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Przegląd prywatności
hitme logo

Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na naszą stronę internetową i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.

Ściśle niezbędne ciasteczka

Niezbędne ciasteczka powinny być zawsze włączone, abyśmy mogli zapisać twoje preferencje dotyczące ustawień ciasteczek.

Facebook Pixel

Używamy narzędzia Facebook Pixel, aby śledzić działania użytkowników na naszej stronie internetowej. Facebook Pixel umożliwia nam analizowanie skuteczności reklam oraz tworzenie spersonalizowanych treści marketingowych. Dzięki temu możemy lepiej dostosować naszą ofertę do Twoich potrzeb. Zbierane dane mogą obejmować m.in. informacje o odwiedzonych stronach, kliknięciach oraz konwersjach.

Bezpieczna analityka

W celu lepszej analizy ruchu na naszej stronie internetowej korzystamy z narzędzia Matomo Analytics. Matomo jest hostowane w naszej infrastrukturze, a zbierane dane nie są udostępniane żadnym podmiotom zewnętrznym. Informacje o Twojej aktywności na stronie służą jedynie do analizy statystycznej oraz poprawy jakości naszych usług, zgodnie z przepisami RODO/GDPR.

Dane są w pełni anonimowe i nie są przekazywane poza naszą firmę.