Njia ya kujifunza

Jinsi ya kujifunza Linux tangu mwanzo: mpango kutoka amri ya kwanza hadi usimamizi wa seva

Imesasishwa: · Skillaria.Top

Kujifunza Linux tangu mwanzo ni rahisi zaidi kwa tabaka: kuanzia terminal na mfumo wa faili, kisha watumiaji na ruhusa, skripti za Bash, vifurushi, michakato na systemd, na baadaye diski, kumbukumbu, mtandao, SSH na usalama wa seva. Kila hatua inahitaji mazoezi kwenye mashine pepe au VPS ndogo yako, na matokeo ya mwisho ni seva uliyoisimika na kuilinda mwenyewe ikiwa na huduma inayofanya kazi.

Kujifunza Linux tangu mwanzo ni rahisi kuliko inavyoonekana, ikiwa mpangilio ni sahihi na unafanya mazoezi mara moja. Kosa kubwa la wanaoanza ni kusoma kuhusu amri bila kuziandika, au kuruka hadi Docker na Kubernetes bila kuelewa mchakato ni nini na ruhusa za ufikiaji. Hapa chini kuna mpango wa hatua tisa: nini cha kujifunza, nini cha kufanya kwa mazoezi, na jinsi ya kujua kwamba hatua imekamilika.

Makadirio ya muda ni miezi miwili hadi minne kwa kujifunza saa moja kwa siku, lakini kasi ya kila mtu ni tofauti. Muhimu zaidi kuliko kasi ni kwamba baada ya kila hatua unaweza kufanya kitu kwa mikono yako.

Hatua ya 0. Andaa mazingira

Linux inajifunzwa kwenye Linux. Chaguo, kutoka rahisi hadi halisi zaidi:

  • WSL2 kwenye Windows — terminal ya Ubuntu ndani ya dakika chache. Inafaa kwa amri na skripti, lakini systemd na mtandao hazitendi kama kwenye seva.
  • Mashine pepe (VirtualBox, VMware, UTM kwenye Mac) yenye Ubuntu Server au Debian. Unaweza kuivunja bila matokeo na kurudi kwenye snapshot.
  • VPS ya bei nafuu kutoka kwa mtoa huduma wa wingu. Seva halisi yenye IP ya umma ndiyo uwanja bora wa mazoezi kwa hatua za mtandao na usalama.

Distro ya kuanzia ni Ubuntu Server au Debian: zina nyaraka nyingi zaidi na majibu mengi. Kiolesura cha picha hakihitajiki: seva husimamiwa kupitia terminal, na tabia hiyo ianze siku ya kwanza.

Hatua ya 1. Terminal na mfumo wa faili

Lengo ni kusogea ndani ya mfumo kwa ujasiri na kufanya kazi na faili bila mouse.

  • Urambazaji: pwd, ls -la, cd, njia kamili na jamaa, ~, . na ...
  • Faili: cp, mv, rm, mkdir -p, touch, kuangalia kwa cat, less, head, tail -f.
  • Kutafuta: find, which, locate.
  • Msaada: man, --help. Uwezo wa kusoma man ni ujuzi utakaolipa maisha yote.
  • Muundo wa saraka: nini kiko kwenye /etc, /var/log, /home, /usr, /proc, /dev; mount ni nini na inode ni nini.
  • Kihariri cha maandishi kwenye terminal: nano mwanzoni, kisha amri za msingi za vim — kipo karibu kila seva.

Mazoezi: tafuta faili zote .conf kwenye /etc zilizobadilishwa katika wiki iliyopita (find /etc -name "*.conf" -mtime -7). Fungua /etc/os-release ujue toleo la mfumo wako. Angalia mfumo unachoandika kwenye /var/log.

Hatua ya 2. Watumiaji, makundi, na ruhusa

