1-bo‘lim
Server nima va nega Linux
Serverning ish stolidan farqi, SSH orqali birinchi ulanish va tizim haqida birinchi savollar.
Ushbu bo‘lim mundarijasi
Server - bu boshqa kompyuterlarga xizmat ko'rsatadigan kompyuter. Uning ekrani, sichqonchasi va klaviaturasi yo'q. Siz unga tarmoq orqali ulanasiz va faqat matn ko'rasiz.
Server ish stolidan nimasi bilan farq qiladi #
| Xususiyat | Ish stoli | Server |
|---|---|---|
| Interfeys | Grafik | Matnli (terminal) |
| Ishlash vaqti | Kunda 8 soat | Yilda 8760 soat |
| Foydalanuvchi | Bitta, oldida o'tirgan | Ko'p, masofadan |
| Yangilanish | Istagan payt | Rejalashtirilgan oynada |
| Xato narxi | Bitta odam bezovta | Barcha mijozlar bezovta |
| Kirish | Parol bilan | Kalit bilan |
Birinchi ulanish #
ssh husanboy@203.0.113.10
Birinchi marta ulanganda SSH sizdan tasdiq so'raydi:
The authenticity of host '203.0.113.10' can't be established.
ED25519 key fingerprint is SHA256:t7Kx...9Qm.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Bu savol - "men bu serverni birinchi marta ko'ryapman, uning barmoq izi mana shu. To'g'rimi?" degani.
Agar siz keyinchalik yana shu savolni ko'rsangiz, bu jiddiy ogohlantirish: server almashgan yoki kimdir o'rtada turibdi.
Serverni yaratganda provayder sizga barmoq izini ko'rsatadi - uni saqlab qo'ying va birinchi ulanishda solishtiring.
8-bo'limda buni batafsil ko'ramiz.
Ulangandan keyin siz buyruq satrini ko'rasiz:
husanboy@srv-01:~$
Bu satr to'rt narsani aytadi:
| Qism | Ma'no |
|---|---|
husanboy | Kim bo'lib kirgansiz |
srv-01 | Qaysi serverdasiz |
~ | Qaysi katalogdasiz (~ = uy katalogi) |
$ | Oddiy foydalanuvchi (# bo'lsa - root) |
$ va # orasidagi farq$ - siz oddiy foydalanuvchisiz. Xato buyruq faqat sizning
fayllaringizga zarar yetkazadi.
# - siz root siz. Xato buyruq butun serverni
o'chirib yuborishi mumkin, va hech kim "rostdanmi?" deb
so'ramaydi.
Shu sababli serverda doim oddiy foydalanuvchi bo'lib
ishlang, root kerak bo'lganda esa sudo ishlating (7-bo'lim).
Tizim haqida birinchi savollar #
Serverga kirgach beriladigan birinchi savollar - men kimman, qayerdaman va bu qanday tizim.
whoami
husanboy
Bu darslikdagi buyruqlar haqiqiy Linux tizimida husanboy
foydalanuvchisi nomidan ishga tushirilib tekshirilgan, shuning
uchun chiqishlar - haqiqiy chiqish.
cd /var/log
pwd
/var/log
pwd - print working directory, ya'ni "hozir qaysi
katalogdaman".
uname -s -m -o
Linux x86_64 GNU/Linux
| Bayroq | Nima ko'rsatadi |
|---|---|
-s | Yadro nomi (Linux) |
-r | Yadro versiyasi |
-m | Protsessor arxitekturasi |
-o | Operatsion tizim |
-a | Hammasi birdan |
Distributiv nomi esa yadrodan alohida - u /etc/os-release
faylida yozilgan:
grep -E '^(ID|VERSION_ID)=' /etc/os-release
VERSION_ID="2026.1"
ID=kali
Yadro hamma yerda Linux, lekin buyruqlar farq qiladi:
| Oila | Distributivlar | Paket buyrug'i |
|---|---|---|
| Debian | Debian, Ubuntu, Kali | apt |
| Red Hat | RHEL, Fedora, Rocky | dnf |
| SUSE | openSUSE, SLES | zypper |
| Arch | Arch, Manjaro | pacman |
Ushbu darslik Debian oilasiga (Ubuntu Server) qaratilgan - bu serverlarda eng keng tarqalgan tanlov. Boshqa oilalarda tushunchalar bir xil, faqat paket buyrug'i boshqacha.
Buyruq tuzilishi #
Har bir buyruq bir xil shaklda:
buyruq -bayroqlar --uzun-bayroq argumentlar
Uni amalda ko'ramiz. Avval sinov uchun uchta fayl yaratamiz:
mkdir -p loyiha/jurnal
echo "birinchi qator" > loyiha/hisobot.txt
echo "ikkinchi qator" >> loyiha/hisobot.txt
echo "xato: ulanish uzildi" > loyiha/jurnal/xato.log
touch -d "2026-09-01 09:00:00" loyiha loyiha/hisobot.txt \n loyiha/jurnal loyiha/jurnal/xato.log
ls loyiha
hisobot.txt
jurnal
Endi bayroq qo'shamiz:
ls -l loyiha
total 8
-rw-r--r-- 1 husanboy husanboy 30 Sep 1 09:00 hisobot.txt
drwxr-xr-x 2 husanboy husanboy 4096 Sep 1 09:00 jurnal
Yuqoridagi chiqishda sana touch -d bilan qat'iy belgilangan,
shuning uchun u har safar bir xil. Sizning serveringizda
sana faylning haqiqiy o'zgartirilgan vaqtini ko'rsatadi.
Ushbu darslikda barcha buyruqlar LC_ALL=C va TZ=UTC bilan
ishga tushirilgan - shuning uchun chiqish doim bir xil
bo'ladi va siz uni o'z natijangiz bilan solishtira olasiz.
Bayroqlarni birlashtirish mumkin - -l va -a o'rniga -la:
ls -la loyiha/jurnal
total 12
drwxr-xr-x 2 husanboy husanboy 4096 Sep 1 09:00 .
drwxr-xr-x 3 husanboy husanboy 4096 Sep 1 09:00 ..
-rw-r--r-- 1 husanboy husanboy 21 Sep 1 09:00 xato.log
-a yashirin fayllarni ham ko'rsatadi. Linuxda nuqta bilan
boshlanadigan har qanday fayl yashirin hisoblanadi - .bashrc,
.ssh, .env.
. va .. nimaHar katalogda ikkita maxsus yozuv bor:
.- shu katalogning o'zi;..- ota katalog.
Shuning uchun cd .. yuqoriga chiqaradi, ./skript.sh esa
"shu katalogdagi skript" degani.
Nima uchun skript.sh emas, ./skript.sh? Chunki Linux
buyruqni faqat PATH da qidiradi, joriy katalogda emas -
bu xavfsizlik chorasi (5-bo'limda batafsil).
Yordam qayerdan olinadi #
Har buyruqning o'z qo'llanmasi bor.
mkdir --help | head -4
Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.
Mandatory arguments to long options are mandatory for short options too.
To'liq qo'llanma - man buyrug'ida:
man ls
man ichida: / bilan qidiring, n bilan keyingisiga o'ting,
q bilan chiqing.
| Buyruq | Qachon |
|---|---|
buyruq --help | Tez eslatma kerak |
man buyruq | To'liq tavsif kerak |
type buyruq | Bu umuman nima ekanini bilish |
which buyruq | Fayl qayerdaligini bilish |
type cd; type ls; type -t grep
cd is a shell builtin
ls is /usr/bin/ls
file
/usr/bin/ls, ekranda esa rangliKo'p distributivlarda ~/.bashrc faylida shunday satr bor:
grep -o "alias ls=.*" ~/.bashrc
alias ls='ls --color=auto'
Lekin yuqoridagi type ls chiqishida taxallus ko'rinmadi.
Sababi - ~/.bashrc faqat interaktiv qobiqda o'qiladi.
Bizning tekshiruvimiz esa skript rejimida ishlaydi.
Interaktiv sessiyada ochib ko'ring - u yerda type ls boshqa
javob beradi:
ls is aliased to `ls --color=auto'
Bu skript yozganda muhim: skript ichida taxalluslar
ishlamaydi. Skriptda ls deb yozsangiz, u sof /usr/bin/ls
bo'ladi - ranglarsiz va sizning taxallus bayroqlaringizsiz.
Sessiya tugagach #
Serverdan chiqish:
exit
Agar siz uzoq davom etadigan buyruqni ishga tushirsangiz (yangilanish, zaxira nusxa) va ulanish uzilsa - jarayon to'xtaydi.
Yechim - tmux yoki screen:
| Buyruq | Vazifa |
|---|---|
tmux | Yangi sessiya boshlash |
Ctrl+b keyin d | Sessiyadan ajralish (jarayon davom etadi) |
tmux attach | Sessiyaga qaytish |
tmux ls | Sessiyalar ro'yxati |
Yoki xizmat sifatida ishga tushiring - 12-bo'limda systemd buni to'g'ri hal qiladi.
Bu darslikda nima bo'ladi #
| Bo'limlar | Mavzu |
|---|---|
| 2-3 | Fayl tizimi, navigatsiya, qidirish |
| 4-5 | Ruxsatlar va egalik |
| 6-7 | Foydalanuvchilar, guruhlar, sudo |
| 8 | SSH va kalit bilan kirish |
| 9 | Paket boshqaruvi |
| 10-11 | Jarayonlar va resurslar |
| 12-13 | systemd xizmatlari va jurnal |
| 14 | Disk va fayl tizimlari |
| 15-16 | Tarmoq va xavfsizlik devori |
| 17-18 | Nginx va TLS |
| 19 | Zaxira nusxa va tiklash |
| 20 | To'liq server sozlash loyihasi |
- Serverga SSH orqali ulaning va barmoq izini tekshiring.
whoamivapwdbilan o'zingizni joylashtiring.uname -achiqishining har qismini nomlang./etc/os-releasedan distributiv nomi va versiyasini oling.- Uy katalogingizda
loyiha/jurnaltuzilmasini yarating. ls,ls -l,ls -lachiqishlarini solishtiring.- Uchta yashirin faylni toping va ular nima uchun kerakligini bilib oling.
typebilancd,ls,grepni tekshiring - farqini tushuntiring.manichida qidiruvni sinab ko'ring.tmuxsessiyasini yarating, ajraling va qayting.
Xulosa #
- Server - matnli interfeys va uzluksiz ishlash demak.
- SSH barmoq izi - serverning shaxsiyati; uni tekshiring.
- Buyruq satri kim, qayerda va qanday huquqda ekaningizni aytadi.
$- oddiy foydalanuvchi,#- root; kundalik ish$da.- Buyruq shakli:
buyruq -bayroqlar argumentlar. - Nuqta bilan boshlanuvchi fayllar yashirin.
.- joriy katalog,..- ota katalog.--helptez eslatma,manto'liq qo'llanma beradi.lsodatda taxallus - skriptlarda buni hisobga oling.- Uzoq buyruqlarni
tmuxichida yoki xizmat sifatida ishga tushiring.
Keyingi bo'limda fayl tizimi ierarxiyasini o'rganamiz: /etc,
/var, /usr - har biri nima uchun mavjud.
O‘qish tarixini saqlamoqchimisiz?
Tizimga kirsangiz, tugatgan bo‘limlaringiz saqlanadi va qoldirgan joyingizdan davom etasiz.
Xatolik topdingizmi?
Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.