Visbiežāk izmantotās Linux komandas, kas jums jāzina


Linux ir ļoti populāra operētājsistēma (OS) programmētāju un parasto lietotāju vidū. Viens no galvenajiem tās popularitātes iemesliem ir izcilais komandrindas atbalsts. Mēs varam pārvaldīt visu Linux operētājsistēmu tikai, izmantojot komandrindas interfeisu (CLI). Tas ļauj mums veikt sarežģītus uzdevumus, izmantojot tikai dažas komandas.

Šajā rokasgrāmatā mēs apspriedīsim dažas bieži lietotās komandas, kas ir noderīgas pieredzējušiem sistēmas administratoriem vai iesācējiem. Pēc šīs rokasgrāmatas izpildes lietotāji varēs pārliecinoši vadīt Linux sistēmu.

Labākai organizācijai šīs komandas ir sagrupētas trīs sadaļās – failu sistēma, tīkls un sistēmas informācija.

Linux failu sistēmas komandas

Šajā sadaļā mēs apspriedīsim dažas noderīgas komandas, kas saistītas ar failiem un direktorijiem operētājsistēmā Linux.

Cat komanda galvenokārt tiek izmantota, lai parādītu faila saturu. Tas nolasa faila saturu un parāda tos standarta izvadē (stdout).

Cat komandas kopējā sintakse ir:

$ cat [OPTIONS] [FILE1] [FILE2] ...

Parādīsim /etc/os-release faila saturu, izmantojot komandu cat:

$ cat /etc/os-release

Turklāt mēs varam izmantot arī komandas opciju -n, lai parādītu saturu ar rindas numuru:

$ cat -n /etc/os-release

Komanda cp ir noderīga failu, failu grupu un direktoriju kopēšanai.

Kopējā komandas cp sintakse ir:

$ cp [OPTIONS]  

Šeit kvadrātiekavas ([]) apzīmē neobligātos argumentus, savukārt leņķiekavas (<>) apzīmē galvenos argumentus.

Kopēsim /etc/os-release failu /tmp direktorijā:

$ cp /etc/os-release /tmp/new-file.txt

Tagad parādīsim faila saturu, lai pārbaudītu, vai fails ir kopēts:

$ cat /tmp/new-file.txt

Līdzīgi mēs varam kopēt direktoriju, izmantojot komandu cp. Kopēsim /etc/cron.d direktoriju /tmp direktorijā:

$ cp -r /etc/cron.d /tmp

Mēs esam izmantojuši opciju -r ar komandu cp, kas apzīmē rekursīvo darbību. Tas rekursīvi kopē direktoriju, kas ietver tā failus un apakšdirektorijus.

Nākamajā piemērā mēs redzēsim, kā pārbaudīt, vai direktorijs ir veiksmīgi kopēts.

$ ls /tmp/cron.d
$ ls -l /tmp/cron.d

Komanda ls tiek izmantota, lai uzskaitītu direktoriju saturu un kārtotu failus pēc lieluma un pēdējās modifikācijas laika dilstošā secībā.

Komandas ls kopējā sintakse ir:

$ ls [OPTIONS] [FILE1] [FILE2] ...

Ja komandai ls nesniedzam nekādus argumentus, tajā ir norādīts pašreizējā direktorija saturs.

$ ls

Iepriekšējā piemērā mēs nokopējām direktoriju /etc/cron.d uz /tmp direktoriju. Pārbaudīsim, vai tas ir tur un satur nepieciešamos failus:

$ ls /tmp/cron.d

Mēs varam izmantot opciju -l ar komandu ls, lai parādītu detalizētāku informāciju, piemēram, faila atļaujas, īpašnieku, laikspiedolu, lielumu utt.

Uzziniet vairāk par failiem, kas atrodas direktorijā /tmp/cron.d:

$ ls -l /tmp/cron.d

Mēs bieži veidojam direktoriju struktūru, lai sakārtotu saturu. Operētājsistēmā Linux mēs varam izmantot komandu mkdir, lai izveidotu direktoriju vai vairākus direktorijus un iestatītu direktorijiem pareizās atļaujas.