Ruhusa ndio msingi wa usalama wa Linux, na chanzo cha nusu ya makosa ya "Permission denied".

  • Kusoma matokeo ya ls -l: aina, ruhusa, mmiliki, kundi.
  • chmod kwa umbo la alama na la namba, chown, umask.
  • Biti maalum: SUID, SGID, sticky bit — na kwa nini /tmp inaweza kuandikwa na kila mtu, lakini faili za watu wengine haziwezi kufutwa humo.
  • Watumiaji na makundi: useradd, usermod -aG, passwd, faili /etc/passwd, /etc/shadow, /etc/group.
  • sudo, sheria kwenye sudoers, na kuhariri kwa visudo.

Mazoezi: unda watumiaji wawili na saraka moja ya mradi wa pamoja ambamo wote wawili wanaweza kuunda faili, huku wengine wasione chochote. Kidokezo: kundi, chmod 2770, na SGID ili kundi lirithiwe.

Hatua ya 3. Bash na zana za maandishi

Usimamizi kwa sehemu kubwa ni kusindika maandishi: kumbukumbu, usanidi, na matokeo ya amri. Katika hatua hii terminal inageuka kutoka seti ya amri kuwa chombo cha kazi.

  • Uelekezaji na mabomba: >, >>, 2>&1, |, xargs.
  • Vichujio: grep (pamoja na usemi wa kawaida), sort, uniq -c, wc, cut, sed, awk.
  • JSON na HTTP kutoka kwenye konsoli: curl na jq.
  • Skripti: shebang, vigezo, nukuu, masharti if na [[ ]], mizunguko, kazi, misimbo ya kutoka, set -euo pipefail.

Mazoezi: kwa mstari mmoja wa amri, hesabu anwani kumi za IP zenye maombi mengi zaidi kwenye kumbukumbu ya web server:

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

Kisha andika skripti ya nakala rudufu ya saraka kwenye kumbukumbu yenye tarehe kwenye jina lake, inayofuta kumbukumbu zilizo na umri wa zaidi ya siku saba na kurudisha msimbo usio sifuri ikitokea kosa.

Hatua ya 4. Vifurushi, mazingira, na ratiba

  • Meneja wa vifurushi: apt update, apt install, apt remove, apt search, dpkg -l. Kwenye familia ya RHEL — dnf. Elewa hazina ni nini na funguo za sahihi zinatumika kwa nini.
  • Vigezo vya mazingira: env, export, PATH, faili ~/.bashrc, ~/.profile, /etc/environment — na kila moja inasomwa lini.
  • Ratiba: crontab -e, sintaksia ya sehemu tano, na kwa nini amri "haifanyi kazi" kwenye cron ingawa inafanya kazi kwenye terminal (mazingira na PATH tofauti).

Mazoezi: sakinisha nginx kutoka hazina, ongeza saraka yako ya skripti kwenye PATH, na panga skripti ya nakala rudufu kutoka hatua ya 3 iendeshwe kila usiku kupitia cron, na matokeo yake yaandikwe kwenye kumbukumbu.

Hatua ya 5. Michakato na systemd

Hapa unaanza kuelewa kinachotokea kweli ndani ya mfumo.

  • Michakato: ps aux, top/htop, PID na PPID, hali, vipaumbele (nice), ishara, na kill.
  • Mzigo: load average, kumbukumbu na swap (free -h), maana ya mchakato katika hali D.
  • Utatuzi: lsof — ni faili na port zipi mchakato umefungua; strace — ni system calls zipi mchakato unafanya na unakwama wapi.
  • systemd: units, systemctl status/start/enable, unit file yako mwenyewe yenye Restart=on-failure, timers badala ya cron.
  • Kumbukumbu: journalctl -u, -f, -b, -p err, kuzungusha, rsyslog; takwimu za utendaji kwa sysstat (sar, iostat).

Mazoezi: weka programu ndogo (angalau python3 -m http.server) kama huduma ya systemd kutoka kwa mtumiaji tofauti, usimamishe mchakato kwa kill -9, kisha uthibitishe kwamba systemd ameuanzisha tena. Tafuta kwenye journal ingizo la kuanzishwa upya.

Hatua ya 6. Diski, LVM, na RAID

  • Vifaa na partitions: lsblk, blkid, fdisk au parted, mifumo ya faili ext4 na XFS, mkfs.
  • Kuunganisha: mount, /etc/fstab kwa UUID, ukaguzi kwa mount -a.
  • Nafasi: df -h, df -i, du -sh, kutafuta kinachokula diski.
  • LVM: physical volumes, volume groups, logical volumes, na kupanua partition bila kusimamisha huduma.
  • RAID ya programu kwa mdadm — kuelewa viwango 0, 1, 5, 10, na kwamba RAID si nakala rudufu.

Mazoezi: ongeza diski mbili kwenye mashine pepe, tengeneza LVM juu yake, unda volume, iunganishe kupitia fstab, kisha ipanue kwa lvextend -r.

Hatua ya 7. Mtandao

  • Mfano wa TCP/IP kwa kiwango kinachotosha kwa utatuzi: IP, subnet mask, gateway, port, TCP na UDP.
  • Amri: ip a, ip r, ss -tlnp, ping, traceroute/mtr, curl -v, nc.
  • DNS: jinsi utatuzi unavyofanya kazi, /etc/hosts, /etc/resolv.conf, dig, resolvectl.
  • Usanidi wa mtandao kwenye distro yako (netplan kwenye Ubuntu, NetworkManager kwenye zingine).
  • Kunasa trafiki kwa tcpdump kwa hali ambapo kila kitu kingine kimeshindwa.

Mazoezi: tafuta ni mchakato upi unasikiliza kila port iliyo wazi kwenye seva yako. Elewa kwa nini huduma inayosikiliza 127.0.0.1 haiwezi kufikiwa kutoka nje, kisha irekebishe.

Hatua ya 8. Kazi ya mbali: SSH na uhamishaji wa faili

  • SSH: funguo (ssh-keygen -t ed25519, ssh-copy-id), faili ~/.ssh/config, ssh-agent, kusambaza port (ssh -L), bastion kwa ProxyJump.
  • Kunakili: scp na rsync -avz --delete — na kwa nini rsync ni bora kwa kusawazisha.
  • Mifumo ya faili ya mtandao: NFS kati ya seva za Linux, SMB (Samba) kwa kubadilishana na Windows.

Mazoezi: sanidi kuingia kwenye VPS kwa funguo pekee, ielezee kwenye ~/.ssh/config kwa jina fupi, na fanya usawazishaji wa kila siku wa saraka kwenda kwenye seva kwa rsync.

Hatua ya 9. Usalama wa seva

  • Firewall: kanuni ya "kukataa kila kisichoruhusiwa", ufw kwa mambo rahisi, nftables ili uelewe kinachotokea nyuma ya pazia.
  • fail2ban: kuzuia IP baada ya mfululizo wa kuingia kushindwa, kukaguliwa kwa fail2ban-client status sshd.
  • Usanidi wa sshd: kuzima kuingia kwa nywila na kuingia kama root.
  • Masasisho ya usalama na usakinishaji wake wa kiotomatiki (unattended-upgrades kwenye Debian na Ubuntu).
  • GPG: kuthibitisha sahihi za vifurushi na faili, kusimba nakala rudufu.

Mazoezi: kwenye firewall, fungua port 22, 80 na 443 pekee, washa fail2ban, kisha baada ya siku moja angalia hali yake ili uone anwani ngapi tayari zimezuiwa.

Mradi wa mwisho: kusanya seva yote