Komandas mkdir kopējā sintakse ir:

$ mkdir [OPTIONS] <DIRECTORY1> <DIRECTORY2> ...

Izveidosim direktoriju ar nosaukumu dir-1 direktorijā /tmp:

$ mkdir /tmp/dir-1

Tagad pārbaudīsim, vai direktorijs ir izveidots:

$ ls /tmp/dir-1

Šeit mēs redzam, ka komanda ls neziņo par kļūdu, kas nozīmē, ka direktorijs tur atrodas.

Dažreiz mums ir jāizveido ligzdotu direktoriju struktūra labākai datu organizēšanai. Šādos gadījumos mēs varam izmantot komandas opciju -p, lai izveidotu dažus ligzdotus direktorijus direktorijā /tmp/dir-1:

$ mkdir -p /tmp/dir-1/dir-2/dir-3/dir-4/dir-5

Iepriekš minētajā piemērā esam izveidojuši 4 ligzdoto direktoriju līmeņus. Apstiprināsim to, izmantojot ls komandu:

$ ls -R /tmp/dir-1

Šeit mēs esam izmantojuši opciju -R ar komandu, lai parādītu direktorijas saturu rekursīvā veidā.

Lai pārbaudītu pēdējās izpildītās komandas, varat izmantot vēstures komandu, kas parāda termināļa sesijā pēdējo izpildīto komandu sarakstu.

$ history

Lai skatītu komandu vēsturi ar laika zīmogu, bash vēsturē ir jāiestata laikspiedols, palaidiet:

$ HISTTIMEFORMAT="%d/%m/%y %T "             #Temporarily set the history timestamp
$ export HISTTIMEFORMAT="%d/%m/%y %T "      #Permanently set the history timestamp
$ history

Kā jūs pārbaudīsit 10 populārākos failus, kas aizņem vietu jūsu diskā? Vienkāršs vienas līnijas skripts, kas izveidots no komandas du, ko galvenokārt izmanto faila vietas izmantošanai.

$ du -hsx * | sort -rh | head -10

Iepriekš minēto du komandu opciju un slēdžu skaidrojums.

  • du — aptuvenais faila vietas lietojums.
  • -hsx — (-h) cilvēkam lasāms formāts, (-s) kopsavilkumu izvade, (-x) viens faila formāts, izlaist direktorijus citos failu formātos.
  • kārtot — kārtot teksta faila rindas.
  • -rh — (-r) apgrieziet salīdzinājuma rezultātu, (-h), lai salīdzinātu cilvēkiem lasāmo formātu.
  • head — izvada pirmās n faila rindas.

Komandu stat izmanto, lai iegūtu informāciju par faila lielumu, piekļuves atļauju, piekļuves laiku un faila lietotāja ID un grupas ID.

$ stat anaconda-ks.cfg

Linux tīkla komandas

Šajā sadaļā mēs apspriedīsim dažas ar tīklu saistītas problēmu novēršanas problēmas.

Viena no ļoti izplatītajām darbībām jebkurā tīklā ir pārbaudīt, vai konkrētais resursdators ir sasniedzams. Mēs varam izmantot ping komandu, lai pārbaudītu savienojumu ar otru resursdatoru.

Komandas ping vispārīgā sintakse ir šāda:

$ ping [OPTIONS] <destination>

Šeit galamērķis var būt IP adrese vai pilnībā kvalificēts domēna nosaukums (FQDN), piemēram, google.com. Pārbaudīsim, vai pašreizējā sistēma var sazināties ar Google:

$ ping -c 4 google.com

Iepriekš minētajā piemērā komanda parāda statistiku par tīkla saziņu, kas parāda, ka atbilde ir saņemta par visiem četriem tīkla pieprasījumiem (paketēm). Ir svarīgi atzīmēt, ka mēs esam izmantojuši opciju -c ar komandu, lai ierobežotu pieprasījumu skaitu, kas jānosūta konkrētajam resursdatoram.

Apskatīsim piemēru, kad tiek pārtraukta saziņa starp diviem saimniekiem.

Lai modelētu šo scenāriju, mēs mēģināsim sasniegt nesasniedzamu IP adresi. Šajā gadījumā tas ir 192.168.10.100:

$ ping -c 4 192.168.10.100

Šeit redzams, ka nesaņēmām atbildi ne uz vienu tīkla pieprasījumu. Tādējādi komanda ziņo par kļūdu - Mērķa resursdators nav sasniedzams.

Dažreiz mums ir jāatrod konkrētā domēna IP adrese. Lai to panāktu, mēs varam izmantot resursdatora komandu, kas veic DNS uzmeklēšanu un pārvērš FQDN uz IP adresi un otrādi.

Galvenā saimniekdatora komandas sintakse ir šāda:

$ host [OPTIONS] <destination>

Šeit galamērķis var būt IP adrese vai FQDN.

Noskaidrosim google.com IP adresi, izmantojot resursdatora komandu:

$ host google.com

Visa informācija par reģistrētajiem domēniem tiek glabāta centralizētajā datu bāzē, un to var jautāt, izmantojot komandu whois, kas parāda informāciju par konkrēto domēnu.

Komandas whois vispārējā sintakse ir:

$ whois [OPTIONS] <FQDN>

Noskaidrosim informāciju par vietni google.com:

$ whois google.com

Šeit mēs varam redzēt daudz detalizētas informācijas, piemēram, domēna reģistrācijas/atjaunošanas/derīguma termiņa datumu, domēna nodrošinātāju utt.

Ir svarīgi atzīmēt, ka whois komanda pēc noklusējuma nav pieejama visās sistēmās. Tomēr mēs varam to instalēt, izmantojot pakotņu pārvaldnieku. Piemēram, apt pakotņu pārvaldniekā:

$ sudo apt install whois

Uz RHEL balstītos un citos izplatījumos varat to instalēt, kā parādīts attēlā.

$ sudo yum install whois         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a net-misc/whois  [On Gentoo Linux]
$ sudo apk add whois             [On Alpine Linux]
$ sudo pacman -S whois           [On Arch Linux]
$ sudo zypper install whois      [On OpenSUSE]    

Linux sistēmas informācijas komandas

Šajā sadaļā mēs apspriedīsim dažas komandas, kas var sniegt informāciju par pašreizējo sistēmu.

Ļoti izplatīta prasība ir noskaidrot, kad sistēma pēdējo reizi tika atsāknēta, izmantojot komandu uptime, kas norāda, cik ilgi sistēma ir darbojusies.

Noskaidrosim pašreizējās sistēmas darbības laiku:

$ uptime -p

12:10:57 up  2:00,  1 user,  load average: 0.48, 0.60, 0.45

Šajā piemērā mēs esam izmantojuši opciju -p, lai parādītu izvadi skaistā formā.

Lietotājiem bieži ir jāatrod informācija par instalēto, pieejamo un izmantoto atmiņu. Šai informācijai ir svarīga loma veiktspējas problēmu novēršanā. Mēs varam izmantot bezmaksas komandu, lai atrastu informāciju par atmiņu:

$ free -m

Šeit mēs esam izmantojuši opciju -m ar komandu, kas parāda izvadi mebibaitos.

Līdzīgā veidā mēs varam izmantot opcijas -g, -t un -p, lai parādītu izvadi gibibaitos, tebibaitos un attiecīgi pebibaiti.

Datorsistēmas uzglabā datus blokierīcēs. Bloku ierīču piemēri ir cietie diski (HDD), cietvielu diskdziņi (SSD) un tā tālāk. Mēs varam izmantot komandu lsblk, lai parādītu detalizētu informāciju par bloku ierīcēm:

$ lsblk

Šajā piemērā mēs redzam, ka ir tikai viena bloka ierīce un tās nosaukums ir /dev/sda. Šajā bloka ierīcē ir izveidoti trīs nodalījumi.

Šajā rakstā mēs apspriedām dažas komandas, kas ir noderīgas Linux iesācējiem. Pirmkārt, mēs apspriedām failu sistēmas komandas. Pēc tam mēs apspriedām tīkla komandas. Visbeidzot, mēs apspriedām dažas komandas, kas sniedza informāciju par pašreizējo sistēmu.