Njia bora ya kuthibitisha kwamba umejifunza Linux kweli ni kujenga seva kutoka mwanzo bila msaada:

  1. VPS mpya, mtumiaji wako mwenyewe mwenye sudo, kuingia kwa SSH kwa funguo, nywila na root zimezimwa.
  2. Firewall na fail2ban, masasisho ya usalama ya kiotomatiki.
  3. Web server na programu kama huduma ya systemd yenye kuanzishwa upya kiotomatiki.
  4. Diski au volume tofauti kwa data, iliyounganishwa kupitia fstab.
  5. Nakala rudufu iliyopangwa (cron au timer ya systemd) kwenda kwenye mashine nyingine kwa rsync, pamoja na kumbukumbu na jaribio la urejeshaji.
  6. Maelekezo mafupi: jinsi ya kujenga upya haya yote.

Ikiwa unaweza kupitia orodha hii na kueleza kila hatua, una msingi wa kufanya kazi kama msimamizi au DevOps engineer. Mwendelezo wa asili ni kontena, otomatiki ya usanidi, na ufuatiliaji.

Jinsi ya kujifunza kwa ufanisi zaidi

  • Andika amri mwenyewe. Kunakili kutoka kwenye makala hakukai akilini; kuandika na kufanya makosa ndiko kunakokaa.
  • Vunja kisha urekebishe. Haribu fstab au ruhusa za ~/.ssh kwenye mashine pepe, kisha rejesha mfumo. Uzoefu wa aina hii unathaminiwa kwenye usaili.
  • Andika maelezo yako. Daftari lako la amri zenye mifano lina manufaa zaidi kuliko karatasi ya kumbukumbu ya mtu mwingine.
  • Soma kumbukumbu. Karibu kila tatizo la Linux linaelezwa na kumbukumbu — jizoeze kuangalia huko kwanza.

Muhtasari

Jibu la swali la jinsi ya kujifunza Linux tangu mwanzo ni kusonga kwa tabaka: terminal na faili, ruhusa, Bash, vifurushi, michakato na systemd, diski, mtandao, SSH, kisha usalama — na katika kila hatua kutatua kazi moja ya vitendo kwenye mazingira yako. Lengo la mwisho ni kusimamisha na kulinda seva yako mwenyewe ikiwa na huduma inayofanya kazi. Njia hii, kutoka somo la utangulizi hadi mradi wa mwisho, ndiyo iliyotumika kujenga kozi ya Linux kwenye jukwaa hili.

Maswali ya mara kwa mara

Inachukua muda gani kujifunza Linux tangu mwanzo?

Msingi wa kufanya kazi na seva kwa kawaida hupatikana ndani ya miezi kadhaa kwa kujifunza saa moja kwa siku. Kujiamini hutokana na mazoezi ya kazi halisi, kwa hiyo uthabiti ni muhimu zaidi kuliko jumla ya saa.

Je, ni lazima ujue kupanga programu ili kujifunza Linux?

Hapana, unaweza kuanza bila hilo. Lakini kufikia hatua ya skripti za Bash utakuwa tayari unapanga programu, na ujuzi huo utakufaa baadaye katika otomatiki.

Je, Linux inaweza kujifunzwa kwenye Windows?

Ndiyo, kupitia WSL2 au mashine pepe. Kwa mada za systemd, diski, na mtandao ni bora kutumia mashine pepe kamili au VPS.

Je, ni lazima kufanya Linux kuwa mfumo mkuu kwenye kompyuta yako?

Ni jambo la manufaa, lakini si lazima. Kwa usimamizi ni muhimu zaidi kufanya kazi na Linux ya seva kupitia terminal kuliko kutumia eneo-kazi la picha.

Distro gani inafaa mtu anayeanza?

Ubuntu Server au Debian: zina nyaraka nyingi, na ujuzi wake unahamishika kwa distro nyingine. Tofauti kuu ya familia ya RHEL ni meneja wa vifurushi dnf.

Jifunze mada hii kwa video

Mada hii inafundishwa kwa kina pamoja na mazoezi katika kozi “Linux: с нуля до уверенного администрирования”.

Nenda kwenye kozi