<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>SNRG py | Nematjon Shahobiddinov</title><subtitle>&quot;Har bir lahza — bu yangi imkoniyatdir.
Agar bugun vaqtni to'g'ri ishlatsangiz, ertaga sizga foyda keltiradi.&quot;
</subtitle><author><name>SNRG py | Nematjon Shahobiddinov</name></author><id>https://teletype.in/atom/snrg_py</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/snrg_py?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@snrg_py?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=snrg_py"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/snrg_py?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-07-22T02:22:47.247Z</updated><entry><id>snrg_py:srvcb3GADHY</id><link rel="alternate" type="text/html" href="https://teletype.in/@snrg_py/srvcb3GADHY?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=snrg_py"></link><title>echo bot</title><published>2026-07-14T06:56:15.359Z</published><updated>2026-07-14T06:56:15.359Z</updated><summary type="html">1-tg bot</summary><content type="html">
  &lt;p id=&quot;3ZKx&quot;&gt;1-tg bot&lt;/p&gt;
  &lt;hr /&gt;
  &lt;pre id=&quot;W6UR&quot; data-lang=&quot;markdown&quot;&gt;# 1. Kerakli kutubxonalarni import qilish

&amp;#x60;&amp;#x60;&amp;#x60;python
from aiogram import Bot, Dispatcher, types, F
from asyncio import run
&amp;#x60;&amp;#x60;&amp;#x60;

## Bot

Telegram API bilan ishlaydi.

Misol:

&amp;#x60;&amp;#x60;&amp;#x60;python
bot = Bot(token=TOKEN)
&amp;#x60;&amp;#x60;&amp;#x60;

Bot orqali:

- xabar yuborish
- rasm yuborish
- fayl yuborish
- foydalanuvchini bloklash
- va boshqa amallar bajariladi.

---

## Dispatcher

Botning boshqaruv markazi.

Kelgan barcha xabarlarni kerakli funksiyaga yuboradi.

Misol:

&amp;#x60;&amp;#x60;&amp;#x60;
User
 ↓
Dispatcher
 ↓
Handler
&amp;#x60;&amp;#x60;&amp;#x60;

---

## types

Telegram obyektlari.

Masalan:

&amp;#x60;&amp;#x60;&amp;#x60;python
types.Message
&amp;#x60;&amp;#x60;&amp;#x60;

Bu oddiy xabar.

---

## F

Filter.

Masalan:

&amp;#x60;&amp;#x60;&amp;#x60;python
F.text
F.photo
F.document
&amp;#x60;&amp;#x60;&amp;#x60;

Aiogram 3 da juda ko&amp;#x27;p ishlatiladi.

---

## run

Async funksiyani ishga tushiradi.

&amp;#x60;&amp;#x60;&amp;#x60;python
run(start())
&amp;#x60;&amp;#x60;&amp;#x60;

Dastur shu joydan boshlanadi.

---

# 2. Dispatcher yaratish

&amp;#x60;&amp;#x60;&amp;#x60;python
dp = Dispatcher()
&amp;#x60;&amp;#x60;&amp;#x60;

Bu yerda Dispatcher obyekti yaratilmoqda.

Keyinchalik barcha handlerlar unga qo&amp;#x27;shiladi.

---

# 3. Echo funksiyasi

&amp;#x60;&amp;#x60;&amp;#x60;python
async def echo(message: types.Message, bot: Bot):
&amp;#x60;&amp;#x60;&amp;#x60;

Bu asinxron funksiya.

Parametrlar:

### message

Foydalanuvchi yuborgan xabar.

Masalan:

&amp;#x60;&amp;#x60;&amp;#x60;
Salom
&amp;#x60;&amp;#x60;&amp;#x60;

---

### bot

Bot obyekti.

Lekin sizning funksiyangizda ishlatilmayapti.

Uni olib tashlasa ham bo&amp;#x27;ladi.

---

# 4. copy_to()

&amp;#x60;&amp;#x60;&amp;#x60;python
await message.copy_to(
    chat_id=message.chat.id
)
&amp;#x60;&amp;#x60;&amp;#x60;

Bu xabarni nusxalaydi.

Masalan

User yozadi:

&amp;#x60;&amp;#x60;&amp;#x60;
Assalomu alaykum
&amp;#x60;&amp;#x60;&amp;#x60;

Bot ham

&amp;#x60;&amp;#x60;&amp;#x60;
Assalomu alaykum
&amp;#x60;&amp;#x60;&amp;#x60;

deb yuboradi.

---

## chat_id

&amp;#x60;&amp;#x60;&amp;#x60;python
message.chat.id
&amp;#x60;&amp;#x60;&amp;#x60;

Xabar kelgan chatning ID raqami.

---

# 5. start() funksiyasi

&amp;#x60;&amp;#x60;&amp;#x60;python
async def start():
&amp;#x60;&amp;#x60;&amp;#x60;

Bu botni ishga tushirish funksiyasi.

---

## Startup event

&amp;#x60;&amp;#x60;&amp;#x60;python
dp.startup.register(startup_answer)
&amp;#x60;&amp;#x60;&amp;#x60;

Bot ishga tushganda

&amp;#x60;&amp;#x60;&amp;#x60;python
startup_answer()
&amp;#x60;&amp;#x60;&amp;#x60;

funksiyasi ishlaydi.

Ammo sizning kodingizda

&amp;#x60;&amp;#x60;&amp;#x60;python
startup_answer
&amp;#x60;&amp;#x60;&amp;#x60;

yo&amp;#x27;q.

Shuning uchun

&amp;#x60;&amp;#x60;&amp;#x60;
NameError
&amp;#x60;&amp;#x60;&amp;#x60;

chiqadi.

---

## Message handler

&amp;#x60;&amp;#x60;&amp;#x60;python
dp.message.register(echo)
&amp;#x60;&amp;#x60;&amp;#x60;

Har qanday kelgan xabar

&amp;#x60;&amp;#x60;&amp;#x60;
echo()
&amp;#x60;&amp;#x60;&amp;#x60;

funksiyasiga yuboriladi.

---

## Shutdown event

&amp;#x60;&amp;#x60;&amp;#x60;python
dp.shutdown.register(shutdown_answer)
&amp;#x60;&amp;#x60;&amp;#x60;

Bot to&amp;#x27;xtaganda ishlaydi.

Ammo

&amp;#x60;&amp;#x60;&amp;#x60;python
shutdown_answer
&amp;#x60;&amp;#x60;&amp;#x60;

ham mavjud emas.

---

# 6. TOKEN

&amp;#x60;&amp;#x60;&amp;#x60;python
TOKEN = &amp;quot;...&amp;quot;
&amp;#x60;&amp;#x60;&amp;#x60;

Bu BotFather bergan maxfiy kalit.

Uni GitHub yoki internetga joylash mumkin emas.

Eng yaxshi usul:

&amp;#x60;&amp;#x60;&amp;#x60;python
from os import getenv

TOKEN = getenv(&amp;quot;BOT_TOKEN&amp;quot;)
&amp;#x60;&amp;#x60;&amp;#x60;

yoki &amp;#x60;.env&amp;#x60; faylidan o&amp;#x27;qish.

---

# 7. Bot yaratish

&amp;#x60;&amp;#x60;&amp;#x60;python
bot = Bot(token=TOKEN)
&amp;#x60;&amp;#x60;&amp;#x60;

Bu yerda Telegram bot obyekti yaratilmoqda.

---

# 8. Polling

&amp;#x60;&amp;#x60;&amp;#x60;python
await dp.start_polling(bot)
&amp;#x60;&amp;#x60;&amp;#x60;

Bot Telegram serveriga ulanadi.

Keyin doimiy ravishda

&amp;#x60;&amp;#x60;&amp;#x60;
Yangi xabar keldimi?
&amp;#x60;&amp;#x60;&amp;#x60;

deb tekshiradi.

Bu Polling deyiladi.

---

# 9. run()

&amp;#x60;&amp;#x60;&amp;#x60;python
run(start())
&amp;#x60;&amp;#x60;&amp;#x60;

Dastur shu yerdan boshlanadi.

&amp;#x60;&amp;#x60;&amp;#x60;
Python
 ↓
run()
 ↓
start()
 ↓
start_polling()
 ↓
Bot ishlaydi
&amp;#x60;&amp;#x60;&amp;#x60;

# Kodning ishlash ketma-ketligi

&amp;#x60;&amp;#x60;&amp;#x60;
Python

↓

run()

↓

start()

↓

Dispatcher

↓

Telegram

↓

User xabar yuboradi

↓

echo()

↓

copy_to()

↓

Userga xabar qaytadi
&amp;#x60;&amp;#x60;&amp;#x60;

# Kodingizdagi xatolar

### 1.

&amp;#x60;&amp;#x60;&amp;#x60;python
dp.startup.register(startup_answer)
&amp;#x60;&amp;#x60;&amp;#x60;

&amp;#x60;startup_answer&amp;#x60; funksiyasi yozilmagan.

Masalan:

&amp;#x60;&amp;#x60;&amp;#x60;python
async def startup_answer(bot: Bot):
    print(&amp;quot;Bot ishga tushdi&amp;quot;)
&amp;#x60;&amp;#x60;&amp;#x60;

---

### 2.

&amp;#x60;&amp;#x60;&amp;#x60;python
dp.shutdown.register(shutdown_answer)
&amp;#x60;&amp;#x60;&amp;#x60;

Bu funksiya ham yozilmagan.

Masalan:

&amp;#x60;&amp;#x60;&amp;#x60;python
async def shutdown_answer(bot: Bot):
    print(&amp;quot;Bot to&amp;#x27;xtadi&amp;quot;)
&amp;#x60;&amp;#x60;&amp;#x60;

---

### 3.

&amp;#x60;&amp;#x60;&amp;#x60;python
async def echo(message: types.Message, bot: Bot):
&amp;#x60;&amp;#x60;&amp;#x60;

Bu yerda &amp;#x60;bot&amp;#x60; ishlatilmayapti.

Shuning uchun oddiyroq yozish mumkin:

&amp;#x60;&amp;#x60;&amp;#x60;python
async def echo(message: types.Message):
    await message.copy_to(chat_id=message.chat.id)
&amp;#x60;&amp;#x60;&amp;#x60;

---

### 4.

Bot tokenini kod ichida saqlash tavsiya etilmaydi.

&amp;#x60;.env&amp;#x60; fayl ishlatish xavfsizroq.&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;pre id=&quot;TkWD&quot; data-lang=&quot;python&quot;&gt;
from aiogram import Bot , Dispatcher, types, F
from asyncio import run

dp = Dispatcher()


async def echo(message: types.Message, bot: Bot):
    await message.copy_to( chat_id = message.chat.id)


async def start():
    #dp.startup.register(startup_answer)
    dp.message.register(echo)
    #dp.shutdown.register(shutdown_answer)
    TOKEN = &amp;quot;8735603900:AAFtmzVkH9By8Ypn7y2XRoZtB6TfERp67aY&amp;quot;
    bot = Bot(token = TOKEN)
    await dp.start_polling(bot)
            
run(start())&lt;/pre&gt;

</content></entry><entry><id>snrg_py:5-BYbSybMHo</id><link rel="alternate" type="text/html" href="https://teletype.in/@snrg_py/5-BYbSybMHo?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=snrg_py"></link><title>mator xaralat 0-180 grads</title><published>2026-06-23T05:29:50.739Z</published><updated>2026-06-23T05:29:50.739Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/e0/7c/e07ceb93-ac94-4182-91a4-0ec3775fae00.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://docs.sunfounder.com/projects/summary-of-fun-projects/en/latest/_images/Servo_Control2.0_bb.png&quot;&gt;Wiring</summary><content type="html">
  &lt;h2 id=&quot;encf&quot;&gt;Ushbu Arduino loyihasi sizga servo motorni ikkita tugma yordamida boshqarish imkonini beradi: qizil tugma uni 0° ga va ko&amp;#x27;k tugma 180° ga siljitadi, LEDlar esa teskari aloqa sifatida yonadi.&lt;/h2&gt;
  &lt;figure id=&quot;71lw&quot; class=&quot;m_custom&quot;&gt;
    &lt;iframe src=&quot;https://www.youtube.com/embed/Qx3GEKwXfXE?autoplay=0&amp;loop=0&amp;mute=0&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;jfVR&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;P2gQ&quot;&gt;&lt;strong&gt;Wiring&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;MYRS&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://docs.sunfounder.com/projects/summary-of-fun-projects/en/latest/_images/Servo_Control2.0_bb.png&quot; width=&quot;716.5&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;4bqD&quot;&gt;&lt;strong&gt;Common Connections:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;P80W&quot;&gt;
    &lt;li id=&quot;AaOK&quot;&gt;&lt;strong&gt;Digital Servo Motor&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;IoTt&quot;&gt;
      &lt;li id=&quot;wbi1&quot;&gt;Connect to breadboard’s positive power bus.&lt;/li&gt;
      &lt;li id=&quot;MLTW&quot;&gt;Connect to breadboard’s negative power bus.&lt;/li&gt;
      &lt;li id=&quot;y1ZP&quot;&gt;Connect to &lt;strong&gt;3&lt;/strong&gt; on the Arduino.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;OiOh&quot;&gt;&lt;strong&gt;Button1&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;DkZr&quot;&gt;
      &lt;li id=&quot;m1Ls&quot;&gt;&lt;strong&gt;GND:&lt;/strong&gt; Connect to a &lt;strong&gt;1kΩ resistor&lt;/strong&gt;, then to negative power bus on the breadboard&lt;/li&gt;
      &lt;li id=&quot;kjhD&quot;&gt;&lt;strong&gt;VCC:&lt;/strong&gt; Connect to &lt;strong&gt;7&lt;/strong&gt; on the Arduino.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;1NdN&quot;&gt;&lt;strong&gt;Button2&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;ffdP&quot;&gt;
      &lt;li id=&quot;p2H5&quot;&gt;&lt;strong&gt;GND:&lt;/strong&gt; Connect to a &lt;strong&gt;1kΩ resistor&lt;/strong&gt;, then to negative power bus on the breadboard&lt;/li&gt;
      &lt;li id=&quot;1cpf&quot;&gt;&lt;strong&gt;VCC:&lt;/strong&gt; Connect to &lt;strong&gt;5&lt;/strong&gt; on the Arduino.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;EiMm&quot;&gt;&lt;strong&gt;Blue LED&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;LCRO&quot;&gt;
      &lt;li id=&quot;v1sf&quot;&gt;Connect the LED &lt;strong&gt;cathode&lt;/strong&gt; to the to a &lt;strong&gt;1kΩ resistor&lt;/strong&gt;, then to negative power bus on the breadboard, &lt;strong&gt;anode&lt;/strong&gt; to &lt;strong&gt;6&lt;/strong&gt; on the Arduino.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;SJTf&quot;&gt;&lt;strong&gt;Red LED&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;1BtI&quot;&gt;
      &lt;li id=&quot;BKqU&quot;&gt;Connect the LED &lt;strong&gt;cathode&lt;/strong&gt; to the to a &lt;strong&gt;1kΩ resistor&lt;/strong&gt;, then to negative power bus on the breadboard, &lt;strong&gt;anode&lt;/strong&gt; to &lt;strong&gt;4&lt;/strong&gt; on the Arduino.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Vth9&quot;&gt;&lt;strong&gt;Writing the Code&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;g77s&quot;&gt;Note&lt;/p&gt;
  &lt;ul id=&quot;8Vh7&quot;&gt;
    &lt;li id=&quot;54Y2&quot;&gt;You can copy this code into &lt;strong&gt;Arduino IDE&lt;/strong&gt;.&lt;/li&gt;
    &lt;li id=&quot;PrrF&quot;&gt;Don’t forget to select the board(Arduino UNO R4 Minima/WIFI) and the correct port before clicking the &lt;strong&gt;Upload&lt;/strong&gt; button.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;dmso&quot;&gt;&lt;/p&gt;
  &lt;pre id=&quot;dGzf&quot; data-lang=&quot;cpp&quot;&gt;#include &amp;lt;Servo.h&amp;gt;

// --- Pin definitions ---
const int servoPin = 3;   // Servo signal wire connected to pin 3
const int redLED   = 4;   // Red LED connected to pin 4 (with resistor)
const int redBtn   = 5;   // Red button connected to pin 5
const int blueLED  = 6;   // Blue LED connected to pin 6 (with resistor)
const int blueBtn  = 7;   // Blue button connected to pin 7

Servo myServo;             // Create a Servo object
int currentAngle = 90;     // Start servo at the middle position (90°)
const int stepSize = 5;    // Servo moves 3° for each button press

// Variables to remember the last button states
bool lastRedState  = HIGH; // HIGH means not pressed (because of INPUT_PULLUP)
bool lastBlueState = HIGH;

void setup() {
  myServo.attach(servoPin);       // Attach the servo to pin 3
  myServo.write(currentAngle);    // Move servo to initial position

  pinMode(redLED, OUTPUT);        // Set LED pins as outputs
  pinMode(blueLED, OUTPUT);

  pinMode(redBtn, INPUT_PULLUP);  // Use internal pull-up resistor
  pinMode(blueBtn, INPUT_PULLUP); // Button is active LOW
}

void loop() {
  // Read current button states
  bool redPressed  = (digitalRead(redBtn)  == LOW); // LOW means pressed
  bool bluePressed = (digitalRead(blueBtn) == LOW);

  // --- Red button logic ---
  if (redPressed &amp;amp;&amp;amp; lastRedState == HIGH) { // Detect new press (not held down)
    delay(50);                              // Small delay to debounce
    if (digitalRead(redBtn) == LOW) {       // Check again to confirm press
      digitalWrite(redLED, HIGH);           // Turn on red LED
      currentAngle = max(0, currentAngle - stepSize); // Move 3° toward 0°
      myServo.write(currentAngle);          // Update servo position
    }
  } else {
    digitalWrite(redLED, LOW);              // Turn off LED when not pressed
  }

  // --- Blue button logic ---
  if (bluePressed &amp;amp;&amp;amp; lastBlueState == HIGH) { // Detect new press
    delay(50);                                // Debounce
    if (digitalRead(blueBtn) == LOW) {        // Confirm press
      digitalWrite(blueLED, HIGH);            // Turn on blue LED
      currentAngle = min(180, currentAngle + stepSize); // Move 3° toward 180°
      myServo.write(currentAngle);            // Update servo position
    }
  } else {
    digitalWrite(blueLED, LOW);               // Turn off LED when not pressed
  }

  // Remember button states for next loop
  lastRedState  = redPressed;
  lastBlueState = bluePressed;
}&lt;/pre&gt;

</content></entry><entry><id>snrg_py:-O5x8X2TJ95</id><link rel="alternate" type="text/html" href="https://teletype.in/@snrg_py/-O5x8X2TJ95?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=snrg_py"></link><title>yengil oyin</title><published>2026-06-17T04:22:33.388Z</published><updated>2026-06-17T04:22:33.388Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/df/87/df87e5e6-08e8-480e-9fde-d1104656ba25.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://docs.sunfounder.com/projects/summary-of-fun-projects/en/latest/_images/Light_Play_bb.png&quot;&gt;Ism</summary><content type="html">
  &lt;h1 id=&quot;djiA&quot;&gt;Yengil o&amp;#x27;yin&lt;a href=&quot;https://docs.sunfounder.com/projects/summary-of-fun-projects/en/latest/arduino/light_play.html#light-play&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;&lt;/h1&gt;
  &lt;p id=&quot;dhgd&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;7mEO&quot;&gt;&lt;/p&gt;
  &lt;section&gt;
    &lt;p id=&quot;S86B&quot;&gt;Ism&lt;/p&gt;
    &lt;p id=&quot;kF6z&quot;&gt;Arduino platasini o&amp;#x27;z ichiga oladi&lt;/p&gt;
    &lt;p id=&quot;w5YZ&quot;&gt;XARID HAVOLASI&lt;/p&gt;
    &lt;p id=&quot;iMRW&quot;&gt;Ultimate Sensor Kit&lt;/p&gt;
    &lt;p id=&quot;hsDV&quot;&gt;Arduino Uno R4 Minima&lt;/p&gt;
    &lt;p id=&quot;48BQ&quot;&gt;&lt;a href=&quot;https://www.sunfounder.com/collections/arduino-kits-bundles/products/sunfounder-ultimate-sensor-kit-with-original-arduino-uno-r4-minima?ref=jbzmncle&quot; target=&quot;_blank&quot;&gt;SOTIB OLING&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;e1uD&quot;&gt;Elite Explorer to&amp;#x27;plami&lt;/p&gt;
    &lt;p id=&quot;UPhg&quot;&gt;Arduino Uno R4 WiFi&lt;/p&gt;
    &lt;p id=&quot;xVrp&quot;&gt;&lt;a href=&quot;https://www.sunfounder.com/collections/arduino-kits-bundles/products/sunfounder-elite-explorer-kit-with-official-arduino-uno-r4-wifi?ref=jbzmncle&quot; target=&quot;_blank&quot;&gt;SOTIB OLING&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;R0QB&quot;&gt;3 ta 1 tada eng yaxshi boshlang&amp;#x27;ich to&amp;#x27;plam&lt;/p&gt;
    &lt;p id=&quot;2exP&quot;&gt;Arduino Uno R4 Minima&lt;/p&gt;
    &lt;p id=&quot;3ZSC&quot;&gt;&lt;a href=&quot;https://www.sunfounder.com/collections/arduino-kits-bundles/products/sunfounder-3-in-1-ultimate-starter-kit-with-original-arduino-uno-r4-minima?ref=jbzmncle&quot; target=&quot;_blank&quot;&gt;SOTIB OLING&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;P7er&quot;&gt;Universal Maker Sensor Kit&lt;/p&gt;
    &lt;p id=&quot;Sy0P&quot;&gt;×&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;Tall&quot;&gt;Kursga kirish&lt;/h2&gt;
    &lt;p id=&quot;bSpZ&quot;&gt;&lt;/p&gt;
    &lt;p id=&quot;pD8p&quot;&gt;Ushbu darsda siz Arduino-dan tugmalar, LEDlar va rezistorlar bilan birgalikda yorug&amp;#x27;lik shousini yaratish uchun qanday foydalanishni o&amp;#x27;rganasiz.&lt;/p&gt;
    &lt;p id=&quot;8Nj9&quot;&gt;Tugmani bosish turli xil yoritish rejimlari o&amp;#x27;rtasida almashinadi.&lt;/p&gt;
    &lt;figure id=&quot;b3El&quot; class=&quot;m_custom&quot;&gt;
      &lt;iframe src=&quot;https://www.youtube.com/embed/DyyozHdvh80?autoplay=0&amp;loop=0&amp;mute=0&quot;&gt;&lt;/iframe&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;Ni6R&quot;&gt;Eslatma&lt;/p&gt;
    &lt;p id=&quot;Qf65&quot;&gt;Agar siz Arduino loyihasi bilan birinchi marta ishlayotgan bo&amp;#x27;lsangiz, avval asosiy materiallarni yuklab olish va ko&amp;#x27;rib chiqishingizni tavsiya qilamiz.&lt;/p&gt;
    &lt;ul id=&quot;gFx8&quot;&gt;
      &lt;li id=&quot;CX8N&quot;&gt;&lt;a href=&quot;https://docs.sunfounder.com/projects/summary-of-fun-projects/en/latest/nano_esp32/esp32_start/install_arduino_ide.html#install-arduino&quot; target=&quot;_blank&quot;&gt;1.1 Arduino IDE ni o&amp;#x27;rnatish (Muhim)&lt;/a&gt;&lt;/li&gt;
      &lt;li id=&quot;6Ghu&quot;&gt;&lt;a href=&quot;https://docs.sunfounder.com/projects/summary-of-fun-projects/en/latest/nano_esp32/esp32_start/introduce_ide.html#introduce-arduino&quot; target=&quot;_blank&quot;&gt;1.2 Arduino IDE ni taqdim etish&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p id=&quot;KHhP&quot;&gt;&lt;strong&gt;Kerakli komponentlar&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;MFJ4&quot;&gt;Ushbu loyihada bizga quyidagi komponentlar kerak bo&amp;#x27;ladi:&lt;/p&gt;
    &lt;p id=&quot;r3QL&quot;&gt;&lt;/p&gt;
    &lt;p id=&quot;0vn7&quot;&gt;KOMPONENT KIRISH |  MIQDORI&lt;/p&gt;
    &lt;p id=&quot;WRCL&quot;&gt;Arduino UNO R4 Minima  =1&lt;/p&gt;
    &lt;p id=&quot;VJBp&quot;&gt;USB Type-C kabeli      =  1&lt;/p&gt;
    &lt;p id=&quot;Ip6a&quot;&gt;Kabel kanal ( taxtasi) =1&lt;/p&gt;
    &lt;p id=&quot;0aG6&quot;&gt;Simlar = Bir nechta&lt;/p&gt;
    &lt;p id=&quot;lpKA&quot;&gt;1kΩ rezistor  = Bir nechta&lt;/p&gt;
    &lt;p id=&quot;PoZT&quot;&gt;Tugma = 3&lt;/p&gt;
    &lt;p id=&quot;OjDI&quot;&gt;LED        =  Bir nechta&lt;/p&gt;
    &lt;p id=&quot;97BD&quot;&gt;&lt;strong&gt;Simlar&lt;/strong&gt;&lt;/p&gt;
    &lt;figure id=&quot;fAhe&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://docs.sunfounder.com/projects/summary-of-fun-projects/en/latest/_images/Light_Play_bb.png&quot; width=&quot;1572&quot; /&gt;
    &lt;/figure&gt;
    &lt;h3 id=&quot;zTC4&quot;&gt;&lt;/h3&gt;
    &lt;h2 id=&quot;guEJ&quot;&gt;Umumiy ulanishlar:&lt;/h2&gt;
    &lt;h3 id=&quot;l8FB&quot;&gt;LED&lt;/h3&gt;
    &lt;h3 id=&quot;g0xA&quot;&gt;LED katodini 1 kΩ rezistorga , so&amp;#x27;ngra non platasidagi manfiy quvvat shinasiga va LED anodini Arduinodagi 2 dan 9 gacha bo&amp;#x27;lgan oraliqlarga ulang.&lt;/h3&gt;
    &lt;h3 id=&quot;37Yi&quot;&gt;Tugma&lt;/h3&gt;
    &lt;h3 id=&quot;VENP&quot;&gt;Breadboardning salbiy quvvat avtobusiga ulang.&lt;/h3&gt;
    &lt;h3 id=&quot;22ys&quot;&gt;Arduino&amp;#x27;da 10 dan 12 gacha ulanish .&lt;/h3&gt;
    &lt;h3 id=&quot;cuLF&quot;&gt;Kodni yozish&lt;/h3&gt;
    &lt;h3 id=&quot;COu5&quot;&gt;Eslatma&lt;/h3&gt;
    &lt;h3 id=&quot;ikEC&quot;&gt;Ushbu kodni Arduino IDE ga nusxalashingiz mumkin .&lt;/h3&gt;
    &lt;h3 id=&quot;NHlg&quot;&gt;&amp;quot;Yuklash &amp;quot; tugmasini bosishdan oldin platani (Arduino UNO R4 Minima) va to&amp;#x27;g&amp;#x27;ri portni tanlashni unutmang .&lt;/h3&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;eYcf&quot; data-lang=&quot;c&quot;&gt;// LED pins (blue and red alternately connected to D2 ~ D9)
const int ledPins[8] = {2, 3, 4, 5, 6, 7, 8, 9};

// Button pins
const int redButton = 10;
const int blueButton = 11;
const int greenButton = 12;

// Variables to track previous button states
bool prevRedPressed = false;
bool prevBluePressed = false;
bool prevGreenPressed = false;

void setup() {
  // Set all LED pins as outputs and turn them off
  for (int i = 0; i &amp;lt; 8; i++) {
    pinMode(ledPins[i], OUTPUT);
    digitalWrite(ledPins[i], LOW);
  }

  // Set buttons as input with internal pull-up resistors
  pinMode(redButton, INPUT_PULLUP);
  pinMode(blueButton, INPUT_PULLUP);
  pinMode(greenButton, INPUT_PULLUP);

  Serial.begin(9600); // Optional: debug output
}

void loop() {
  handleRedButton();    // Play red light sequence
  handleBlueButton();   // Play blue LED flowing animation
  handleGreenButton();  // Play full pattern sequence
}

// --- Red button: Runs a 6-step light show pattern ---
void handleRedButton() {
  bool isPressed = digitalRead(redButton) == LOW;
  if (isPressed &amp;amp;&amp;amp; !prevRedPressed) {
    Serial.println(&amp;quot;Red button pressed → 6-step pattern&amp;quot;);
    runRedSequence();
    delay(300); // Simple debounce
  }
  prevRedPressed = isPressed;
}

void runRedSequence() {
  // Step 1: All LEDs on
  setAll(HIGH);
  delay(1000);

  // Step 2: Only blue LEDs on (even indices)
  for (int i = 0; i &amp;lt; 8; i++)
    digitalWrite(ledPins[i], i % 2 == 0 ? HIGH : LOW);
  delay(1000);

  // Step 3: Only red LEDs on (odd indices)
  for (int i = 0; i &amp;lt; 8; i++)
    digitalWrite(ledPins[i], i % 2 == 1 ? HIGH : LOW);
  delay(1000);

  // Step 4: All LEDs on
  setAll(HIGH);
  delay(1000);

  // Step 5: Only blue LEDs on again
  for (int i = 0; i &amp;lt; 8; i++)
    digitalWrite(ledPins[i], i % 2 == 0 ? HIGH : LOW);
  delay(1000);

  // Step 6: Turn all LEDs off
  setAll(LOW);
}

// --- Blue button: Flowing LED animation, back and forth x2 ---
void handleBlueButton() {
  bool isPressed = digitalRead(blueButton) == LOW;
  if (isPressed &amp;amp;&amp;amp; !prevBluePressed) {
    Serial.println(&amp;quot;Blue button pressed → flowing animation&amp;quot;);

    for (int round = 0; round &amp;lt; 2; round++) {
      // Forward flow
      for (int i = 0; i &amp;lt; 8; i++) {
        lightOneOnly(i);
        delay(100);
      }
      // Backward flow
      for (int i = 6; i &amp;gt;= 0; i--) {
        lightOneOnly(i);
        delay(100);
      }

      clearAll();
      delay(100); // Small gap between rounds
    }

    delay(300);
  }
  prevBluePressed = isPressed;
}

// Lights only one LED at the specified index
void lightOneOnly(int index) {
  for (int i = 0; i &amp;lt; 8; i++) {
    digitalWrite(ledPins[i], (i == index) ? HIGH : LOW);
  }
}

// --- Green button: Four full LED pattern cycles ---
void handleGreenButton() {
  bool isPressed = digitalRead(greenButton) == LOW;
  if (isPressed &amp;amp;&amp;amp; !prevGreenPressed) {
    Serial.println(&amp;quot;Green button pressed → full sequence&amp;quot;);

    // Pattern 1: Light up and off from left to right
    for (int i = 0; i &amp;lt; 8; i++) {
      digitalWrite(ledPins[i], HIGH);
      delay(100);
    }
    for (int i = 0; i &amp;lt; 8; i++) {
      digitalWrite(ledPins[i], LOW);
      delay(100);
    }

    // Pattern 2: Right to left on and off
    for (int i = 7; i &amp;gt;= 0; i--) {
      digitalWrite(ledPins[i], HIGH);
      delay(100);
    }
    for (int i = 7; i &amp;gt;= 0; i--) {
      digitalWrite(ledPins[i], LOW);
      delay(100);
    }

    // Pattern 3: Left to right on, right to left off
    for (int i = 0; i &amp;lt; 8; i++) {
      digitalWrite(ledPins[i], HIGH);
      delay(100);
    }
    for (int i = 7; i &amp;gt;= 0; i--) {
      digitalWrite(ledPins[i], LOW);
      delay(100);
    }

    // Pattern 4: Right to left on, left to right off
    for (int i = 7; i &amp;gt;= 0; i--) {
      digitalWrite(ledPins[i], HIGH);
      delay(100);
    }
    for (int i = 0; i &amp;lt; 8; i++) {
      digitalWrite(ledPins[i], LOW);
      delay(100);
    }

    clearAll(); // Make sure all LEDs are off
    delay(300);
  }
  prevGreenPressed = isPressed;
}

// Turns all LEDs on or off
void setAll(int state) {
  for (int i = 0; i &amp;lt; 8; i++) {
    digitalWrite(ledPins[i], state);
  }
}

// Turns off all LEDs
void clearAll() {
  setAll(LOW);
}&lt;/pre&gt;
  &lt;/section&gt;

</content></entry><entry><id>snrg_py:YWLcMD5H3Fb</id><link rel="alternate" type="text/html" href="https://teletype.in/@snrg_py/YWLcMD5H3Fb?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=snrg_py"></link><title>#hotkeys</title><published>2026-04-30T09:05:12.773Z</published><updated>2026-05-05T09:26:01.315Z</updated><summary type="html">“““ CTRL A dan Z gacha ”””</summary><content type="html">
  &lt;p id=&quot;9h6w&quot;&gt;“““ CTRL A dan Z gacha ”””&lt;/p&gt;
  &lt;p id=&quot;fupp&quot;&gt;&lt;strong&gt;• Ctrl+A = Barchasini belgilash;  &lt;br /&gt;&lt;/strong&gt;• Ctrl+B = Matnni qalin qilish; &lt;br /&gt; &lt;strong&gt;• Ctrl+C = Matnni nusxalash;  &lt;br /&gt;&lt;/strong&gt;• Ctrl+D = Duplikat qilish (PowerPoint da obektlarni ikkitalash); &lt;br /&gt; • Ctrl+E = Matnni markazga joylash; &lt;br /&gt; &lt;strong&gt;• Ctrl+F = Izlash;  &lt;/strong&gt;• Ctrl+G = Guruhlash (PowerPoint da); &lt;br /&gt; • Ctrl+H = O’rniga qo’yish (Word); &lt;br /&gt; • Ctrl+I = Kursiv yozish; &lt;br /&gt; • Ctrl+J = Matnni sahifa eni bo’yicha yoyish (Word); &lt;br /&gt; • Ctrl+K = Giper havola yaratish (Word, Telegram); &lt;br /&gt; • Ctrl+L = Matnni chapga joylash; &lt;br /&gt; • Ctrl+M = Yangi slayd (PowerPoint); &lt;br /&gt; • Ctrl+N = Yangi sahifa (ko’p dasturlarda); &lt;br /&gt; • Ctrl+O = Ochish (ko’p dasturlarda); &lt;br /&gt; • Ctrl+P = Chop etish (ko’p dasturlarda); &lt;br /&gt; • Ctrl+Q = Chiqib ketish (ko’p dasturlarda); &lt;br /&gt; • Ctrl+R = Matnni o’ngga joylash; .&lt;br /&gt; • Ctrl+S = Saqlash (ko’p dasturlarda); &lt;br /&gt; • Ctrl+T = Yangi vkladka ochish (Brouzerda); &lt;br /&gt; • Ctrl+U = Matnni ostiga chizish; &lt;br /&gt; &lt;strong&gt;• Ctrl+V = Joylash (Вставить) (ko’p dasturlarda);&lt;/strong&gt; &lt;br /&gt; • Ctrl+W = Barcha oynalarni yopish (ko’p dasturlarda); &lt;br /&gt; • Ctrl+X = Ko’chirib olish (Вырезать) (ko’p dasturlarda); &lt;br /&gt; • Ctrl+Y = Oxirgi amalni qaytarish (Ctrl+Z ni teskarisi);&lt;br /&gt; &lt;strong&gt;• Ctrl+Z = Oxirgi amalni bekor qilish (ko’p dasturlarda).&lt;/strong&gt;&lt;/p&gt;

</content></entry><entry><id>snrg_py:AZkDNR756f8</id><link rel="alternate" type="text/html" href="https://teletype.in/@snrg_py/AZkDNR756f8?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=snrg_py"></link><title>linux kundalik PRO</title><published>2026-04-18T01:31:45.324Z</published><updated>2026-04-18T01:31:45.324Z</updated><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/f8/39/f8392b2e-994e-4d56-8598-eea7d4adc3fb.jpeg&quot;&gt;Terminaldan foydalanish Ushbu hujjatdagi misollar sizning POSIX-mos keluvchi (masalan: bash, sh, zsh, ksh) shell (qobiq) ishlatayotganingizni nazarda tutadi.</summary><content type="html">
  &lt;h3 id=&quot;L5jK&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://goalkicker.com/LinuxBook/&quot; target=&quot;_blank&quot;&gt;&amp;quot;Linux: Professionallar uchun qaydlar&amp;quot; &lt;/a&gt;— Mundarija&lt;/strong&gt;&lt;/h3&gt;
  &lt;h4 id=&quot;2O1h&quot;&gt;&lt;strong&gt;1-bob: GNU/Linux bilan ishlashni boshlash (Getting started)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;gdZp&quot;&gt;
    &lt;li id=&quot;CpFJ&quot;&gt;&lt;strong&gt;1.1-bo&amp;#x27;lim:&lt;/strong&gt; Foydali qisqa tugmalar (Shortcuts).&lt;/li&gt;
    &lt;li id=&quot;OlFX&quot;&gt;&lt;strong&gt;1.2-bo&amp;#x27;lim:&lt;/strong&gt; Fayllarni boshqarish buyruqlari (File Management).&lt;/li&gt;
    &lt;li id=&quot;FklQ&quot;&gt;&lt;strong&gt;1.3-bo&amp;#x27;lim:&lt;/strong&gt; &amp;quot;Hello World&amp;quot; (Birinchi qadamlar).&lt;/li&gt;
    &lt;li id=&quot;DCYR&quot;&gt;&lt;strong&gt;1.4-bo&amp;#x27;lim:&lt;/strong&gt; Linuxning asosiy utilitalari.&lt;/li&gt;
    &lt;li id=&quot;wXjv&quot;&gt;&lt;strong&gt;1.5-bo&amp;#x27;lim:&lt;/strong&gt; Fayllarni nomi va tarkibi bo&amp;#x27;yicha qidirish.&lt;/li&gt;
    &lt;li id=&quot;Bmtz&quot;&gt;&lt;strong&gt;1.6-bo&amp;#x27;lim:&lt;/strong&gt; Fayllar ustida amallar (Manipulation).&lt;/li&gt;
    &lt;li id=&quot;2gcE&quot;&gt;&lt;strong&gt;1.7-bo&amp;#x27;lim:&lt;/strong&gt; Fayl va kataloglar haqida batafsil ma&amp;#x27;lumot (Details).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;VazM&quot;&gt;&lt;strong&gt;2-bob: Linux distributivi nomi va versiyasini aniqlash&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;u0HN&quot;&gt;
    &lt;li id=&quot;Ckf7&quot;&gt;&lt;strong&gt;2.1-bo&amp;#x27;lim:&lt;/strong&gt; Debian-ga asoslangan tizimlarni aniqlash.&lt;/li&gt;
    &lt;li id=&quot;YM0w&quot;&gt;&lt;strong&gt;2.2-bo&amp;#x27;lim:&lt;/strong&gt; Systemd-ga asoslangan tizimlarni aniqlash.&lt;/li&gt;
    &lt;li id=&quot;YVMl&quot;&gt;&lt;strong&gt;2.3-bo&amp;#x27;lim:&lt;/strong&gt; RHEL / CentOS / Fedora-ni aniqlash.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;aS6o&quot;&gt;&lt;strong&gt;3-bob: Linux yadrosi (Kernel) haqida ma&amp;#x27;lumot olish&lt;/strong&gt;&lt;/h4&gt;
  &lt;h4 id=&quot;0Smx&quot;&gt;&lt;strong&gt;4-bob: Shell (Buyruqlar qobig&amp;#x27;i)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;SZ1V&quot;&gt;
    &lt;li id=&quot;AmJP&quot;&gt;&lt;strong&gt;4.1-bo&amp;#x27;lim:&lt;/strong&gt; Standart shell&amp;#x27;ni o&amp;#x27;zgartirish.&lt;/li&gt;
    &lt;li id=&quot;bhal&quot;&gt;&lt;strong&gt;4.2-bo&amp;#x27;lim:&lt;/strong&gt; Qaysi shell ishlatilayotganini aniqlash.&lt;/li&gt;
    &lt;li id=&quot;2O8o&quot;&gt;&lt;strong&gt;4.3-bo&amp;#x27;lim:&lt;/strong&gt; Alias (buyruqlarga taxalluslar) yaratish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;gnKW&quot;&gt;&lt;strong&gt;5-bob: Disk bo&amp;#x27;shlig&amp;#x27;ini tekshirish (Disk Space)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;bgWK&quot;&gt;
    &lt;li id=&quot;y53P&quot;&gt;&lt;strong&gt;5.1-bo&amp;#x27;lim:&lt;/strong&gt; Kataloglarning diskdan foydalanishini tahlil qilish.&lt;/li&gt;
    &lt;li id=&quot;gk3J&quot;&gt;&lt;strong&gt;5.2-bo&amp;#x27;lim:&lt;/strong&gt; Diskdagi bo&amp;#x27;sh joyni ko&amp;#x27;rish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;PYTc&quot;&gt;&lt;strong&gt;6-bob: Inodlar (Inodes)&lt;/strong&gt;&lt;/h4&gt;
  &lt;h4 id=&quot;iJFd&quot;&gt;&lt;strong&gt;7-bob: Foydalanuvchilar va guruhlar (Users and Groups)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;XvQY&quot;&gt;
    &lt;li id=&quot;bgIw&quot;&gt;&lt;strong&gt;7.1-bo&amp;#x27;lim:&lt;/strong&gt; Foydalanuvchi qo&amp;#x27;shish.&lt;/li&gt;
    &lt;li id=&quot;Imtc&quot;&gt;&lt;strong&gt;7.2-bo&amp;#x27;lim:&lt;/strong&gt; Foydalanuvchini guruhga qo&amp;#x27;shish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;I00Q&quot;&gt;&lt;strong&gt;8-bob: Paket menejerlari (Package Managers)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;Om0T&quot;&gt;
    &lt;li id=&quot;QbCi&quot;&gt;&lt;code&gt;apt&lt;/code&gt;, &lt;code&gt;yum&lt;/code&gt;, &lt;code&gt;dnf&lt;/code&gt; va &lt;code&gt;rpm&lt;/code&gt; tizimlari orqali dasturlarni boshqarish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;X4iM&quot;&gt;&lt;strong&gt;9-bob: Tizim xizmatlari (Services)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;EneB&quot;&gt;
    &lt;li id=&quot;Ibel&quot;&gt;&lt;code&gt;systemd&lt;/code&gt; va &lt;code&gt;service&lt;/code&gt; buyruqlari yordamida jarayonlarni boshqarish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;DkPQ&quot;&gt;&lt;strong&gt;10-bob: Modullar (Kernel Modules)&lt;/strong&gt;&lt;/h4&gt;
  &lt;h4 id=&quot;MN5v&quot;&gt;&lt;strong&gt;11-bob: Atrof-muhit o&amp;#x27;zgaruvchilari (Environment Variables)&lt;/strong&gt;&lt;/h4&gt;
  &lt;h4 id=&quot;1bYa&quot;&gt;&lt;strong&gt;12-bob: Kirish/Chiqishni yo&amp;#x27;naltirish (I/O Redirection)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;mbit&quot;&gt;
    &lt;li id=&quot;4veJ&quot;&gt;&lt;code&gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;|&lt;/code&gt; (payplar) va xatoliklarni yo&amp;#x27;naltirish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;eBPO&quot;&gt;&lt;strong&gt;13-bob: Fayllarni ko&amp;#x27;rish va tahrirlash (View/Edit Files)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;B15h&quot;&gt;
    &lt;li id=&quot;i9WN&quot;&gt;&lt;code&gt;cat&lt;/code&gt;, &lt;code&gt;less&lt;/code&gt;, &lt;code&gt;nano&lt;/code&gt;, &lt;code&gt;vi/vim&lt;/code&gt; tahrirlagichlari.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;zGY5&quot;&gt;&lt;strong&gt;14-bob: Xavfsiz ulanish (SSH)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;QAfT&quot;&gt;
    &lt;li id=&quot;lZN4&quot;&gt;Masofaviy serverlarga ulanish va sozlash.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;kdmI&quot;&gt;&lt;strong&gt;15-bob: Fayllarni tarmoq orqali nusxalash (SCP, Rsync)&lt;/strong&gt;&lt;/h4&gt;
  &lt;h4 id=&quot;83VB&quot;&gt;&lt;strong&gt;16-bob: Tarmoq konfiguratsiyasi (Networking)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;GFtR&quot;&gt;
    &lt;li id=&quot;jL1J&quot;&gt;IP manzillar, DNS va portlar bilan ishlash.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;KmdQ&quot;&gt;&lt;strong&gt;17-bob: Jarayonlarni boshqarish (Process Management)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;MKgk&quot;&gt;
    &lt;li id=&quot;SJZy&quot;&gt;&lt;code&gt;top&lt;/code&gt;, &lt;code&gt;htop&lt;/code&gt;, &lt;code&gt;kill&lt;/code&gt; va jarayonlarni fonda ishga tushirish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;1m0M&quot;&gt;&lt;strong&gt;18-bob: Cron Jobs (Vazifalarni rejalashtirish)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;7VzQ&quot;&gt;
    &lt;li id=&quot;ALH9&quot;&gt;Avtomatik va vaqtga sozlangan vazifalar.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;GBkz&quot;&gt;&lt;strong&gt;19-bob: Arxivlash va siqish (Tar, Gzip, Zip)&lt;/strong&gt;&lt;/h4&gt;
  &lt;h4 id=&quot;j7c2&quot;&gt;&lt;strong&gt;20-bob: Shell Scripting (Skript yozish)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;VA9q&quot;&gt;
    &lt;li id=&quot;FrBN&quot;&gt;O&amp;#x27;zgaruvchilar, sikllar (loops) va shartlar (if-else).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;Oj8p&quot;&gt;&lt;strong&gt;21-bob: Tizim loglari (Logs)&lt;/strong&gt;&lt;/h4&gt;
  &lt;ul id=&quot;xVCy&quot;&gt;
    &lt;li id=&quot;xc0x&quot;&gt;&lt;code&gt;/var/log&lt;/code&gt; va &lt;code&gt;journalctl&lt;/code&gt; yordamida xatoliklarni qidirish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;VhYH&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;gtpY&quot;&gt;1-bob: GNU/Linux bilan ishlashni boshlash&lt;/h3&gt;
  &lt;h4 id=&quot;3fx4&quot;&gt;1.1-bo&amp;#x27;lim: Foydali qisqa tugmalar (Useful shortcuts)&lt;/h4&gt;
  &lt;p id=&quot;C2XW&quot;&gt;&lt;strong&gt;Terminaldan foydalanish&lt;/strong&gt; Ushbu hujjatdagi misollar sizning POSIX-mos keluvchi (masalan: &lt;code&gt;bash&lt;/code&gt;, &lt;code&gt;sh&lt;/code&gt;, &lt;code&gt;zsh&lt;/code&gt;, &lt;code&gt;ksh&lt;/code&gt;) &lt;strong&gt;shell&lt;/strong&gt; (qobiq) ishlatayotganingizni nazarda tutadi.&lt;/p&gt;
  &lt;p id=&quot;8neT&quot;&gt;GNU/Linux funksionalligining katta qismi terminal orqali amalga oshiriladi. Aksariyat Linux distributivlari foydalanuvchilarga ish stoli muhitidan turib shell bilan muloqot qilish imkonini beruvchi &lt;strong&gt;terminal emulyatorlarini&lt;/strong&gt; o&amp;#x27;z ichiga oladi. &lt;strong&gt;Shell&lt;/strong&gt; — bu foydalanuvchi tomonidan kiritilgan buyruqlarni bajaruvchi buyruqlar satri interpretatoridir. &lt;strong&gt;Bash&lt;/strong&gt; (Bourne Again SHell) ko&amp;#x27;plab Linux distributivlarida standart shell hisoblanadi (shuningdek, macOS&amp;#x27;da ham).&lt;/p&gt;
  &lt;p id=&quot;WUK0&quot;&gt;Agar siz Bash&amp;#x27;ni standart &lt;code&gt;emacs&lt;/code&gt; tugmalar birikmasi bilan ishlatayotgan bo&amp;#x27;lsangiz, quyidagi qisqa tugmalar ishlaydi:&lt;/p&gt;
  &lt;p id=&quot;XqQX&quot;&gt;&lt;strong&gt;Terminalni ochish:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;YtBi&quot;&gt;
    &lt;li id=&quot;2NRQ&quot;&gt;&lt;code&gt;Ctrl + Alt + T&lt;/code&gt; yoki &lt;code&gt;Super + T&lt;/code&gt; (Super tugmasi odatda Windows logotipi tushirilgan tugma).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Ah4J&quot;&gt;&lt;strong&gt;Kursorni harakatlantirish:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;HW2F&quot;&gt;
    &lt;li id=&quot;JDrO&quot;&gt;&lt;code&gt;Ctrl + A&lt;/code&gt;: Siz yozayotgan qatorning boshiga o&amp;#x27;tish.&lt;/li&gt;
    &lt;li id=&quot;CrsP&quot;&gt;&lt;code&gt;Ctrl + E&lt;/code&gt;: Siz yozayotgan qatorning oxiriga o&amp;#x27;tish.&lt;/li&gt;
    &lt;li id=&quot;OgmC&quot;&gt;&lt;code&gt;Ctrl + XX&lt;/code&gt;: Qatorning boshi va kursorning joriy holati o&amp;#x27;rtasida tezkor almashish.&lt;/li&gt;
    &lt;li id=&quot;IJZ8&quot;&gt;&lt;code&gt;Alt + F&lt;/code&gt;: Kursorni bir so&amp;#x27;z oldinga surish.&lt;/li&gt;
    &lt;li id=&quot;dHO4&quot;&gt;&lt;code&gt;Alt + B&lt;/code&gt;: Kursorni bir so&amp;#x27;z orqaga surish.&lt;/li&gt;
    &lt;li id=&quot;sxbD&quot;&gt;&lt;code&gt;Ctrl + F&lt;/code&gt;: Kursorni bir belgi oldinga surish.&lt;/li&gt;
    &lt;li id=&quot;lREm&quot;&gt;&lt;code&gt;Ctrl + B&lt;/code&gt;: Kursorni bir belgi orqaga surish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;mr6P&quot;&gt;&lt;strong&gt;Matn bilan ishlash (Text manipulation):&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;5roZ&quot;&gt;
    &lt;li id=&quot;uq99&quot;&gt;&lt;code&gt;Ctrl + U&lt;/code&gt;: Kursordan qator boshigacha bo&amp;#x27;lgan qismni kesib oladi va almashuv buferiga (clipboard) saqlaydi. Agar kursor qator oxirida bo&amp;#x27;lsa, butun qatorni kesadi.&lt;/li&gt;
    &lt;li id=&quot;1MPP&quot;&gt;&lt;code&gt;Ctrl + K&lt;/code&gt;: Kursordan qator oxirigacha bo&amp;#x27;lgan qismni kesib oladi.&lt;/li&gt;
    &lt;li id=&quot;Q0JY&quot;&gt;&lt;code&gt;Ctrl + W&lt;/code&gt;: Kursordan oldingi so&amp;#x27;zni o&amp;#x27;chiradi va buferga saqlaydi.&lt;/li&gt;
    &lt;li id=&quot;mRUH&quot;&gt;&lt;code&gt;Ctrl + Y&lt;/code&gt;: Oxirgi kesib olingan matnni kursordan keyin joylashtiradi (past).&lt;/li&gt;
    &lt;li id=&quot;eY4E&quot;&gt;&lt;code&gt;Alt + T&lt;/code&gt;: Kursordan oldingi oxirgi ikki so&amp;#x27;zning o&amp;#x27;rnini almashtiradi.&lt;/li&gt;
    &lt;li id=&quot;9MBj&quot;&gt;&lt;code&gt;Alt + L&lt;/code&gt;: Kursordan so&amp;#x27;z oxirigacha bo&amp;#x27;lgan harflarni kichik (lowercase) qiladi.&lt;/li&gt;
    &lt;li id=&quot;t56J&quot;&gt;&lt;code&gt;Alt + U&lt;/code&gt;: Kursordan so&amp;#x27;z oxirigacha bo&amp;#x27;lgan harflarni KATTA (uppercase) qiladi.&lt;/li&gt;
    &lt;li id=&quot;4iLj&quot;&gt;&lt;code&gt;Alt + C&lt;/code&gt;: Kursordan boshlab so&amp;#x27;z oxirigacha bosh harfga aylantiradi.&lt;/li&gt;
    &lt;li id=&quot;NDS8&quot;&gt;&lt;code&gt;Alt + D&lt;/code&gt;: Kursordan so&amp;#x27;z oxirigacha o&amp;#x27;chiradi.&lt;/li&gt;
    &lt;li id=&quot;zrLg&quot;&gt;&lt;code&gt;Alt + .&lt;/code&gt;: Oldingi buyruqda ishlatilgan oxirgi so&amp;#x27;zni chiqaradi.&lt;/li&gt;
    &lt;li id=&quot;7uy7&quot;&gt;&lt;code&gt;Ctrl + T&lt;/code&gt;: Kursordan oldingi oxirgi ikki belgining o&amp;#x27;rnini almashtiradi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;dmiD&quot;&gt;&lt;strong&gt;Tarixga (History) kirish:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;gVpc&quot;&gt;
    &lt;li id=&quot;SDLV&quot;&gt;&lt;code&gt;Ctrl + R&lt;/code&gt;: Avval ishlatilgan buyruqlar orasidan qidirish.&lt;/li&gt;
    &lt;li id=&quot;hDf9&quot;&gt;&lt;code&gt;Ctrl + G&lt;/code&gt;: Buyruqni bajarmasdan qidiruv rejimidan chiqish.&lt;/li&gt;
    &lt;li id=&quot;pv38&quot;&gt;&lt;code&gt;Ctrl + J&lt;/code&gt;: Qidiruvda topilgan buyruqni ishga tushirmasdan tahrirlash uchun terminalga nusxalaydi.&lt;/li&gt;
    &lt;li id=&quot;FH0l&quot;&gt;&lt;code&gt;Alt + R&lt;/code&gt;: Agar tarixdan olingan buyruq tahrirlangan bo&amp;#x27;lsa, o&amp;#x27;zgarishlarni bekor qilib asliga qaytaradi.&lt;/li&gt;
    &lt;li id=&quot;345N&quot;&gt;&lt;code&gt;Ctrl + P&lt;/code&gt;: Oldingi bajarilgan buyruqni ko&amp;#x27;rsatadi (Yuqoriga yo&amp;#x27;nalish tugmasi kabi).&lt;/li&gt;
    &lt;li id=&quot;cirq&quot;&gt;&lt;code&gt;Ctrl + N&lt;/code&gt;: Keyingi bajarilgan buyruqni ko&amp;#x27;rsatadi (Pastga yo&amp;#x27;nalish tugmasi kabi).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;QUDE&quot;&gt;&lt;strong&gt;Terminalni boshqarish:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;0Iec&quot;&gt;
    &lt;li id=&quot;MNf7&quot;&gt;&lt;code&gt;Ctrl + L&lt;/code&gt;: Ekranni tozalaydi (&lt;code&gt;clear&lt;/code&gt; buyrug&amp;#x27;i kabi).&lt;/li&gt;
    &lt;li id=&quot;FEcM&quot;&gt;&lt;code&gt;Ctrl + S&lt;/code&gt;: Ekrandagi ma&amp;#x27;lumotlar chiqishini to&amp;#x27;xtatadi. Bu juda uzun natija beruvchi buyruqlarni o&amp;#x27;qishda foydali, lekin buyruqning o&amp;#x27;zini to&amp;#x27;xtatmaydi.&lt;/li&gt;
    &lt;li id=&quot;BGys&quot;&gt;&lt;code&gt;Ctrl + Q&lt;/code&gt;: &lt;code&gt;Ctrl + S&lt;/code&gt; bilan to&amp;#x27;xtatilgan chiqishni davom ettiradi.&lt;/li&gt;
    &lt;li id=&quot;ZU2o&quot;&gt;&lt;code&gt;Ctrl + C&lt;/code&gt;: Joriy ishlayotgan jarayonni yakunlaydi.&lt;/li&gt;
    &lt;li id=&quot;hlhh&quot;&gt;&lt;code&gt;Ctrl + D&lt;/code&gt;: Joriy shell sessiyasidan chiqadi (&lt;code&gt;exit&lt;/code&gt; yoki &lt;code&gt;logout&lt;/code&gt; kabi). Ba&amp;#x27;zida &amp;quot;Fayl oxiri&amp;quot; (EOF) signali sifatida ishlaydi.&lt;/li&gt;
    &lt;li id=&quot;Z7az&quot;&gt;&lt;code&gt;Ctrl + Z&lt;/code&gt;: Oldingi plandagi (foreground) jarayonni vaqtincha to&amp;#x27;xtatadi (pause). Shundan so&amp;#x27;ng &lt;code&gt;bg&lt;/code&gt; buyrug&amp;#x27;i bilan uni fonda davom ettirish yoki &lt;code&gt;fg&lt;/code&gt; bilan yana oldinga qaytarish mumkin. &lt;code&gt;jobs&lt;/code&gt; buyrug&amp;#x27;i barcha fon jarayonlarini ko&amp;#x27;rsatadi.&lt;/li&gt;
    &lt;li id=&quot;GlH4&quot;&gt;&lt;code&gt;Tab&lt;/code&gt;: Fayl va katalog nomlarini avtomatik to&amp;#x27;ldiradi.&lt;/li&gt;
    &lt;li id=&quot;lzR8&quot;&gt;&lt;code&gt;Tab + Tab&lt;/code&gt;: Agar bir nechta o&amp;#x27;xshash nomlar bo&amp;#x27;lsa, barcha variantlarni ko&amp;#x27;rsatadi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;xqFf&quot;&gt;&lt;strong&gt;Maxsus belgilar:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;XS0B&quot;&gt;
    &lt;li id=&quot;3qtC&quot;&gt;&lt;code&gt;Ctrl + H&lt;/code&gt;: &lt;code&gt;Backspace&lt;/code&gt; vazifasini bajaradi.&lt;/li&gt;
    &lt;li id=&quot;Y5Eo&quot;&gt;&lt;code&gt;Ctrl + I&lt;/code&gt;: &lt;code&gt;Tab&lt;/code&gt; vazifasini bajaradi.&lt;/li&gt;
    &lt;li id=&quot;DZjO&quot;&gt;&lt;code&gt;Ctrl + G&lt;/code&gt;: Qo&amp;#x27;ng&amp;#x27;iroq (Bell) belgisi.&lt;/li&gt;
    &lt;li id=&quot;9ICh&quot;&gt;&lt;code&gt;Esc&lt;/code&gt;: &lt;code&gt;Alt&lt;/code&gt; tugmasining o&amp;#x27;rnini bosuvchi o&amp;#x27;lik tugma (Deadkey).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;FjC9&quot;&gt;&lt;strong&gt;Terminalni yopish:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;qKtF&quot;&gt;
    &lt;li id=&quot;flev&quot;&gt;&lt;code&gt;Ctrl + Shift + W&lt;/code&gt;: Terminal tabini yopish.&lt;/li&gt;
    &lt;li id=&quot;uPAt&quot;&gt;&lt;code&gt;Ctrl + Shift + Q&lt;/code&gt;: Butun terminal oynasini yopish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;COEC&quot;&gt;&lt;em&gt;Eslatma: Xohishingizga ko&amp;#x27;ra, &lt;code&gt;set -o vi&lt;/code&gt; buyrug&amp;#x27;i orqali &lt;code&gt;vi&lt;/code&gt; tugmalar birikmasiga o&amp;#x27;tishingiz mumkin. &lt;code&gt;emacs&lt;/code&gt; rejimiga qaytish uchun &lt;code&gt;set -o emacs&lt;/code&gt; yoziladi.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;UPF5&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;0l0F&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;jRVm&quot;&gt;1.2-bo&amp;#x27;lim: Fayllarni boshqarish buyruqlari (File Management Commands)&lt;/h3&gt;
  &lt;p id=&quot;Q5AE&quot;&gt;Linux tizimida joriy va yuqori (ota) kataloglar uchun maxsus belgilashlar mavjud. Bu yangi o&amp;#x27;rganuvchilar uchun biroz tushunarsiz tuyulishi mumkin.&lt;/p&gt;
  &lt;p id=&quot;g2ss&quot;&gt;Linux terminalida ishlaganingizda, siz doimo &lt;strong&gt;joriy ishchi katalogda&lt;/strong&gt; (current working directory) bo&amp;#x27;lasiz. Terminaldagi buyruqlar satri (prompt) sizga to&amp;#x27;liq manzilni yoki faqat joriy papka nomini ko&amp;#x27;rsatishi mumkin. Masalan:&lt;/p&gt;
  &lt;ul id=&quot;dZSv&quot;&gt;
    &lt;li id=&quot;ZSC4&quot;&gt;&lt;code&gt;user@host ~/somedir $&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;BeN2&quot;&gt;&lt;code&gt;user@host /home/user/somedir $&lt;/code&gt;Bu yerda joriy ishchi katalog &lt;code&gt;/home/user/somedir&lt;/code&gt; hisoblanadi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;dMeI&quot;&gt;&lt;strong&gt;Muhim belgilar:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;Kb59&quot;&gt;
    &lt;li id=&quot;h3Sz&quot;&gt;&lt;code&gt;..&lt;/code&gt; (ikki nuqta) — ota (yuqori) katalogni bildiradi.&lt;/li&gt;
    &lt;li id=&quot;iJwi&quot;&gt;&lt;code&gt;.&lt;/code&gt; (bir nuqta) — joriy katalogni bildiradi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h4 id=&quot;6Ak0&quot;&gt;Kataloglar bo&amp;#x27;ylab harakatlanish (Directory navigation)&lt;/h4&gt;
  &lt;p id=&quot;BrOl&quot;&gt;&lt;strong&gt;Buyruq&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;68j6&quot;&gt;&lt;strong&gt;Vazifasi (Utility)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;lSKM&quot;&gt;&lt;code&gt;pwd&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;x1Io&quot;&gt;Joriy ishchi katalogning to&amp;#x27;liq manzini olish.&lt;/p&gt;
  &lt;p id=&quot;kOzB&quot;&gt;&lt;code&gt;cd -&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;0N6Z&quot;&gt;Oxirgi marta ishlagan katalogga qaytish.&lt;/p&gt;
  &lt;p id=&quot;K9ni&quot;&gt;&lt;code&gt;cd ~&lt;/code&gt; yoki shunchaki &lt;code&gt;cd&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;M8fM&quot;&gt;Joriy foydalanuvchining shaxsiy (home) katalogiga o&amp;#x27;tish.&lt;/p&gt;
  &lt;p id=&quot;c9eG&quot;&gt;&lt;code&gt;cd ..&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;TcOG&quot;&gt;Joriy katalogning ota katalogiga (bir pog&amp;#x27;ona yuqoriga) o&amp;#x27;tish (&lt;code&gt;cd&lt;/code&gt; va &lt;code&gt;..&lt;/code&gt; orasida bo&amp;#x27;sh joy bo&amp;#x27;lishi shart).&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h4 id=&quot;HBw3&quot;&gt;Katalog ichidagi fayllarni ko&amp;#x27;rish (Listing files)&lt;/h4&gt;
  &lt;p id=&quot;kev6&quot;&gt;&lt;strong&gt;Buyruq&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;llcv&quot;&gt;&lt;strong&gt;Vazifasi (Utility)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;oNlZ&quot;&gt;&lt;code&gt;ls -l&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Ra76&quot;&gt;Fayl va kataloglarni uzun (jadval) formatda chiqarish. O&amp;#x27;qishga qulayligi uchun &lt;code&gt;-l&lt;/code&gt; opsiyasidan foydalanish tavsiya etiladi.&lt;/p&gt;
  &lt;p id=&quot;yWn2&quot;&gt;&lt;code&gt;ls -ld dir-name&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;K2hz&quot;&gt;Katalog ichidagi ma&amp;#x27;lumotlarni emas, balki &lt;code&gt;dir-name&lt;/code&gt; katalogining o&amp;#x27;zi haqidagi ma&amp;#x27;lumotlarni chiqaradi.&lt;/p&gt;
  &lt;p id=&quot;tKQ2&quot;&gt;&lt;code&gt;ls -a&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;KitB&quot;&gt;Barcha fayllarni, shu jumladan yashirin fayllarni ham ko&amp;#x27;rsatadi (Linuxda nomi &lt;code&gt;.&lt;/code&gt; bilan boshlanadigan fayllar yashirin hisoblanadi).&lt;/p&gt;
  &lt;p id=&quot;WP7X&quot;&gt;&lt;code&gt;ls -F&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;C4Wi&quot;&gt;Fayl nomining oxiriga uning turini bildiruvchi belgi qo&amp;#x27;shadi (&lt;code&gt;*&lt;/code&gt; — ishga tushiriladigan, &lt;code&gt;/&lt;/code&gt; — katalog, &lt;code&gt;@&lt;/code&gt; — simvolik havola).&lt;/p&gt;
  &lt;p id=&quot;11nU&quot;&gt;&lt;code&gt;ls -lt&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;5xyX&quot;&gt;Oxirgi o&amp;#x27;zgartirilgan vaqti bo&amp;#x27;yicha saralaydi (eng yangilari yuqorida).&lt;/p&gt;
  &lt;p id=&quot;oQRd&quot;&gt;&lt;code&gt;ls -lh&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Urpm&quot;&gt;Fayl o&amp;#x27;lchamlarini odam tushunadigan formatda (KB, MB, GB) ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;5x36&quot;&gt;&lt;code&gt;ls -lR&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;5mll&quot;&gt;Barcha ichki kataloglarni rekursiv ravishda ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;nkFX&quot;&gt;&lt;code&gt;tree&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;MapQ&quot;&gt;Fayl tizimining joriy katalogdan boshlab daraxtsimon ko&amp;#x27;rinishini hosil qiladi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h4 id=&quot;jf7u&quot;&gt;Fayl/katalog yaratish, nusxalash va o&amp;#x27;chirish&lt;/h4&gt;
  &lt;p id=&quot;H2Dc&quot;&gt;&lt;strong&gt;Buyruq&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;65Ju&quot;&gt;&lt;strong&gt;Vazifasi (Utility)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;bhDt&quot;&gt;&lt;code&gt;cp -p source destination&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Zqwa&quot;&gt;Faylni nusxalaydi. &lt;code&gt;-p&lt;/code&gt; opsiyasi faylning asl atributlarini (egasi, vaqti, huquqlari) saqlab qoladi.&lt;/p&gt;
  &lt;p id=&quot;uYVh&quot;&gt;&lt;code&gt;cp -R source_dir destination_dir&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;WLaW&quot;&gt;Berilgan katalogni rekursiv ravishda (ichidagi hamma narsasi bilan) nusxalaydi.&lt;/p&gt;
  &lt;p id=&quot;PZPF&quot;&gt;&lt;code&gt;mv file1 file2&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;NCcs&quot;&gt;Linuxda alohida nom o&amp;#x27;zgartirish buyrug&amp;#x27;i yo&amp;#x27;q. Shuning uchun &lt;code&gt;mv&lt;/code&gt; faylni ko&amp;#x27;chiradi yoki nomini o&amp;#x27;zgartiradi.&lt;/p&gt;
  &lt;p id=&quot;CVun&quot;&gt;&lt;code&gt;rm -i filename&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;rj0m&quot;&gt;Faylni o&amp;#x27;chirishdan oldin har safar tasdiqlash so&amp;#x27;raydi. &lt;strong&gt;Yangi foydalanuvchilar uchun har doim &lt;code&gt;rm -i&lt;/code&gt; ishlatish tavsiya etiladi.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;PA46&quot;&gt;&lt;code&gt;rm -R dir-name&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;RkVZ&quot;&gt;&lt;code&gt;dir-name&lt;/code&gt; katalogini rekursiv ravishda o&amp;#x27;chiradi.&lt;/p&gt;
  &lt;p id=&quot;taHG&quot;&gt;&lt;code&gt;rm -rf dir-name&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Ckah&quot;&gt;Katalogni rekursiv o&amp;#x27;chiradi, mavjud bo&amp;#x27;lmagan fayllarni e&amp;#x27;tiborsiz qoldiradi va hech qachon tasdiqlash so&amp;#x27;ramaydi. &lt;strong&gt;BU BUYRUQNI ISHLATISHDA JUDA EHTIYOT BO&amp;#x27;LING!&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;1MrI&quot;&gt;&lt;code&gt;rmdir dir-name&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;l8OY&quot;&gt;Agar katalog bo&amp;#x27;sh bo&amp;#x27;lsa, uni o&amp;#x27;chiradi.&lt;/p&gt;
  &lt;p id=&quot;xw1q&quot;&gt;&lt;code&gt;mkdir dir-name&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Oq2S&quot;&gt;&lt;code&gt;dir-name&lt;/code&gt; nomli yangi katalog yaratadi.&lt;/p&gt;
  &lt;p id=&quot;Ya0b&quot;&gt;&lt;code&gt;mkdir -p dir-name/dir-name&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jYMR&quot;&gt;Kataloglar ierarhiyasini yaratadi. Agar ota kataloglar mavjud bo&amp;#x27;lmasa, ularni ham bir yo&amp;#x27;la yaratib ketadi.&lt;/p&gt;
  &lt;p id=&quot;7EL5&quot;&gt;&lt;code&gt;touch filename&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;yTbq&quot;&gt;Agar fayl mavjud bo&amp;#x27;lmasa, uni yaratadi; agar mavjud bo&amp;#x27;lsa, uning vaqtini joriy vaqtga yangilaydi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h4 id=&quot;2TYy&quot;&gt;Fayl/katalog ruxsatlari va guruhlari&lt;/h4&gt;
  &lt;p id=&quot;eIEK&quot;&gt;&lt;strong&gt;Buyruq&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;wnDS&quot;&gt;&lt;strong&gt;Vazifasi (Utility)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;PC8a&quot;&gt;&lt;code&gt;chmod &amp;lt;specs&amp;gt; filename&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;NX1v&quot;&gt;Fayl ruxsatlarini o&amp;#x27;zgartiradi. Belgi: &lt;code&gt;u&lt;/code&gt; - foydalanuvchi, &lt;code&gt;g&lt;/code&gt; - guruh, &lt;code&gt;o&lt;/code&gt; - boshqalar; &lt;code&gt;+&lt;/code&gt; - qo&amp;#x27;shish, &lt;code&gt;-&lt;/code&gt; - olib tashlash; &lt;code&gt;r&lt;/code&gt; - o&amp;#x27;qish, &lt;code&gt;w&lt;/code&gt; - yozish, &lt;code&gt;x&lt;/code&gt; - bajarish.&lt;/p&gt;
  &lt;p id=&quot;R0f7&quot;&gt;&lt;code&gt;chmod -R &amp;lt;specs&amp;gt; dir-name&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;qGoQ&quot;&gt;Katalog va uning ichidagi barcha narsalarning ruxsatlarini rekursiv o&amp;#x27;zgartiradi.&lt;/p&gt;
  &lt;p id=&quot;cK3d&quot;&gt;&lt;code&gt;chmod go=+r myfile&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;4Hhx&quot;&gt;Guruh (&lt;code&gt;g&lt;/code&gt;) va boshqalar (&lt;code&gt;o&lt;/code&gt;) uchun o&amp;#x27;qish (&lt;code&gt;r&lt;/code&gt;) ruxsatini qo&amp;#x27;shadi.&lt;/p&gt;
  &lt;p id=&quot;0SYZ&quot;&gt;&lt;code&gt;chmod a+rwx myfile&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;gH17&quot;&gt;Barcha foydalanuvchilarga (&lt;code&gt;a&lt;/code&gt;) o&amp;#x27;qish, yozish va bajarish huquqini beradi.&lt;/p&gt;
  &lt;p id=&quot;ytyx&quot;&gt;&lt;code&gt;chown owner1 filename&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;2VL6&quot;&gt;Fayl egaligini &lt;code&gt;owner1&lt;/code&gt; foydalanuvchisiga o&amp;#x27;zgartiradi.&lt;/p&gt;
  &lt;p id=&quot;2ssG&quot;&gt;&lt;code&gt;chgrp grp_owner filename&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;grHN&quot;&gt;Faylning guruh egaligini &lt;code&gt;grp_owner&lt;/code&gt; guruhiga o&amp;#x27;zgartiradi.&lt;/p&gt;
  &lt;p id=&quot;hed3&quot;&gt;&lt;code&gt;chgrp -R grp_owner dir-name&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;oXVb&quot;&gt;Katalog va uning ichidagi barcha narsalarning guruh egaligini rekursiv o&amp;#x27;zgartiradi.&lt;/p&gt;
  &lt;p id=&quot;ATgQ&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;Sx5z&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;jMIP&quot;&gt;1.3-bo&amp;#x27;lim: Hello World (Salom Dunyo)&lt;/h3&gt;
  &lt;p id=&quot;EwlO&quot;&gt;Terminalga quyidagi kodni yozing va &lt;strong&gt;Enter&lt;/strong&gt; tugmasini bosing:&lt;/p&gt;
  &lt;p id=&quot;eoQ5&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;Yxfz&quot; data-lang=&quot;bash&quot;&gt;echo &amp;quot;Hello World&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;DZmQ&quot;&gt;Bu buyruq quyidagi natijani chiqaradi:&lt;/p&gt;
  &lt;p id=&quot;5hta&quot;&gt;&lt;code&gt;Hello World&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;91DQ&quot;&gt;1.4-bo&amp;#x27;lim: Linuxning asosiy utilitalari (Basic Linux Utilities)&lt;/h3&gt;
  &lt;p id=&quot;bfqt&quot;&gt;Linuxda deyarli har qanday vazifa uchun maxsus buyruqlar mavjud bo&amp;#x27;lib, ularning aksariyati mantiqiy va tushunish uchun oson.&lt;/p&gt;
  &lt;h4 id=&quot;bPx9&quot;&gt;Linuxda yordam olish (Getting Help)&lt;/h4&gt;
  &lt;p id=&quot;bXCX&quot;&gt;Akademik va professional muhitda buyruqlar haqida ma&amp;#x27;lumot olishning eng samarali usullari:&lt;/p&gt;
  &lt;p id=&quot;rYVV&quot;&gt;&lt;strong&gt;Buyruq&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;hrUm&quot;&gt;&lt;strong&gt;Foydalanish maqsadi (Usability)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;9rAZ&quot;&gt;&lt;code&gt;man &amp;lt;nom&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;6zcw&quot;&gt;&lt;code&gt;&amp;lt;nom&amp;gt;&lt;/code&gt; nomli dasturning qo&amp;#x27;llanma (manual) sahifasini o&amp;#x27;qish.&lt;/p&gt;
  &lt;p id=&quot;wy8I&quot;&gt;&lt;code&gt;man &amp;lt;bo&amp;#x27;lim&amp;gt; &amp;lt;nom&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Cz7u&quot;&gt;Qo&amp;#x27;llanmaning ma&amp;#x27;lum bir bo&amp;#x27;limiga tegishli qismini o&amp;#x27;qish.&lt;/p&gt;
  &lt;p id=&quot;523o&quot;&gt;&lt;code&gt;man -k &amp;lt;kalit_so&amp;#x27;z&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;nWAm&quot;&gt;Qo&amp;#x27;llanma sahifalarida &lt;code&gt;&amp;lt;kalit_so&amp;#x27;z&amp;gt;&lt;/code&gt; qatnashgan barcha dasturlarni chiqarish.&lt;/p&gt;
  &lt;p id=&quot;nj5F&quot;&gt;&lt;code&gt;apropos &amp;lt;so&amp;#x27;z&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;h8DI&quot;&gt;Tavsifi berilgan so&amp;#x27;zga mos keladigan barcha ilovalarni ko&amp;#x27;rsatadi (buyruq nomi esdan chiqqanda juda foydali).&lt;/p&gt;
  &lt;p id=&quot;ERb6&quot;&gt;&lt;code&gt;whatis vim&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;xWj7&quot;&gt;&lt;code&gt;vim&lt;/code&gt; dasturi haqida qisqacha bir qatorli ta&amp;#x27;rif beradi.&lt;/p&gt;
  &lt;p id=&quot;l53E&quot;&gt;&lt;code&gt;&amp;lt;buyruq&amp;gt; --help&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;XABS&quot;&gt;Dasturdan foydalanish bo&amp;#x27;yicha ko&amp;#x27;rsatmalarni chiqaradi. Ba&amp;#x27;zan &lt;code&gt;-h&lt;/code&gt; ham ishlaydi.&lt;/p&gt;
  &lt;p id=&quot;j2NJ&quot;&gt;&lt;code&gt;info &amp;lt;nom&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;r7sa&quot;&gt;Dastur haqida kengaytirilgan ma&amp;#x27;lumotlarni ko&amp;#x27;rish.&lt;/p&gt;
  &lt;p id=&quot;CyT2&quot;&gt;&lt;code&gt;help&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Qv4A&quot;&gt;Bash qobig&amp;#x27;ida mavjud bo&amp;#x27;lgan barcha ichki buyruqlar ro&amp;#x27;yxatini ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;3cWI&quot;&gt;&lt;strong&gt;Paketlar bilan ishlash (Debian-ga asoslangan tizimlar uchun):&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;Q2es&quot;&gt;
    &lt;li id=&quot;uTPR&quot;&gt;&lt;code&gt;dpkg -l&lt;/code&gt;: Tizimga o&amp;#x27;rnatilgan barcha paketlar ro&amp;#x27;yxatini chiqaradi.&lt;/li&gt;
    &lt;li id=&quot;s3YR&quot;&gt;&lt;code&gt;dpkg -L &amp;lt;paket_nomi&amp;gt;&lt;/code&gt;: Berilgan paket tomonidan o&amp;#x27;rnatilgan fayllar va ularning manzillarini ko&amp;#x27;rsatadi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;wHq8&quot;&gt;Foydalanuvchini aniqlash va Linux dunyosida &amp;quot;Kim kim?&amp;quot;&lt;/h4&gt;
  &lt;p id=&quot;Zafd&quot;&gt;&lt;strong&gt;Buyruq&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;ViS2&quot;&gt;&lt;strong&gt;Vazifasi (Usability)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;XtvI&quot;&gt;&lt;code&gt;hostname&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;AfXt&quot;&gt;Tizimning tarmoqdagi nomini (hostname) ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;zZYS&quot;&gt;&lt;code&gt;hostname -f&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;rzlA&quot;&gt;Tizimning to&amp;#x27;liq domen nomini (FQDN) ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;YeFb&quot;&gt;&lt;code&gt;passwd&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;P7PY&quot;&gt;Joriy foydalanuvchining parolini o&amp;#x27;zgartirish.&lt;/p&gt;
  &lt;p id=&quot;BzGf&quot;&gt;&lt;code&gt;whoami&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;1o0g&quot;&gt;Terminalda ishlayotgan joriy foydalanuvchi nomini chiqaradi.&lt;/p&gt;
  &lt;p id=&quot;DMPL&quot;&gt;&lt;code&gt;who&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;vzbD&quot;&gt;Tizimga ayni damda kirgan barcha foydalanuvchilar ro&amp;#x27;yxati.&lt;/p&gt;
  &lt;p id=&quot;OSe4&quot;&gt;&lt;code&gt;w&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;8fHt&quot;&gt;Tizim holati, vaqti, foydalanuvchilar va ularning nima ish qilayotgani haqida batafsil ma&amp;#x27;lumot.&lt;/p&gt;
  &lt;p id=&quot;L2RW&quot;&gt;&lt;code&gt;last&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;W9Ij&quot;&gt;Tizimdan oxirgi marta kimlar foydalanganini ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;VrxK&quot;&gt;&lt;code&gt;last root&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;5YZp&quot;&gt;&lt;code&gt;root&lt;/code&gt; (administrator) foydalanuvchisi oxirgi marta qachon kirganini ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;mzCZ&quot;&gt;&lt;code&gt;lastb&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;fU1O&quot;&gt;Tizimga kirishdagi barcha muvaffaqiyatsiz (shubhali) urinishlarni ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h4 id=&quot;nhiZ&quot;&gt;Jarayonlar bilan bog&amp;#x27;liq ma&amp;#x27;lumotlar (Process related information)&lt;/h4&gt;
  &lt;p id=&quot;Rudy&quot;&gt;Jarayonlarni (processes) kuzatish tizim resurslarini boshqarish uchun muhimdir.&lt;/p&gt;
  &lt;p id=&quot;G2PA&quot;&gt;&lt;strong&gt;Buyruq&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;HB8E&quot;&gt;&lt;strong&gt;Vazifasi (Usability)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;mz5s&quot;&gt;&lt;code&gt;top&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;qY1R&quot;&gt;Resurslarni eng ko&amp;#x27;p iste&amp;#x27;mol qilayotgan jarayonlarni doimiy yangilanib turadigan jadvalda ko&amp;#x27;rsatadi. Chiqish uchun &lt;code&gt;q&lt;/code&gt; tugmasi bosiladi.&lt;/p&gt;
  &lt;p id=&quot;MbRR&quot;&gt;&lt;code&gt;ps&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;H0og&quot;&gt;Joriy terminal sessiyasida ishlayotgan jarayonlarni ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;Gr2d&quot;&gt;&lt;code&gt;ps -u root&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;FNzu&quot;&gt;&lt;code&gt;root&lt;/code&gt; foydalanuvchisi tomonidan ishga tushirilgan barcha jarayonlar va buyruqlarni ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;Ru4D&quot;&gt;&lt;code&gt;ps aux&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;YgWW&quot;&gt;Tizimdagi barcha foydalanuvchilarning barcha ishlayotgan jarayonlarini to&amp;#x27;liq ro&amp;#x27;yxat qiladi.&lt;/p&gt;
  &lt;p id=&quot;bb23&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;ENro&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;dnCp&quot;&gt;1.5-bo&amp;#x27;lim: Fayllarni nomi yoki tarkibidagi namunalar bo&amp;#x27;yicha qidirish&lt;/h3&gt;
  &lt;p id=&quot;dh8S&quot;&gt;Linux buyruqlar satri (shell) foydalanuvchilari uchun eng ko&amp;#x27;p uchraydigan vazifalardan biri — ma&amp;#x27;lum bir nomga ega bo&amp;#x27;lgan yoki ichida maxsus matni bor fayl va kataloglarni qidirishdir. Buning uchun quyidagi ikki asosiy buyruqni yaxshi o&amp;#x27;rganib olishingiz kerak:&lt;/p&gt;
  &lt;h4 id=&quot;N8Kg&quot;&gt;Fayllarni nomi bo&amp;#x27;yicha qidirish (&lt;code&gt;find&lt;/code&gt;)&lt;/h4&gt;
  &lt;p id=&quot;BWCF&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;XVUu&quot;&gt;find /var/www -name &amp;#x27;*.css&amp;#x27;
&lt;/pre&gt;
  &lt;p id=&quot;zubD&quot;&gt;Ushbu buyruq &lt;code&gt;/var/www&lt;/code&gt; katalogi va uning ichidagi barcha quyi papkalardan &lt;code&gt;.css&lt;/code&gt; bilan tugaydigan barcha fayllarning to&amp;#x27;liq manzili va nomini chiqaradi. Natija namunasi:&lt;/p&gt;
  &lt;ul id=&quot;qpaM&quot;&gt;
    &lt;li id=&quot;3xjA&quot;&gt;&lt;code&gt;/var/www/html/text-cursor.css&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;XikX&quot;&gt;&lt;code&gt;/var/www/html/style.css&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;TBXz&quot;&gt;Batafsil ma&amp;#x27;lumot uchun: &lt;code&gt;man find&lt;/code&gt;&lt;/p&gt;
  &lt;h4 id=&quot;FnL7&quot;&gt;Ichida matni bor fayllarni qidirish (&lt;code&gt;grep&lt;/code&gt;)&lt;/h4&gt;
  &lt;p id=&quot;17KM&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;aLIC&quot;&gt;grep font /var/www/html/style.css
&lt;/pre&gt;
  &lt;p id=&quot;j6kB&quot;&gt;Bu buyruq ko&amp;#x27;rsatilgan fayl ichidan &lt;code&gt;font&lt;/code&gt; namunasi (so&amp;#x27;zi) qatnashgan barcha qatorlarni chiqaradi. Natija namunasi:&lt;/p&gt;
  &lt;ul id=&quot;dG5U&quot;&gt;
    &lt;li id=&quot;EsFP&quot;&gt;&lt;code&gt;font-weight: bold;&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;gOkU&quot;&gt;&lt;code&gt;font-family: monospace;&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;psid&quot;&gt;Yana bir misol:&lt;/p&gt;
  &lt;p id=&quot;ChqG&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;mSlT&quot;&gt;grep font /var/www/html/
&lt;/pre&gt;
  &lt;p id=&quot;G0gt&quot;&gt;Bu buyruq kutilganidek ishlamaydi va sizga quyidagi xatoni beradi:&lt;/p&gt;
  &lt;p id=&quot;L2JZ&quot;&gt;&lt;code&gt;grep: /var/www/html/: Is a directory&lt;/code&gt; (bu katalog ekanligini bildiradi).&lt;/p&gt;
  &lt;p id=&quot;AVYV&quot;&gt;Buni to&amp;#x27;g&amp;#x27;ri bajarish uchun &lt;code&gt;-R&lt;/code&gt; (rekursiv) opsiyasidan foydalanish kerak:&lt;/p&gt;
  &lt;p id=&quot;uUtV&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;Uu5i&quot;&gt;grep -R font /var/www/html/
&lt;/pre&gt;
  &lt;p id=&quot;iKjs&quot;&gt;Natijada barcha ichki kataloglardagi fayllar ham tekshiriladi. E&amp;#x27;tibor bering, agar &lt;code&gt;grep&lt;/code&gt; bir nechta fayldan qidirsa, natija qaysi faylga tegishli ekanligini ko&amp;#x27;rsatish uchun qator boshiga fayl nomini qo&amp;#x27;shib qo&amp;#x27;yadi. Agar bu nomlar kerak bo&amp;#x27;lmasa, &lt;code&gt;-h&lt;/code&gt; opsiyasini qo&amp;#x27;shishingiz mumkin.&lt;/p&gt;
  &lt;p id=&quot;5RYD&quot;&gt;Batafsil ma&amp;#x27;lumot uchun: &lt;code&gt;man grep&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;olxt&quot;&gt;1.6-bo&amp;#x27;lim: Fayl manipulyatsiyasi (File Manipulation)&lt;/h3&gt;
  &lt;p id=&quot;M9oT&quot;&gt;Fayllar va kataloglar Linuxning markazida turadi. Ularni buyruqlar satri orqali yaratish, ko&amp;#x27;rish, ko&amp;#x27;chirish va o&amp;#x27;chirish juda muhim va kuchli ko&amp;#x27;nikma hisoblanadi. Bu buyruqlar grafik fayl menejerlari (explorer) bajaradigan vazifalarni terminalda bajarish imkonini beradi.&lt;/p&gt;
  &lt;ul id=&quot;4ws0&quot;&gt;
    &lt;li id=&quot;m22E&quot;&gt;&lt;strong&gt;Bo&amp;#x27;sh matnli fayl yaratish (&lt;code&gt;myFile&lt;/code&gt; nomli):&lt;/strong&gt;&lt;code&gt;touch myFile&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;o6rI&quot;&gt;&lt;strong&gt;Fayl nomini o&amp;#x27;zgartirish (&lt;code&gt;myFile&lt;/code&gt; dan &lt;code&gt;myFirstFile&lt;/code&gt; ga):&lt;/strong&gt;&lt;code&gt;mv myFile myFirstFile&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;R60y&quot;&gt;&lt;strong&gt;Fayl tarkibini ko&amp;#x27;rish:&lt;/strong&gt;&lt;code&gt;cat myFirstFile&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;SYWK&quot;&gt;&lt;strong&gt;Fayl tarkibini sahifalab ko&amp;#x27;rish (peydjer yordamida):&lt;/strong&gt;&lt;code&gt;less myFirstFile&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;OUNa&quot;&gt;&lt;strong&gt;Faylning dastlabki bir necha qatorini ko&amp;#x27;rish:&lt;/strong&gt;&lt;code&gt;head myFirstFile&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;rS44&quot;&gt;&lt;strong&gt;Faylning oxirgi bir necha qatorini ko&amp;#x27;rish:&lt;/strong&gt;&lt;code&gt;tail myFirstFile&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;beGj&quot;&gt;&lt;strong&gt;Faylni tahrirlash:&lt;/strong&gt;&lt;code&gt;vi myFirstFile&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;PBBf&quot;&gt;&lt;strong&gt;Joriy ishchi katalogdagi fayllarni ko&amp;#x27;rish:&lt;/strong&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;2bxP&quot;&gt;&lt;strong&gt;Bo&amp;#x27;sh katalog (papka) yaratish:&lt;/strong&gt;&lt;code&gt;mkdir myFirstDirectory&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;ezLV&quot;&gt;&lt;strong&gt;Ko&amp;#x27;p bosqichli yo&amp;#x27;lga ega katalog yaratish:&lt;/strong&gt;&lt;code&gt;mkdir -p src/myFirstDirectory&lt;/code&gt;&lt;em&gt;(Bu buyruq bir vaqtning o&amp;#x27;zida ham &lt;code&gt;src&lt;/code&gt;, ham uning ichida &lt;code&gt;myFirstDirectory&lt;/code&gt; papkalarini yaratadi).&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;OF0m&quot;&gt;&lt;strong&gt;Faylni katalog ichiga ko&amp;#x27;chirish:&lt;/strong&gt;&lt;code&gt;mv myFirstFile myFirstDirectory/&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;hWpJ&quot;&gt;&lt;strong&gt;Joriy ishchi katalogni o&amp;#x27;zgartirish (papkaga kirish):&lt;/strong&gt;&lt;code&gt;cd myFirstDirectory&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;RNwv&quot;&gt;&lt;strong&gt;Faylni o&amp;#x27;chirish:&lt;/strong&gt;&lt;code&gt;rm myFirstFile&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;OdrC&quot;&gt;&lt;strong&gt;Ota katalogga (yuqoriga) qaytish:&lt;/strong&gt;&lt;code&gt;cd ..&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;esoc&quot;&gt;&lt;strong&gt;Bo&amp;#x27;sh katalogni o&amp;#x27;chirish:&lt;/strong&gt;&lt;code&gt;rmdir myFirstDirectory&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;fOzy&quot;&gt;&lt;strong&gt;Bo&amp;#x27;sh bo&amp;#x27;lmagan katalogni (ichida fayllari bor) o&amp;#x27;chirish:&lt;/strong&gt;&lt;code&gt;rm -rf myFirstDirectory&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;rAVu&quot;&gt;&lt;strong&gt;Eslatma:&lt;/strong&gt; Kataloglarni o&amp;#x27;chirishda &lt;code&gt;./&lt;/code&gt; (joriy joy) va &lt;code&gt;/&lt;/code&gt; (ildiz tizimi) belgilariga juda ehtiyot bo&amp;#x27;ling. &lt;code&gt;/&lt;/code&gt; belgisini noto&amp;#x27;g&amp;#x27;ri ishlatish butun fayl tizimingizni o&amp;#x27;chirib yuborishi mumkin.&lt;/p&gt;
  &lt;h3 id=&quot;8uCS&quot;&gt;1.7-bo&amp;#x27;lim: Fayl va katalog tafsilotlari (File/Directory details)&lt;/h3&gt;
  &lt;p id=&quot;obdR&quot;&gt;&lt;code&gt;ls&lt;/code&gt; buyrug&amp;#x27;i fayllar haqida ko&amp;#x27;proq ma&amp;#x27;lumot olish uchun birgalikda ishlatilishi mumkin bo&amp;#x27;lgan bir nechta opsiyalarga ega.&lt;/p&gt;
  &lt;h4 id=&quot;8zyE&quot;&gt;Tafsilotlar va Huquqlar (Details/Rights)&lt;/h4&gt;
  &lt;p id=&quot;LW08&quot;&gt;&lt;code&gt;-l&lt;/code&gt; opsiyasi fayl ruxsatlari (permissions), hajmi va oxirgi o&amp;#x27;zgartirilgan sanasini ko&amp;#x27;rsatadi. Masalan, joriy papkada &lt;code&gt;test&lt;/code&gt; nomli katalog va &lt;code&gt;someFile.txt&lt;/code&gt; fayli bo&amp;#x27;lsa, &lt;code&gt;ls -l&lt;/code&gt; buyrug&amp;#x27;i quyidagicha natija beradi:&lt;/p&gt;
  &lt;p id=&quot;mTUh&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;41T5&quot;&gt;-rw-r--r-- 1 user users   70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4096 Jul 21 07:18 test
&lt;/pre&gt;
  &lt;p id=&quot;Vijr&quot;&gt;Ruxsatlar &lt;code&gt;drwxrwxrwx&lt;/code&gt; formatida ko&amp;#x27;rsatiladi:&lt;/p&gt;
  &lt;ol id=&quot;CMX5&quot;&gt;
    &lt;li id=&quot;EBAT&quot;&gt;&lt;strong&gt;Birinchi belgi:&lt;/strong&gt; Fayl turini bildiradi. Agar u katalog (papka) bo&amp;#x27;lsa &lt;code&gt;d&lt;/code&gt;, aks holda &lt;code&gt;-&lt;/code&gt; belgisi bo&amp;#x27;ladi.&lt;/li&gt;
    &lt;li id=&quot;Lsgn&quot;&gt;&lt;strong&gt;Keyingi uchta &lt;code&gt;rwx&lt;/code&gt;:&lt;/strong&gt; Fayl &lt;strong&gt;egasi&lt;/strong&gt; (user) uchun ruxsatlar.&lt;/li&gt;
    &lt;li id=&quot;sDqk&quot;&gt;&lt;strong&gt;Undan keyingi uchta &lt;code&gt;rwx&lt;/code&gt;:&lt;/strong&gt; Fayl a&amp;#x27;zo bo&amp;#x27;lgan &lt;strong&gt;guruh&lt;/strong&gt; (group) uchun ruxsatlar.&lt;/li&gt;
    &lt;li id=&quot;zHmQ&quot;&gt;&lt;strong&gt;Oxirgi uchta &lt;code&gt;rwx&lt;/code&gt;:&lt;/strong&gt; Qolgan &lt;strong&gt;barcha foydalanuvchilar&lt;/strong&gt; (others) uchun ruxsatlar.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;zTVr&quot;&gt;&lt;strong&gt;Belgilarning ma&amp;#x27;nosi:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;m95d&quot;&gt;
    &lt;li id=&quot;l7Qc&quot;&gt;&lt;code&gt;r&lt;/code&gt; (read) — faylni o&amp;#x27;qish mumkinligini bildiradi.&lt;/li&gt;
    &lt;li id=&quot;if3y&quot;&gt;&lt;code&gt;w&lt;/code&gt; (write) — faylni o&amp;#x27;zgartirish (yozish) mumkinligini bildiradi.&lt;/li&gt;
    &lt;li id=&quot;cJiJ&quot;&gt;&lt;code&gt;x&lt;/code&gt; (execute) — faylni ishga tushirish (bajarish) mumkinligini bildiradi.&lt;/li&gt;
    &lt;li id=&quot;Hokq&quot;&gt;Agar biror huquq berilmagan bo&amp;#x27;lsa, tegishli harf o&amp;#x27;rnida &lt;code&gt;-&lt;/code&gt; belgisi turadi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;kzDR&quot;&gt;Yuqoridagi misolda foydalanuvchi &lt;code&gt;someFile.txt&lt;/code&gt;ni o&amp;#x27;qiy oladi va o&amp;#x27;zgartira oladi, lekin guruh faqat o&amp;#x27;qish huquqiga ega.&lt;/p&gt;
  &lt;h4 id=&quot;adKQ&quot;&gt;Huquqlarni o&amp;#x27;zgartirish (&lt;code&gt;chmod&lt;/code&gt;)&lt;/h4&gt;
  &lt;p id=&quot;Zn0C&quot;&gt;Agar sizda &lt;code&gt;sudo&lt;/code&gt; huquqi bo&amp;#x27;lsa, &lt;code&gt;chmod ### fayl_nomi&lt;/code&gt; buyrug&amp;#x27;i orqali huquqlarni o&amp;#x27;zgartirishingiz mumkin. Bunda:&lt;/p&gt;
  &lt;ul id=&quot;mGSv&quot;&gt;
    &lt;li id=&quot;NJfc&quot;&gt;&lt;code&gt;r&lt;/code&gt; (o&amp;#x27;qish) = &lt;strong&gt;4&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;O5rc&quot;&gt;&lt;code&gt;w&lt;/code&gt; (yozish) = &lt;strong&gt;2&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;BNxQ&quot;&gt;&lt;code&gt;x&lt;/code&gt; (bajarish) = &lt;strong&gt;1&lt;/strong&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;EQ1x&quot;&gt;Masalan, &lt;code&gt;test&lt;/code&gt; katalogiga quyidagicha huquqlarni o&amp;#x27;rnatmoqchi bo&amp;#x27;lsangiz:&lt;/p&gt;
  &lt;ul id=&quot;gsr8&quot;&gt;
    &lt;li id=&quot;qnPn&quot;&gt;Ega (Owner): &lt;code&gt;rwx&lt;/code&gt; = 4+2+1 = &lt;strong&gt;7&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;3YZG&quot;&gt;Guruh (Group): &lt;code&gt;r-x&lt;/code&gt; = 4+0+1 = &lt;strong&gt;5&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;uknG&quot;&gt;Boshqalar (Other): &lt;code&gt;r-x&lt;/code&gt; = 4+0+1 = &lt;strong&gt;5&lt;/strong&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;LImT&quot;&gt;Buyruq quyidagicha bo&amp;#x27;ladi:&lt;/p&gt;
  &lt;p id=&quot;RGBJ&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;iD5M&quot;&gt;chmod 755 test
&lt;/pre&gt;
  &lt;h4 id=&quot;dqgo&quot;&gt;O&amp;#x27;qishga qulay hajm (Readable Size)&lt;/h4&gt;
  &lt;p id=&quot;TtZ2&quot;&gt;&lt;code&gt;-l&lt;/code&gt; bilan birga &lt;code&gt;-h&lt;/code&gt; (human readable) opsiyasi qo&amp;#x27;shilsa, fayl o&amp;#x27;lchamlari KB, MB, GB ko&amp;#x27;rinishida chiqariladi:&lt;/p&gt;
  &lt;p id=&quot;kluo&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;P5t1&quot;&gt;ls -lh
# Natija: 4.0K (4096 o&amp;#x27;rniga)
&lt;/pre&gt;
  &lt;h4 id=&quot;3I3n&quot;&gt;Yashirin fayllar (Hidden)&lt;/h4&gt;
  &lt;p id=&quot;i1NS&quot;&gt;Yashirin fayllarni ko&amp;#x27;rish uchun &lt;code&gt;-a&lt;/code&gt; (all) opsiyasi ishlatiladi:&lt;/p&gt;
  &lt;p id=&quot;TUvb&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;RkcH&quot;&gt;ls -a
&lt;/pre&gt;
  &lt;p id=&quot;eRhR&quot;&gt;Bu buyruq &lt;code&gt;.profile&lt;/code&gt; kabi nuqta bilan boshlanadigan yashirin fayllarni ham ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;h4 id=&quot;wt9s&quot;&gt;Katalog umumiy hajmi&lt;/h4&gt;
  &lt;p id=&quot;ra0M&quot;&gt;Joriy katalogni umumiy hajmini ko&amp;#x27;rish uchun &lt;code&gt;-s&lt;/code&gt; opsiyasi ishlatiladi (ko&amp;#x27;pincha &lt;code&gt;-h&lt;/code&gt; bilan birga):&lt;/p&gt;
  &lt;p id=&quot;T5En&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;HJRt&quot;&gt;ls -sh
&lt;/pre&gt;
  &lt;h4 id=&quot;6deD&quot;&gt;Rekursiv ko&amp;#x27;rinish (Recursive View)&lt;/h4&gt;
  &lt;p id=&quot;xIuf&quot;&gt;Agar katalog ichidagi barcha ichki papkalar va ularning ichidagi fayllarni ham bir yo&amp;#x27;la ko&amp;#x27;rmoqchi bo&amp;#x27;lsangiz, &lt;code&gt;-R&lt;/code&gt; (recursive) opsiyasidan foydalanasiz:&lt;/p&gt;
  &lt;p id=&quot;aiRI&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;1npw&quot;&gt;ls -R
&lt;/pre&gt;
  &lt;p id=&quot;w7oP&quot;&gt;Bu buyruq butun ierarxiya bo&amp;#x27;yicha &amp;quot;daraxt&amp;quot; ko&amp;#x27;rinishidagi ro&amp;#x27;yxatni chiqaradi.&lt;/p&gt;
  &lt;p id=&quot;BuBb&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;yKt6&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;G9jy&quot;&gt;2-bob: Linux distributivi nomi va versiyasini aniqlash&lt;/h3&gt;
  &lt;p id=&quot;upZ6&quot;&gt;Tizim administratorlari va dasturchilar uchun ishlayotgan operatsion tizimning aniq distributivi va versiyasini bilish juda muhimdir. Ushbu bo&amp;#x27;limda turli tizim oilalarida ushbu ma&amp;#x27;lumotlarni aniqlash usullari keltiriladi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h4 id=&quot;1SOR&quot;&gt;2.1-bo&amp;#x27;lim: Debian-ga asoslangan distributivlarni aniqlash (Debian, Ubuntu, Mint va boshqalar)&lt;/h4&gt;
  &lt;p id=&quot;Benr&quot;&gt;Debian oilasidagi tizimlarda eng qulay va standart usul &lt;code&gt;lsb_release&lt;/code&gt; buyrug&amp;#x27;idan foydalanishdir.&lt;/p&gt;
  &lt;p id=&quot;jg0b&quot;&gt;&lt;strong&gt;Buyruq:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;aIfX&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;Rvgn&quot;&gt;lsb_release -a
&lt;/pre&gt;
  &lt;p id=&quot;K2QY&quot;&gt;&lt;strong&gt;Ubuntu tizimidagi natija namunasi:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;B1ww&quot;&gt;
    &lt;li id=&quot;Rx1P&quot;&gt;&lt;code&gt;Distributor ID: Ubuntu&lt;/code&gt; — Distributiv nomi.&lt;/li&gt;
    &lt;li id=&quot;uuU4&quot;&gt;&lt;code&gt;Description: Ubuntu 14.04.4 LTS&lt;/code&gt; — To&amp;#x27;liq tavsifi.&lt;/li&gt;
    &lt;li id=&quot;CLYT&quot;&gt;&lt;code&gt;Release: 14.04&lt;/code&gt; — Versiya raqami.&lt;/li&gt;
    &lt;li id=&quot;UgHp&quot;&gt;&lt;code&gt;Codename: trusty&lt;/code&gt; — Versiyaning kodli nomi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;TTjC&quot;&gt;Agar tizimda &lt;code&gt;lsb_release&lt;/code&gt; o&amp;#x27;rnatilmagan bo&amp;#x27;lsa, &lt;code&gt;/etc/issue&lt;/code&gt; faylini tekshirib ko&amp;#x27;rishingiz mumkin:&lt;/p&gt;
  &lt;p id=&quot;WNdn&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;Dpiv&quot;&gt;cat /etc/issue
&lt;/pre&gt;
  &lt;p id=&quot;TI9Y&quot;&gt;&lt;em&gt;Muhim eslatma:&lt;/em&gt; &lt;code&gt;/etc/debian_version&lt;/code&gt; faylidan foydalanmang, chunki uning tarkibi har doim ham distributivning to&amp;#x27;liq nomiga mos kelmasligi mumkin.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h4 id=&quot;37bc&quot;&gt;2.2-bo&amp;#x27;lim: Systemd-ga asoslangan zamonaviy distributivlarni aniqlash&lt;/h4&gt;
  &lt;p id=&quot;GZXU&quot;&gt;Bu usul zamonaviy Linux tizimlarining deyarli barchasida (Arch, CentOS, Debian, Fedora, Red Hat, Ubuntu va boshqalar) ishlaydi. Buning uchun &lt;code&gt;/etc/os-release&lt;/code&gt; faylidagi o&amp;#x27;zgaruvchilarni tahlil qilish kerak.&lt;/p&gt;
  &lt;p id=&quot;4sJo&quot;&gt;&lt;strong&gt;Asosiy o&amp;#x27;zgaruvchilar:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;ETg6&quot;&gt;
    &lt;li id=&quot;Dp38&quot;&gt;&lt;code&gt;NAME&lt;/code&gt;, &lt;code&gt;VERSION&lt;/code&gt;, &lt;code&gt;ID&lt;/code&gt;, &lt;code&gt;PRETTY_NAME&lt;/code&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;T6kE&quot;&gt;&lt;strong&gt;Fedora tizimida ushbu fayl ko&amp;#x27;rinishi:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;0RdU&quot;&gt;Plaintext&lt;/p&gt;
  &lt;pre id=&quot;q6ya&quot;&gt;NAME=Fedora
VERSION=&amp;quot;24 (Workstation Edition)&amp;quot;
ID=fedora
PRETTY_NAME=&amp;quot;Fedora 24 (Workstation Edition)&amp;quot;
&lt;/pre&gt;
  &lt;p id=&quot;xYCe&quot;&gt;&lt;strong&gt;Bash qobig&amp;#x27;ida ushbu fayldan to&amp;#x27;g&amp;#x27;ridan-to&amp;#x27;g&amp;#x27;ri foydalanish:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;4MjW&quot;&gt;Skriptlar ichida ma&amp;#x27;lumotni tezkor olish uchun quyidagi usul qo&amp;#x27;llaniladi:&lt;/p&gt;
  &lt;p id=&quot;zCOH&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;Af3f&quot;&gt;( source /etc/os-release &amp;amp;&amp;amp; echo &amp;quot;$PRETTY_NAME&amp;quot; )
&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h4 id=&quot;tEOn&quot;&gt;2.3-bo&amp;#x27;lim: RHEL / CentOS / Fedora distributivlarini aniqlash&lt;/h4&gt;
  &lt;p id=&quot;C11y&quot;&gt;Red Hat oilasiga mansub tizimlarda distributiv haqidagi ma&amp;#x27;lumotni maxsus reliz faylidan olish mumkin:&lt;/p&gt;
  &lt;p id=&quot;3new&quot;&gt;&lt;strong&gt;Buyruq:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;g9Y7&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;xLT2&quot;&gt;cat /etc/redhat-release
&lt;/pre&gt;
  &lt;p id=&quot;cG6S&quot;&gt;&lt;strong&gt;Natija:&lt;/strong&gt; &lt;code&gt;Fedora release 24 (Twenty Four)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;usgB&quot;&gt;Shuningdek, ushbu tizimlarda ham &lt;code&gt;lsb_release -a&lt;/code&gt; buyrug&amp;#x27;i (agar o&amp;#x27;rnatilgan bo&amp;#x27;lsa) to&amp;#x27;liq ma&amp;#x27;lumot beradi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h4 id=&quot;KhEn&quot;&gt;2.4-bo&amp;#x27;lim: Uname — joriy tizim haqida ma&amp;#x27;lumot chiqarish&lt;/h4&gt;
  &lt;p id=&quot;C7Eu&quot;&gt;&lt;code&gt;uname&lt;/code&gt; (Unix Name so&amp;#x27;zining qisqartmasi) buyrug&amp;#x27;i operatsion tizim va yadro (kernel) haqida texnik ma&amp;#x27;lumotlarni taqdim etadi.&lt;/p&gt;
  &lt;p id=&quot;yvhT&quot;&gt;&lt;strong&gt;Umumiy sintaksis:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;iStH&quot;&gt;&lt;code&gt;uname [OPTION]&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;zFhm&quot;&gt;&lt;strong&gt;Asosiy opsiyalar va ularning vazifasi:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;wrJs&quot;&gt;&lt;strong&gt;Opsiya&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;9Zbb&quot;&gt;&lt;strong&gt;Vazifasi (Utility)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;ETW0&quot;&gt;&lt;code&gt;-s&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;omME&quot;&gt;Yadro nomini chiqaradi (Kernel name).&lt;/p&gt;
  &lt;p id=&quot;XAhV&quot;&gt;&lt;code&gt;-n&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;0gNW&quot;&gt;Tarmoqdagi xost nomini chiqaradi (Hostname).&lt;/p&gt;
  &lt;p id=&quot;5TST&quot;&gt;&lt;code&gt;-r&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ZKZ0&quot;&gt;Yadro relizini ko&amp;#x27;rsatadi (Kernel release).&lt;/p&gt;
  &lt;p id=&quot;9ecV&quot;&gt;&lt;code&gt;-v&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;FSTY&quot;&gt;Yadro versiyasini ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;63wU&quot;&gt;&lt;code&gt;-m&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;DykB&quot;&gt;Apparat ta&amp;#x27;minoti nomini (arxitekturani) ko&amp;#x27;rsatadi (Machine hardware).&lt;/p&gt;
  &lt;p id=&quot;j0mM&quot;&gt;&lt;code&gt;-a&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;iZG2&quot;&gt;&lt;strong&gt;Barcha ma&amp;#x27;lumotlarni&lt;/strong&gt; birgalikda chiqaradi.&lt;/p&gt;
  &lt;p id=&quot;DEtv&quot;&gt;&lt;code&gt;-o&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;1wM8&quot;&gt;Operatsion tizim nomini chiqaradi.&lt;/p&gt;
  &lt;p id=&quot;ZfIB&quot;&gt;&lt;strong&gt;Misol:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;LazD&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;uvpx&quot;&gt;uname -a
# Natija namunasi: Linux hope 5.4.0-42-generic x86_64 GNU/Linux
&lt;/pre&gt;
  &lt;p id=&quot;s4Wj&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;qL20&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;2giO&quot;&gt;2.5-bob: Distributiv haqida asosiy ma&amp;#x27;lumotlarni aniqlash&lt;/h3&gt;
  &lt;p id=&quot;Ii8p&quot;&gt;Tizim haqida tezkor va umumiy ma&amp;#x27;lumot olish uchun &lt;code&gt;uname -a&lt;/code&gt; buyrug&amp;#x27;idan foydalaniladi.&lt;/p&gt;
  &lt;p id=&quot;dQ8o&quot;&gt;&lt;strong&gt;Arch Linux tizimidagi misol:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Ws6c&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;BnQ9&quot;&gt;$ uname -a
Linux nokia 4.6.4-1-ARCH #1 SMP PREEMPT Mon Jul 11 19:12:32 CEST 2016 x86_64 GNU/Linux
&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;qkGH&quot;&gt;2.6-bob: GNU Coreutils&amp;#x27;dan foydalanish&lt;/h3&gt;
  &lt;p id=&quot;bL8n&quot;&gt;&lt;strong&gt;GNU coreutils&lt;/strong&gt; barcha Linux tizimlarida mavjud bo&amp;#x27;lgan asosiy vositalar to&amp;#x27;plamidir. Agar siz qaysi tizimda ekanligingizni bilmasangiz, bu buyruq siz uchun birinchi qadam bo&amp;#x27;lishi kerak.&lt;/p&gt;
  &lt;p id=&quot;m3VX&quot;&gt;&lt;strong&gt;Buyruq:&lt;/strong&gt; &lt;code&gt;uname -a&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;2d4I&quot;&gt;&lt;strong&gt;Natija tahlili (misol tariqasida):&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;bpLO&quot;&gt;&lt;code&gt;Linux Scibearspace 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64 GNU/Linux&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;GC1e&quot;&gt;Bu ma&amp;#x27;lumotlar quyidagilarni anglatadi:&lt;/p&gt;
  &lt;ul id=&quot;WtQk&quot;&gt;
    &lt;li id=&quot;tWri&quot;&gt;&lt;strong&gt;Scibearspace&lt;/strong&gt;: Kompyuterning tarmoqdagi nomi (hostname).&lt;/li&gt;
    &lt;li id=&quot;P7Uu&quot;&gt;&lt;strong&gt;3.16.0-4-amd64&lt;/strong&gt;: Yadro (kernel) versiyasi va tizim arxitekturasi.&lt;/li&gt;
    &lt;li id=&quot;F55L&quot;&gt;&lt;strong&gt;SMP Debian 3.16.7...&lt;/strong&gt;: Bu tizim &lt;strong&gt;Debian&lt;/strong&gt; ekanligini va 3.16 yadrosida ishlayotganini bildiradi.&lt;/li&gt;
    &lt;li id=&quot;9AlU&quot;&gt;&lt;strong&gt;Oxirgi qism&lt;/strong&gt;: Tizim Debian 8 (3-yangilanish) ekanligini ko&amp;#x27;rsatmoqda.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;bPLc&quot;&gt;2.7-bob: Linux OT nomi va reliz raqamini topish (Debian va RPM)&lt;/h3&gt;
  &lt;p id=&quot;rewD&quot;&gt;Aksariyat Linux distributivlari o&amp;#x27;z versiya ma&amp;#x27;lumotlarini &lt;code&gt;/etc/lsb-release&lt;/code&gt; (Debian oilasi uchun) yoki &lt;code&gt;/etc/redhat-release&lt;/code&gt; (RPM oilasi uchun) fayllarida saqlaydi.&lt;/p&gt;
  &lt;p id=&quot;NRuf&quot;&gt;Quyidagi universal buyruq yordamida ko&amp;#x27;plab Debian va RPM hosilalari (masalan, Linux Mint va CentOS) haqida ma&amp;#x27;lumot olishingiz mumkin:&lt;/p&gt;
  &lt;p id=&quot;5oo2&quot;&gt;&lt;strong&gt;Universal buyruq:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;jQmO&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;YuGN&quot;&gt;cat /etc/*release
&lt;/pre&gt;
  &lt;p id=&quot;EwhC&quot;&gt;&lt;strong&gt;Ubuntu tizimidagi natija namunasi:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;ascu&quot;&gt;Plaintext&lt;/p&gt;
  &lt;pre id=&quot;TxOQ&quot;&gt;DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION=&amp;quot;Ubuntu 14.04 LTS&amp;quot;
&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;OoI0&quot;&gt;&lt;/h3&gt;
  &lt;p id=&quot;oeDs&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;YpWi&quot;&gt;3-bob: Ishlab turgan Linux yadrosi (Kernel) haqida ma&amp;#x27;lumot olish&lt;/h3&gt;
  &lt;p id=&quot;ovG6&quot;&gt;Linux yadrosi operatsion tizimning yuragi bo&amp;#x27;lib, u apparat ta&amp;#x27;minoti va dasturiy ta&amp;#x27;minot o&amp;#x27;rtasidagi barcha amallarni boshqaradi. Ushbu bobda yadroning joriy holati va parametrlari haqida ma&amp;#x27;lumot olish usullari bayon qilingan.&lt;/p&gt;
  &lt;h4 id=&quot;J8CY&quot;&gt;3.1-bo&amp;#x27;lim: Linux yadrosi tafsilotlarini aniqlash&lt;/h4&gt;
  &lt;p id=&quot;crCO&quot;&gt;Ishlab turgan yadro haqida to&amp;#x27;liq ma&amp;#x27;lumot olish uchun &lt;code&gt;uname&lt;/code&gt; buyrug&amp;#x27;idan turli opsiyalar bilan foydalanishimiz mumkin.&lt;/p&gt;
  &lt;p id=&quot;Mzxe&quot;&gt;&lt;strong&gt;Asosiy buyruq:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;nHOI&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;fHE9&quot;&gt;uname -a
&lt;/pre&gt;
  &lt;p id=&quot;rSHf&quot;&gt;&lt;strong&gt;Natija namunasi:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;vPaQ&quot;&gt;&lt;code&gt;Linux df1-ws-5084 4.4.0-64-generic #85-Ubuntu SMP Mon Feb 20 11:50:30 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux&lt;/code&gt;&lt;/p&gt;
  &lt;h4 id=&quot;FFmK&quot;&gt;&lt;code&gt;uname&lt;/code&gt; buyrug&amp;#x27;ining qo&amp;#x27;shimcha opsiyalari:&lt;/h4&gt;
  &lt;p id=&quot;Av3M&quot;&gt;Sintaksis: &lt;code&gt;uname [OPTION]...&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;GXT3&quot;&gt;Agar hech qanday opsiya berilmasa, u &lt;code&gt;-s&lt;/code&gt; deb qabul qilinadi.&lt;/p&gt;
  &lt;p id=&quot;itDs&quot;&gt;&lt;strong&gt;Opsiya&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;llFx&quot;&gt;&lt;strong&gt;Vazifasi (Academic Utility)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;FHJL&quot;&gt;&lt;code&gt;-a, --all&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;OUmu&quot;&gt;Barcha ma&amp;#x27;lumotlarni tartib bilan chiqaradi (noma&amp;#x27;lum bo&amp;#x27;lsa &lt;code&gt;-p&lt;/code&gt; va &lt;code&gt;-i&lt;/code&gt; tashlab ketiladi).&lt;/p&gt;
  &lt;p id=&quot;6WTv&quot;&gt;&lt;code&gt;-s, --kernel-name&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;hPe7&quot;&gt;Yadroning nomini chiqaradi (odatda &lt;code&gt;Linux&lt;/code&gt;).&lt;/p&gt;
  &lt;p id=&quot;J7sq&quot;&gt;&lt;code&gt;-n, --nodename&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;MUEA&quot;&gt;Tarmoqdagi xost nomini (hostname) ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;M1SZ&quot;&gt;&lt;code&gt;-r, --kernel-release&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;YLcB&quot;&gt;Yadroning reliz raqamini chiqaradi (masalan: &lt;code&gt;4.4.0-64-generic&lt;/code&gt;).&lt;/p&gt;
  &lt;p id=&quot;6Bv8&quot;&gt;&lt;code&gt;-v, --kernel-version&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;2Iqn&quot;&gt;Yadroning versiyasi va qachon yig&amp;#x27;ilgani haqidagi ma&amp;#x27;lumotni chiqaradi.&lt;/p&gt;
  &lt;p id=&quot;o8Za&quot;&gt;&lt;code&gt;-m, --machine&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;GKWE&quot;&gt;Kompyuterning apparat arxitekturasini ko&amp;#x27;rsatadi (masalan: &lt;code&gt;x86_64&lt;/code&gt;).&lt;/p&gt;
  &lt;p id=&quot;LUoV&quot;&gt;&lt;code&gt;-p, --processor&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;l2sO&quot;&gt;Protsessor turini ko&amp;#x27;rsatadi (ba&amp;#x27;zida &amp;quot;unknown&amp;quot; bo&amp;#x27;lishi mumkin).&lt;/p&gt;
  &lt;p id=&quot;wfRP&quot;&gt;&lt;code&gt;-i, --hardware-platform&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jjJr&quot;&gt;Apparat platformasini ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;zpJF&quot;&gt;&lt;code&gt;-o, --operating-system&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;dMk0&quot;&gt;Operatsion tizim nomini chiqaradi (masalan: &lt;code&gt;GNU/Linux&lt;/code&gt;).&lt;/p&gt;
  &lt;p id=&quot;FFrb&quot;&gt;&lt;code&gt;--help&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ZHah&quot;&gt;Yordam xabarini chiqaradi va ishni to&amp;#x27;xtatadi.&lt;/p&gt;
  &lt;p id=&quot;7Gd0&quot;&gt;&lt;code&gt;--version&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;oEtT&quot;&gt;Dastur versiyasini ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;h4 id=&quot;0VmL&quot;&gt;Qo&amp;#x27;shimcha ma&amp;#x27;lumot (Akademik izoh):&lt;/h4&gt;
  &lt;p id=&quot;Gpa6&quot;&gt;Linux yadrosi haqida ma&amp;#x27;lumot olishning yana bir usuli &lt;code&gt;/proc&lt;/code&gt; virtual fayl tizimidan foydalanishdir. Masalan, quyidagi buyruq ham &lt;code&gt;uname -a&lt;/code&gt; kabi batafsil ma&amp;#x27;lumot beradi:&lt;/p&gt;
  &lt;p id=&quot;3v3E&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;wlLb&quot;&gt;cat /proc/version
&lt;/pre&gt;
  &lt;p id=&quot;Wb0Y&quot;&gt;Ushbu fayl yadro versiyasidan tashqari, uni yig&amp;#x27;ish uchun ishlatilgan &lt;strong&gt;GCC&lt;/strong&gt; kompyutori versiyasi haqida ham ma&amp;#x27;lumotni o&amp;#x27;z ichiga oladi.&lt;/p&gt;
  &lt;p id=&quot;YWgA&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;Ntxm&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;o6Sj&quot;&gt;&lt;strong&gt;Buyruq (Tugmalar)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;ZksU&quot;&gt;&lt;strong&gt;Vazifasi (Utility)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;LqEf&quot;&gt;&lt;code&gt;Ctrl + K&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;9pKD&quot;&gt;Kursordan keyingi matnni kesib olish (cut/kill).&lt;/p&gt;
  &lt;p id=&quot;CGjO&quot;&gt;&lt;code&gt;Ctrl + Y&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;XkCO&quot;&gt;Kesib olingan matnni joylashtirish (yank/paste).&lt;/p&gt;
  &lt;p id=&quot;NUE6&quot;&gt;&lt;code&gt;Ctrl + A&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;8wjy&quot;&gt;Kursorni qatorning boshiga olib boradi.&lt;/p&gt;
  &lt;p id=&quot;48ZS&quot;&gt;&lt;code&gt;Ctrl + E&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;gDvd&quot;&gt;Kursorni qatorning oxiriga olib boradi.&lt;/p&gt;
  &lt;p id=&quot;lHmG&quot;&gt;&lt;code&gt;Ctrl + D&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;PcG4&quot;&gt;Kursordan keyingi yoki kursor turgan belgini o&amp;#x27;chiradi.&lt;/p&gt;
  &lt;p id=&quot;luci&quot;&gt;&lt;code&gt;Ctrl + L&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;3RUG&quot;&gt;Ekranni/terminalni tozalaydi.&lt;/p&gt;
  &lt;p id=&quot;5LxM&quot;&gt;&lt;code&gt;Ctrl + U&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ZaJg&quot;&gt;Buyruq satri va kursor orasidagi barcha narsani o&amp;#x27;chiradi.&lt;/p&gt;
  &lt;p id=&quot;smTA&quot;&gt;&lt;code&gt;Ctrl + _&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;S1L7&quot;&gt;Buyruqlar satrida yozilgan oxirgi amalni bekor qiladi (undo).&lt;/p&gt;
  &lt;p id=&quot;vyVr&quot;&gt;&lt;code&gt;Ctrl + C&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;JexP&quot;&gt;Oldingi planda ishlayotgan jarayonni (process) to&amp;#x27;xtatadi.&lt;/p&gt;
  &lt;p id=&quot;yuEz&quot;&gt;&lt;code&gt;Ctrl + R&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;cGgr&quot;&gt;Buyruqlar tarixidan (history) teskari qidiruv.&lt;/p&gt;
  &lt;p id=&quot;iZIF&quot;&gt;&lt;code&gt;~/.bash_history&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;8gg6&quot;&gt;Shell-da ishlatilgan oxirgi 500 ta buyruq/hodisalarni saqlaydigan fayl.&lt;/p&gt;
  &lt;p id=&quot;IJK9&quot;&gt;&lt;code&gt;history&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;4u9k&quot;&gt;Buyruqlar tarixini ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;d5yX&quot;&gt;&lt;code&gt;history | grep &amp;lt;so&amp;#x27;z&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;DlTq&quot;&gt;Tarixdan &lt;code&gt;&amp;lt;so&amp;#x27;z&amp;gt;&lt;/code&gt; kalit so&amp;#x27;zi qatnashgan buyruqlarni topadi (o&amp;#x27;tmishda ishlatilgan buyruqning bir qismini eslaganda juda foydali).&lt;/p&gt;
  &lt;p id=&quot;Zf52&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;J3GM&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;XV4l&quot;&gt;Mana 4-bobning yakuniy qismlari va 5-bobning boshlanishi bo&amp;#x27;yicha 100% to&amp;#x27;liq akademik tarjima:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;YxGg&quot;&gt;4.3-bo&amp;#x27;lim: Shaxsiy buyruq aliasini (taxallusi) yaratish&lt;/h3&gt;
  &lt;p id=&quot;H6y4&quot;&gt;Agar siz bash-da uzun buyruqlarni qayta-qayta yozishdan charchagan bo&amp;#x27;lsangiz, o&amp;#x27;zingizning shaxsiy buyruq aliasingizni yaratishingiz mumkin.&lt;/p&gt;
  &lt;p id=&quot;CK8w&quot;&gt;Buning eng yaxshi usuli uy papkangizdagi &lt;code&gt;.bash_aliases&lt;/code&gt; deb nomlangan faylni tahrirlash (yoki u mavjud bo&amp;#x27;lmasa, yaratish) hisoblanadi. Umumiy sintaksis quyidagicha:&lt;/p&gt;
  &lt;p id=&quot;lR9e&quot;&gt;&lt;code&gt;alias buyruq_aliasi=&amp;#x27;asl_buyruq&amp;#x27;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ZxRv&quot;&gt;Bu yerda &lt;code&gt;asl_buyruq&lt;/code&gt; — siz nomini o&amp;#x27;zgartirmoqchi bo&amp;#x27;lgan buyruq, &lt;code&gt;buyruq_aliasi&lt;/code&gt; esa siz unga bergan yangi nomdir.&lt;/p&gt;
  &lt;p id=&quot;wJPm&quot;&gt;&lt;strong&gt;Masalan:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;FXzy&quot;&gt;&lt;code&gt;alias install=&amp;#x27;sudo apt-get -y install&amp;#x27;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Vel8&quot;&gt;Ushbu qator &lt;code&gt;install&lt;/code&gt; yangi aliasini asl &lt;code&gt;sudo apt-get -y install&lt;/code&gt; buyrug&amp;#x27;iga biriktiradi. Bu shuni anglatadiki, terminalda &lt;code&gt;install&lt;/code&gt; so&amp;#x27;zini ishlatganingizda, bash buni &lt;code&gt;sudo apt-get -y install&lt;/code&gt; sifatida talqin qiladi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;NH3u&quot;&gt;4.4-bo&amp;#x27;lim: Tizimingizda faylni joylashgan manzilini aniqlash&lt;/h3&gt;
  &lt;p id=&quot;wDlm&quot;&gt;Bash yordamida &lt;code&gt;locate&lt;/code&gt; buyrug&amp;#x27;i orqali faylni osongina topishingiz mumkin. Masalan, deylik siz &lt;code&gt;mykey.pem&lt;/code&gt; faylini qidiryapsiz:&lt;/p&gt;
  &lt;p id=&quot;Bau8&quot;&gt;&lt;code&gt;locate mykey.pem&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;NQml&quot;&gt;Ba&amp;#x27;zan fayllar g&amp;#x27;alati nomlarga ega bo&amp;#x27;lishi mumkin, masalan: &lt;code&gt;random7897_mykey_0fidw.pem&lt;/code&gt;. Agar siz ushbu faylni qidirayotgan bo&amp;#x27;lsangiz-u, lekin faqat &lt;code&gt;mykey&lt;/code&gt; va &lt;code&gt;pem&lt;/code&gt; qismlarini eslasangiz, &lt;code&gt;locate&lt;/code&gt; buyrug&amp;#x27;ini &lt;code&gt;grep&lt;/code&gt; bilan &amp;quot;payp&amp;quot; (&lt;code&gt;|&lt;/code&gt;) orqali quyidagicha birlashtirishingiz mumkin:&lt;/p&gt;
  &lt;p id=&quot;rAGi&quot;&gt;&lt;code&gt;locate pem | grep mykey&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;el1c&quot;&gt;Bu usul tarkibida har ikkala qism mavjud bo&amp;#x27;lgan barcha natijalarni chiqaradi.&lt;/p&gt;
  &lt;p id=&quot;LFZi&quot;&gt;&lt;strong&gt;Eslatma:&lt;/strong&gt; Hamma tizimlarda ham &lt;code&gt;locate&lt;/code&gt; utilitasi o&amp;#x27;rnatilmagan yoki yoqilmagan bo&amp;#x27;lishi mumkin. &lt;code&gt;locate&lt;/code&gt; juda tez va samarali ishlaydi, chunki u vaqti-vaqti bilan tizimingizni skanerlaydi va barcha fayllarning nomi hamda joylashuvini keshga (cache) saqlab qo&amp;#x27;yadi. Agar ma&amp;#x27;lumot yig&amp;#x27;ish funksiyasi yoqilmagan bo&amp;#x27;lsa, u sizga hech narsa topib bera olmaydi. Keshdagi ma&amp;#x27;lumotlarni yangilash uchun &lt;code&gt;updatedb&lt;/code&gt; buyrug&amp;#x27;i yordamida fayl tizimini qo&amp;#x27;lda skanerlashni ishga tushirishingiz mumkin.&lt;/p&gt;
  &lt;p id=&quot;PhNo&quot;&gt;Agar &lt;code&gt;locate&lt;/code&gt; ishlamasa, &lt;code&gt;find&lt;/code&gt; utilitasidan foydalanishga to&amp;#x27;g&amp;#x27;ri keladi:&lt;/p&gt;
  &lt;p id=&quot;6CFF&quot;&gt;&lt;code&gt;find / -name mykey.pem -print&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;12wU&quot;&gt;Bu buyruq taxminan &lt;code&gt;locate mykey.pem&lt;/code&gt; bilan bir xil vazifani bajaradi, lekin u keshdan foydalanish o&amp;#x27;rniga har safar butun fayl tizimini skanerlab chiqadi. Bu tabiiyki sekinroq va kamroq samarali, lekin real vaqt rejimida aniqroqdir.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;S7m9&quot;&gt;5-bob: Disk bo&amp;#x27;shlig&amp;#x27;ini tekshirish&lt;/h1&gt;
  &lt;h3 id=&quot;AmAg&quot;&gt;5.1-bo&amp;#x27;lim: Kataloglarning diskdan foydalanishini tahlil qilish&lt;/h3&gt;
  &lt;p id=&quot;DlKs&quot;&gt;Ba&amp;#x27;zan qaysi katalog qancha disk joyini egallayotganini aniqlash talab etiladi, ayniqsa &lt;code&gt;df -h&lt;/code&gt; buyrug&amp;#x27;ini ishlatganingizdan so&amp;#x27;ng diskda joy kam qolganini payqasangiz.&lt;/p&gt;
  &lt;h4 id=&quot;20vc&quot;&gt;du (Disk Usage):&lt;/h4&gt;
  &lt;p id=&quot;JCIe&quot;&gt;&lt;code&gt;du&lt;/code&gt; buyrug&amp;#x27;i fayllar to&amp;#x27;plami va kataloglar uchun diskdan foydalanishni rekursiv ravishda umumlashtiradi. Odatda u &lt;code&gt;-sh&lt;/code&gt; opsiyasi bilan ishlatiladi:&lt;/p&gt;
  &lt;ul id=&quot;zCVl&quot;&gt;
    &lt;li id=&quot;6d1e&quot;&gt;&lt;strong&gt;-s, --summarize&lt;/strong&gt;: har bir argument uchun faqat umumiy natijani ko&amp;#x27;rsatish.&lt;/li&gt;
    &lt;li id=&quot;e5Vt&quot;&gt;&lt;strong&gt;-h, --human-readable&lt;/strong&gt;: o&amp;#x27;lchamlarni odam tushunadigan formatda chiqarish (masalan, 1K, 234M, 2G).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;0FJE&quot;&gt;Joriy katalogdagi fayllarning diskdan foydalanishini umumlashtirish uchun:&lt;/p&gt;
  &lt;p id=&quot;JtWP&quot;&gt;&lt;code&gt;du -sh *&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;QWlE&quot;&gt;&lt;strong&gt;Yashirin fayllarni ham qo&amp;#x27;shish uchun:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;9zSa&quot;&gt;&lt;code&gt;du -sh .[!.]* *&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;cr47&quot;&gt;&lt;strong&gt;Chiqish natijasiga umumiy yakuniy miqdorni (total) qo&amp;#x27;shish uchun &lt;code&gt;-c&lt;/code&gt; opsiyasi qo&amp;#x27;shiladi:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;PqUJ&quot;&gt;&lt;code&gt;du -sch .[!.]* *&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;vyrn&quot;&gt;Eng muhimi, &lt;code&gt;du&lt;/code&gt; buyrug&amp;#x27;ini ildiz (root) katalogida to&amp;#x27;g&amp;#x27;ri ishlatish qaysi ilova, xizmat yoki foydalanuvchi disk joyini haddan tashqari ko&amp;#x27;p egallayotganini topishda &amp;quot;hayotni saqlab qoluvchi&amp;quot; harakat hisoblanadi. Masalan, pochta serverida disk joyi keskin kamayib ketsa, bunga spam hujumi sabab bo&amp;#x27;lgan bo&amp;#x27;lishi mumkin va buni &lt;code&gt;du&lt;/code&gt; yordamida aniqlash mumkin.&lt;/p&gt;
  &lt;p id=&quot;k1VP&quot;&gt;&lt;strong&gt;Ildiz katalogini diskdan foydalanish bo&amp;#x27;yicha tekshirish:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;WlJY&quot;&gt;&lt;code&gt;sudo du -sch /.[!.]* /*&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;C5JC&quot;&gt;&lt;strong&gt;Kataloglarni o&amp;#x27;lcham chegarasi (threshold) bo&amp;#x27;yicha saralash:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;zvLh&quot;&gt;Oxirgi va eng samarali usul — kichik kataloglarni e&amp;#x27;tiborsiz qoldirish uchun minimal chegara qiymatini qo&amp;#x27;shishdir. Quyidagi buyruq ildiz katalogi ostidagi faqat 1GB dan katta bo&amp;#x27;lgan papkalarni ko&amp;#x27;rsatadi:&lt;/p&gt;
  &lt;p id=&quot;G812&quot;&gt;&lt;code&gt;sudo du --threshold=1G -ch /.[!.]* /*&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;i2RG&quot;&gt;&lt;strong&gt;Natija namunasi:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;E1zP&quot;&gt;Plaintext&lt;/p&gt;
  &lt;pre id=&quot;8Eu7&quot;&gt;1,4G    /usr/lib
1,8G    /usr/share
3,5G    /usr
5,8G    total
&lt;/pre&gt;
  &lt;p id=&quot;Mmqj&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;IBId&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;nkri&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;t9wC&quot;&gt;5.2-bo&amp;#x27;lim: Disk bo&amp;#x27;shlig&amp;#x27;ini tekshirish (Checking Disk Space)&lt;/h3&gt;
  &lt;p id=&quot;IsXE&quot;&gt;Serveringiz yoki kompyuteringizdagi turli bo&amp;#x27;limlar (partition) va drayvlar holatini, ularning qanchalik to&amp;#x27;lganini tekshirish juda keng tarqalgan vazifadir. Buning uchun quyidagi buyruqni ishga tushirishingiz kerak:&lt;/p&gt;
  &lt;p id=&quot;Oqey&quot;&gt;&lt;code&gt;df -h&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;XJYO&quot;&gt;Ushbu buyruq quyidagiga o&amp;#x27;xshash natija beradi:&lt;/p&gt;
  &lt;p id=&quot;3H1t&quot;&gt;Plaintext&lt;/p&gt;
  &lt;pre id=&quot;5fLD&quot;&gt;[root@mail ~]# df -h
Filesystem                    Size  Used  Avail  Use%  Mounted on
/dev/mapper/VolGroup-lv_root   19G  1.6G    16G    9%  /
tmpfs                         245M     0   245M    0%  /dev/shm
/dev/sda1                     485M   47M   413M   11%  /boot
&lt;/pre&gt;
  &lt;p id=&quot;qzmP&quot;&gt;Ushbu oddiy misolda biz ildiz (&lt;code&gt;/&lt;/code&gt;) bo&amp;#x27;limining atigi 9% qismi ishlatilganini ko&amp;#x27;rishimiz mumkin.&lt;/p&gt;
  &lt;p id=&quot;iG2S&quot;&gt;Murakkabroq misolda esa &lt;code&gt;df&lt;/code&gt; buyrug&amp;#x27;i yordamida turli o&amp;#x27;rnatish nuqtalarini (mount points) ko&amp;#x27;rishimiz mumkin:&lt;/p&gt;
  &lt;p id=&quot;IcS5&quot;&gt;Plaintext&lt;/p&gt;
  &lt;pre id=&quot;PBfu&quot;&gt;[root@mail ~]# df -h
Filesystem            Size  Used  Avail  Use%  Mounted on
/dev/mapper/VG-root   1.9T  1.7T    89G   95%  /
/dev/mapper/VG-var    431G  145G   264G   36%  /var
devtmpfs              7.8G  204K   7.8G    1%  /dev
tmpfs                 7.8G  4.0K   7.8G    1%  /dev/shm
/dev/md1              495M  126M   344M   27%  /boot
ku.example.com:9421   2.5T  487G   2.0T   20%  /mnt/test
tmpfs                 500M   86M   415M   18%  /var/ngx_pagespeed_cache
&lt;/pre&gt;
  &lt;p id=&quot;p-rc_792cbe5727d46445-287&quot;&gt;Ushbu misolda:&lt;/p&gt;
  &lt;ul id=&quot;IjBW&quot;&gt;
    &lt;li id=&quot;v8zX&quot;&gt;&lt;code&gt;/&lt;/code&gt; (ildiz) bo&amp;#x27;limi &lt;strong&gt;95%&lt;/strong&gt; ga to&amp;#x27;lgan.&lt;/li&gt;
    &lt;li id=&quot;LaKV&quot;&gt;Qo&amp;#x27;shimcha &lt;code&gt;/var&lt;/code&gt; bo&amp;#x27;limi esa atigi &lt;strong&gt;36%&lt;/strong&gt; band.&lt;/li&gt;
    &lt;li id=&quot;g3Gq&quot;&gt;&lt;code&gt;/mnt/test&lt;/code&gt; manziliga &lt;strong&gt;2T&lt;/strong&gt; hajmli tashqi tarmoq drayvi (external network mount) ulangan.&lt;/li&gt;
    &lt;li id=&quot;a5dx&quot;&gt;&lt;code&gt;/var/ngx_pagespeed_cache&lt;/code&gt; manziliga &lt;strong&gt;500M&lt;/strong&gt; hajmli ramdisk (tmpfs) o&amp;#x27;rnatilgan.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;BE9u&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;Pm47&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;oIxV&quot;&gt;Mana 6-bobning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;Df5H&quot;&gt;6-bob: Tizim ma&amp;#x27;lumotlarini olish&lt;/h1&gt;
  &lt;p id=&quot;EKQF&quot;&gt;Tizimga oid turli ma&amp;#x27;lumotlarni yig&amp;#x27;ish uchun ishlatiladigan buyruqlar to&amp;#x27;plami.&lt;/p&gt;
  &lt;h3 id=&quot;oeqj&quot;&gt;6.1-bo&amp;#x27;lim: Protsessor (CPU), Xotira (Memory), Tarmoq va Disk (I/O operatsiyalari) haqida statistika&lt;/h3&gt;
  &lt;p id=&quot;lhpz&quot;&gt;Linux tizimining asosiy komponentlari haqida umumiy statistik ma&amp;#x27;lumotlarni olish uchun &lt;code&gt;stat&lt;/code&gt; oilasiga mansub buyruqlar juda foydali hisoblanadi.&lt;/p&gt;
  &lt;h4 id=&quot;sDD2&quot;&gt;CPU (Protsessor)&lt;/h4&gt;
  &lt;p id=&quot;lKcg&quot;&gt;Protsessorga oid statistikani olish uchun &lt;code&gt;mpstat&lt;/code&gt; buyrug&amp;#x27;idan foydalanishingiz mumkin. Quyidagi opsiyalar bilan natija yanada tushunarli bo&amp;#x27;ladi:&lt;/p&gt;
  &lt;p id=&quot;f77c&quot;&gt;&lt;code&gt;$ mpstat 2 10&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;nQjE&quot;&gt;&lt;em&gt;(Har 2 soniyada, jami 10 marta ma&amp;#x27;lumot chiqaradi)&lt;/em&gt;&lt;/p&gt;
  &lt;h4 id=&quot;fGaS&quot;&gt;Memory (Xotira)&lt;/h4&gt;
  &lt;p id=&quot;f4te&quot;&gt;Operativ xotiraning (RAM) qolgan qismini ko&amp;#x27;rish uchun &lt;code&gt;free&lt;/code&gt; buyrug&amp;#x27;ini hamma biladi, lekin barcha statistika, jumladan Kirish/Chiqish (I/O) operatsiyalarini ko&amp;#x27;rish uchun:&lt;/p&gt;
  &lt;p id=&quot;HxmJ&quot;&gt;&lt;code&gt;$ vmstat 2 10&lt;/code&gt;&lt;/p&gt;
  &lt;h4 id=&quot;dYFo&quot;&gt;Disk&lt;/h4&gt;
  &lt;p id=&quot;CIPd&quot;&gt;Disk operatsiyalari haqida real vaqt rejimida umumiy ma&amp;#x27;lumot olish uchun &lt;code&gt;iostat&lt;/code&gt; dan foydalanish mumkin:&lt;/p&gt;
  &lt;p id=&quot;YUMy&quot;&gt;&lt;code&gt;$ iostat -kx 2&lt;/code&gt;&lt;/p&gt;
  &lt;h4 id=&quot;caZC&quot;&gt;Network (Tarmoq)&lt;/h4&gt;
  &lt;p id=&quot;ZmhS&quot;&gt;Tarmoq xizmatlarida nima sodir bo&amp;#x27;layotganini ko&amp;#x27;rish uchun &lt;code&gt;netstat&lt;/code&gt; buyrug&amp;#x27;i qo&amp;#x27;llaniladi:&lt;/p&gt;
  &lt;ul id=&quot;BTot&quot;&gt;
    &lt;li id=&quot;tvQk&quot;&gt;&lt;code&gt;$ netstat -ntlp&lt;/code&gt; — ochiq TCP soketlari.&lt;/li&gt;
    &lt;li id=&quot;Vvgk&quot;&gt;&lt;code&gt;$ netstat -nulp&lt;/code&gt; — ochiq UDP soketlari.&lt;/li&gt;
    &lt;li id=&quot;qfvd&quot;&gt;&lt;code&gt;$ netstat -nxlp&lt;/code&gt; — ochiq Unix soketlari.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ghDB&quot;&gt;Real vaqt rejimida tarmoq trafigini kuzatish uchun:&lt;/p&gt;
  &lt;p id=&quot;ubaG&quot;&gt;&lt;code&gt;$ sudo iftop&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;5yEG&quot;&gt;&lt;strong&gt;Qo&amp;#x27;shimcha:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;A8Ss&quot;&gt;Barcha komponentlar bo&amp;#x27;yicha I/O operatsiyalariga oid statistikani real vaqtda yaratish uchun &lt;code&gt;dstat&lt;/code&gt; dan foydalanish mumkin. Ushbu vosita &lt;code&gt;vmstat&lt;/code&gt;, &lt;code&gt;iostat&lt;/code&gt; va &lt;code&gt;ifstat&lt;/code&gt; buyruqlari o&amp;#x27;rnini bosuvchi universal instrumentdir.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;iqsY&quot;&gt;6.2-bo&amp;#x27;lim: lscpu va lshw vositalaridan foydalanish&lt;/h3&gt;
  &lt;p id=&quot;7LzK&quot;&gt;&lt;code&gt;lscpu&lt;/code&gt; buyrug&amp;#x27;i protsessor haqida ma&amp;#x27;lumot olishning eng oson usulidir.&lt;/p&gt;
  &lt;p id=&quot;N8Gl&quot;&gt;&lt;code&gt;$ lscpu&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Sygp&quot;&gt;&lt;strong&gt;Natija namunasi:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;d6Uu&quot;&gt;
    &lt;li id=&quot;QwZj&quot;&gt;&lt;strong&gt;Architecture:&lt;/strong&gt; x86_64 (Tizim arxitekturasi)&lt;/li&gt;
    &lt;li id=&quot;6MUZ&quot;&gt;&lt;strong&gt;CPU(s):&lt;/strong&gt; 4 (Yadrolar soni)&lt;/li&gt;
    &lt;li id=&quot;kZWb&quot;&gt;&lt;strong&gt;Thread(s) per core:&lt;/strong&gt; 1 (Har bir yadro uchun oqimlar soni)&lt;/li&gt;
    &lt;li id=&quot;Fves&quot;&gt;&lt;strong&gt;Vendor ID:&lt;/strong&gt; GenuineIntel (Ishlab chiqaruvchi)&lt;/li&gt;
    &lt;li id=&quot;RL06&quot;&gt;&lt;strong&gt;CPU MHz:&lt;/strong&gt; 1998.000 (Chastota)&lt;/li&gt;
    &lt;li id=&quot;478u&quot;&gt;&lt;strong&gt;L1d/L1i/L2 cache:&lt;/strong&gt; (Kesh xotira o&amp;#x27;lchamlari)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;bPzS&quot;&gt;&lt;code&gt;lshw&lt;/code&gt; vositasi yordamida:&lt;/p&gt;
  &lt;p id=&quot;oPhE&quot;&gt;&lt;code&gt;$ lshw | grep cpu&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;mt89&quot;&gt;&lt;em&gt;(Protsessor modeli va uning texnik imkoniyatlarini ko&amp;#x27;rsatadi)&lt;/em&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;fOFl&quot;&gt;6.3-bo&amp;#x27;lim: Qurilmalar ro&amp;#x27;yxati (Hardware List)&lt;/h3&gt;
  &lt;p id=&quot;afee&quot;&gt;&lt;strong&gt;lshw&lt;/strong&gt; — kompyuterning apparat konfiguratsiyasi haqida batafsil ma&amp;#x27;lumot olish uchun kichik, ammo kuchli vositadir. U xotira konfiguratsiyasi, proshivka (firmware) versiyasi, ona plata (mainboard), CPU versiyasi va tezligi, kesh sozlamalari, shina (bus) tezligi va boshqalar haqida hisobot beradi.&lt;/p&gt;
  &lt;ul id=&quot;w0hq&quot;&gt;
    &lt;li id=&quot;i7IL&quot;&gt;&lt;code&gt;$ sudo lshw | less&lt;/code&gt; — ma&amp;#x27;lumotni varoqlab ko&amp;#x27;rish.&lt;/li&gt;
    &lt;li id=&quot;Hwa0&quot;&gt;&lt;code&gt;$ sudo lshw -html &amp;gt; myhardware.html&lt;/code&gt; — hisobotni HTML formatida saqlash.&lt;/li&gt;
    &lt;li id=&quot;c0py&quot;&gt;&lt;code&gt;$ sudo lshw -xml &amp;gt; myhardware.xml&lt;/code&gt; — hisobotni XML formatida saqlash.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;5Jke&quot;&gt;&lt;strong&gt;Boshqa qurilmalar ma&amp;#x27;lumotlari:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;GCf8&quot;&gt;
    &lt;li id=&quot;cQdr&quot;&gt;&lt;strong&gt;PCI ma&amp;#x27;lumotlari:&lt;/strong&gt; &lt;code&gt;$ lspci -tv&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;LB2Q&quot;&gt;&lt;strong&gt;USB ma&amp;#x27;lumotlari:&lt;/strong&gt; &lt;code&gt;$ lsusb -tv&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;KY3V&quot;&gt;&lt;strong&gt;BIOS ma&amp;#x27;lumotlari:&lt;/strong&gt; &lt;code&gt;$ dmidecode -q | less&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;L3Qj&quot;&gt;&lt;strong&gt;Disk haqida aniq ma&amp;#x27;lumot (masalan, sda diski):&lt;/strong&gt; &lt;code&gt;$ hdparm -i /dev/sda&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;i9a2&quot;&gt;&lt;strong&gt;Qo&amp;#x27;shimcha foydali buyruqlar:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;8Jlv&quot;&gt;
    &lt;li id=&quot;t3TZ&quot;&gt;&lt;code&gt;$ smartctl -A /dev/sda | grep Power_On_Hours&lt;/code&gt; — ushbu disk jami necha soat ishlaganini ko&amp;#x27;rsatadi.&lt;/li&gt;
    &lt;li id=&quot;Hocq&quot;&gt;&lt;code&gt;$ hdparm -tT /dev/sda&lt;/code&gt; — diskning o&amp;#x27;qish tezligini sinovdan o&amp;#x27;tkazadi.&lt;/li&gt;
    &lt;li id=&quot;lzXo&quot;&gt;&lt;code&gt;$ badblocks -s /dev/sda&lt;/code&gt; — diskda o&amp;#x27;qib bo&amp;#x27;lmaydigan (bad) bloklar bor-yo&amp;#x27;qligini tekshiradi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;FzLk&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;jDR3&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;uBBr&quot;&gt;6.4-bo&amp;#x27;lim: Protsessor (CPU) modeli va tezligi haqidagi ma&amp;#x27;lumotlarni topish&lt;/h3&gt;
  &lt;p id=&quot;NNbO&quot;&gt;Ubuntu va boshqa Linux tizimlarida protsessor haqida eng batafsil ma&amp;#x27;lumotni &lt;code&gt;/proc/cpuinfo&lt;/code&gt; virtual faylini o&amp;#x27;qish orqali olish mumkin.&lt;/p&gt;
  &lt;p id=&quot;QJtL&quot;&gt;&lt;strong&gt;Buyruq:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;MTDh&quot;&gt;&lt;code&gt;$ cat /proc/cpuinfo&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;TomD&quot;&gt;&lt;strong&gt;Natija namunasi (tahlili):&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;GER7&quot;&gt;
    &lt;li id=&quot;76K8&quot;&gt;&lt;strong&gt;processor : 0&lt;/strong&gt; — mantiqiy protsessor tartib raqami.&lt;/li&gt;
    &lt;li id=&quot;JnD0&quot;&gt;&lt;strong&gt;vendor_id : GenuineIntel&lt;/strong&gt; — ishlab chiqaruvchi identifikatori (Intel).&lt;/li&gt;
    &lt;li id=&quot;9SHr&quot;&gt;&lt;strong&gt;model name : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz&lt;/strong&gt; — protsessorning to&amp;#x27;liq nomi va nominal tezligi.&lt;/li&gt;
    &lt;li id=&quot;ga9S&quot;&gt;&lt;strong&gt;cpu MHz : 1596.000&lt;/strong&gt; — protsessorning ayni damdagi ishchi tezligi (quvvatni tejash rejimi tufayli nominal tezlikdan past bo&amp;#x27;lishi mumkin).&lt;/li&gt;
    &lt;li id=&quot;etDG&quot;&gt;&lt;strong&gt;cache size : 4096 KB&lt;/strong&gt; — kesh xotira hajmi.&lt;/li&gt;
    &lt;li id=&quot;DEuh&quot;&gt;&lt;strong&gt;cpu cores : 4&lt;/strong&gt; — fizik yadrolar soni.&lt;/li&gt;
    &lt;li id=&quot;sJqM&quot;&gt;&lt;strong&gt;flags&lt;/strong&gt; — protsessor tomonidan qo&amp;#x27;llab-quvvatlanadigan texnologiyalar (masalan, &lt;code&gt;vmx&lt;/code&gt; — virtuallashtirish, &lt;code&gt;sse&lt;/code&gt; — oqimli ma&amp;#x27;lumotlar ishlovi).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ldOj&quot;&gt;&lt;strong&gt;Protsessorlar (shu jumladan yadrolar) sonini sanash:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;KPor&quot;&gt;&lt;code&gt;$ grep -c processor /proc/cpuinfo&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;QUVB&quot;&gt;6.5-bo&amp;#x27;lim: Jarayonlarni monitoring qilish va ma&amp;#x27;lumot yig&amp;#x27;ish&lt;/h3&gt;
  &lt;p id=&quot;HDCm&quot;&gt;Linux hostida jarayonlarni (process) kuzatishning ikki xil usuli mavjud:&lt;/p&gt;
  &lt;h4 id=&quot;Sjeh&quot;&gt;1. Statik monitoring&lt;/h4&gt;
  &lt;p id=&quot;Q7T1&quot;&gt;Eng ko&amp;#x27;p qo&amp;#x27;llaniladigan buyruq — &lt;strong&gt;&lt;code&gt;ps&lt;/code&gt;&lt;/strong&gt; (process status). U ayni damda ishlayotgan jarayonlar va ularning identifikatsiya raqamlari (PID) haqida ma&amp;#x27;lumot beradi.&lt;/p&gt;
  &lt;p id=&quot;PTyK&quot;&gt;&lt;strong&gt;Foydali opsiyalar:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;8uFi&quot;&gt;
    &lt;li id=&quot;FPfU&quot;&gt;&lt;strong&gt;Ierarxiya ko&amp;#x27;rinishida ro&amp;#x27;yxatlash:&lt;/strong&gt;&lt;code&gt;$ ps -e -o pid,args --forest&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;mqOf&quot;&gt;&lt;strong&gt;CPU ishlatishi bo&amp;#x27;yicha saralash:&lt;/strong&gt;&lt;code&gt;$ ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed &amp;#x27;/^ 0.0 /d&amp;#x27;&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;WsWE&quot;&gt;&lt;strong&gt;Xotira (RAM) ishlatishi bo&amp;#x27;yicha saralash:&lt;/strong&gt;&lt;code&gt;$ ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;8zL6&quot;&gt;&lt;strong&gt;Maxsus jarayonning (masalan, firefox) barcha oqimlarini (threads) ko&amp;#x27;rish:&lt;/strong&gt;&lt;code&gt;$ ps -C firefox-bin -L -o pid,tid,pcpu,state&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;tikB&quot;&gt;&lt;strong&gt;Ochiq fayllarni tekshirish (&lt;code&gt;lsof&lt;/code&gt;):&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;13sG&quot;&gt;Jarayon qaysi fayl yoki yo&amp;#x27;llardan (path) foydalanayotganini ko&amp;#x27;rish uchun:&lt;/p&gt;
  &lt;p id=&quot;OR1p&quot;&gt;&lt;code&gt;$ lsof -p [PID]&lt;/code&gt; (bu yerda &lt;code&gt;$$&lt;/code&gt; — joriy shell identifikatori).&lt;/p&gt;
  &lt;h4 id=&quot;OztL&quot;&gt;2. Interaktiv (dinamik) monitoring&lt;/h4&gt;
  &lt;p id=&quot;9JOh&quot;&gt;Real vaqt rejimida ma&amp;#x27;lumotlarni yangilab turuvchi vositalar:&lt;/p&gt;
  &lt;ul id=&quot;Wgl8&quot;&gt;
    &lt;li id=&quot;EUpP&quot;&gt;&lt;strong&gt;&lt;code&gt;top&lt;/code&gt;&lt;/strong&gt;: Standart va eng mashhur dinamik monitoring buyrug&amp;#x27;i. Ma&amp;#x27;lumotlarni filtrlash va saralash uchun ko&amp;#x27;plab ichki opsiyalarga ega.&lt;/li&gt;
    &lt;li id=&quot;iXkW&quot;&gt;&lt;strong&gt;&lt;code&gt;htop&lt;/code&gt;&lt;/strong&gt;: &lt;code&gt;top&lt;/code&gt; buyrug&amp;#x27;ining zamonaviy va rangli muqobili. Unda jarayonlarni boshqarish (masalan, o&amp;#x27;chirish) ancha qulay.&lt;code&gt;$ htop -d 5&lt;/code&gt; &lt;em&gt;(har 5 soniyada yangilanadi)&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;spUh&quot;&gt;&lt;strong&gt;&lt;code&gt;atop&lt;/code&gt;&lt;/strong&gt;: Barcha harakatlarni log faylga yozib borish xususiyatiga ega (standart bo&amp;#x27;yicha har 600 soniyada).&lt;/li&gt;
    &lt;li id=&quot;ik2J&quot;&gt;&lt;strong&gt;Ixtisoslashgan vositalar:&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;sC52&quot;&gt;
      &lt;li id=&quot;hCCu&quot;&gt;&lt;code&gt;iotop&lt;/code&gt; — diskka kirish/chiqish (I/O) operatsiyalari monitoringi.&lt;/li&gt;
      &lt;li id=&quot;T1y6&quot;&gt;&lt;code&gt;iftop&lt;/code&gt; — tarmoq trafigi monitoringi.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;IBnQ&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;0eQ3&quot;&gt;Mana 7-bobning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;jgtD&quot;&gt;7-bob: ls buyrug&amp;#x27;i&lt;/h1&gt;
  &lt;h3 id=&quot;rxT8&quot;&gt;7.1-bo&amp;#x27;lim: ls buyrug&amp;#x27;i uchun opsiyalar&lt;/h3&gt;
  &lt;p id=&quot;1dC2&quot;&gt;&lt;code&gt;ls&lt;/code&gt; (list) buyrug&amp;#x27;ining barcha asosiy opsiyalari:&lt;/p&gt;
  &lt;ul id=&quot;nuoP&quot;&gt;
    &lt;li id=&quot;VdXV&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -a&lt;/code&gt;&lt;/strong&gt;: barcha fayllarni, jumladan &lt;code&gt;.&lt;/code&gt; bilan boshlanadigan yashirin fayllarni ham ro&amp;#x27;yxatlaydi.&lt;/li&gt;
    &lt;li id=&quot;nxeW&quot;&gt;&lt;strong&gt;&lt;code&gt;ls --color&lt;/code&gt;&lt;/strong&gt;: ro&amp;#x27;yxatni rangli ko&amp;#x27;rinishda chiqaradi &lt;code&gt;[=always/never/auto]&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;MpOn&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -d&lt;/code&gt;&lt;/strong&gt;: kataloglarning o&amp;#x27;zini ro&amp;#x27;yxatlaydi (ichidagilarini emas).&lt;/li&gt;
    &lt;li id=&quot;5xPY&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -F&lt;/code&gt;&lt;/strong&gt;: har bir ob&amp;#x27;ekt turiga qarab oxiriga maxsus belgi (&lt;code&gt;* / = &amp;gt; @ |&lt;/code&gt;) qo&amp;#x27;shadi.&lt;/li&gt;
    &lt;li id=&quot;TcZU&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -i&lt;/code&gt;&lt;/strong&gt;: fayllarning &lt;strong&gt;inode&lt;/strong&gt; (indeks tuguni) raqamini ko&amp;#x27;rsatadi.&lt;/li&gt;
    &lt;li id=&quot;E1Rg&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -l&lt;/code&gt;&lt;/strong&gt;: uzun formatda ro&amp;#x27;yxatlaydi — huquqlar, ega va vaqtni ko&amp;#x27;rsatadi.&lt;/li&gt;
    &lt;li id=&quot;urE0&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -la&lt;/code&gt;&lt;/strong&gt;: yashirin fayllar bilan birga uzun formatda ro&amp;#x27;yxatlaydi.&lt;/li&gt;
    &lt;li id=&quot;UH23&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -lh&lt;/code&gt;&lt;/strong&gt;: uzun formatda, fayl o&amp;#x27;lchamlarini o&amp;#x27;qishga qulay (KB, MB, GB) ko&amp;#x27;rinishda chiqaradi.&lt;/li&gt;
    &lt;li id=&quot;693E&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -ls&lt;/code&gt;&lt;/strong&gt;: uzun formatda fayl o&amp;#x27;lchamlari bilan birga chiqaradi.&lt;/li&gt;
    &lt;li id=&quot;6JTj&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -r&lt;/code&gt;&lt;/strong&gt;: teskari tartibda ro&amp;#x27;yxatlaydi.&lt;/li&gt;
    &lt;li id=&quot;RsKR&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -R&lt;/code&gt;&lt;/strong&gt;: kataloglar daraxtini rekursiv (ichma-ich) ravishda ro&amp;#x27;yxatlaydi.&lt;/li&gt;
    &lt;li id=&quot;lqyz&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -s&lt;/code&gt;&lt;/strong&gt;: har bir faylning hajmini ko&amp;#x27;rsatadi.&lt;/li&gt;
    &lt;li id=&quot;FAch&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -S&lt;/code&gt;&lt;/strong&gt;: fayl hajmi bo&amp;#x27;yicha saralaydi (kattasidan kichigiga).&lt;/li&gt;
    &lt;li id=&quot;xbhJ&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -t&lt;/code&gt;&lt;/strong&gt;: vaqt va sana bo&amp;#x27;yicha saralaydi.&lt;/li&gt;
    &lt;li id=&quot;lJcQ&quot;&gt;&lt;strong&gt;&lt;code&gt;ls -X&lt;/code&gt;&lt;/strong&gt;: fayl kengaytmasi (extension) bo&amp;#x27;yicha saralaydi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;HBBW&quot;&gt;7.2-bo&amp;#x27;lim: ls buyrug&amp;#x27;ining eng ko&amp;#x27;p ishlatiladigan opsiyalari&lt;/h3&gt;
  &lt;p id=&quot;rHL0&quot;&gt;&lt;code&gt;ls&lt;/code&gt; argumentlarsiz ishlatilganda joriy ishchi katalogdagi fayl va kataloglarni ko&amp;#x27;rsatadi. (Odatda &lt;code&gt;.&lt;/code&gt; bilan boshlanuvchi yashirin fayllarni ko&amp;#x27;rsatmaydi).&lt;/p&gt;
  &lt;p id=&quot;E2g0&quot;&gt;&lt;strong&gt;Misol:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;aMTx&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;oOQm&quot;&gt;user@ubuntu14:/usr$ ls
bin  games  include  lib  lib32  local  sbin  share  src
&lt;/pre&gt;
  &lt;p id=&quot;IViA&quot;&gt;&lt;strong&gt;Barcha fayllarni ko&amp;#x27;rish (yashirin fayl va papkalar bilan birga):&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;aRiB&quot;&gt;Buning uchun &lt;code&gt;ls -a&lt;/code&gt; yoki &lt;code&gt;ls --all&lt;/code&gt; ishlatiladi.&lt;/p&gt;
  &lt;p id=&quot;1gx1&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;QfAS&quot;&gt;user@ubuntu14:/usr$ ls -a
.  ..  bin  games  include  lib  lib32  local  sbin  share  src
&lt;/pre&gt;
  &lt;p id=&quot;vLYS&quot;&gt;&lt;strong&gt;Fayllar, papkalar va ramziy havolalarni (symbolic links) farqlash:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;kO3R&quot;&gt;Buning uchun &lt;code&gt;ls -F&lt;/code&gt; yoki &lt;code&gt;ls --classify&lt;/code&gt; ishlatiladi.&lt;/p&gt;
  &lt;p id=&quot;eEpW&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;CdCs&quot;&gt;user@ubuntu14:~$ ls -F
Desktop/  Downloads/  Music/  test* a_link@
&lt;/pre&gt;
  &lt;p id=&quot;jOG5&quot;&gt;Bu yerda quyidagi belgilar ob&amp;#x27;ekt turini bildiradi:&lt;/p&gt;
  &lt;ul id=&quot;uXKL&quot;&gt;
    &lt;li id=&quot;ymq7&quot;&gt;&lt;strong&gt;“/”&lt;/strong&gt; — katalog (papka).&lt;/li&gt;
    &lt;li id=&quot;G1eg&quot;&gt;&lt;strong&gt;“*”&lt;/strong&gt; — ishga tushiriladigan (executable) fayl.&lt;/li&gt;
    &lt;li id=&quot;ioCr&quot;&gt;&lt;strong&gt;“@”&lt;/strong&gt; — ramziy havola (symbolic link).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;t5hU&quot;&gt;&lt;strong&gt;Fayl va kataloglar haqida batafsil ma&amp;#x27;lumot olish:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;o2Pk&quot;&gt;Buning uchun &lt;code&gt;ls -l&lt;/code&gt; ishlatiladi.&lt;/p&gt;
  &lt;p id=&quot;QFNd&quot;&gt;Bash&lt;/p&gt;
  &lt;pre id=&quot;ASeZ&quot;&gt;user@ubuntu14:~/example$ ls -l
total 6464
-rw-r--r-- 1 user group      41 Dec 24 12:19 Z.txt
drwxr-xr-x 2 user group    4096 Dec 24 12:00 a_directory
lrwxrwxrwx 1 user group       6 Dec 24 12:04 a_link -&amp;gt; a_file
-rw-r----- 1 user group 6586816 Dec 24 12:07 big.zip
&lt;/pre&gt;
  &lt;p id=&quot;Pcfg&quot;&gt;&lt;strong&gt;Ushbu misolning tahlili:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol id=&quot;2pN6&quot;&gt;
    &lt;li id=&quot;YaPd&quot;&gt;&lt;strong&gt;total 6464&lt;/strong&gt;: Tarkibdagi barcha narsalarning umumiy hajmi 6464 KB.&lt;/li&gt;
    &lt;li id=&quot;uIya&quot;&gt;&lt;strong&gt;Birinchi belgi&lt;/strong&gt;: Ob&amp;#x27;ekt turi (masalan, &lt;code&gt;d&lt;/code&gt; — katalog, &lt;code&gt;l&lt;/code&gt; — havola, &lt;code&gt;-&lt;/code&gt; — oddiy fayl).&lt;/li&gt;
    &lt;li id=&quot;3fjK&quot;&gt;&lt;strong&gt;Keyingi 9 ta belgi&lt;/strong&gt;: Foydalanuvchi (user), guruh (group) va boshqalar uchun ruxsatlar.&lt;/li&gt;
    &lt;li id=&quot;6Nez&quot;&gt;&lt;strong&gt;Raqam&lt;/strong&gt;: Hard linklar (qattiq havolalar) soni.&lt;/li&gt;
    &lt;li id=&quot;6ORD&quot;&gt;&lt;strong&gt;Ega va Guruh&lt;/strong&gt;: Fayl egasining nomi va guruhi.&lt;/li&gt;
    &lt;li id=&quot;VisU&quot;&gt;&lt;strong&gt;O&amp;#x27;lcham&lt;/strong&gt;: Baytlarda ko&amp;#x27;rsatilgan hajm. &lt;code&gt;-h&lt;/code&gt; opsiyasi qo&amp;#x27;shilsa, masalan &lt;code&gt;6586816&lt;/code&gt; soni &lt;code&gt;6.3M&lt;/code&gt; ko&amp;#x27;rinishida chiqadi.&lt;/li&gt;
    &lt;li id=&quot;l70h&quot;&gt;&lt;strong&gt;Vaqt tamg&amp;#x27;asi&lt;/strong&gt;: Odatda fayl oxirgi marta o&amp;#x27;zgartirilgan vaqt.&lt;/li&gt;
    &lt;li id=&quot;tXHG&quot;&gt;&lt;strong&gt;Nomi&lt;/strong&gt;: Fayl yoki katalog nomi. Havolalar (&lt;code&gt;link&lt;/code&gt;) o&amp;#x27;zi yo&amp;#x27;naltirilgan asl faylni ham ko&amp;#x27;rsatadi.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;S1pf&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;zd5q&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;M3Qi&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;sXoJ&quot;&gt;Mana 8-bobning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;BziU&quot;&gt;8-bob: &amp;#x27;tar&amp;#x27; buyrug&amp;#x27;i yordamida fayllarni siqish (arxivlash)&lt;/h1&gt;
  &lt;h3 id=&quot;lZ6u&quot;&gt;Umumiy opsiyalar&lt;/h3&gt;
  &lt;ul id=&quot;COFb&quot;&gt;
    &lt;li id=&quot;QMEP&quot;&gt;&lt;strong&gt;&lt;code&gt;-c, --create&lt;/code&gt;&lt;/strong&gt;: Yangi arxiv yaratish.&lt;/li&gt;
    &lt;li id=&quot;J0nz&quot;&gt;&lt;strong&gt;&lt;code&gt;-x, --extract&lt;/code&gt;&lt;/strong&gt;: Arxivdan fayllarni ajratib olish (chiqarish).&lt;/li&gt;
    &lt;li id=&quot;jyPc&quot;&gt;&lt;strong&gt;&lt;code&gt;-t, --list&lt;/code&gt;&lt;/strong&gt;: Arxiv tarkibini ro&amp;#x27;yxat ko&amp;#x27;rinishida ko&amp;#x27;rsatish.&lt;/li&gt;
    &lt;li id=&quot;yAS0&quot;&gt;&lt;strong&gt;&lt;code&gt;-f, --file=ARCHIVE&lt;/code&gt;&lt;/strong&gt;: ARCHIVE arxiv fayli yoki katalogidan foydalanish.&lt;/li&gt;
    &lt;li id=&quot;6rHD&quot;&gt;&lt;strong&gt;&lt;code&gt;-v, --verbose&lt;/code&gt;&lt;/strong&gt;: Qayta ishlanayotgan fayllarni batafsil ro&amp;#x27;yxat qilish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;Wn9X&quot;&gt;Siqish (Compression) opsiyalari&lt;/h3&gt;
  &lt;ul id=&quot;jCF5&quot;&gt;
    &lt;li id=&quot;MGzF&quot;&gt;&lt;strong&gt;&lt;code&gt;-a, --auto-compress&lt;/code&gt;&lt;/strong&gt;: Siqish dasturini aniqlash uchun arxiv kengaytmasidan (suffix) foydalanish.&lt;/li&gt;
    &lt;li id=&quot;4MgN&quot;&gt;&lt;strong&gt;&lt;code&gt;-j, --bzip2&lt;/code&gt;&lt;/strong&gt;: Arxivni &lt;code&gt;bzip2&lt;/code&gt; filtri orqali o&amp;#x27;tkazish.&lt;/li&gt;
    &lt;li id=&quot;dEf4&quot;&gt;&lt;strong&gt;&lt;code&gt;-J, --xz, --lzma&lt;/code&gt;&lt;/strong&gt;: Arxivni &lt;code&gt;xz&lt;/code&gt; filtri orqali o&amp;#x27;tkazish.&lt;/li&gt;
    &lt;li id=&quot;ySbi&quot;&gt;&lt;strong&gt;&lt;code&gt;-z, --gzip&lt;/code&gt;&lt;/strong&gt;: Arxivni &lt;code&gt;gzip&lt;/code&gt; filtri orqali o&amp;#x27;tkazish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;GAyV&quot;&gt;8.1-bo&amp;#x27;lim: Katalogni siqish&lt;/h3&gt;
  &lt;p id=&quot;aGQz&quot;&gt;Katalogni oddiy arxivlash (siqmasdan):&lt;/p&gt;
  &lt;p id=&quot;Ed9N&quot;&gt;&lt;code&gt;tar -cf ./arxivim.tar ./papkam/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;mWTx&quot;&gt;Fayl va kataloglar arxivga qo&amp;#x27;shilayotganini batafsil ko&amp;#x27;rish uchun &lt;code&gt;-v&lt;/code&gt; opsiyasidan foydalaning:&lt;/p&gt;
  &lt;p id=&quot;PbRE&quot;&gt;&lt;code&gt;tar -cvf ./arxivim.tar ./papkam/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jlYa&quot;&gt;Katalogni &lt;strong&gt;&amp;#x27;gzip&amp;#x27;&lt;/strong&gt; yordamida siqib arxivlash uchun &lt;code&gt;-z&lt;/code&gt; opsiyasini ishlatishingiz kerak:&lt;/p&gt;
  &lt;p id=&quot;ssUV&quot;&gt;&lt;code&gt;tar -czf ./arxivim.tar.gz ./papkam/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;7xUK&quot;&gt;Shuningdek, &lt;code&gt;-j&lt;/code&gt; opsiyasi orqali arxivni &lt;strong&gt;&amp;#x27;bzip2&amp;#x27;&lt;/strong&gt; bilan siqishingiz mumkin:&lt;/p&gt;
  &lt;p id=&quot;8jwx&quot;&gt;&lt;code&gt;tar -cjf ./arxivim.tar.bz2 ./papkam/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;KBIZ&quot;&gt;Yoki &lt;code&gt;-J&lt;/code&gt; opsiyasi yordamida &lt;strong&gt;&amp;#x27;xz&amp;#x27;&lt;/strong&gt; bilan siqish:&lt;/p&gt;
  &lt;p id=&quot;RPOz&quot;&gt;&lt;code&gt;tar -cJf ./arxivim.tar.xz ./papkam/&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;SgNn&quot;&gt;8.2-bo&amp;#x27;lim: Arxivdan katalogni ajratib olish (Extract)&lt;/h3&gt;
  &lt;p id=&quot;4kEu&quot;&gt;Arxivni joriy joyga ajratib olish namunasi:&lt;/p&gt;
  &lt;p id=&quot;jcTJ&quot;&gt;&lt;code&gt;tar -xf arxiv-nomi.tar&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;g0iJ&quot;&gt;Agar arxivni ma&amp;#x27;lum bir manzildagi katalogga ajratib olmoqchi bo&amp;#x27;lsangiz:&lt;/p&gt;
  &lt;p id=&quot;vK2k&quot;&gt;&lt;code&gt;tar -xf arxiv-nomi.tar -C ./katalog/manzil&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;fS6v&quot;&gt;8.3-bo&amp;#x27;lim: Arxiv tarkibini ko&amp;#x27;rish&lt;/h3&gt;
  &lt;p id=&quot;t9J1&quot;&gt;Arxiv faylini ochmasdan (chiqarmasdan) uning tarkibini ro&amp;#x27;yxat qilish:&lt;/p&gt;
  &lt;p id=&quot;cnIV&quot;&gt;&lt;code&gt;tar -tf arxiv.tar.gz&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;1f45&quot;&gt;&lt;strong&gt;Natija namunasi:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;CWSY&quot;&gt;&lt;code&gt;Arxivdagi-Papka/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;8aJL&quot;&gt;&lt;code&gt;Arxivdagi-Papka/fayl1&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;vREf&quot;&gt;&lt;code&gt;Arxivdagi-Papka/Boshqa-Papka/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;dAyU&quot;&gt;&lt;code&gt;Arxivdagi-Papka/Boshqa-Papka/fayl2&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;juwu&quot;&gt;8.4-bo&amp;#x27;lim: Arxiv tarkibini batafsil ro&amp;#x27;yxat qilish&lt;/h3&gt;
  &lt;p id=&quot;KLzq&quot;&gt;Tarkibni ro&amp;#x27;yxatlash uchun misol:&lt;/p&gt;
  &lt;p id=&quot;Q8KQ&quot;&gt;&lt;code&gt;tar -tvf arxiv.tar&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;osCW&quot;&gt;Ro&amp;#x27;yxatlash uchun &lt;code&gt;-t&lt;/code&gt; opsiyasi ishlatiladi. &lt;code&gt;tar.gz&lt;/code&gt; arxivining tarkibini ko&amp;#x27;rish uchun yana &lt;code&gt;-z&lt;/code&gt; opsiyasidan foydalanish lozim:&lt;/p&gt;
  &lt;p id=&quot;21Ge&quot;&gt;&lt;code&gt;tar -tzvf arxiv.tar.gz&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;SCvJ&quot;&gt;8.5-bo&amp;#x27;lim: Bir yoki bir nechta katalogni istisno qilgan holda siqish&lt;/h3&gt;
  &lt;p id=&quot;mhmx&quot;&gt;Agar siz katalogni arxivlamoqchi bo&amp;#x27;lsangiz-u, lekin arxiv ichiga bir yoki bir nechta quyi papkalar kirmasligini xohlasangiz, &lt;code&gt;--exclude&lt;/code&gt; opsiyasidan foydalanasiz.&lt;/p&gt;
  &lt;p id=&quot;wUN3&quot;&gt;&lt;code&gt;tar -cf arxiv.tar ./mening-papkam/ --exclude=&amp;quot;mening-papkam/sub1&amp;quot; --exclude=&amp;quot;mening-papkam/sub3&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;uVC1&quot;&gt;Ushbu tuzilmada:&lt;/p&gt;
  &lt;p id=&quot;p6FS&quot;&gt;&lt;code&gt;mening-papkam/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;a15V&quot;&gt;&lt;code&gt; sub1/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Ub4h&quot;&gt;&lt;code&gt; sub2/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;6Jus&quot;&gt;&lt;code&gt; sub3/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;z3Z6&quot;&gt;Natijada arxiv ichida faqat quyidagilar qoladi:&lt;/p&gt;
  &lt;p id=&quot;L8HY&quot;&gt;&lt;code&gt;./arxiv.tar&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;JnGh&quot;&gt;&lt;code&gt;mening-papkam/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;BIWR&quot;&gt;&lt;code&gt; sub2/&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;yuD8&quot;&gt;8.6-bo&amp;#x27;lim: Yetakchi komponentlarni olib tashlash (Strip components)&lt;/h3&gt;
  &lt;p id=&quot;GPfG&quot;&gt;Arxivdan chiqarishda ma&amp;#x27;lum miqdordagi yetakchi (boshlang&amp;#x27;ich) kataloglarni olib tashlash uchun &lt;code&gt;--strip-components&lt;/code&gt; opsiyasidan foydalaniladi:&lt;/p&gt;
  &lt;p id=&quot;zbow&quot;&gt;&lt;code&gt;--strip-components=RAQAM&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;CObw&quot;&gt;&lt;em&gt;(Arxivdan chiqarishda fayl nomlaridan RAQAM miqdoricha yetakchi kataloglarni olib tashlaydi)&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;atZR&quot;&gt;Masalan, arxiv ichidagi eng yuqori (birinchi) katalogni olib tashlab, faqat uning ichidagilarini chiqarish uchun:&lt;/p&gt;
  &lt;p id=&quot;4WDq&quot;&gt;&lt;code&gt;tar -xf --strip-components=1 arxiv-nomi.tar&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;up1r&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;5E9E&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;ECMh&quot;&gt;Mana 9-bobning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;Sy3T&quot;&gt;9-bob: Xizmatlar (Services)&lt;/h1&gt;
  &lt;h3 id=&quot;FSt2&quot;&gt;9.1-bo&amp;#x27;lim: Ubuntuda ishlayotgan xizmatlar ro&amp;#x27;yxatini ko&amp;#x27;rish&lt;/h3&gt;
  &lt;p id=&quot;Nohf&quot;&gt;Tizimingizdagi xizmatlar ro&amp;#x27;yxatini olish uchun quyidagi buyruqni ishga tushirishingiz mumkin:&lt;/p&gt;
  &lt;p id=&quot;vstV&quot;&gt;&lt;code&gt;service --status-all&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;kkZW&quot;&gt;&lt;code&gt;service --status-all&lt;/code&gt; buyrug&amp;#x27;ining natijasi &lt;strong&gt;System V&lt;/strong&gt; tomonidan boshqariladigan xizmatlar holatini ko&amp;#x27;rsatadi:&lt;/p&gt;
  &lt;ul id=&quot;pTTe&quot;&gt;
    &lt;li id=&quot;21Z1&quot;&gt;&lt;strong&gt;&lt;code&gt;+&lt;/code&gt;&lt;/strong&gt; belgisi — xizmat ishlayotganini (running) bildiradi.&lt;/li&gt;
    &lt;li id=&quot;VJXj&quot;&gt;&lt;strong&gt;&lt;code&gt;-&lt;/code&gt;&lt;/strong&gt; belgisi — xizmat to&amp;#x27;xtatilganini (stopped) bildiradi.&lt;/li&gt;
    &lt;li id=&quot;bX3u&quot;&gt;&lt;strong&gt;&lt;code&gt;?&lt;/code&gt;&lt;/strong&gt; belgisi — xizmat holati noma&amp;#x27;lumligini bildiradi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;DKhY&quot;&gt;Buni &lt;code&gt;service XIZMAT_NOMI status&lt;/code&gt; buyrug&amp;#x27;ini ishga tushirish orqali ham tekshirib ko&amp;#x27;rishingiz mumkin.&lt;/p&gt;
  &lt;p id=&quot;C1Ln&quot;&gt;Ba&amp;#x27;zi xizmatlar &lt;strong&gt;Upstart&lt;/strong&gt; tomonidan boshqariladi. Barcha Upstart xizmatlarining holatini &lt;code&gt;sudo initctl list&lt;/code&gt; buyrug&amp;#x27;i bilan tekshirish mumkin. Upstart tomonidan boshqariladigan har qanday xizmat &lt;code&gt;service --status-all&lt;/code&gt; ro&amp;#x27;yxatida ham ko&amp;#x27;rinadi, lekin u &lt;code&gt;?&lt;/code&gt; belgisi bilan belgilanadi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;FycP&quot;&gt;9.2-bo&amp;#x27;lim: Systemd orqali xizmatlarni boshqarish&lt;/h3&gt;
  &lt;p id=&quot;94sP&quot;&gt;&lt;strong&gt;Systemd&lt;/strong&gt; — zamonaviy Linux distributivlarida xizmatlar va tizim resurslarini boshqarish uchun ishlatiladigan standart tizimdir.&lt;/p&gt;
  &lt;h4 id=&quot;Tjrh&quot;&gt;Xizmatlarni ro&amp;#x27;yxatga olish&lt;/h4&gt;
  &lt;ul id=&quot;eg8P&quot;&gt;
    &lt;li id=&quot;CETC&quot;&gt;&lt;code&gt;systemctl&lt;/code&gt; — Ishlayotgan barcha xizmatlarni ro&amp;#x27;yxatga oladi.&lt;/li&gt;
    &lt;li id=&quot;Nsae&quot;&gt;&lt;code&gt;systemctl --failed&lt;/code&gt; — Ishlamay qolgan (xatolikka uchragan) xizmatlarni ko&amp;#x27;rsatadi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;0gUH&quot;&gt;Nishonlarni (Targets) boshqarish (SysV dagi Runlevel-larga o&amp;#x27;xshash)&lt;/h4&gt;
  &lt;ul id=&quot;0yQ7&quot;&gt;
    &lt;li id=&quot;omCV&quot;&gt;&lt;code&gt;systemctl get-default&lt;/code&gt; — Tizimingiz uchun standart yuklanish nishonini (default target) topadi.&lt;/li&gt;
    &lt;li id=&quot;Rmxr&quot;&gt;&lt;code&gt;systemctl set-default &amp;lt;nishon-nomi&amp;gt;&lt;/code&gt; — Tizim uchun standart yuklanish nishonini o&amp;#x27;rnatadi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;9yQC&quot;&gt;Xizmatlarni ish jarayonida (runtime) boshqarish&lt;/h4&gt;
  &lt;ul id=&quot;48Ip&quot;&gt;
    &lt;li id=&quot;KQAg&quot;&gt;&lt;code&gt;systemctl start [xizmat-nomi]&lt;/code&gt; — Xizmatni ishga tushirish.&lt;/li&gt;
    &lt;li id=&quot;Fr0e&quot;&gt;&lt;code&gt;systemctl stop [xizmat-nomi]&lt;/code&gt; — Xizmatni to&amp;#x27;xtatish.&lt;/li&gt;
    &lt;li id=&quot;JmT8&quot;&gt;&lt;code&gt;systemctl restart [xizmat-nomi]&lt;/code&gt; — Xizmatni qayta ishga tushirish.&lt;/li&gt;
    &lt;li id=&quot;pLIE&quot;&gt;&lt;code&gt;systemctl reload [xizmat-nomi]&lt;/code&gt; — Xizmatdan o&amp;#x27;z sozlamalarini (konfiguratsiyasini) qayta yuklashni so&amp;#x27;rash.&lt;/li&gt;
    &lt;li id=&quot;Ouky&quot;&gt;&lt;code&gt;systemctl status [xizmat-nomi]&lt;/code&gt; — Xizmatning joriy holatini ko&amp;#x27;rsatish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;so4R&quot;&gt;Xizmatlarning avtomatik ishga tushishini boshqarish&lt;/h4&gt;
  &lt;ul id=&quot;tiUI&quot;&gt;
    &lt;li id=&quot;zVVo&quot;&gt;&lt;code&gt;systemctl is-enabled [xizmat-nomi]&lt;/code&gt; — Xizmat tizim yuklanayotgan vaqtda (boot) yoqilganligini tekshirish.&lt;/li&gt;
    &lt;li id=&quot;nGd0&quot;&gt;&lt;code&gt;systemctl is-active [xizmat-nomi]&lt;/code&gt; — Xizmat ayni damda faol (ishlayotgan) ekanligini tekshirish.&lt;/li&gt;
    &lt;li id=&quot;utCl&quot;&gt;&lt;code&gt;systemctl enable [xizmat-nomi]&lt;/code&gt; — Xizmatni tizim yuklanayotganda avtomatik ishga tushadigan qilish.&lt;/li&gt;
    &lt;li id=&quot;3kdX&quot;&gt;&lt;code&gt;systemctl disable [xizmat-nomi]&lt;/code&gt; — Avtomatik ishga tushishni o&amp;#x27;chirish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;Xfz6&quot;&gt;Xizmatlarni niqoblash (Masking)&lt;/h4&gt;
  &lt;ul id=&quot;Rr2B&quot;&gt;
    &lt;li id=&quot;W5Pg&quot;&gt;&lt;code&gt;systemctl mask [xizmat-nomi]&lt;/code&gt; — Xizmatni niqoblash (bu xizmatni xatolik bilan ishga tushirib yuborishni imkonsiz qiladi).&lt;/li&gt;
    &lt;li id=&quot;odrv&quot;&gt;&lt;code&gt;systemctl unmask [xizmat-nomi]&lt;/code&gt; — Xizmatni niqobdan chiqarish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;udj4&quot;&gt;Systemd-ni qayta yuklash&lt;/h4&gt;
  &lt;ul id=&quot;Zet6&quot;&gt;
    &lt;li id=&quot;iSqE&quot;&gt;&lt;code&gt;systemctl daemon-reload&lt;/code&gt; — Yangi yaratilgan yoki o&amp;#x27;zgartirilgan unit fayllarni (xizmat sozlamalarini) tizimga qayta tanitish uchun ishlatiladi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;qOYt&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;I56X&quot;&gt;Mana 10-bobning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;KJu6&quot;&gt;10-bob: Xizmatlarni boshqarish (Managing Services)&lt;/h1&gt;
  &lt;h3 id=&quot;kS3H&quot;&gt;10.1-bo&amp;#x27;lim: Xizmat bilan bog&amp;#x27;liq muammoni tashxislash&lt;/h3&gt;
  &lt;p id=&quot;tp87&quot;&gt;&lt;strong&gt;Systemd&lt;/strong&gt; ishlatadigan tizimlarda (masalan, Fedora 15+, Ubuntu 15.04+ (Server va Desktop), RHEL/CentOS 7+):&lt;/p&gt;
  &lt;p id=&quot;hvOH&quot;&gt;&lt;code&gt;systemctl status [xizmat_nomi]&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;JiHK&quot;&gt;Bu yerda &lt;code&gt;[xizmat_nomi]&lt;/code&gt; — tekshirilayotgan xizmat; masalan: &lt;code&gt;systemctl status sshd&lt;/code&gt;. Ushbu buyruq xizmat haqidagi asosiy holat ma&amp;#x27;lumotlarini va loglarga yozilgan so&amp;#x27;nggi xatoliklarni ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;p id=&quot;6lbM&quot;&gt;Xatoliklarni chuqurroq o&amp;#x27;rganish uchun &lt;strong&gt;&lt;code&gt;journalctl&lt;/code&gt;&lt;/strong&gt; buyrug&amp;#x27;idan foydalanish mumkin. Masalan, &lt;code&gt;journalctl -xe&lt;/code&gt; buyrug&amp;#x27;i tizim jurnalidagi oxirgi 1000 ta qaydni peydjerga (masalan, &lt;code&gt;less&lt;/code&gt;) yuklaydi va to&amp;#x27;g&amp;#x27;ridan-to&amp;#x27;g&amp;#x27;ri oxirgi qatorlarga o&amp;#x27;tadi. Shuningdek, &lt;code&gt;journalctl -f&lt;/code&gt; buyrug&amp;#x27;i yordamida log xabarlarini real vaqt rejimida kuzatib borish mumkin.&lt;/p&gt;
  &lt;p id=&quot;M15v&quot;&gt;Muayyan bir xizmatga tegishli loglarni ko&amp;#x27;rish uchun &lt;code&gt;-t&lt;/code&gt; bayrog&amp;#x27;idan foydalaning:&lt;/p&gt;
  &lt;p id=&quot;ZxE6&quot;&gt;&lt;code&gt;journalctl -f -t sshd&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;5H9Z&quot;&gt;Boshqa foydali opsiyalar:&lt;/p&gt;
  &lt;ul id=&quot;7t5Q&quot;&gt;
    &lt;li id=&quot;c3yQ&quot;&gt;&lt;strong&gt;&lt;code&gt;-p&lt;/code&gt;&lt;/strong&gt;: ustuvorlik (priority) bo&amp;#x27;yicha saralash (masalan, &lt;code&gt;-p warnings&lt;/code&gt; faqat ogohlantirish va undan yuqori xatolarni ko&amp;#x27;rsatadi).&lt;/li&gt;
    &lt;li id=&quot;Rka1&quot;&gt;&lt;strong&gt;&lt;code&gt;-b&lt;/code&gt;&lt;/strong&gt;: oxirgi yuklanishdan (boot) boshlab ko&amp;#x27;rish.&lt;/li&gt;
    &lt;li id=&quot;yvWy&quot;&gt;&lt;strong&gt;&lt;code&gt;-S&lt;/code&gt;&lt;/strong&gt;: belgilangan vaqtdan (since) boshlab ko&amp;#x27;rish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;6CD6&quot;&gt;&lt;strong&gt;Misol:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;OIN0&quot;&gt;&lt;code&gt;journalctl -p err -S yesterday&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;UmCv&quot;&gt;&lt;em&gt;(Kechadan beri xatolik (error) sifatida qayd etilgan barcha hodisalarni ko&amp;#x27;rsatadi).&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;rX9k&quot;&gt;Agar &lt;code&gt;journalctl&lt;/code&gt; mavjud bo&amp;#x27;lmasa yoki tizim jurnalidan foydalanmaydigan ilovalar logini kuzatayotgan bo&amp;#x27;lsangiz, faylning so&amp;#x27;nggi bir necha qatorini ko&amp;#x27;rish uchun &lt;strong&gt;&lt;code&gt;tail&lt;/code&gt;&lt;/strong&gt; buyrug&amp;#x27;idan foydalaniladi. &lt;code&gt;tail&lt;/code&gt; uchun foydali bayroq — &lt;code&gt;-f&lt;/code&gt; (&amp;quot;follow&amp;quot;), u faylga yangi ma&amp;#x27;lumotlar qo&amp;#x27;shilishi bilan ularni ko&amp;#x27;rsatib boradi.&lt;/p&gt;
  &lt;p id=&quot;WPXp&quot;&gt;Tizimdagi aksariyat xizmatlarning xabarlarini ko&amp;#x27;rish uchun:&lt;/p&gt;
  &lt;p id=&quot;hAaC&quot;&gt;&lt;code&gt;tail -f /var/log/messages&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;uBwE&quot;&gt;Yoki xizmat imtiyozli (privileged) bo&amp;#x27;lsa va maxfiy ma&amp;#x27;lumotlarni yozishi mumkin bo&amp;#x27;lsa:&lt;/p&gt;
  &lt;p id=&quot;Suvh&quot;&gt;&lt;code&gt;tail -f /var/log/secure&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;YYGJ&quot;&gt;Ba&amp;#x27;zi xizmatlarning shaxsiy log fayllari bor. Masalan, Linux audit demoni bo&amp;#x27;lmish &lt;code&gt;auditd&lt;/code&gt; o&amp;#x27;z loglarini &lt;code&gt;/var/log/audit/&lt;/code&gt; papkasida saqlaydi. Agar xizmatingiz natijasini &lt;code&gt;/var/log/messages&lt;/code&gt; ichida ko&amp;#x27;rmasangiz, &lt;code&gt;/var/log/&lt;/code&gt; katalogidan xizmatga xos shaxsiy loglarni qidirib ko&amp;#x27;ring.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;KRe4&quot;&gt;10.2-bo&amp;#x27;lim: Xizmatlarni ishga tushirish va to&amp;#x27;xtatish&lt;/h3&gt;
  &lt;p id=&quot;3md6&quot;&gt;&lt;strong&gt;System-V uslubidagi init skriptlarini ishlatadigan tizimlarda (masalan, RHEL/CentOS 6):&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;vthk&quot;&gt;
    &lt;li id=&quot;tb2i&quot;&gt;&lt;code&gt;service &amp;lt;xizmat&amp;gt; start&lt;/code&gt; — Ishga tushirish.&lt;/li&gt;
    &lt;li id=&quot;leyv&quot;&gt;&lt;code&gt;service &amp;lt;xizmat&amp;gt; stop&lt;/code&gt; — To&amp;#x27;xtatish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Fqre&quot;&gt;&lt;strong&gt;Systemd ishlatadigan tizimlarda (masalan, Ubuntu 15.04+, RHEL/CentOS 7+):&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;kzPt&quot;&gt;
    &lt;li id=&quot;Rc7t&quot;&gt;&lt;code&gt;systemctl start &amp;lt;xizmat&amp;gt;&lt;/code&gt; — Ishga tushirish (masalan: &lt;code&gt;systemctl start dnsmasq&lt;/code&gt;).&lt;/li&gt;
    &lt;li id=&quot;V0Bg&quot;&gt;&lt;code&gt;systemctl stop &amp;lt;xizmat&amp;gt;&lt;/code&gt; — To&amp;#x27;xtatish (masalan: &lt;code&gt;systemctl stop dnsmasq&lt;/code&gt;).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;kmJS&quot;&gt;10.3-bo&amp;#x27;lim: Xizmat holatini olish (Getting status)&lt;/h3&gt;
  &lt;p id=&quot;N25D&quot;&gt;&lt;strong&gt;System-V uslubidagi tizimlarda (masalan, RHEL/CentOS 6):&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;5WSe&quot;&gt;&lt;code&gt;service &amp;lt;xizmat&amp;gt; status&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;zrPT&quot;&gt;&lt;strong&gt;Systemd ishlatadigan tizimlarda (masalan, Ubuntu 15.04+, RHEL/CentOS 7+):&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;OwGD&quot;&gt;&lt;code&gt;systemctl status &amp;lt;xizmat&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ETRV&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;YI63&quot;&gt;Mana 11-bobning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;rwhQ&quot;&gt;11-bob: Foydalanuvchilarni tahrirlash (Modifying Users)&lt;/h1&gt;
  &lt;h3 id=&quot;oCnX&quot;&gt;Parametrlar tafsiloti (Parameter Details)&lt;/h3&gt;
  &lt;ul id=&quot;tQZB&quot;&gt;
    &lt;li id=&quot;WCiJ&quot;&gt;&lt;strong&gt;username (foydalanuvchi nomi)&lt;/strong&gt;: Foydalanuvchining nomi. Katta harflardan foydalanmang, nuqta ishlatmang, nom tire (&lt;code&gt;-&lt;/code&gt;) bilan tugamasligi kerak, tarkibida ikki nuqta (&lt;code&gt;:&lt;/code&gt;) va maxsus belgilar bo&amp;#x27;lmasligi lozim. Shuningdek, raqam bilan boshlanishi mumkin emas.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;3roM&quot;&gt;11.1-bo&amp;#x27;lim: O&amp;#x27;z shaxsiy parolingizni o&amp;#x27;rnatish&lt;/h3&gt;
  &lt;p id=&quot;Lxd2&quot;&gt;O&amp;#x27;zingiz foydalanayotgan akkaunt parolini o&amp;#x27;zgartirish yoki o&amp;#x27;rnatish uchun quyidagi buyruqni kiriting:&lt;/p&gt;
  &lt;p id=&quot;aGSl&quot;&gt;&lt;code&gt;passwd&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;neRl&quot;&gt;11.2-bo&amp;#x27;lim: Boshqa foydalanuvchining parolini o&amp;#x27;rnatish&lt;/h3&gt;
  &lt;p id=&quot;Mvie&quot;&gt;Buning uchun buyruqni &lt;strong&gt;root&lt;/strong&gt; (administrator) huquqi bilan bajaring:&lt;/p&gt;
  &lt;p id=&quot;4QTZ&quot;&gt;&lt;code&gt;passwd username&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;L0An&quot;&gt;11.3-bo&amp;#x27;lim: Foydalanuvchi qo&amp;#x27;shish&lt;/h3&gt;
  &lt;p id=&quot;QpIN&quot;&gt;Tizimga yangi foydalanuvchi qo&amp;#x27;shish uchun quyidagilarni &lt;strong&gt;root&lt;/strong&gt; sifatida bajaring:&lt;/p&gt;
  &lt;p id=&quot;fdob&quot;&gt;&lt;code&gt;useradd username&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;OMaJ&quot;&gt;11.4-bo&amp;#x27;lim: Foydalanuvchini o&amp;#x27;chirish&lt;/h3&gt;
  &lt;p id=&quot;JIUn&quot;&gt;Foydalanuvchini tizimdan olib tashlash uchun quyidagilarni &lt;strong&gt;root&lt;/strong&gt; sifatida bajaring:&lt;/p&gt;
  &lt;p id=&quot;GFT3&quot;&gt;&lt;code&gt;userdel username&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;cIDf&quot;&gt;11.5-bo&amp;#x27;lim: Foydalanuvchini va uning uy papkasini o&amp;#x27;chirish&lt;/h3&gt;
  &lt;p id=&quot;4W96&quot;&gt;Foydalanuvchini o&amp;#x27;chirish bilan birga, unga tegishli barcha fayllar va uy papkasini (&lt;code&gt;home folder&lt;/code&gt;) ham to&amp;#x27;liq yo&amp;#x27;qotish uchun quyidagilarni &lt;strong&gt;root&lt;/strong&gt; sifatida bajaring:&lt;/p&gt;
  &lt;p id=&quot;J0jU&quot;&gt;&lt;code&gt;userdel -r username&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;wCjV&quot;&gt;11.6-bo&amp;#x27;lim: Joriy foydalanuvchi a&amp;#x27;zo bo&amp;#x27;lgan guruhlarni ko&amp;#x27;rish&lt;/h3&gt;
  &lt;p id=&quot;n8WT&quot;&gt;O&amp;#x27;zingiz qaysi guruhlarga a&amp;#x27;zo ekanligingizni bilish uchun:&lt;/p&gt;
  &lt;p id=&quot;ZQ2F&quot;&gt;&lt;code&gt;groups&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;fh8B&quot;&gt;Foydalanuvchi va guruhlarning raqamli identifikatorlari (&lt;strong&gt;UID&lt;/strong&gt; va &lt;strong&gt;GID&lt;/strong&gt;) haqida batafsilroq ma&amp;#x27;lumotni &lt;code&gt;id&lt;/code&gt; buyrug&amp;#x27;i orqali olish mumkin.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;9bfv&quot;&gt;11.7-bo&amp;#x27;lim: Muayyan foydalanuvchi a&amp;#x27;zo bo&amp;#x27;lgan guruhlarni ko&amp;#x27;rish&lt;/h3&gt;
  &lt;p id=&quot;ACDx&quot;&gt;Boshqa bir foydalanuvchining guruhlarini tekshirish uchun:&lt;/p&gt;
  &lt;p id=&quot;b5JN&quot;&gt;&lt;code&gt;groups username&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ayBp&quot;&gt;Foydalanuvchi va guruhlarning raqamli identifikatorlari haqida batafsilroq ma&amp;#x27;lumotni &lt;code&gt;id username&lt;/code&gt; buyrug&amp;#x27;i orqali olish mumkin.&lt;/p&gt;
  &lt;p id=&quot;wyrN&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;OxfY&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;QvBe&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;xfDf&quot;&gt;Mana 12-bobning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;gVva&quot;&gt;12-bob: LAMP Stack&lt;/h1&gt;
  &lt;p id=&quot;IPBf&quot;&gt;&lt;strong&gt;LAMP&lt;/strong&gt; (Linux Apache MySQL PHP) — ishlab chiqish muhiti sifatida &lt;strong&gt;Linux&lt;/strong&gt; operatsion tizimi, veb-server sifatida &lt;strong&gt;Apache&lt;/strong&gt; HTTP serveri, ma&amp;#x27;lumotlar bazasini boshqarish tizimi (RDBMS) sifatida &lt;strong&gt;MySQL&lt;/strong&gt; va server tomonidagi (Back-End) dasturlash tili sifatida &lt;strong&gt;PHP&lt;/strong&gt; dan iborat texnologiyalar to&amp;#x27;plamidir.&lt;/p&gt;
  &lt;p id=&quot;qoXr&quot;&gt;LAMP veb-ishlab chiqish sohasida ochiq kodli (Open Source) texnologiyalar yechimi sifatida ishlatiladi. Ushbu stakning Windows versiyasi &lt;strong&gt;WAMP&lt;/strong&gt; (Windows Apache MySQL PHP) deb ataladi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;nuTY&quot;&gt;12.1-bo&amp;#x27;lim: Arch Linux-da LAMP o&amp;#x27;rnatish&lt;/h3&gt;
  &lt;p id=&quot;aB2b&quot;&gt;Ushbu buyruq orqali biz barcha kerakli paketlarni va so&amp;#x27;nggi yangilanishlarni bir bosqichda o&amp;#x27;rnatamiz:&lt;/p&gt;
  &lt;p id=&quot;x4QZ&quot;&gt;&lt;code&gt;pacman -Syu apache php php-apache mariadb&lt;/code&gt;&lt;/p&gt;
  &lt;h4 id=&quot;4F1d&quot;&gt;HTTP (Apache) sozlamalari&lt;/h4&gt;
  &lt;p id=&quot;Yzgc&quot;&gt;&lt;code&gt;/etc/httpd/conf/httpd.conf&lt;/code&gt; faylini tahrirlang:&lt;/p&gt;
  &lt;ul id=&quot;bxIn&quot;&gt;
    &lt;li id=&quot;txhf&quot;&gt;&lt;code&gt;ServerAdmin you@example.com&lt;/code&gt; qatorini ehtiyojingizga qarab o&amp;#x27;zgartiring.&lt;/li&gt;
    &lt;li id=&quot;bj09&quot;&gt;Veb-sahifalar papkasi standart bo&amp;#x27;yicha &lt;code&gt;ServerRoot &amp;quot;/etc/httpd&amp;quot;&lt;/code&gt;. Directory ham xuddi shu papkaga sozlanishi kerak, shuning uchun &lt;code&gt;&amp;lt;Directory &amp;quot;/etc/httpd&amp;quot;&amp;gt;&lt;/code&gt; qatorini tekshiring.&lt;/li&gt;
    &lt;li id=&quot;4bVn&quot;&gt;Ushbu papka o&amp;#x27;qish va ijro etish huquqiga ega bo&amp;#x27;lishi kerak: &lt;code&gt;chmod o+x /etc/httpd&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;kf6y&quot;&gt;&lt;code&gt;.htaccess&lt;/code&gt; fayli ishlashi uchun &lt;code&gt;AllowOverride&lt;/code&gt; qiymatini &lt;code&gt;none&lt;/code&gt; dan &lt;code&gt;All&lt;/code&gt; ga o&amp;#x27;zgartiring.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;UUuY&quot;&gt;Har bir foydalanuvchi uchun &lt;code&gt;~/public_html&lt;/code&gt; papkasi kerak bo&amp;#x27;lsa (ya&amp;#x27;ni foydalanuvchi sahifasiga &lt;code&gt;http://localhost/~username/&lt;/code&gt; orqali kirish uchun), quyidagi qatordagi izohni olib tashlang:&lt;/p&gt;
  &lt;p id=&quot;Fvcq&quot;&gt;&lt;code&gt;Include conf/extra/httpd-userdir.conf&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;sscV&quot;&gt;So&amp;#x27;ngra har bir foydalanuvchi uchun &lt;code&gt;public_html&lt;/code&gt; papkasini yarating va huquqlarni (755) sozlang:&lt;/p&gt;
  &lt;p id=&quot;fDzn&quot;&gt;&lt;code&gt;chmod 755 /home&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;3oJJ&quot;&gt;&lt;code&gt;chmod 755 /home/username&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;f0al&quot;&gt;&lt;code&gt;chmod 755 /home/username/public_html&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jzr7&quot;&gt;SSL ishlatmoqchi bo&amp;#x27;lsangiz, ushbu qatorni faollashtiring:&lt;/p&gt;
  &lt;p id=&quot;1krl&quot;&gt;&lt;code&gt;LoadModule ssl_module modules/mod_ssl.so&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;emdg&quot;&gt;Virtual domenlar kerak bo&amp;#x27;lsa, &lt;code&gt;Include conf/extra/httpd-vhosts.conf&lt;/code&gt; qatorini faollashtiring va tegishli faylda domenlarni sozlang.&lt;/p&gt;
  &lt;p id=&quot;hWY5&quot;&gt;Xavfsizlik uchun &lt;code&gt;/etc/httpd/conf/extra/httpd-default.conf&lt;/code&gt; faylida &lt;code&gt;ServerSignature&lt;/code&gt; ni &lt;code&gt;Off&lt;/code&gt; va &lt;code&gt;ServerToken&lt;/code&gt; ni &lt;code&gt;Prod&lt;/code&gt; holatiga keltiring.&lt;/p&gt;
  &lt;h4 id=&quot;aO5a&quot;&gt;PHP sozlamalari&lt;/h4&gt;
  &lt;p id=&quot;tTeE&quot;&gt;&lt;code&gt;/etc/httpd/conf/httpd.conf&lt;/code&gt; faylida:&lt;/p&gt;
  &lt;ul id=&quot;HOi4&quot;&gt;
    &lt;li id=&quot;qs8R&quot;&gt;&lt;code&gt;LoadModule mpm_event_module...&lt;/code&gt; qatorini izohga oling.&lt;/li&gt;
    &lt;li id=&quot;2YTC&quot;&gt;&lt;code&gt;LoadModule mpm_prefork_module...&lt;/code&gt; qatorini faollashtiring.&lt;/li&gt;
    &lt;li id=&quot;Dblo&quot;&gt;&lt;code&gt;LoadModule&lt;/code&gt; ro&amp;#x27;yxatining oxiriga: &lt;code&gt;LoadModule php7_module modules/libphp7.so&lt;/code&gt; ni qo&amp;#x27;shing.&lt;/li&gt;
    &lt;li id=&quot;I1G7&quot;&gt;&lt;code&gt;Include&lt;/code&gt; ro&amp;#x27;yxatining oxiriga: &lt;code&gt;Include conf/extra/php7_module.conf&lt;/code&gt; ni qo&amp;#x27;shing.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;VBYM&quot;&gt;&lt;code&gt;/etc/php/php.ini&lt;/code&gt; faylida:&lt;/p&gt;
  &lt;ul id=&quot;KsKI&quot;&gt;
    &lt;li id=&quot;Om62&quot;&gt;&lt;code&gt;extension=mysqli.so&lt;/code&gt; va &lt;code&gt;extension=pdo_mysql.so&lt;/code&gt; qatorlarini faollashtiring.&lt;/li&gt;
    &lt;li id=&quot;Bg8k&quot;&gt;Vaqt mintaqasini (timezone) sozlang (masalan: &lt;code&gt;date.timezone = Asia/Tashkent&lt;/code&gt;).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;N3Zg&quot;&gt;MySQL (MariaDB) sozlamalari&lt;/h4&gt;
  &lt;p id=&quot;U3wb&quot;&gt;Root sifatida ishga tushiring:&lt;/p&gt;
  &lt;p id=&quot;RG1B&quot;&gt;&lt;code&gt;mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ix0q&quot;&gt;MySQL demonini ishga tushiring:&lt;/p&gt;
  &lt;p id=&quot;zVIZ&quot;&gt;&lt;code&gt;systemctl enable mysqld&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;RwqJ&quot;&gt;&lt;code&gt;systemctl start mysqld&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;2S4v&quot;&gt;Yakunida xavfsizlik sozlamalari uchun: &lt;code&gt;sh /usr/bin/mysql_secure_installation&lt;/code&gt; buyrug&amp;#x27;ini bajaring.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;OYOK&quot;&gt;12.2-bo&amp;#x27;lim: Ubuntu-da LAMP o&amp;#x27;rnatish&lt;/h3&gt;
  &lt;p id=&quot;X6xL&quot;&gt;&lt;strong&gt;Apache o&amp;#x27;rnatish:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;GkHC&quot;&gt;&lt;code&gt;sudo apt-get install apache2&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;R9dJ&quot;&gt;&lt;strong&gt;MySQL o&amp;#x27;rnatish:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;QwAA&quot;&gt;&lt;code&gt;sudo apt-get install mysql-server&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;qGEN&quot;&gt;&lt;strong&gt;PHP o&amp;#x27;rnatish:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;44QF&quot;&gt;&lt;code&gt;sudo apt-get install php5 libapache2-mod-php5&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;DS9j&quot;&gt;&lt;strong&gt;Tizimni qayta ishga tushirish (xizmatni):&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;cx55&quot;&gt;&lt;code&gt;sudo systemctl restart apache2&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;RJEK&quot;&gt;&lt;strong&gt;PHP o&amp;#x27;rnatilishini tekshirish:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;HvQw&quot;&gt;&lt;code&gt;php -r &amp;#x27;echo &amp;quot;\n\nPHP o&amp;#x27;rnatilishi muvaffaqiyatli yakunlandi.\n\n\n&amp;quot;;&amp;#x27;&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;odJo&quot;&gt;12.3-bo&amp;#x27;lim: CentOS-da LAMP o&amp;#x27;rnatish&lt;/h3&gt;
  &lt;h4 id=&quot;nFQM&quot;&gt;1. Apache veb-serverini o&amp;#x27;rnatish&lt;/h4&gt;
  &lt;p id=&quot;Q5We&quot;&gt;&lt;code&gt;sudo yum -y install httpd&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;558t&quot;&gt;O&amp;#x27;rnatilgach, xizmatni yoqing va ishga tushiring:&lt;/p&gt;
  &lt;p id=&quot;QIua&quot;&gt;&lt;code&gt;sudo systemctl enable --now httpd&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;T6W3&quot;&gt;Brauzerda &lt;code&gt;http://localhost&lt;/code&gt; manzilini ochib tekshiring.&lt;/p&gt;
  &lt;h4 id=&quot;q9DR&quot;&gt;2. MariaDB serverini o&amp;#x27;rnatish&lt;/h4&gt;
  &lt;p id=&quot;9IMi&quot;&gt;&lt;code&gt;sudo yum -y install mariadb-server&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;oEr7&quot;&gt;Xizmatni yoqing va ishga tushiring:&lt;/p&gt;
  &lt;p id=&quot;x0um&quot;&gt;&lt;code&gt;sudo systemctl enable --now mariadb&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jaUV&quot;&gt;Ma&amp;#x27;lumotlar bazasini himoyalash uchun &lt;code&gt;mysql_secure_installation&lt;/code&gt; skriptidan foydalaning. Bu skript root parolini o&amp;#x27;zgartirish, test bazalarini o&amp;#x27;chirish va masofaviy kirishni cheklash imkonini beradi.&lt;/p&gt;
  &lt;h4 id=&quot;EHaE&quot;&gt;3. PHP o&amp;#x27;rnatish&lt;/h4&gt;
  &lt;p id=&quot;nLKB&quot;&gt;&lt;code&gt;sudo yum -y install php php-common&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;qNGh&quot;&gt;So&amp;#x27;ngra Apache xizmatini qayta ishga tushiring:&lt;/p&gt;
  &lt;p id=&quot;cQlh&quot;&gt;&lt;code&gt;sudo systemctl restart httpd&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;OrSl&quot;&gt;&lt;strong&gt;PHPni test qilish:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;7yAP&quot;&gt;&lt;code&gt;/var/www/html&lt;/code&gt; katalogida &lt;code&gt;index.php&lt;/code&gt; faylini yarating va unga quyidagi qatorni qo&amp;#x27;shing:&lt;/p&gt;
  &lt;p id=&quot;TqXV&quot;&gt;&lt;code&gt;&amp;lt;?php phpinfo(); ?&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;4r30&quot;&gt;Brauzerda &lt;a href=&quot;http://localhost/index.php&quot; target=&quot;_blank&quot;&gt;http://localhost/index.php&lt;/a&gt; manzilini oching. Agar serveringiz haqida ma&amp;#x27;lumotlar chiqsa, o&amp;#x27;rnatish to&amp;#x27;g&amp;#x27;ri bajarilgan. Aks holda, &lt;code&gt;php --version&lt;/code&gt; orqali o&amp;#x27;rnatilishni qayta tekshiring.&lt;/p&gt;
  &lt;p id=&quot;X3Wu&quot;&gt;Mana 13-bobning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;HWIO&quot;&gt;13-bob: tee buyrug&amp;#x27;i&lt;/h1&gt;
  &lt;h3 id=&quot;c1VR&quot;&gt;Opsiyalar va tavsif&lt;/h3&gt;
  &lt;ul id=&quot;4nOa&quot;&gt;
    &lt;li id=&quot;xJ9f&quot;&gt;&lt;strong&gt;&lt;code&gt;-a, --append&lt;/code&gt;&lt;/strong&gt;: Berilgan fayllarga ma&amp;#x27;lumotni qo&amp;#x27;shib yozadi (ustidan yozib yubormaydi).&lt;/li&gt;
    &lt;li id=&quot;HAWC&quot;&gt;&lt;strong&gt;&lt;code&gt;-i, --ignore-interrupts&lt;/code&gt;&lt;/strong&gt;: To&amp;#x27;xtatish signallarini (interrupt signals) e&amp;#x27;tiborsiz qoldiradi.&lt;/li&gt;
    &lt;li id=&quot;tVTy&quot;&gt;&lt;strong&gt;&lt;code&gt;--help&lt;/code&gt;&lt;/strong&gt;: Yordam xabarini ko&amp;#x27;rsatadi va ishni to&amp;#x27;xtatadi.&lt;/li&gt;
    &lt;li id=&quot;BStK&quot;&gt;&lt;strong&gt;&lt;code&gt;--version&lt;/code&gt;&lt;/strong&gt;: Versiya haqidagi ma&amp;#x27;lumotni ko&amp;#x27;rsatadi va ishni to&amp;#x27;xtatadi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;TSMF&quot;&gt;&lt;strong&gt;tee&lt;/strong&gt; — standart kirishdan (stdin) o&amp;#x27;qiydi va natijani standart chiqishga (stdout) hamda fayllarga yozadi.&lt;/p&gt;
  &lt;p id=&quot;e849&quot;&gt;&lt;code&gt;tee&lt;/code&gt; buyrug&amp;#x27;ining nomi sanitariya-tesisat ishlaridagi &lt;strong&gt;T-simon ulagich (T-splitter)&lt;/strong&gt; sharafiga qo&amp;#x27;yilgan bo&amp;#x27;lib, u suvni ikki yo&amp;#x27;nalishga ajratadi va shakli bosh lotincha &amp;quot;T&amp;quot; harfiga o&amp;#x27;xshaydi.&lt;/p&gt;
  &lt;p id=&quot;zz0s&quot;&gt;&lt;code&gt;tee&lt;/code&gt; buyrug&amp;#x27;i ma&amp;#x27;lumotlarni standart kirishdan har bir faylga va bir vaqtning o&amp;#x27;zida standart chiqishga nusxalaydi. Amalda, &lt;code&gt;tee&lt;/code&gt; o&amp;#x27;z kirishini dublikat qiladi va uni bir vaqtning o&amp;#x27;zida bir nechta chiqishlarga yo&amp;#x27;naltiradi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;hblH&quot;&gt;13.1-bo&amp;#x27;lim: Natijani ham standart chiqishga, ham faylga yozish&lt;/h3&gt;
  &lt;p id=&quot;3Li2&quot;&gt;Quyidagi buyruq natijani faqat ekranda (stdout) ko&amp;#x27;rsatadi:&lt;/p&gt;
  &lt;p id=&quot;90Hx&quot;&gt;&lt;code&gt;$ ls&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;35gk&quot;&gt;Quyidagi buyruq natijani ekranga chiqarmasdan, faqat faylga yozadi:&lt;/p&gt;
  &lt;p id=&quot;Xhku&quot;&gt;&lt;code&gt;$ ls &amp;gt; file&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;A2hp&quot;&gt;Quyidagi buyruq esa (&lt;code&gt;tee&lt;/code&gt; yordamida) natijani ham ekranga (stdout), ham faylga yozadi:&lt;/p&gt;
  &lt;p id=&quot;UhxZ&quot;&gt;&lt;code&gt;$ ls | tee file&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;Li49&quot;&gt;13.2-bo&amp;#x27;lim: Konveyer (pipe) zanjiri o&amp;#x27;rtasidagi natijani faylga yozish va uni qaytadan zanjirga uzatish&lt;/h3&gt;
  &lt;p id=&quot;uhvY&quot;&gt;Siz &lt;code&gt;tee&lt;/code&gt; buyrug&amp;#x27;idan biror buyruq natijasini faylda saqlash va shu bilan birga ushbu natijani boshqa bir buyruqqa yo&amp;#x27;naltirish uchun foydalanishingiz mumkin.&lt;/p&gt;
  &lt;p id=&quot;XuWg&quot;&gt;Quyidagi buyruq joriy &lt;code&gt;crontab&lt;/code&gt; yozuvlarini &lt;code&gt;crontab-backup.txt&lt;/code&gt; fayliga yozadi va ayni vaqtda ushbu yozuvlarni &lt;code&gt;sed&lt;/code&gt; buyrug&amp;#x27;iga o&amp;#x27;tkazadi. &lt;code&gt;sed&lt;/code&gt; buyrug&amp;#x27;i matn almashtirishni amalga oshirgandan so&amp;#x27;ng, natija yangi &lt;code&gt;cron&lt;/code&gt; vazifasi sifatida qo&amp;#x27;shiladi:&lt;/p&gt;
  &lt;p id=&quot;MUd1&quot;&gt;&lt;code&gt;$ crontab -l | tee crontab-backup.txt | sed &amp;#x27;s/old/new/&amp;#x27; | crontab –&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;fpQg&quot;&gt;13.3-bo&amp;#x27;lim: Natijani bir nechta fayllarga yozish&lt;/h3&gt;
  &lt;p id=&quot;TQz5&quot;&gt;Siz o&amp;#x27;z natijangizni &lt;code&gt;tee&lt;/code&gt; yordamida bir vaqtning o&amp;#x27;zida bir nechta fayllarga (jumladan terminalingizga ham) yo&amp;#x27;naltirishingiz mumkin:&lt;/p&gt;
  &lt;p id=&quot;ULut&quot;&gt;&lt;code&gt;$ ls | tee file1 file2 file3&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;bm1E&quot;&gt;13.4-bo&amp;#x27;lim: tee buyrug&amp;#x27;iga ma&amp;#x27;lumotni fayl oxiridan qo&amp;#x27;shishni yuklash&lt;/h3&gt;
  &lt;p id=&quot;qhdz&quot;&gt;Standart holatda &lt;code&gt;tee&lt;/code&gt; buyrug&amp;#x27;i fayl ichidagi ma&amp;#x27;lumotlarni o&amp;#x27;chirib, ustidan yozib yuboradi. Siz &lt;code&gt;tee&lt;/code&gt; buyrug&amp;#x27;iga ma&amp;#x27;lumotni faylning mavjud mazmuni oxiriga qo&amp;#x27;shib yozishni (append) quyidagi &lt;code&gt;-a&lt;/code&gt; opsiyasi orqali buyurishingiz mumkin:&lt;/p&gt;
  &lt;p id=&quot;5CmG&quot;&gt;&lt;code&gt;$ ls | tee -a file&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;owpM&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;026m&quot;&gt;Mana 14-bobning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;yg8f&quot;&gt;14-bob: Secure Shell (SSH)&lt;/h1&gt;
  &lt;p id=&quot;Rafb&quot;&gt;&lt;strong&gt;SSH&lt;/strong&gt; (Secure Shell) — shifrlangan aloqa kanali orqali mijozdan turib serverga masofadan kirish uchun ishlatiladi. &lt;strong&gt;OpenSSH&lt;/strong&gt; masofaviy qobiqqa kirishni ta&amp;#x27;minlovchi, ammo ma&amp;#x27;lumotlarni shifrlamaydigan &lt;strong&gt;Telnet&lt;/strong&gt; ulanishlariga muqobil (xavfsiz) variant sifatida ishlatiladi. OpenSSH mijoz dasturi aksariyat GNU/Linux distributivlarida standart bo&amp;#x27;lib o&amp;#x27;rnatilgan. Ushbu misollar SSH ulanishlarini qabul qilish va boshqa xostga ulanish uchun SSH utilitalaridan qanday foydalanishni ko&amp;#x27;rsatadi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;7aBV&quot;&gt;14.1-bo&amp;#x27;lim: Masofaviy serverga ulanish&lt;/h3&gt;
  &lt;p id=&quot;SglK&quot;&gt;Serverga ulanish uchun mijoz kompyuterida SSH buyrug&amp;#x27;idan quyidagicha foydalanish kerak:&lt;/p&gt;
  &lt;p id=&quot;TLii&quot;&gt;&lt;code&gt;ssh -p port user@server-address&lt;/code&gt;&lt;/p&gt;
  &lt;ul id=&quot;Yv1l&quot;&gt;
    &lt;li id=&quot;3sUw&quot;&gt;&lt;strong&gt;port&lt;/strong&gt; — serverning SSH xizmati tinglayotgan porti (standart port 22).&lt;/li&gt;
    &lt;li id=&quot;rFXG&quot;&gt;&lt;strong&gt;user&lt;/strong&gt; — serverda SSH huquqiga ega bo&amp;#x27;lgan mavjud foydalanuvchi.&lt;/li&gt;
    &lt;li id=&quot;qXnY&quot;&gt;&lt;strong&gt;server address&lt;/strong&gt; — serverning IP manzili yoki domen nomi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;HShg&quot;&gt;&lt;strong&gt;Hayotiy misol:&lt;/strong&gt; Tasavvur qiling, siz veb-sayt yaratyapsiz. Hosting kompaniyasi server manzili &lt;code&gt;web-servers.com&lt;/code&gt;, porti &lt;code&gt;2020&lt;/code&gt; va foydalanuvchi nomi &lt;code&gt;usr1&lt;/code&gt; ekanligini aytdi. Bunday holda buyruq quyidagicha bo&amp;#x27;ladi:&lt;/p&gt;
  &lt;p id=&quot;xVh1&quot;&gt;&lt;code&gt;ssh -p 2020 usr1@web-servers.com&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;LRLT&quot;&gt;Agar masofaviy tizimdagi foydalanuvchi nomi mahalliy kompyuteringizdagi bilan bir xil bo&amp;#x27;lsa, foydalanuvchi nomini yozmasangiz ham bo&amp;#x27;ladi. Masalan, ikkala tizimda ham &lt;code&gt;usr1&lt;/code&gt; bo&amp;#x27;lsangiz, shunchaki &lt;code&gt;web-servers.com&lt;/code&gt; deb yozish kifoya.&lt;/p&gt;
  &lt;p id=&quot;cFaw&quot;&gt;&lt;strong&gt;ProxyJump orqali ulanish:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;isZU&quot;&gt;Agar siz ulanmoqchi bo&amp;#x27;lgan serverga to&amp;#x27;g&amp;#x27;ridan-to&amp;#x27;g&amp;#x27;ri kirish imkoni bo&amp;#x27;lmasa, oraliq server (sakrash serveri) orqali ulanish uchun &lt;code&gt;-J&lt;/code&gt; kalitidan foydalanishingiz mumkin:&lt;/p&gt;
  &lt;p id=&quot;aHCJ&quot;&gt;&lt;code&gt;ssh -J usr1@10.0.0.1:2020 usr2@10.0.0.2 -p 2222&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;EWZ6&quot;&gt;Bu buyruq sizni &lt;code&gt;10.0.0.1&lt;/code&gt; (2020-port) serveri orqali &lt;code&gt;10.0.0.2&lt;/code&gt; (2222-port) serveriga ulaydi. Albatta, har ikkala serverda ham akkauntingiz bo&amp;#x27;lishi kerak. Eslatma: &lt;code&gt;-J&lt;/code&gt; kaliti OpenSSH 7.3 versiyasidan boshlab qo&amp;#x27;shilgan.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;LrJy&quot;&gt;14.2-bo&amp;#x27;lim: OpenSSH paketlar to&amp;#x27;plamini o&amp;#x27;rnatish&lt;/h3&gt;
  &lt;p id=&quot;jx7a&quot;&gt;Masofaviy SSH serverga ulanish va SSH ulanishlarni qabul qilish uchun &lt;code&gt;openssh&lt;/code&gt; o&amp;#x27;rnatilgan bo&amp;#x27;lishi kerak:&lt;/p&gt;
  &lt;ul id=&quot;oXLk&quot;&gt;
    &lt;li id=&quot;hVhJ&quot;&gt;&lt;strong&gt;Debian/Ubuntu:&lt;/strong&gt; &lt;code&gt;sudo apt-get install openssh-server openssh-client&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;F1Lv&quot;&gt;&lt;strong&gt;Arch Linux:&lt;/strong&gt; &lt;code&gt;sudo pacman -S openssh&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;3v7c&quot;&gt;&lt;strong&gt;CentOS/RHEL (Yum):&lt;/strong&gt; &lt;code&gt;sudo yum install openssh&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;qILq&quot;&gt;14.3-bo&amp;#x27;lim: SSH serverni ulanishlarni qabul qilish uchun sozlash&lt;/h3&gt;
  &lt;p id=&quot;TFlz&quot;&gt;Dastlab, SSH demonining (sshd) konfiguratsiya faylini tahrirlashimiz kerak. Odatda u &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt; manzilida joylashgan bo&amp;#x27;ladi.&lt;/p&gt;
  &lt;p id=&quot;HU44&quot;&gt;Matn muharriri yordamida quyidagi qiymatlarni o&amp;#x27;zgartiring (izohdagi &lt;code&gt;#&lt;/code&gt; belgisini olib tashlang):&lt;/p&gt;
  &lt;ul id=&quot;9avj&quot;&gt;
    &lt;li id=&quot;xpD9&quot;&gt;&lt;strong&gt;Port&lt;/strong&gt; (0 dan 65535 gacha bo&amp;#x27;lgan sonni tanlang, odatda 4 xonali son tavsiya etiladi).&lt;/li&gt;
    &lt;li id=&quot;Yded&quot;&gt;&lt;strong&gt;PasswordAuthentication yes&lt;/strong&gt; (parol orqali kirishga ruxsat berish).&lt;/li&gt;
    &lt;li id=&quot;JxQi&quot;&gt;&lt;strong&gt;AllowUsers user1 user2&lt;/strong&gt; (faqat belgilangan foydalanuvchilarga ruxsat berish).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Rvzy&quot;&gt;&lt;em&gt;Eslatma: Xavfsizlikni oshirish uchun parolli kirishni butunlay o&amp;#x27;chirib, SSH kalitlaridan foydalanish afzalroqdir.&lt;/em&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;BJcP&quot;&gt;14.4-bo&amp;#x27;lim: Parolsiz ulanish (kalitlar juftligi yordamida)&lt;/h3&gt;
  &lt;p id=&quot;6I9u&quot;&gt;Buning uchun sizda kalitlar juftligi bo&amp;#x27;lishi kerak: &lt;strong&gt;maxfiy kalit&lt;/strong&gt; (&lt;code&gt;id_rsa&lt;/code&gt;) va &lt;strong&gt;ochiq kalit&lt;/strong&gt; (&lt;code&gt;id_rsa.pub&lt;/code&gt;). Ochiq kalitni masofaviy serverdagi &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt; fayliga nusxalashingiz kerak.&lt;/p&gt;
  &lt;p id=&quot;rnMZ&quot;&gt;Buning oson usuli:&lt;/p&gt;
  &lt;p id=&quot;Ky5A&quot;&gt;&lt;code&gt;ssh &amp;lt;user&amp;gt;@&amp;lt;ssh-server&amp;gt; &amp;#x27;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;#x27; &amp;lt; id_rsa.pub&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;pVJX&quot;&gt;Ochiq kalit serverga to&amp;#x27;g&amp;#x27;ri joylashtirilgach, shunchaki maxfiy kalit bilan tizimga kirishingiz mumkin:&lt;/p&gt;
  &lt;p id=&quot;JI1L&quot;&gt;&lt;code&gt;ssh &amp;lt;user&amp;gt;@&amp;lt;ssh-server&amp;gt; -i id_rsa&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;qkeC&quot;&gt;14.5-bo&amp;#x27;lim: Ochiq va maxfiy kalitlarni yaratish&lt;/h3&gt;
  &lt;p id=&quot;RISX&quot;&gt;SSH mijoz uchun kalitlar yaratish buyrug&amp;#x27;i:&lt;/p&gt;
  &lt;p id=&quot;qslH&quot;&gt;&lt;code&gt;ssh-keygen -t rsa -b 4096 -C &amp;quot;email@manzil.com&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;ul id=&quot;iesE&quot;&gt;
    &lt;li id=&quot;2Tst&quot;&gt;&lt;strong&gt;-t rsa&lt;/strong&gt; — kalit turini belgilaydi.&lt;/li&gt;
    &lt;li id=&quot;KiqB&quot;&gt;&lt;strong&gt;-b 4096&lt;/strong&gt; — bitlar sonini (xavfsizlik darajasini) belgilaydi.&lt;/li&gt;
    &lt;li id=&quot;BMBW&quot;&gt;&lt;strong&gt;-C&lt;/strong&gt; — izoh (odatda elektron pochta manzili).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;cokd&quot;&gt;Standart saqlash joyi: maxfiy kalit uchun &lt;code&gt;~/.ssh/id_rsa&lt;/code&gt;, ochiq kalit uchun &lt;code&gt;~/.ssh/id_rsa.pub&lt;/code&gt;.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;U4RY&quot;&gt;14.6-bo&amp;#x27;lim: SSH xizmatini o&amp;#x27;chirish&lt;/h3&gt;
  &lt;p id=&quot;d4pd&quot;&gt;Agar zarur bo&amp;#x27;lsa, server qismini o&amp;#x27;chirib qo&amp;#x27;yish orqali mijozlar ulanishining oldini olish mumkin:&lt;/p&gt;
  &lt;ul id=&quot;vdo2&quot;&gt;
    &lt;li id=&quot;CoWt&quot;&gt;&lt;strong&gt;Ubuntu:&lt;/strong&gt;&lt;code&gt;sudo service ssh stopsudo systemctl disable sshd.service&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;MjFl&quot;&gt;&lt;strong&gt;Debian:&lt;/strong&gt;&lt;code&gt;sudo /etc/init.d/ssh stopsudo systemctl disable sshd.service&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;Fel9&quot;&gt;&lt;strong&gt;Arch Linux:&lt;/strong&gt;&lt;code&gt;sudo killall sshdsudo systemctl disable sshd.service&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;YYEH&quot;&gt;Mana 15-bobning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;16X4&quot;&gt;15-bob: SCP (Secure Copy)&lt;/h1&gt;
  &lt;h3 id=&quot;e6YW&quot;&gt;15.1-bo&amp;#x27;lim: Secure Copy (Xavfsiz nusxalash)&lt;/h3&gt;
  &lt;p id=&quot;GgLe&quot;&gt;&lt;strong&gt;scp&lt;/strong&gt; buyrug&amp;#x27;i fayllarni masofaviy manzillarga yoki masofaviy manzillardan xavfsiz tarzda nusxalash uchun ishlatiladi. Agar fayl joriy ishchi katalogda (CWD) bo&amp;#x27;lsa, faqat fayl nomining o&amp;#x27;zi kifoya, aks holda masofaviy xost nomini o&amp;#x27;z ichiga olgan to&amp;#x27;liq yo&amp;#x27;l (path) talab qilinadi. Masalan:&lt;/p&gt;
  &lt;p id=&quot;1rwG&quot;&gt;&lt;code&gt;remote_user@some_server.org:/path/to/file&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;AbX7&quot;&gt;&lt;strong&gt;Joriy katalogdagi mahalliy faylni yangi katalogga nusxalash:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;C4nX&quot;&gt;&lt;code&gt;scp localfile.txt /home/friend/share/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;DGdZ&quot;&gt;&lt;strong&gt;Masofaviy faylni o&amp;#x27;zingizning joriy ishchi katalogingizga nusxalash:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;ajE6&quot;&gt;&lt;code&gt;scp rocky@arena51.net:/home/rocky/game/data.txt ./&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;w4l8&quot;&gt;&lt;strong&gt;Faylni bir masofaviy manzildan boshqa bir masofaviy manzilga nusxalash:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;OfPr&quot;&gt;&lt;code&gt;scp mars@universe.org:/beacon/light/bitmap.conf jupiter@universe.org:/beacon/night/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;FfQ8&quot;&gt;&lt;strong&gt;Katalogni va barcha quyi kataloglarni nusxalash uchun scp buyrug&amp;#x27;iga &lt;code&gt;-r&lt;/code&gt; (rekursiv) opsiyasini qo&amp;#x27;shing:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;WjBV&quot;&gt;&lt;code&gt;scp -r user@192.168.0.4:~/project/* ./workspace/&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;cKdE&quot;&gt;15.2-bo&amp;#x27;lim: Asosiy foydalanish (Basic Usage)&lt;/h3&gt;
  &lt;p id=&quot;M8uz&quot;&gt;&lt;strong&gt;Masofaviy faylni mahalliy katalogga nusxalash:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;ciJG&quot;&gt;&lt;code&gt;scp user@remotehost.com:/remote/path/to/foobar.md /local/dest&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ipqd&quot;&gt;&lt;strong&gt;Mahalliy faylni masofaviy katalogga nusxalash:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;V31b&quot;&gt;&lt;code&gt;scp foobar.md user@remotehost.com:/remote/dest&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;IwGE&quot;&gt;&lt;strong&gt;Kalit fayllardan (PEM) foydalanish (xuddi ssh kabi):&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;8sj0&quot;&gt;SSH kalitlari yordamida autentifikatsiya qilish uchun &lt;code&gt;-i&lt;/code&gt; bayrog&amp;#x27;idan foydalanishingiz mumkin:&lt;/p&gt;
  &lt;p id=&quot;LDAC&quot;&gt;&lt;code&gt;scp -i my_key.pem foobar.md user@remotehost.com:/remote/dest&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;AI1S&quot;&gt;Mana 16 va 17-boblarning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;IbKJ&quot;&gt;16-bob: GnuPG (GPG)&lt;/h1&gt;
  &lt;p id=&quot;i3rT&quot;&gt;&lt;strong&gt;GnuPG&lt;/strong&gt; — ma&amp;#x27;lumotlarni xavfsiz imzolash yoki shifrlash imkonini beruvchi murakkab kalitlarni boshqarish tizimidir. &lt;strong&gt;GPG&lt;/strong&gt; — GnuPG kalitlarini yaratish va ulardan foydalanish uchun ishlatiladigan buyruqlar satri vositasi.&lt;/p&gt;
  &lt;p id=&quot;bETz&quot;&gt;GnuPG ko&amp;#x27;pincha SSH ulanishlarini parolsiz va interaktiv autentifikatsiyasiz amalga oshirishda qo&amp;#x27;llaniladi, bu esa xavfsizlik darajasini sezilarli darajada oshiradi.&lt;/p&gt;
  &lt;h3 id=&quot;sLjh&quot;&gt;16.1-bo&amp;#x27;lim: Ochiq kalitni eksport qilish&lt;/h3&gt;
  &lt;p id=&quot;6Ud6&quot;&gt;Ochiq va maxfiy kalitlar juftligidan foydalanish uchun siz ochiq kalitingizni (public key) boshqalar uchun ochiq qilishingiz kerak. &lt;strong&gt;Diqqat:&lt;/strong&gt; Hech qachon maxfiy kalitingizni (private key) boshqalar bilan baham ko&amp;#x27;rmang. Ochiq kalitni quyidagi buyruq bilan eksport qilish mumkin:&lt;/p&gt;
  &lt;p id=&quot;E8GG&quot;&gt;&lt;code&gt;gpg --armor --export POCHTA_MANZILI &amp;gt; public_key.asc&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;LyBW&quot;&gt;Shuningdek, kalitni &lt;code&gt;keys.gnupg.net&lt;/code&gt; kabi ochiq kalit serverlariga yuklash mumkin:&lt;/p&gt;
  &lt;ol id=&quot;YdTC&quot;&gt;
    &lt;li id=&quot;zjr9&quot;&gt;Kalitlar ro&amp;#x27;yxatini ko&amp;#x27;ring: &lt;code&gt;gpg --list-keys&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;Mk4D&quot;&gt;Kalitning 8 xonali ID raqamini (Primary ID) toping.&lt;/li&gt;
    &lt;li id=&quot;ZMcS&quot;&gt;Serverga yuboring: &lt;code&gt;gpg --send-keys PRIMARY_ID&lt;/code&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h3 id=&quot;tKrf&quot;&gt;16.2-bo&amp;#x27;lim: GnuPG kalitini tezkor yaratish&lt;/h3&gt;
  &lt;p id=&quot;hE5Z&quot;&gt;Tasodifiy baytlar generatsiyasini tezlashtirish uchun &lt;code&gt;haveged&lt;/code&gt; dasturini o&amp;#x27;rnating, so&amp;#x27;ngra:&lt;/p&gt;
  &lt;p id=&quot;kfPU&quot;&gt;&lt;code&gt;gpg --gen-key&lt;/code&gt; — kalit yaratish.&lt;/p&gt;
  &lt;p id=&quot;ipSq&quot;&gt;&lt;code&gt;gpg --keyserver pgp.mit.edu --send-keys NNNNNNNN&lt;/code&gt; — kalitni nashr qilish.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;T06h&quot;&gt;17-bob: Tarmoq konfiguratsiyasi (Network Configuration)&lt;/h1&gt;
  &lt;p id=&quot;17o8&quot;&gt;Linux bir nechta tarmoq qurilmalarini qo&amp;#x27;llab-quvvatlaydi. Qurilma nomlari noldan boshlab raqamlanadi (masalan, &lt;code&gt;eth0&lt;/code&gt;, &lt;code&gt;eth1&lt;/code&gt;).&lt;/p&gt;
  &lt;h3 id=&quot;IKcf&quot;&gt;17.1-bo&amp;#x27;lim: Mahalliy DNS ruxsati (Local DNS resolution)&lt;/h3&gt;
  &lt;p id=&quot;El0J&quot;&gt;&lt;code&gt;/etc/hosts&lt;/code&gt; fayli DNS serverga murojaat qilmasdan, mahalliy darajada aniqlanadigan xostlar ro&amp;#x27;yxatini saqlaydi.&lt;/p&gt;
  &lt;p id=&quot;S35S&quot;&gt;Fayl formati &lt;strong&gt;RFC 952&lt;/strong&gt; standarti bilan belgilanadi.&lt;/p&gt;
  &lt;h3 id=&quot;fiiZ&quot;&gt;17.2-bo&amp;#x27;lim: Domen nomlarini aniqlash uchun DNS serverlarini sozlash&lt;/h3&gt;
  &lt;p id=&quot;nThK&quot;&gt;&lt;code&gt;/etc/resolv.conf&lt;/code&gt; fayli domen nomlarini IP manzilga aylantirish uchun ishlatiladigan DNS serverlar ro&amp;#x27;yxatini saqlaydi.&lt;/p&gt;
  &lt;p id=&quot;bmy9&quot;&gt;&lt;strong&gt;Namuna:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;6VHW&quot;&gt;&lt;code&gt;nameserver 8.8.8.8&lt;/code&gt; — asosiy DNS server.&lt;/p&gt;
  &lt;p id=&quot;OGoj&quot;&gt;&lt;code&gt;nameserver 8.8.4.4&lt;/code&gt; — yordamchi DNS server.&lt;/p&gt;
  &lt;h3 id=&quot;6ecM&quot;&gt;17.3-bo&amp;#x27;lim: Yo&amp;#x27;nalishlarni (routes) ko&amp;#x27;rish va boshqarish&lt;/h3&gt;
  &lt;p id=&quot;5MzN&quot;&gt;&lt;strong&gt;&lt;code&gt;route&lt;/code&gt; buyrug&amp;#x27;i yordamida:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;T3ZC&quot;&gt;
    &lt;li id=&quot;NjJE&quot;&gt;&lt;code&gt;route -n&lt;/code&gt; — yo&amp;#x27;nalishlar jadvalini tezkor ko&amp;#x27;rish.&lt;/li&gt;
    &lt;li id=&quot;rDCL&quot;&gt;&lt;code&gt;route add default gw 2.2.2.1 eth0&lt;/code&gt; — standart shlyuzni (gateway) qo&amp;#x27;shish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;nXNL&quot;&gt;&lt;strong&gt;&lt;code&gt;ip&lt;/code&gt; buyrug&amp;#x27;i yordamida:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;bajg&quot;&gt;
    &lt;li id=&quot;IizO&quot;&gt;&lt;code&gt;ip route show&lt;/code&gt; — yo&amp;#x27;nalishlar jadvalini ko&amp;#x27;rsatish.&lt;/li&gt;
    &lt;li id=&quot;4zwD&quot;&gt;&lt;code&gt;ip route add default via 1.2.3.254&lt;/code&gt; — standart shlyuzni sozlash.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;5Zqu&quot;&gt;17.4-bo&amp;#x27;lim: Tarmoqdagi boshqa tizim uchun xost nomini sozlash&lt;/h3&gt;
  &lt;p id=&quot;6DBZ&quot;&gt;Tarmoqdagi biror IP manzilga (masalan, &lt;code&gt;192.168.1.44&lt;/code&gt;) qisqa nom (masalan, &lt;code&gt;remote_pc&lt;/code&gt;) biriktirish uchun &lt;code&gt;/etc/hosts&lt;/code&gt; fayliga quyidagi qatorni qo&amp;#x27;shing:&lt;/p&gt;
  &lt;p id=&quot;jp2H&quot;&gt;&lt;code&gt;192.168.1.44 remote_pc&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;gOmq&quot;&gt;Endi siz ushbu kompyuterga &lt;code&gt;ping remote_pc&lt;/code&gt; buyrug&amp;#x27;i orqali murojaat qilishingiz mumkin.&lt;/p&gt;
  &lt;h3 id=&quot;1SMP&quot;&gt;17.5-bo&amp;#x27;lim: Interfeys tafsilotlari&lt;/h3&gt;
  &lt;ul id=&quot;Dib3&quot;&gt;
    &lt;li id=&quot;Npqv&quot;&gt;&lt;strong&gt;&lt;code&gt;ifconfig -a&lt;/code&gt;&lt;/strong&gt;: Barcha mavjud interfeyslarni ko&amp;#x27;rish.&lt;/li&gt;
    &lt;li id=&quot;sWFU&quot;&gt;&lt;strong&gt;&lt;code&gt;ethtool eth0&lt;/code&gt;&lt;/strong&gt;: Tarmoq drayveri va apparat sozlamalarini (tezlik, dupleks va h.k.) tekshirish.&lt;/li&gt;
    &lt;li id=&quot;QQQP&quot;&gt;&lt;strong&gt;&lt;code&gt;ip link show&lt;/code&gt;&lt;/strong&gt;: Tarmoq interfeyslari holatini ko&amp;#x27;rish.&lt;/li&gt;
    &lt;li id=&quot;Nsir&quot;&gt;&lt;strong&gt;&lt;code&gt;ip addr show&lt;/code&gt;&lt;/strong&gt;: Interfeyslarga biriktirilgan IP manzillarni ko&amp;#x27;rish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;BOwj&quot;&gt;17.6-bo&amp;#x27;lim: Interfeysga IP manzil qo&amp;#x27;shish&lt;/h3&gt;
  &lt;p id=&quot;tlEk&quot;&gt;&lt;strong&gt;1. DHCP orqali (Avtomatik):&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;N5ZZ&quot;&gt;&lt;code&gt;sudo dhclient eth0&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;HOz1&quot;&gt;&lt;strong&gt;2. Statik (Doimiy) — &lt;code&gt;/etc/network/interfaces&lt;/code&gt; fayli orqali:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;B0VC&quot;&gt;Plaintext&lt;/p&gt;
  &lt;pre id=&quot;lYPR&quot;&gt;auto eth0
iface eth0 inet static
    address 10.10.70.10
    netmask 255.255.0.0
    gateway 10.10.1.1
&lt;/pre&gt;
  &lt;p id=&quot;1q28&quot;&gt;&lt;strong&gt;3. Statik (Vaqtincha) — &lt;code&gt;ifconfig&lt;/code&gt; orqali:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;qoCb&quot;&gt;&lt;code&gt;sudo ifconfig eth0 10.10.50.100/16 up&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;bGAR&quot;&gt;Mana 18-bobning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;B9xp&quot;&gt;18-bob: Midnight Commander (mc)&lt;/h1&gt;
  &lt;p id=&quot;DqTa&quot;&gt;&lt;strong&gt;Midnight Commander&lt;/strong&gt; yoki qisqacha &lt;strong&gt;mc&lt;/strong&gt; — bu konsol (terminal) asosidagi fayl menejeridir. Ushbu mavzu uning funksional imkoniyatlari tavsifi, misollar va undan to&amp;#x27;liq salohiyat bilan foydalanish bo&amp;#x27;yicha maslahatlarni o&amp;#x27;z ichiga oladi.&lt;/p&gt;
  &lt;h3 id=&quot;BTby&quot;&gt;18.1-bo&amp;#x27;lim: Fayllarni ko&amp;#x27;rish (browsing) rejimidagi funksional tugmalar&lt;/h3&gt;
  &lt;p id=&quot;0JOY&quot;&gt;Quyida Midnight Commander-ning fayllarni ko&amp;#x27;rish rejimida klaviaturadagi funksional tugmalar orqali bajariladigan amallar ro&amp;#x27;yxati keltirilgan:&lt;/p&gt;
  &lt;ul id=&quot;3Gvc&quot;&gt;
    &lt;li id=&quot;k1rS&quot;&gt;&lt;strong&gt;F1&lt;/strong&gt;: Yordam oynasini ochish.&lt;/li&gt;
    &lt;li id=&quot;doZQ&quot;&gt;&lt;strong&gt;F2&lt;/strong&gt;: Foydalanuvchi menyusini ochish.&lt;/li&gt;
    &lt;li id=&quot;uHXj&quot;&gt;&lt;strong&gt;F3&lt;/strong&gt;: Tanlangan fayl mazmunini ko&amp;#x27;rish.&lt;/li&gt;
    &lt;li id=&quot;RFrd&quot;&gt;&lt;strong&gt;F4&lt;/strong&gt;: Tanlangan faylni ichki tahrirlagichda (editor) ochish.&lt;/li&gt;
    &lt;li id=&quot;sgkK&quot;&gt;&lt;strong&gt;F5&lt;/strong&gt;: Tanlangan faylni ikkinchi paneldagi ochiq katalogga nusxalash (Copy).&lt;/li&gt;
    &lt;li id=&quot;Lu0e&quot;&gt;&lt;strong&gt;F6&lt;/strong&gt;: Tanlangan faylni ikkinchi paneldagi ochiq katalogga ko&amp;#x27;chirish (Move).&lt;/li&gt;
    &lt;li id=&quot;HAH9&quot;&gt;&lt;strong&gt;F7&lt;/strong&gt;: Joriy paneldagi katalog ichida yangi papka (directory) yaratish.&lt;/li&gt;
    &lt;li id=&quot;j1dQ&quot;&gt;&lt;strong&gt;F8&lt;/strong&gt;: Tanlangan fayl yoki katalogni o&amp;#x27;chirish (Delete).&lt;/li&gt;
    &lt;li id=&quot;nItw&quot;&gt;&lt;strong&gt;F9&lt;/strong&gt;: Ekranning yuqori qismidagi asosiy menyuga fokusni o&amp;#x27;tkazish.&lt;/li&gt;
    &lt;li id=&quot;eiqM&quot;&gt;&lt;strong&gt;F10&lt;/strong&gt;: Midnight Commander dasturidan chiqish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;xWi8&quot;&gt;18.2-bo&amp;#x27;lim: Faylni tahrirlash (editing) rejimidagi funksional tugmalar&lt;/h3&gt;
  &lt;p id=&quot;1sLL&quot;&gt;Midnight Commander-da o&amp;#x27;rnatilgan tahrirlagich mavjud bo&amp;#x27;lib, u ko&amp;#x27;rish rejimida fayl ustida turganda &lt;strong&gt;F4&lt;/strong&gt; tugmasini bosish orqali ishga tushadi. Shuningdek, uni alohida rejimda quyidagi buyruq bilan ham chaqirish mumkin:&lt;/p&gt;
  &lt;p id=&quot;ySef&quot;&gt;&lt;code&gt;mcedit &amp;lt;fayl_nomi&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;cOEx&quot;&gt;Tahrirlash rejimida ishlaydigan amallar ro&amp;#x27;yxati:&lt;/p&gt;
  &lt;ul id=&quot;DGvh&quot;&gt;
    &lt;li id=&quot;3LW2&quot;&gt;&lt;strong&gt;F1&lt;/strong&gt;: Yordam oynasini ochish.&lt;/li&gt;
    &lt;li id=&quot;G46H&quot;&gt;&lt;strong&gt;F2&lt;/strong&gt;: Joriy faylni saqlash.&lt;/li&gt;
    &lt;li id=&quot;qoYU&quot;&gt;&lt;strong&gt;F3&lt;/strong&gt;: Matnni belgilash boshlanishini qayd etish. Belgilash uchun kursorni istalgan yo&amp;#x27;nalishda harakatlantiring. Ikkinchi marta bosish belgilash yakunini qayd etadi.&lt;/li&gt;
    &lt;li id=&quot;7bQX&quot;&gt;&lt;strong&gt;F4&lt;/strong&gt;: Matnni qidirish va almashtirish (search/replace) muloqot oynasini ochish.&lt;/li&gt;
    &lt;li id=&quot;e9Z4&quot;&gt;&lt;strong&gt;F5&lt;/strong&gt;: Tanlangan matnni kursor turgan joyga nusxalash (copy/paste).&lt;/li&gt;
    &lt;li id=&quot;usGr&quot;&gt;&lt;strong&gt;F6&lt;/strong&gt;: Tanlangan matnni kursor turgan joyga ko&amp;#x27;chirish (cut/paste).&lt;/li&gt;
    &lt;li id=&quot;0ZbS&quot;&gt;&lt;strong&gt;F7&lt;/strong&gt;: Matnni qidirish muloqot oynasini ochish.&lt;/li&gt;
    &lt;li id=&quot;Ftdt&quot;&gt;&lt;strong&gt;F8&lt;/strong&gt;: Tanlangan matnni o&amp;#x27;chirish.&lt;/li&gt;
    &lt;li id=&quot;Fqas&quot;&gt;&lt;strong&gt;F9&lt;/strong&gt;: Ekranning yuqori qismidagi asosiy menyuga fokusni o&amp;#x27;tkazish.&lt;/li&gt;
    &lt;li id=&quot;SYjU&quot;&gt;&lt;strong&gt;F10&lt;/strong&gt;: Tahrirlagichdan chiqish.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;FKo3&quot;&gt;Mana 19 va 20-boblarning 100% to&amp;#x27;liq va akademik tartibdagi o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;lgVn&quot;&gt;19-bob: Ildiz katalogni o&amp;#x27;zgartirish (chroot)&lt;/h1&gt;
  &lt;p id=&quot;N6yQ&quot;&gt;&lt;strong&gt;Change root (chroot)&lt;/strong&gt; — bu joriy ishlayotgan jarayon va uning barcha quyi (child) jarayonlari uchun ko&amp;#x27;rinadigan ildiz katalogni (&lt;code&gt;/&lt;/code&gt;) o&amp;#x27;zgartirish operatsiyasidir. Bunday o&amp;#x27;zgartirilgan muhitda ishga tushirilgan dastur ushbu katalog daraxtidan tashqaridagi fayllar va buyruqlarga kira olmaydi.&lt;/p&gt;
  &lt;h3 id=&quot;u0Zk&quot;&gt;19.1-bo&amp;#x27;lim: Talablar (Requirements)&lt;/h3&gt;
  &lt;ul id=&quot;X5ga&quot;&gt;
    &lt;li id=&quot;uXth&quot;&gt;&lt;strong&gt;Root imtiyozlari&lt;/strong&gt; (administrator huquqi).&lt;/li&gt;
    &lt;li id=&quot;vKiW&quot;&gt;&lt;strong&gt;Boshqa ishchi Linux muhiti&lt;/strong&gt; (masalan, Live CD yuklanishi yoki mavjud boshqa distributiv).&lt;/li&gt;
    &lt;li id=&quot;SbA8&quot;&gt;&lt;strong&gt;Arxitektura mosligi&lt;/strong&gt;: chroot manbasi va boriladigan joyning arxitekturasi mos kelishi kerak (buni &lt;code&gt;uname -m&lt;/code&gt; buyrug&amp;#x27;i bilan tekshiring).&lt;/li&gt;
    &lt;li id=&quot;V1xq&quot;&gt;&lt;strong&gt;Yadro modullari&lt;/strong&gt;: chroot muhitida kerak bo&amp;#x27;lishi mumkin bo&amp;#x27;lgan yadro modullari yuklangan bo&amp;#x27;lishi shart (masalan, &lt;code&gt;modprobe&lt;/code&gt; yordamida).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;KogH&quot;&gt;19.2-bo&amp;#x27;lim: Katalog ichida ildizni qo&amp;#x27;lda o&amp;#x27;zgartirish&lt;/h3&gt;
  &lt;ol id=&quot;MqL7&quot;&gt;
    &lt;li id=&quot;kHVH&quot;&gt;Barcha talablar bajarilganiga ishonch hosil qiling.&lt;/li&gt;
    &lt;li id=&quot;JM2h&quot;&gt;&lt;strong&gt;Vaqtinchalik API fayl tizimlarini ulang (mount):&lt;/strong&gt;Bash&lt;code&gt;cd /yangi/ildiz/joylashuvi mount -t proc proc proc/ mount --rbind /sys sys/ mount --rbind /dev dev/ mount --rbind /run run/ # (ixtiyoriy) &lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;5Zfc&quot;&gt;&lt;strong&gt;Internet ulanishi kerak bo&amp;#x27;lsa, DNS ma&amp;#x27;lumotlarini nusxalang:&lt;/strong&gt;&lt;code&gt;cp /etc/resolv.conf etc/resolv.conf&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;nF4Q&quot;&gt;&lt;strong&gt;Ildizni o&amp;#x27;zgartiring (chroot):&lt;/strong&gt;&lt;code&gt;chroot /yangi/ildiz/joylashuvi /bin/bash&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;oS4J&quot;&gt;&lt;strong&gt;Mahalliy bash konfiguratsiyasini yuklang:&lt;/strong&gt;&lt;code&gt;source /etc/profile&lt;/code&gt; va &lt;code&gt;source ~/.bashrc&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;lQBM&quot;&gt;&lt;strong&gt;Muhitni farqlash uchun maxsus buyruq satri (prompt) yarating:&lt;/strong&gt;&lt;code&gt;export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;pTIR&quot;&gt;&lt;strong&gt;Ish yakunlangach, chiqish:&lt;/strong&gt;&lt;code&gt;exit&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;BuG9&quot;&gt;&lt;strong&gt;Fayl tizimlarini uzing (unmount):&lt;/strong&gt;&lt;code&gt;cd /&lt;/code&gt; va &lt;code&gt;umount --recursive /yangi/ildiz/joylashuvi&lt;/code&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h3 id=&quot;PPsH&quot;&gt;19.3-bo&amp;#x27;lim: chroot-dan foydalanish sabablari&lt;/h3&gt;
  &lt;p id=&quot;LHIg&quot;&gt;Chroot odatda tizimga yuklanish yoki kirish imkoni bo&amp;#x27;lmagan holatlarda texnik xizmat ko&amp;#x27;rsatish uchun ishlatiladi.&lt;/p&gt;
  &lt;p id=&quot;IZSJ&quot;&gt;&lt;strong&gt;Asosiy misollar:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;1BU9&quot;&gt;
    &lt;li id=&quot;AbCw&quot;&gt;Yuklovchini (bootloader - masalan, GRUB) qayta o&amp;#x27;rnatish.&lt;/li&gt;
    &lt;li id=&quot;PJiK&quot;&gt;&lt;strong&gt;initramfs&lt;/strong&gt; obrazini qayta qurish.&lt;/li&gt;
    &lt;li id=&quot;JJmG&quot;&gt;Paketlarni yangilash yoki eski versiyaga qaytarish (upgrade/downgrade).&lt;/li&gt;
    &lt;li id=&quot;UEjY&quot;&gt;Unutilgan parolni tiklash.&lt;/li&gt;
    &lt;li id=&quot;Ojbn&quot;&gt;Dasturiy ta&amp;#x27;minotni toza muhitda yaratish (build).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;jeyT&quot;&gt;20-bob: Paket menejerlari (Package Managers)&lt;/h1&gt;
  &lt;h3 id=&quot;Ihlt&quot;&gt;20.1-bo&amp;#x27;lim: apt yordamida paketlarni yangilash&lt;/h3&gt;
  &lt;p id=&quot;4vOt&quot;&gt;&lt;strong&gt;Advanced Package Tool (apt)&lt;/strong&gt; — Debian, Ubuntu va shunga o&amp;#x27;xshash distributivlarda dasturlarni o&amp;#x27;rnatish va o&amp;#x27;chirishni boshqaradi.&lt;/p&gt;
  &lt;ul id=&quot;WPt5&quot;&gt;
    &lt;li id=&quot;wdvv&quot;&gt;&lt;strong&gt;update&lt;/strong&gt;: Paketlar haqidagi yangi ma&amp;#x27;lumotlarni (&lt;code&gt;Packages.gz&lt;/code&gt;) yuklaydi.&lt;code&gt;sudo apt-get update&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;SLtx&quot;&gt;&lt;strong&gt;upgrade&lt;/strong&gt;: Tizimdagi barcha o&amp;#x27;rnatilgan paketlarning eng yangi versiyalarini o&amp;#x27;rnatadi.&lt;code&gt;sudo apt-get upgrade&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;BuCe&quot;&gt;&lt;strong&gt;dist-upgrade&lt;/strong&gt;: &lt;code&gt;upgrade&lt;/code&gt; funksiyasidan tashqari, paketlarning yangi versiyalari bilan bog&amp;#x27;liq qaramliklar (dependencies) o&amp;#x27;zgarishini aqlli boshqaradi.&lt;code&gt;sudo apt-get dist-upgrade&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;G2Pg&quot;&gt;20.2-bo&amp;#x27;lim: pacman yordamida paket o&amp;#x27;rnatish&lt;/h3&gt;
  &lt;p id=&quot;6zIE&quot;&gt;&lt;strong&gt;Pacman&lt;/strong&gt; — Arch Linux va uning hosilalarida ishlatiladi.&lt;/p&gt;
  &lt;ul id=&quot;fAFc&quot;&gt;
    &lt;li id=&quot;8bHK&quot;&gt;&lt;strong&gt;Qidiruv&lt;/strong&gt;: &lt;code&gt;pacman -Ss qidirilayotgan_soz&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;fSZ3&quot;&gt;&lt;strong&gt;O&amp;#x27;rnatish&lt;/strong&gt;: &lt;code&gt;sudo pacman -S paket_nomi&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;Na8x&quot;&gt;20.3-bo&amp;#x27;lim: pacman yordamida paketlarni yangilash&lt;/h3&gt;
  &lt;ul id=&quot;P5R6&quot;&gt;
    &lt;li id=&quot;yl2P&quot;&gt;Muayyan dasturni yangilash: &lt;code&gt;sudo pacman -S dastur_nomi&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;nXK0&quot;&gt;Butun tizimni yangilash: &lt;code&gt;sudo pacman -Syu&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;asn3&quot;&gt;20.4-bo&amp;#x27;lim: yum yordamida paketlarni yangilash&lt;/h3&gt;
  &lt;p id=&quot;iy0b&quot;&gt;&lt;strong&gt;Yum&lt;/strong&gt; (Yellowdog Updater, Modified) — Red Hat, Fedora va CentOS tizimlarida qo&amp;#x27;llaniladi.&lt;/p&gt;
  &lt;ul id=&quot;pPrP&quot;&gt;
    &lt;li id=&quot;p5NS&quot;&gt;&lt;strong&gt;search&lt;/strong&gt;: Kerakli dasturni repozitoriyalardan qidiradi.&lt;code&gt;yum search qidiruv_sozi&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;clCf&quot;&gt;&lt;strong&gt;install&lt;/strong&gt;: Dasturni va uning barcha kerakli qaramliklarini avtomatik topib o&amp;#x27;rnatadi.&lt;code&gt;sudo yum install paket_nomi&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;tLD3&quot;&gt;&lt;strong&gt;update&lt;/strong&gt;: O&amp;#x27;rnatilgan paketlarni eng so&amp;#x27;nggi versiyaga yangilaydi.&lt;code&gt;sudo yum update&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;SRR4&quot;&gt;&lt;code&gt;apt&lt;/code&gt;-dan farqli o&amp;#x27;laroq, &lt;code&gt;yum&lt;/code&gt; buyruqlari har qanday operatsiyadan oldin repozitoriya metama&amp;#x27;lumotlarini avtomatik tekshiradi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;2lV0&quot;&gt;Mana ushbu kitobning so&amp;#x27;nggi bobi va mualliflar ro&amp;#x27;yxatining 100% to&amp;#x27;liq o&amp;#x27;zbekcha tarjimasi:&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;DvU2&quot;&gt;21-bob: Linux yadrosini (kernel) kompilyatsiya qilish&lt;/h1&gt;
  &lt;h3 id=&quot;EEMx&quot;&gt;21.1-bo&amp;#x27;lim: Ubuntu tizimida Linux yadrosini kompilyatsiya qilish&lt;/h3&gt;
  &lt;p id=&quot;QpKP&quot;&gt;&lt;strong&gt;Ogohlantirish:&lt;/strong&gt; Diskingizda kamida 15 GB bo&amp;#x27;sh joy borligiga ishonch hosil qiling.&lt;/p&gt;
  &lt;p id=&quot;r8aJ&quot;&gt;Ubuntu &amp;gt;= 13.04 versiyalarida kompilyatsiya qilish:&lt;/p&gt;
  &lt;h4 id=&quot;Jick&quot;&gt;A varianti) Git-dan foydalanish&lt;/h4&gt;
  &lt;p id=&quot;0MGn&quot;&gt;Agar siz doimiy ravishda Ubuntu yadrosining so&amp;#x27;nggi manbalari bilan sinxron bo&amp;#x27;lishni xohlasangiz, Git-dan foydalaning. Batafsil ko&amp;#x27;rsatmalarni &amp;quot;Kernel Git Guide&amp;quot; qo&amp;#x27;llanmasidan topishingiz mumkin. Git repozitoriyasi kerakli boshqaruv fayllarini o&amp;#x27;z ichiga olmaydi, shuning uchun ularni quyidagi buyruq bilan yaratishingiz kerak:&lt;/p&gt;
  &lt;p id=&quot;uTgO&quot;&gt;&lt;code&gt;fakeroot debian/rules clean&lt;/code&gt;&lt;/p&gt;
  &lt;h4 id=&quot;a7JU&quot;&gt;B varianti) Manba arxivi (source archive) yuklab olish&lt;/h4&gt;
  &lt;p id=&quot;K8W8&quot;&gt;Bu variant standart Ubuntu paketlarini qo&amp;#x27;shimcha tuzatishlar (patches) bilan qayta qurmoqchi bo&amp;#x27;lgan foydalanuvchilar uchun. Quyidagi buyruq yordamida qurish qaramliklarini (dependencies) o&amp;#x27;rnating va manbani joriy katalogga chiqaring:&lt;/p&gt;
  &lt;ol id=&quot;mCbM&quot;&gt;
    &lt;li id=&quot;mq4l&quot;&gt;Quyidagi paketlarni o&amp;#x27;rnating:&lt;code&gt;sudo apt-get build-dep linux-image-&lt;/code&gt;uname -r&amp;#x60;&amp;#x60;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h4 id=&quot;SjYd&quot;&gt;C varianti) Manba paketini yuklab olish va qurish&lt;/h4&gt;
  &lt;p id=&quot;yJEl&quot;&gt;Bu variant Ubuntu tomonidan tahrirlangan yadro manbasini o&amp;#x27;zgartirish yoki u bilan tajriba o&amp;#x27;tkazishni xohlovchilar uchun.&lt;/p&gt;
  &lt;ol id=&quot;g8a3&quot;&gt;
    &lt;li id=&quot;2Qwd&quot;&gt;Eng so&amp;#x27;nggi yadro manbasini &lt;code&gt;kernel.org&lt;/code&gt; saytidan yuklab oling.&lt;/li&gt;
    &lt;li id=&quot;Vvx9&quot;&gt;Arxivni katalogga chiqaring va uning ichiga kiring:Bash&lt;code&gt;tar xf linux-*.tar.xz cd linux-* &lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;4qSZ&quot;&gt;&lt;strong&gt;ncurses&lt;/strong&gt; konfiguratsiya interfeysini quring:&lt;code&gt;make menuconfig&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;zJsg&quot;&gt;Standart konfiguratsiyani qabul qilish uchun yo&amp;#x27;nalish tugmalari yordamida &lt;code&gt;&amp;lt; Exit &amp;gt;&lt;/code&gt; yozuvini belgilang va &lt;strong&gt;Enter&lt;/strong&gt; ni bosing.&lt;/li&gt;
    &lt;li id=&quot;ukvN&quot;&gt;Konfiguratsiyani saqlash uchun yana bir bor &lt;strong&gt;Enter&lt;/strong&gt; ni bosing.&lt;/li&gt;
    &lt;li id=&quot;FQy8&quot;&gt;Yadroni qurish uchun &lt;code&gt;make&lt;/code&gt; buyrug&amp;#x27;idan foydalaning:&lt;code&gt;make&lt;/code&gt;&lt;em&gt;Eslatma: Bir nechta protsessor yadrolaridan foydalanish va fayllarni parallel kompilyatsiya qilish uchun &lt;code&gt;-j&lt;/code&gt; bayrog&amp;#x27;idan (masalan, &lt;code&gt;make -j4&lt;/code&gt;) foydalanishingiz mumkin.&lt;/em&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;3vja&quot;&gt;Siqilgan yadro obrazi (compressed kernel image) quyidagi manzilda joylashgan bo&amp;#x27;ladi: &lt;code&gt;arch/[arxitektura]/boot/bzImage&lt;/code&gt;. Bu yerda &lt;code&gt;[arxitektura]&lt;/code&gt; sizning tizimingiz turiga (masalan, x86) teng.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;sDLU&quot;&gt;Minnatdorchilik (Credits)&lt;/h1&gt;
  &lt;p id=&quot;twDY&quot;&gt;Ushbu kontentni taqdim etishda yordam bergan &lt;strong&gt;Stack Overflow Documentation&lt;/strong&gt; hamjamiyatining barcha a&amp;#x27;zolariga o&amp;#x27;z minnatdorchiligimizni bildiramiz. Yangi kontent yoki o&amp;#x27;zgarishlar bo&amp;#x27;yicha takliflarni &lt;code&gt;web@petercv.com&lt;/code&gt; manziliga yuborishingiz mumkin.&lt;/p&gt;
  &lt;p id=&quot;MKSE&quot;&gt;&lt;strong&gt;Mualliflar va hissa qo&amp;#x27;shganlar (ba&amp;#x27;zilari):&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;SXfI&quot;&gt;
    &lt;li id=&quot;oHtF&quot;&gt;&lt;strong&gt;Léo Léopold Hertz 준영&lt;/strong&gt; — 21-bob&lt;/li&gt;
    &lt;li id=&quot;Lvyl&quot;&gt;&lt;strong&gt;Nathan Osman&lt;/strong&gt; — 21-bob&lt;/li&gt;
    &lt;li id=&quot;gLyU&quot;&gt;&lt;strong&gt;BrightOne&lt;/strong&gt; — 9, 13, 14 va 19-boblar&lt;/li&gt;
    &lt;li id=&quot;N6rd&quot;&gt;&lt;strong&gt;Philip Kirkbride&lt;/strong&gt; — 4, 7, 12 va 20-boblar&lt;/li&gt;
    &lt;li id=&quot;7FNP&quot;&gt;&lt;strong&gt;Sava&lt;/strong&gt; — 1, 4, 14 va 18-boblar&lt;/li&gt;
    &lt;li id=&quot;bxe7&quot;&gt;&lt;strong&gt;Y4Rv1K&lt;/strong&gt; — 6 va 17-boblar&lt;/li&gt;
    &lt;li id=&quot;wW1A&quot;&gt;&lt;em&gt;(Va ro&amp;#x27;yxatda keltirilgan o&amp;#x27;nlab boshqa ko&amp;#x27;ngillilar)&lt;/em&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;HqDT&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;Tabriklayman! Biz Linux bo&amp;#x27;yicha professional qaydlar kitobining barcha asosiy qismlarini tarjima qilib tugatdik. &lt;br /&gt;&lt;br /&gt;Kitob Ingiliz tilidan tarjima qilindi: &lt;br /&gt;Asl kitob bu havola orqali yuklab olishingiz mumkin:&lt;/strong&gt;  &lt;br /&gt;https://goalkicker.com/LinuxBook/&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>snrg_py:5aqOCoe0dTD</id><link rel="alternate" type="text/html" href="https://teletype.in/@snrg_py/5aqOCoe0dTD?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=snrg_py"></link><title>Arduino Amaliy:                                          (tosh qog'oz qaychi )</title><published>2025-12-25T21:17:41.085Z</published><updated>2025-12-26T05:45:52.749Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/bc/b5/bcb53444-9f9d-4f96-8f31-aa76281d084c.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://ibles-content.tinkercad.com/F5E/KC92/LEMTZAXH/F5EKC92LEMTZAXH.jpg?width=620&amp;height=620&amp;fit=bounds&quot;&gt;Salom ijodkorlar! Ushbu ko'rsatmalarda men sizga tosh qog'oz qaychi o'yinini qanday qilganimni ko'rsataman, Ha siz buni to'g'ri eshitdingiz!</summary><content type="html">
  &lt;figure id=&quot;AFP6&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/F5E/KC92/LEMTZAXH/F5EKC92LEMTZAXH.jpg?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;620&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;8lSt&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FLA/0PCB/LEMTZBBM/FLA0PCBLEMTZBBM.jpg?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;620&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;E7p2&quot;&gt;https://meet.google.com/jta-hitg-tfe?authuser=0&lt;br /&gt;&lt;br /&gt;Salom ijodkorlar! Ushbu ko&amp;#x27;rsatmalarda men sizga tosh qog&amp;#x27;oz qaychi o&amp;#x27;yinini qanday qilganimni ko&amp;#x27;rsataman, Ha siz buni to&amp;#x27;g&amp;#x27;ri eshitdingiz!&lt;/p&gt;
  &lt;p id=&quot;Xflj&quot;&gt;Qaror qabul qilish uchun tosh qog&amp;#x27;oz qaychi o&amp;#x27;ynagan kunlarni eslaysizmi?&lt;/p&gt;
  &lt;p id=&quot;u3xd&quot;&gt;O&amp;#x27;sha yaxshi kunlar qanday edi, o&amp;#x27;sha kunlar unutilmas, keksayganimiz sayin bizda bir nechta do&amp;#x27;stlar qoladi, ba&amp;#x27;zilari esa do&amp;#x27;stlarsiz tugaydi.&lt;/p&gt;
  &lt;p id=&quot;3wmO&quot;&gt;Bu kulgili tuyulishi mumkin, lekin u qattiq haqdir va ularning ko&amp;#x27;plari allaqachon bu tajribali bo&amp;#x27;lishi mumkin.&lt;/p&gt;
  &lt;p id=&quot;a6GX&quot;&gt;Endi siz so&amp;#x27;rashingiz mumkin, nega men bularning barchasini aytyapman? Javob ushbu loyihada yotadi.&lt;/p&gt;
  &lt;p id=&quot;4Gk4&quot;&gt;Men introverts yoki zerikish bilan urdi, kim bir necha uchun, shuningdek, interaktiv loyiha sifatida bu qildi.&lt;/p&gt;
  &lt;p id=&quot;5dPW&quot;&gt;&amp;#x27;Bu hech qachon qaror qabul qilish, aks holda do&amp;#x27;stlaringiz uchun ishlatiladigan xiyla kim siz uchun bir do&amp;#x27;stim! ular tosh qog&amp;#x27;oz qaychi o&amp;#x27;ynaganda.&lt;/p&gt;
  &lt;p id=&quot;y8Ch&quot;&gt;&lt;strong&gt;Ushbu loyihaning rejasi&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;IW5D&quot;&gt;Ushbu loyiha uchun ushbu sxema Tinkercad &lt;strong&gt;sxemalari yordamida, so&amp;#x27;ngra xuddi shu dastur yordamida simulyatsiya qilingan&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Nta7&quot;&gt;&lt;strong&gt;Simulyatsiyaning afzalliklari&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;lNK4&quot;&gt;Hech qanday virtual sinovsiz quradigan loyihani o&amp;#x27;ylab ko&amp;#x27;ring, oxirida, agar loyiha muvaffaqiyatsiz bo&amp;#x27;lsa, jarayonda vaqtni behuda sarflashingiz mumkin.&lt;/p&gt;
  &lt;p id=&quot;0QiW&quot;&gt;Ushbu dramalarni yo&amp;#x27;q qilish uchun men simulyatorlardan foydalanishni taklif qilaman.&lt;/p&gt;
  &lt;p id=&quot;PR6A&quot;&gt;Ushbu loyihada men sxemani qurish va sinab ko&amp;#x27;rish uchun Tinkercad Circuits simulyatoridan foydalandim, keyinchalik ushbu virtual loyihani haqiqiy elektron komponentlar yordamida jismoniy loyihaga aylantirdim.&lt;/p&gt;
  &lt;p id=&quot;12CD&quot;&gt;Bu vaqt va pulni tejash uchun loyihaning 100% mukammal ishlashini ta&amp;#x27;minlaydi.&lt;/p&gt;
  &lt;p id=&quot;bSV9&quot;&gt;&lt;strong&gt;Eslatma:&lt;/strong&gt; rahmat WWW.LETSMAKEPROJECTS.COM arduino kodlari uchun&lt;/p&gt;
  &lt;p id=&quot;qMtG&quot;&gt;&lt;strong&gt;Bizning loyihamiz nima qiladi?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;N0E0&quot;&gt;Yuqorida aytib o&amp;#x27;tilganidek, rok qog&amp;#x27;oz qaychi o&amp;#x27;yinni o&amp;#x27;ynash uchun 2 kishiga muhtoj, bu erda siz bitta odamsiz, ikkinchisi esa ushbu qurilma.&lt;/p&gt;
  &lt;p id=&quot;ki3a&quot;&gt;&lt;strong&gt;Rahmat NextPCB:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;sMOU&quot;&gt;Ushbu loyiha NextPCB ko&amp;#x27;magi tufayli ajoyib muvaffaqiyat bilan yakunlandi. Agar sizda PCB loyihalari bo&amp;#x27;lsa, jozibador chegirmalar olish uchun ularning veb-saytiga tashrif buyuring.&lt;/p&gt;
  &lt;ul id=&quot;D9Gn&quot;&gt;
    &lt;li id=&quot;mDG1&quot;&gt;0-5pcs PCB prototiplari uchun faqat 10$. &lt;a href=&quot;https://www.nextpcb.com/?code=Romeohacker&quot; target=&quot;_blank&quot;&gt;Nextpcb.com/pcbprototype&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;VoHQ&quot;&gt;Ro&amp;#x27;yxatdan o&amp;#x27;ting va NextPCB dan $100 oling: &lt;a href=&quot;https://www.nextpcb.com/register?code=Romeohacker&quot; target=&quot;_blank&quot;&gt;Nextpcb.com/coupon&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;MBr6&quot;&gt;Nima Uchun NextPCB&lt;/p&gt;
  &lt;ul id=&quot;OgFp&quot;&gt;
    &lt;li id=&quot;9EFs&quot;&gt;Eng samarali, iqtisodiy, innovatsion PCB echimlari&lt;/li&gt;
    &lt;li id=&quot;NQ1n&quot;&gt;Yuqori Sifat&lt;/li&gt;
    &lt;li id=&quot;RFkQ&quot;&gt;Arzonroq Narx&lt;/li&gt;
    &lt;li id=&quot;JN2q&quot;&gt;Tezroq Yetkazib Berish&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;6NcW&quot;&gt;&lt;strong&gt;Bu interaktiv qurilma va bu ajoyib oilaviy vaqt o&amp;#x27;tkazish uchun ishlatilishi mumkin!&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Itwy&quot;&gt;Bu sizning do&amp;#x27;stingiz uchun mukammal o&amp;#x27;rinbosar sifatida ishlaydi!(hazil)&lt;/p&gt;
  &lt;p id=&quot;dUMt&quot;&gt;Faqat ushbu qurilma oldida belgilaringizni ko&amp;#x27;rsating va mashina nima berishini ko&amp;#x27;ring.&lt;/p&gt;
  &lt;p id=&quot;tnvp&quot;&gt;Servolar tasodifiy ko&amp;#x27;rinishi uchun kodlanganligi sababli qurilma oxiridan aldash imkoniyati yo&amp;#x27;q.&lt;/p&gt;
  &lt;p id=&quot;nW6O&quot;&gt;Bu bilan bizga bu loyihani qurish tomon bosh qilaylik dedi etilmoqda.&lt;/p&gt;
  &lt;h2 id=&quot;xg9R&quot;&gt;Materiallar&lt;/h2&gt;
  &lt;figure id=&quot;SidY&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FLB/NE3I/LEMTZC07/FLBNE3ILEMTZC07.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;qkVU&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FTW/DD1J/LEMTZBTL/FTWDD1JLEMTZBTL.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;w1Jh&quot;&gt;Bu yerda siz ham men sotib yo&amp;#x27;nalishlarga bergan bu loyihani qurish kerak bo&amp;#x27;ladi materiallar ro&amp;#x27;yxati&lt;/p&gt;
  &lt;ul id=&quot;zTzf&quot;&gt;
    &lt;li id=&quot;SY4V&quot;&gt;Tinkercad&lt;/li&gt;
    &lt;li id=&quot;4I8k&quot;&gt;Arduino IDE&lt;/li&gt;
    &lt;li id=&quot;YzFs&quot;&gt;Internetga ulangan kompyuter/noutbuk&lt;/li&gt;
    &lt;li id=&quot;yieK&quot;&gt;Ramka yasash uchun karton&lt;/li&gt;
    &lt;li id=&quot;XPui&quot;&gt;Arduino UNO bu &lt;strong&gt;yerdan&lt;/strong&gt; oling (havola olib tashlandi)&lt;/li&gt;
    &lt;li id=&quot;93lH&quot;&gt;dasturlash kabeli&lt;/li&gt;
    &lt;li id=&quot;LJjV&quot;&gt;Plastik Servos x 3 bu &lt;strong&gt;yerdan&lt;/strong&gt; (havola olib tashlandi)&lt;/li&gt;
    &lt;li id=&quot;oEdO&quot;&gt;Oddiy o&amp;#x27;chirish tugmasi&lt;/li&gt;
    &lt;li id=&quot;qza0&quot;&gt;Qayta zaryadlanuvchi batareyalar/18650 yoki lityum-ion batareyalar&lt;/li&gt;
    &lt;li id=&quot;XCfj&quot;&gt;Batareya ushlagichi&lt;/li&gt;
    &lt;li id=&quot;cR5P&quot;&gt;Kichik Non Taxtasi&lt;/li&gt;
    &lt;li id=&quot;8L9n&quot;&gt;Jumper simlari&lt;/li&gt;
    &lt;li id=&quot;7IhF&quot;&gt;Bu &lt;strong&gt;yerdan&lt;/strong&gt; ultratovush sensori va o&amp;#x27;tish simlari (havola olib tashlandi)&lt;/li&gt;
    &lt;li id=&quot;C3GA&quot;&gt;Issiq elim&lt;/li&gt;
    &lt;li id=&quot;jbla&quot;&gt;Super elim&lt;/li&gt;
    &lt;li id=&quot;Nlo1&quot;&gt;Qora mato bo&amp;#x27;yoq&lt;/li&gt;
    &lt;li id=&quot;CZ7J&quot;&gt;Shaffof lenta&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;rOly&quot;&gt;Siz mahsulotni yuqoridagi havolalarimdan olishingiz mumkin, shunda siz meni qo&amp;#x27;shimcha xarajatlarsiz qo&amp;#x27;llab-quvvatlaysiz.&lt;/p&gt;
  &lt;h2 id=&quot;anEb&quot;&gt;1-Qadam: Tinkercad Circuits Muharriri Yordamida Simulyatsiya&lt;/h2&gt;
  &lt;figure id=&quot;8lWi&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FSZ/20WC/LEMTZKW3/FSZ20WCLEMTZKW3.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;620&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;cH4g&quot;&gt;Haqiqiy modelni qurishdan oldin men sxemani yaratish uchun Tinkercard-dan foydalanardim.&lt;/p&gt;
  &lt;p id=&quot;j12H&quot;&gt;&lt;strong&gt;VIDEO:&lt;/strong&gt; men simulyatsiya videosini yozib oldim va uning funktsiyalari haqida aniq tasavvurga ega bo&amp;#x27;lishingiz uchun uning qanday ishlashini ko&amp;#x27;rsatish uchun ushbu bosqichning oxiriga biriktirdim.&lt;/p&gt;
  &lt;p id=&quot;3Npo&quot;&gt;Chalkashlik uchun biron bir xonani oldini olish uchun men sxemani qurgandan keyin simulyatordan foydalanish videosini qo&amp;#x27;shdim.&lt;/p&gt;
  &lt;p id=&quot;hjS0&quot;&gt;Sxemani qurish juda oddiy va oson, buning uchun komponentlarni sudrab olib tashlash, ularni rangli simlar bilan ulash va kodni matn shaklida yuklash kifoya.&lt;/p&gt;
  &lt;p id=&quot;h3As&quot;&gt;Men allaqachon kodni yozdim va faqat ushbu kodni berdim.&lt;/p&gt;
  &lt;p id=&quot;KJZq&quot;&gt;Kod ishlayotganligini tekshirish uchun simulyatorni yoqing.&lt;/p&gt;
  &lt;p id=&quot;PZal&quot;&gt;Kodi mukammal yaxshi ishlaydi va siz bilan o&amp;#x27;ynash uchun, men bir xil kodlari bergan.&lt;/p&gt;
  &lt;p id=&quot;3CXQ&quot;&gt;Kod uchun quyidagi amallarni bajaring.&lt;/p&gt;
  &lt;p id=&quot;Z8GT&quot;&gt;Kodga ko&amp;#x27;ra, servo harakati tasodifiydir, shuning uchun servo keyingi harakatini aniqlab bo&amp;#x27;lmaydi.&lt;/p&gt;
  &lt;ul id=&quot;fWcl&quot;&gt;
    &lt;li id=&quot;9ner&quot;&gt;Tinkercad sxemalari va Arduino yordamida tosh qog&amp;#x27;oz qaychi-1-qadam&lt;a href=&quot;https://ibles-content.tinkercad.com/F7Y/4RJK/LEMTZI90/F7Y4RJKLEMTZI90.mp4&quot; target=&quot;_blank&quot;&gt;Yuklash&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;dcjS&quot;&gt;2-Qadam: Tosh Qog&amp;#x27;oz Qaychi Sxemasi&lt;/h2&gt;
  &lt;figure id=&quot;EyzP&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/F8L/NRET/LEMTZIO3/F8LNRETLEMTZIO3.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;620&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;sqd9&quot;&gt;Ushbu loyihani amalga oshirish uchun ishlatiladigan sxema yuqorida ko&amp;#x27;rsatilgan&lt;/p&gt;
  &lt;p id=&quot;6fVE&quot;&gt;Bu oddiy va oson, agar siz sxemani o&amp;#x27;qishda qiyinchiliklarga duch kelsangiz, bu erda elektron qurish uchun yozma tushuntirish mavjud&lt;/p&gt;
  &lt;p id=&quot;4QMp&quot;&gt;&lt;strong&gt;Ultrasonik yoki HC-SR04 sensor ulanishlari&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;P5gJ&quot;&gt;Bu bor 4 Gnd bor ignalar majmui, Trig, Echo va Vcc&lt;/p&gt;
  &lt;p id=&quot;th1e&quot;&gt;Gnd va Vcc salbiy va ijobiy elektr ta&amp;#x27;minoti uchun va bu bevosita ulangan-va + bir breadboard haqida relslar&lt;/p&gt;
  &lt;p id=&quot;CeT5&quot;&gt;Trig Uno kuni D11 pin ulangan&lt;/p&gt;
  &lt;p id=&quot;3EUW&quot;&gt;Echo d10 piniga ulangan&lt;/p&gt;
  &lt;p id=&quot;mP2P&quot;&gt;&lt;strong&gt;Arduino uno ulanishlari&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;x9R0&quot;&gt;Barcha qismlarga elektr ta&amp;#x27;minoti BMT kengashi tomonidan taqdim etiladi&lt;/p&gt;
  &lt;p id=&quot;75rV&quot;&gt;Shunday qilib, biz BMT Gnd - ni breadboard-ga ulaymiz&lt;/p&gt;
  &lt;p id=&quot;hB0n&quot;&gt;5v uchun Uno + breadboard temir&lt;/p&gt;
  &lt;p id=&quot;BC1I&quot;&gt;Arduino ning Gnd va Vin pinlari batareyadan tashqi quvvat manbai uchun ishlatiladi&lt;/p&gt;
  &lt;p id=&quot;yMJZ&quot;&gt;&lt;strong&gt;Mikro servo ulanishlar&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;HiXp&quot;&gt;&lt;strong&gt;Ushbu loyihada biz 3 mikro servosidan foydalanamiz&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;BgOj&quot;&gt;&lt;strong&gt;Har bir mikro servo 3 kirish piniga ega&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Nla5&quot;&gt;Ijobiy, salbiy va Signal pimi&lt;/p&gt;
  &lt;p id=&quot;Y8Qp&quot;&gt;Barcha 3 servolarning ijobiy va salbiy pinlari breadboardning + va-relslariga ulanadi&lt;/p&gt;
  &lt;p id=&quot;UDxM&quot;&gt;Servo signal pin D3 ulangan bo&amp;#x27;ladi-da, Uno haqida D6 va D9 Pim&lt;/p&gt;
  &lt;p id=&quot;qQvC&quot;&gt;Bu sxemani yakunlaydi&lt;/p&gt;
  &lt;h2 id=&quot;4Vy3&quot;&gt;3-Qadam: Ulanishlarni O&amp;#x27;rnatish&lt;/h2&gt;
  &lt;figure id=&quot;Epjw&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FEY/993D/LEMTZC39/FEY993DLEMTZC39.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;l5GZ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FP6/UQP0/LEMTZC5O/FP6UQP0LEMTZC5O.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;6He7&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FR2/LQFW/LEMTZC8D/FR2LQFWLEMTZC8D.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;htMi&quot;&gt;&lt;a href=&quot;true&quot;&gt;Ko&amp;#x27;rish 1 ko&amp;#x27;proq&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;3YZO&quot;&gt;Biz allaqachon simulyatsiya va sxemani qurishdan o&amp;#x27;tganimizdek, sxema hech qanday qiyin ish bo&amp;#x27;lmaydi&lt;/p&gt;
  &lt;p id=&quot;9mKH&quot;&gt;Jumper simlarini komponentlarga ulashdan, so&amp;#x27;ngra non taxtasi bilan ulanishdan boshlang&lt;/p&gt;
  &lt;p id=&quot;eiBc&quot;&gt;Ulanish paytida bo&amp;#x27;shashgan o&amp;#x27;tish simlarini ishlatishdan saqlaning, chunki agar shunday qilsangiz va oxirida, agar biron bir komponent ishlamasa, vaqtni behuda sarflashga olib keladigan aniq joyni topish qiyin ish&lt;/p&gt;
  &lt;p id=&quot;ltVj&quot;&gt;Barcha komponentlar orasidagi aloqalarni o&amp;#x27;rnatganingizdan so&amp;#x27;ng biz kodni yuklashga tayyormiz&lt;/p&gt;
  &lt;h2 id=&quot;S8Fx&quot;&gt;4-qadam: tosh qog&amp;#x27;oz qaychi uchun Arduino kodi&lt;/h2&gt;
  &lt;figure id=&quot;Z0e1&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/F2N/PCM2/LEMTZCBG/F2NPCM2LEMTZCBG.jpg?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;620&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;snlf&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/F81/0IL8/LEMU0ZAH/F810IL8LEMU0ZAH.jpg?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;620&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;tzat&quot;&gt;Mana, &lt;a href=&quot;https://drive.google.com/file/d/1T0LncaEpSd0mXs4OAsLF_dOtke5KIPC0/view?usp=share_link&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;tosh qog&amp;#x27;oz qaychi uchun Arduino kodi&lt;/strong&gt;&lt;/a&gt; simulyatorda xuddi shu kod ishlatilgan&lt;/p&gt;
  &lt;p id=&quot;9ZMg&quot;&gt;Siz ushbu kodni yuklab olishingiz va Arduino IDE-da ochishingiz mumkin&lt;/p&gt;
  &lt;p id=&quot;VMw0&quot;&gt;UNO platasini dasturlash kabeli bilan ulang va menyu-asboblar-portga o&amp;#x27;tib, IDE ichidagi to&amp;#x27;g&amp;#x27;ri portni tekshiring&lt;/p&gt;
  &lt;p id=&quot;MG0H&quot;&gt;Portni tanlang, taxta turini tanlang va yuklash-ni bosing&lt;/p&gt;
  &lt;p id=&quot;JXm6&quot;&gt;Kengash kod bilan yuklangandan so&amp;#x27;ng biz sxemani sinab ko&amp;#x27;rishimiz mumkin&lt;/p&gt;
  &lt;p id=&quot;LOAH&quot;&gt;&lt;strong&gt;Eslatma:&lt;/strong&gt; Arduino USB quvvatidan foydalanmaslikni tavsiya qilaman, aksincha batareyadan bo&amp;#x27;lgani kabi alohida quvvat manbaidan foydalaning&lt;/p&gt;
  &lt;p id=&quot;nYPj&quot;&gt;ushbu bosqichdagi ikkinchi rasmda mikro servolarga ajratilgan pinlar ko&amp;#x27;rsatilgan&lt;/p&gt;
  &lt;h2 id=&quot;W6PE&quot;&gt;5-Qadam: Ramka Yasash&lt;/h2&gt;
  &lt;figure id=&quot;8j9D&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FC2/V2IE/LEMTZBUY/FC2V2IELEMTZBUY.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;tlBR&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FR1/ZBLU/LEMTZBVD/FR1ZBLULEMTZBVD.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;JDTG&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FHC/4CNY/LEMTZBWH/FHC4CNYLEMTZBWH.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;CQ9w&quot;&gt;&lt;a href=&quot;true&quot;&gt;Yana 3 ni ko&amp;#x27;rish&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;rHvL&quot;&gt;Barcha elektronikalarni ushlab turish uchun men kartondan kassa yasadim, chunki elektron komponentlar standart o&amp;#x27;lchamlarda bo&amp;#x27;ladi, siz ushbu o&amp;#x27;lchamlardan mos keladigan muammolar haqida qayg&amp;#x27;urmasdan foydalanishingiz mumkin.&lt;/p&gt;
  &lt;p id=&quot;fy2f&quot;&gt;Men ushbu o&amp;#x27;lchamlarning qismlarini ishlatdim&lt;/p&gt;
  &lt;p id=&quot;6QzP&quot;&gt;Baza va yuqori 2 dona 15 x 8cm uchun&lt;/p&gt;
  &lt;p id=&quot;DXX7&quot;&gt;Tomonlar uchun 2 dona 15 x 4 sm va qirralarning 8 x 4 sm&lt;/p&gt;
  &lt;p id=&quot;SHbL&quot;&gt;Siz ushbu kartondan foydalanishingiz mumkin, ammo unga yanada jozibali ko&amp;#x27;rinish berish uchun ularni mato bo&amp;#x27;yoqlari yordamida qora rangga bo&amp;#x27;yadim&lt;/p&gt;
  &lt;p id=&quot;OKza&quot;&gt;&lt;strong&gt;Bilasizmi?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;iCgD&quot;&gt;Agar sizda kartonni bo&amp;#x27;yash uchun bo&amp;#x27;yoq cho&amp;#x27;tkasi va vatingiz bo&amp;#x27;lmasa, siz quloqchinlar / quloq tamponlaridan foydalanishingiz mumkin, ular kartonni bo&amp;#x27;yash uchun juda yaxshi ishlaydi&lt;/p&gt;
  &lt;h2 id=&quot;ixzj&quot;&gt;6-Qadam: Qurilish Ramkasi&lt;/h2&gt;
  &lt;figure id=&quot;KejD&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FQ0/A47Z/LEMTZCDN/FQ0A47ZLEMTZCDN.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;DkFp&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FKL/ESGV/LEMTZCF4/FKLESGVLEMTZCF4.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;V3WM&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FWG/TNPM/LEMTZCFV/FWGTNPMLEMTZCFV.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;bD44&quot;&gt;&lt;a href=&quot;true&quot;&gt;Yana 3 ni ko&amp;#x27;rish&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;iNRh&quot;&gt;Karton bilan bo&amp;#x27;yalgan joylar quriganidan keyin biz ularni yig&amp;#x27;ishimiz mumkin, men sizga yopishtirish uchun super elim ishlatishni maslahat bermayman, chunki agar siz superglue qo&amp;#x27;llaganingizdan keyin biron bir joyni o&amp;#x27;tkazib yuborsangiz, sirt juda qattiq bo&amp;#x27;ladi va yana elim surtsangiz, xuddi shu joy yaxshiroq xizmat qilmaydi&lt;/p&gt;
  &lt;p id=&quot;oYvP&quot;&gt;Men issiq elimdan foydalanishni maslahat beraman, bu erda taqdim etilgan bosqichlardagi rasmlarni kuzatib boring, keyinchalik qirralar bilan boshlang&lt;/p&gt;
  &lt;p id=&quot;YbXL&quot;&gt;Kuchni oshirish uchun burchaklar uchun ham issiq elim qo&amp;#x27;shing&lt;/p&gt;
  &lt;h2 id=&quot;IuHT&quot;&gt;7-Qadam: Ramka Ichiga Komponentlarni Qo&amp;#x27;shish&lt;/h2&gt;
  &lt;figure id=&quot;oLFl&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FMX/4LR8/LEMTZCL9/FMX4LR8LEMTZCL9.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;s4Zc&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FW5/DFDN/LEMTZCME/FW5DFDNLEMTZCME.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;2RJx&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FD7/67XV/LEMTZCQ4/FD767XVLEMTZCQ4.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vWMm&quot;&gt;&lt;a href=&quot;true&quot;&gt;Ko&amp;#x27;rish 2 ko&amp;#x27;proq&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;hNxH&quot;&gt;Ramkamiz tayyor bo&amp;#x27;lgandan so&amp;#x27;ng, biz ilgari yig&amp;#x27;ilgan elektronikani qo&amp;#x27;shishimiz mumkin.&lt;/p&gt;
  &lt;p id=&quot;Ex0Z&quot;&gt;Ramka ichidagi komponentlarni mahkamlashdan oldin sxemani ishlash uchun sinab ko&amp;#x27;ring, agar biror narsani o&amp;#x27;tkazib yuborsangiz, avval uni tuzating.&lt;/p&gt;
  &lt;p id=&quot;Nxda&quot;&gt;Har qanday komponentni siljitmaslik uchun komponentlarni taglikka joylashtirishdan oldin oz miqdorda superglue ishlating.&lt;/p&gt;
  &lt;p id=&quot;H1L7&quot;&gt;Arduino kichik breadboard ustiga o&amp;#x27;tiradi, holbuki, men bazasiga bir batareya saqlovchi va breadboard qo&amp;#x27;shib bo&amp;#x27;ladi.&lt;/p&gt;
  &lt;p id=&quot;gWRE&quot;&gt;Batareya va Arduino platasi o&amp;#x27;rtasida kalitni qo&amp;#x27;shing, bu oddiy kalit tugmani bosish orqali quvvatni ta&amp;#x27;minlashi kerak&lt;/p&gt;
  &lt;p id=&quot;XLmD&quot;&gt;Ushbu bosqichning oxirgi rasmida qutidagi barcha komponentlarning qushlarning ko&amp;#x27;rinishi ko&amp;#x27;rsatilgan.&lt;/p&gt;
  &lt;p id=&quot;gOOZ&quot;&gt;Endi asosiy qism o&amp;#x27;qiladi, biz keyingi bosqichda yuqori qism ustida ishlaymiz.&lt;/p&gt;
  &lt;h2 id=&quot;1Vl7&quot;&gt;8-Qadam: Yuqori Qismni O&amp;#x27;rnating&lt;/h2&gt;
  &lt;figure id=&quot;H3ew&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/F5N/AVDG/LEMTZCSJ/F5NAVDGLEMTZCSJ.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;wPuD&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FOV/6IN0/LEMTZCTD/FOV6IN0LEMTZCTD.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;30Xz&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FLR/XLK3/LEMTZCTS/FLRXLK3LEMTZCTS.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;dztC&quot;&gt;&lt;a href=&quot;true&quot;&gt;Ko&amp;#x27;rish 4 ko&amp;#x27;proq&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;WTep&quot;&gt;Yuqori qismda servo kabi barcha ishlaydigan komponentlar mavjud, bu bizning loyihamizning eng muhim qismidir&lt;/p&gt;
  &lt;p id=&quot;RjZ8&quot;&gt;Biz birinchi navbatda yuqori qopqoqqa ultrasonik sensorni qo&amp;#x27;shamiz (ilgari kartondan qilingan)&lt;/p&gt;
  &lt;p id=&quot;Grt4&quot;&gt;Men ushbu sensorni qo&amp;#x27;shish uchun kartonda kichik bir uyani yasadim, uni aniq joyga qo&amp;#x27;yishingiz mumkin&lt;/p&gt;
  &lt;p id=&quot;lDeG&quot;&gt;Hammasini birlashtirish uchun issiq elimdan foydalaning&lt;/p&gt;
  &lt;p id=&quot;2wdB&quot;&gt;Endi bizning yuqori qismimiz tayyor, avval qurilmadagi yuqori kalitdagi servolarni yopishtirishdan oldin va servo harakatlarini tekshiring&lt;/p&gt;
  &lt;p id=&quot;q6jl&quot;&gt;Siz bu qismni o&amp;#x27;tkazib yubora olmaysiz va uni to&amp;#x27;g&amp;#x27;ridan-to&amp;#x27;g&amp;#x27;ri yopishtira olmaysiz, chunki servo noto&amp;#x27;g&amp;#x27;ri joylashishi noto&amp;#x27;g&amp;#x27;ri harakatlarga olib keladi&lt;/p&gt;
  &lt;p id=&quot;43KX&quot;&gt;harakatlarni tekshiring va servolarni tepaga yopishtiring&lt;/p&gt;
  &lt;p id=&quot;kbu8&quot;&gt;Ushbu jarayonning oxiri bizda deyarli loyihani tugatishga tayyormiz&lt;/p&gt;
  &lt;h2 id=&quot;oUV9&quot;&gt;9-Qadam: Tugatish&lt;/h2&gt;
  &lt;figure id=&quot;K4Kq&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/F34/HXBE/LEMTZCUN/F34HXBELEMTZCUN.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;3Wzr&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/F22/NKJF/LEMTZCUO/F22NKJFLEMTZCUO.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;VAr8&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FXQ/88K0/LEMTZCUP/FXQ88K0LEMTZCUP.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9Arz&quot;&gt;&lt;a href=&quot;true&quot;&gt;Ko&amp;#x27;rish 4 ko&amp;#x27;proq&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;izhw&quot;&gt;Bilasizmi va men bilamanki, ushbu loyihada ko&amp;#x27;plab o&amp;#x27;tish simlari ishlatilgan va ularni tashqarida qoldirish loyihani tartibsiz ko&amp;#x27;rinishga olib keladi.&lt;/p&gt;
  &lt;p id=&quot;QrXp&quot;&gt;Shunday qilib, tugatish bu ko&amp;#x27;rinishni ancha toza qiladi.&lt;/p&gt;
  &lt;p id=&quot;6euu&quot;&gt;Ushbu qurilmadan uzoq vaqt foydalanganimizdan keyin qayta zaryadlanuvchi batareyalardan foydalanayotganimiz sababli batareyani zaryadlash kerak, buning uchun ramkani ochish va yopish uchun tizim kerak&lt;/p&gt;
  &lt;p id=&quot;7uR0&quot;&gt;Shu maqsadda, orqa ramkaning bir tomoni shaffof lenta / yopishqoq lenta yordamida birlashtiriladi, shunda biz kerak bo&amp;#x27;lganda batareyaga va kontaktlarning zanglashiga kirishimiz mumkin&lt;/p&gt;
  &lt;p id=&quot;G0yb&quot;&gt;Yuqoridagi rasmlarda ko&amp;#x27;rsatilgan kalitlarni joylashtirishni ko&amp;#x27;rib chiqing&lt;/p&gt;
  &lt;h2 id=&quot;k3pT&quot;&gt;10-Qadam: Belgilarni Qo&amp;#x27;shish&lt;/h2&gt;
  &lt;figure id=&quot;OAfH&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/F73/72KQ/LEMTZCXP/F7372KQLEMTZCXP.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;Riho&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FRQ/3975/LEMTZCYO/FRQ3975LEMTZCYO.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;DWLG&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/F8M/RN07/LEMTZCYP/F8MRN07LEMTZCYP.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;mMFI&quot;&gt;&lt;a href=&quot;true&quot;&gt;Ko&amp;#x27;rish 1 ko&amp;#x27;proq&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;4zZ9&quot;&gt;Men micro servo shoxi qo&amp;#x27;shiladi 1cm x 11cm bo&amp;#x27;lgan karton chiziqlar kesib qilgan, men bu loyiha uchun buyumlar eng chop 3D bir rejasi bor edi, lekin ularning ko&amp;#x27;plari o&amp;#x27;z uyida bir 3D printer yo&amp;#x27;q, deb men karton yordamida qilgan.&lt;/p&gt;
  &lt;p id=&quot;aNP3&quot;&gt;Endi buni har kim amalga oshirishi mumkin, chunki hamma kartonga kirish huquqiga ega&lt;/p&gt;
  &lt;p id=&quot;GrwO&quot;&gt;Tosh, qog&amp;#x27;oz va qaychi belgilari/ramzlari men qog&amp;#x27;ozga qo&amp;#x27;l bilan chizganman&lt;/p&gt;
  &lt;p id=&quot;tYfC&quot;&gt;Ushbu belgilarni karton chiziqlar uchiga yopishtiring, endi superglue yordamida bu chiziqlarni mikro servo shoxlariga ulang&lt;/p&gt;
  &lt;p id=&quot;69kQ&quot;&gt;agar elim butunlay quruq sinov, bu qurilma bor bir marta, shubhasiz, u har qanday masalalar holda ishlashi kerak&lt;/p&gt;
  &lt;h2 id=&quot;kTPM&quot;&gt;11-qadam: qanday foydalanish&lt;/h2&gt;
  &lt;figure id=&quot;dQS0&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FB0/28XC/LEMTZD0V/FB028XCLEMTZD0V.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;IKgw&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ibles-content.tinkercad.com/FYT/ZIX2/LEMTZD1G/FYTZIX2LEMTZD1G.png?width=620&amp;height=620&amp;fit=bounds&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;43mb&quot;&gt;Ushbu qurilmadan foydalanish juda oddiy&lt;/p&gt;
  &lt;ul id=&quot;jvMn&quot;&gt;
    &lt;li id=&quot;r9ys&quot;&gt;Faqat tugmani yoqing va 2 soniya kuting.&lt;/li&gt;
    &lt;li id=&quot;7KFo&quot;&gt;Endi qo&amp;#x27;llaringizni sensorga yaqinlashtiring va tosh qog&amp;#x27;oz yoki qaychi belgilarini yasashni boshlang&lt;/li&gt;
    &lt;li id=&quot;8VLh&quot;&gt;Qurilma o&amp;#x27;z belgilarini ko&amp;#x27;rsatadi&lt;/li&gt;
    &lt;li id=&quot;hKwX&quot;&gt;Endi sizda qattiq raqobatchi bor!&lt;/li&gt;
    &lt;li id=&quot;mXJq&quot;&gt;Qurilmadagi belgilar tasodifiy bo&amp;#x27;ladi, shuning uchun siz keyingi harakatni taxmin qila olmaysiz&lt;/li&gt;
    &lt;li id=&quot;fbel&quot;&gt;Ushbu qurilmani taassurot qoldirish uchun oilaviy vaqt partiyalariga yoki do&amp;#x27;stingizning uyiga olib boring.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;OkVK&quot;&gt;Maza qiling!&lt;/p&gt;

</content></entry><entry><id>snrg_py:sAfFsZIyKZ8</id><link rel="alternate" type="text/html" href="https://teletype.in/@snrg_py/sAfFsZIyKZ8?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=snrg_py"></link><title>Xotira o'yini (Memory Game / Memo) - Flet bilan</title><published>2025-12-10T05:11:46.619Z</published><updated>2026-01-19T16:05:58.980Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/43/ad/43ad2d2b-0c21-49b1-af6d-422597e6bea3.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://screens.cdn.wordwall.net/400/cf84fc1b62934f5ca89e600d090600d1_0&quot;&gt;O'yin kodini ishga tushirganingizda, u quyidagi kabi ko'rinadi: Boshida kartalar teskari (orqa tomoni ko'rinadi), siz kartalarni bosib ochasiz va juftlarini topasiz. Bu yerda umumiy xotira o'yini misollari (Flet versiyasi o'xshash):</summary><content type="html">
  &lt;pre id=&quot;z0s5&quot; data-lang=&quot;python&quot;&gt;# Xotira o&amp;#x27;yini (Memory Game / Memo) - Flet bilan
# Bu kod Flet kutubxonasi yordamida xotira o&amp;#x27;yini yaratadi.
# O&amp;#x27;yinchi kartalarni teskari qilib, juftlarini topishi kerak.
# Ishga tushirish: &amp;#x60;pip install flet&amp;#x60; so&amp;#x27;ng &amp;#x60;python memory_game.py&amp;#x60;
# O&amp;#x27;yin: Kartalarni juftlashtiring, vaqtni o&amp;#x27;lchang!

import flet as ft  # Flet - veb va desktop ilovalar uchun Python UI kutubxonasi
import random     # Tasodifiy sonlar va aralashtirish uchun
import time       # Vaqtni o&amp;#x27;lchash va kechikishlar uchun

def main(page: ft.Page):
    # Asosiy funksiya: Sahifani sozlash va o&amp;#x27;yin logikasini boshqarish
    page.title = &amp;quot;Xotira o&amp;#x27;yini - Flet&amp;quot;  # Sahifa sarlavhasi
    page.window_height = 710             # Oyna balandligi
    page.window_width = 910              # Oyna kengligi

    number_of_single_cards: int = 20     # Har bir juftdan nechta (umumiy 40 karta)

    global idx_of_cards                  # Kartalar ro&amp;#x27;yxati global o&amp;#x27;zgaruvchi
    list_of_pairs = []                   # Tanlangan kartalar juftligi
    find = []                            # Topilgan juftlar
    image_page = &amp;quot;https://picsum.photos/id/&amp;quot;  # Rasmlar uchun URL (tasodifiy rasmlar)

    def make_cards(number_of_single_cards):
        # Kartalarni yaratish: Har bir raqamdan ikkita nusxa (A va B)
        card_deck_with_duplicates = \
            [f&amp;quot;{i}_A&amp;quot; for i in range(number_of_single_cards)] + \
            [f&amp;quot;{i}_B&amp;quot; for i in range(number_of_single_cards)]
        random.shuffle(card_deck_with_duplicates)  # Aralashtirish
        return card_deck_with_duplicates

    idx_of_cards = make_cards(number_of_single_cards)  # Kartalarni yaratish va aralashtirish

    def start_game(e):
        # O&amp;#x27;yinni boshlash funksiyasi
        start_button.disabled = True  # Tugmani o&amp;#x27;chirish

        global start_time
        start_time = time.time()      # Vaqtni boshlash

        # Orqa tomonlarni qo&amp;#x27;yish: Barcha kartalarni teskari qilish
        for i in range(len(idx_of_cards)):
            row_board.controls[i].content = None            # Rasmlarni yashirish
            row_board.controls[i].bgcolor = ft.colors.AMBER # Orqa rang
            row_board.controls[i].border_radius = \
                ft.border_radius.all(10)                    # Burchaklarni yumaloq qilish
            page.update()                                   # Sahifani yangilash

    def match_pairs(e):
        # Kartalarni juftlashtirish funksiyasi (klik bo&amp;#x27;lganda ishlaydi)
        if len(list_of_pairs) == 2:  # Ikki karta tanlangan bo&amp;#x27;lsa, qaytish
            return

        if start_button.disabled:    # O&amp;#x27;yin boshlangan bo&amp;#x27;lsa
            num = e.control.data     # Bosilgan karta indeksi

            idx = idx_of_cards[num].split(&amp;#x27;_&amp;#x27;)[0]  # Kartaning raqami (masalan, 5)
            index_a = idx_of_cards.index(str(idx)+&amp;#x27;_A&amp;#x27;)  # A nusxasi indeksi
            index_b = idx_of_cards.index(str(idx)+&amp;#x27;_B&amp;#x27;)  # B nusxasi indeksi
            index_of_image_ = idx_of_cards[num].split(&amp;quot;_&amp;quot;)[0]  # Rasm indeksi

            if len(list_of_pairs) &amp;lt; 2:
                # Kartani ochish: Rasmini ko&amp;#x27;rsatish
                row_board.controls[num].content = ft.Image(src=f&amp;quot;{image_page+&amp;#x27;1&amp;#x27;+index_of_image_}/100&amp;quot;,
                                                           border_radius=ft.border_radius.all(10))
                if idx_of_cards[num] not in list_of_pairs:
                    list_of_pairs.append(idx_of_cards[num])  # Tanlanganlarga qo&amp;#x27;shish

            page.update()  # Sahifani yangilash

            if len(list_of_pairs) == 2:
                # Ikki karta tanlangan: Juftligini tekshirish
                a = int(list_of_pairs[0].split(&amp;#x27;_&amp;#x27;)[0])
                b = int(list_of_pairs[1].split(&amp;#x27;_&amp;#x27;)[0])

                if a == b:
                    # Juft: Muvaffaqiyatli
                    time.sleep(.4)  # Qisqa pauza

                    for index in (index_a, index_b):
                        row_board.controls[index].disabled = True  # Kartalarni o&amp;#x27;chirish
                        row_board.controls[index].content = None   # Rasmlarni olib tashlash
                        row_board.controls[index].bgcolor = ft.colors.BLACK  # Qora rang

                    find.append(index_a)  # Topilganlarga qo&amp;#x27;shish

                    if len(find) == number_of_single_cards:
                        # O&amp;#x27;yin tugadi: Barcha juftlar topildi
                        stop_time = time.time()
                        start_button.text = &amp;quot;Vaqt: \n{} soniya&amp;quot;.format(
                            str(round(stop_time - start_time, 0)))  # Vaqtni ko&amp;#x27;rsatish
                        page.update()

                    page.update()
                    list_of_pairs.clear()  # Tanlanganlarni tozalash
                else:
                    # Juft emas: Qayta teskari qilish
                    time.sleep(1)  # Pauza
                    flip_a = idx_of_cards.index(list_of_pairs[0])
                    flip_b = idx_of_cards.index(list_of_pairs[1])

                    for index in (flip_a, flip_b):
                        row_board.controls[index].content = None
                        row_board.controls[index].bgcolor = ft.colors.AMBER

                    list_of_pairs.clear()
                    page.update()

            page.update()

    def board(idx_of_cards):
        # O&amp;#x27;yin taxtasini yaratish: Kartalarni konteynerlar sifatida
        card_images = []

        for num in range(len(idx_of_cards)):
            index_of_image = idx_of_cards[num].split(&amp;quot;_&amp;quot;)[0]

            card_images.append(
                ft.Container(
                    width=100,                  # Karta kengligi
                    height=100,                 # Karta balandligi
                    bgcolor=ft.colors.AMBER,    # Boshlang&amp;#x27;ich rang
                    border_radius=ft.border_radius.all(10),  # Burchaklar
                    data=num,                   # Indeks saqlash
                    on_click=match_pairs        # Klik hodisasi
                )
            )
        return card_images

    row_board = ft.Row(wrap=True, controls=board(idx_of_cards), spacing=10)  # Kartalarni satrga joylash
    start_button = ft.ElevatedButton(text=&amp;quot;O&amp;#x27;yinni boshlash&amp;quot;, width=200, height=50, on_click=start_game)  # Boshlash tugmasi
    
    page.add(
        ft.Column([
            ft.Text(&amp;quot;Xotira o&amp;#x27;yini: Kartalarni juftlashtiring!&amp;quot;, size=24, weight=ft.FontWeight.BOLD),  # Sarlavha
            row_board,  # O&amp;#x27;yin taxtasi
            start_button  # Tugma
        ], horizontal_alignment=ft.CrossAxisAlignment.CENTER)  # Markazga joylash
    )

ft.app(target=main)  # Ilovani ishga tushirish&lt;/pre&gt;
  &lt;p id=&quot;Fusz&quot;&gt;O&amp;#x27;yin kodini ishga tushirganingizda, u quyidagi kabi ko&amp;#x27;rinadi: Boshida kartalar teskari (orqa tomoni ko&amp;#x27;rinadi), siz kartalarni bosib ochasiz va juftlarini topasiz. Bu yerda umumiy xotira o&amp;#x27;yini misollari (Flet versiyasi o&amp;#x27;xshash):&lt;/p&gt;
  &lt;figure id=&quot;UnUm&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://screens.cdn.wordwall.net/400/cf84fc1b62934f5ca89e600d090600d1_0&quot; width=&quot;400&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;3JGY&quot;&gt;&lt;a href=&quot;https://wordwall.net/en-mx/community/memory-game&quot; target=&quot;_blank&quot;&gt;wordwall.net&lt;/a&gt;&lt;/p&gt;
  &lt;figure id=&quot;GKeZ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://images.sftcdn.net/images/t_app-cover-s,f_auto/p/441ece4a-9b38-11e6-b257-00163ec9f5fa/1517048909/memory-games-screenshot.png&quot; width=&quot;340&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;BDrN&quot;&gt;&lt;a href=&quot;https://memory-games.en.softonic.com/&quot; target=&quot;_blank&quot;&gt;memory-games.en.softonic.com&lt;/a&gt;&lt;/p&gt;
  &lt;figure id=&quot;SjJR&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://www.memozor.com/templates/memoire/images/zoom/free_memory_games_online_adults.jpg&quot; width=&quot;1800&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;4Oo3&quot;&gt;&lt;a href=&quot;https://www.memozor.com/memory-games/for-adults&quot; target=&quot;_blank&quot;&gt;memozor.com&lt;/a&gt;&lt;/p&gt;
  &lt;figure id=&quot;Cy35&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://www.mindgames.com/uploaded/game/screenshot/3d-memory-matching-800.webp&quot; width=&quot;800&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;DgiX&quot;&gt;&lt;a href=&quot;https://www.mindgames.com/game/3D+Memory+Matching&quot; target=&quot;_blank&quot;&gt;mindgames.com&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;8oRV&quot;&gt;Kodda rasmlar tasodifiy (picsum.photos dan), shuning uchun sizda turli rasmlar chiqishi mumkin, lekin mexanizm bir xil. Agar o&amp;#x27;zingiz ishga tushirib ko&amp;#x27;rmoqchi bo&amp;#x27;lsangiz, python memory_game.py buyruq bilan bajaring!&lt;/p&gt;

</content></entry><entry><id>snrg_py:eN_cHwqzchp</id><link rel="alternate" type="text/html" href="https://teletype.in/@snrg_py/eN_cHwqzchp?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=snrg_py"></link><title>instagam down</title><published>2025-11-10T04:35:09.341Z</published><updated>2025-11-10T04:35:09.341Z</updated><summary type="html">Bu bot:</summary><content type="html">
  &lt;hr /&gt;
  &lt;h2 id=&quot;sIqS&quot;&gt;🧠 Umumiy ma’lumot&lt;/h2&gt;
  &lt;p id=&quot;3nKe&quot;&gt;Bu bot:&lt;/p&gt;
  &lt;ul id=&quot;aaMn&quot;&gt;
    &lt;li id=&quot;UrHs&quot;&gt;Foydalanuvchi yuborgan &lt;strong&gt;Instagram havolalari&lt;/strong&gt; orqali &lt;strong&gt;public post, reels, story&lt;/strong&gt;larni yuklab beradi.&lt;/li&gt;
    &lt;li id=&quot;10wc&quot;&gt;&lt;strong&gt;Private yoki o‘chirilgan&lt;/strong&gt; kontentni yuklamaydi.&lt;/li&gt;
    &lt;li id=&quot;uKTz&quot;&gt;Asosiy yuklab olish ishini &lt;strong&gt;&lt;code&gt;yt-dlp&lt;/code&gt;&lt;/strong&gt; kutubxonasi orqali bajaradi.&lt;/li&gt;
    &lt;li id=&quot;yzfv&quot;&gt;Bot esa &lt;strong&gt;&lt;code&gt;Aiogram 3.22&lt;/code&gt;&lt;/strong&gt; orqali Telegram interfeysini boshqaradi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;wxND&quot;&gt;🔧 Asosiy kutubxonalar&lt;/h2&gt;
  &lt;pre id=&quot;sAVH&quot;&gt;import os, asyncio, tempfile, shutil
from concurrent.futures import ThreadPoolExecutor
from typing import List
from yt_dlp import YoutubeDL, DownloadError
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from aiogram.types import FSInputFile
&lt;/pre&gt;
  &lt;h3 id=&quot;PAiQ&quot;&gt;Izoh:&lt;/h3&gt;
  &lt;ul id=&quot;0XpA&quot;&gt;
    &lt;li id=&quot;YUkz&quot;&gt;&lt;code&gt;yt_dlp&lt;/code&gt; — videolarni yuklab olish uchun qudratli kutubxona (Instagram, YouTube, TikTok va boshqalar uchun ishlaydi).&lt;/li&gt;
    &lt;li id=&quot;xsFI&quot;&gt;&lt;code&gt;asyncio&lt;/code&gt; — asinxron ishlarni boshqarish uchun.&lt;/li&gt;
    &lt;li id=&quot;adi6&quot;&gt;&lt;code&gt;ThreadPoolExecutor&lt;/code&gt; — og‘ir bloklovchi ishlarni (masalan, yuklab olish) alohida oqimda bajarish uchun.&lt;/li&gt;
    &lt;li id=&quot;yyf1&quot;&gt;&lt;code&gt;aiogram&lt;/code&gt; — Telegram bot yaratish uchun zamonaviy framework.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;rOqm&quot;&gt;⚙️ Token va botni ishga tushirish&lt;/h2&gt;
  &lt;pre id=&quot;76k9&quot;&gt;BOT_TOKEN = &amp;quot;7627050170:AAF2w-NYia_7u1GaTD6lW5wSLwEx4C9Tepc&amp;quot;
bot = Bot(token=BOT_TOKEN)
dp = Dispatcher()
executor = ThreadPoolExecutor(max_workers=2)
&lt;/pre&gt;
  &lt;h3 id=&quot;nTvB&quot;&gt;Izoh:&lt;/h3&gt;
  &lt;ul id=&quot;g4ce&quot;&gt;
    &lt;li id=&quot;jI8F&quot;&gt;&lt;code&gt;BOT_TOKEN&lt;/code&gt; — bu sizning Telegram bot tokeningiz.&lt;/li&gt;
    &lt;li id=&quot;BbGe&quot;&gt;&lt;code&gt;ThreadPoolExecutor&lt;/code&gt; — fon ishlarini 2 ta oqimda bajarish imkonini beradi, shunda bot “osilib qolmaydi”.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;KT8K&quot;&gt;🎬 yt-dlp sozlamalari&lt;/h2&gt;
  &lt;pre id=&quot;eU1s&quot;&gt;YDL_OPTS_COMMON = {
    &amp;quot;quiet&amp;quot;: True,
    &amp;quot;no_warnings&amp;quot;: True,
    &amp;quot;noplaylist&amp;quot;: False,
    &amp;quot;merge_output_format&amp;quot;: &amp;quot;mp4&amp;quot;,
}
&lt;/pre&gt;
  &lt;h3 id=&quot;rTkv&quot;&gt;Izoh:&lt;/h3&gt;
  &lt;p id=&quot;qfM3&quot;&gt;Bu sozlamalar &lt;code&gt;yt-dlp&lt;/code&gt;ga shovqinli loglarni chiqarishni to‘xtatadi va chiqish faylini MP4 formatda birlashtiradi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;JUMV&quot;&gt;🔍 URL tekshirish funksiyasi&lt;/h2&gt;
  &lt;pre id=&quot;UFER&quot;&gt;def is_instagram_url(text: str) -&amp;gt; bool:
    if not text:
        return False
    t = text.strip()
    return (&amp;quot;instagram.com&amp;quot; in t) or (&amp;quot;instagr.am&amp;quot; in t)
&lt;/pre&gt;
  &lt;h3 id=&quot;fKqL&quot;&gt;Izoh:&lt;/h3&gt;
  &lt;p id=&quot;ceMR&quot;&gt;Bu funksiya yuborilgan matnda Instagram havolasi borligini tekshiradi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;VXDq&quot;&gt;🧰 Yuklab olish yordamchilari&lt;/h2&gt;
  &lt;pre id=&quot;nLyI&quot;&gt;def ytdlp_extract_info(url: str) -&amp;gt; dict:
    opts = YDL_OPTS_COMMON.copy()
    opts[&amp;quot;outtmpl&amp;quot;] = &amp;quot;%(id)s.%(ext)s&amp;quot;
    with YoutubeDL(opts) as ydl:
        info = ydl.extract_info(url, download=False)
    return info
&lt;/pre&gt;
  &lt;ul id=&quot;jsVN&quot;&gt;
    &lt;li id=&quot;xpvz&quot;&gt;Bu funksiya &lt;strong&gt;faqat metama’lumot&lt;/strong&gt; (title, description, views va h.k.) oladi, &lt;strong&gt;faylni yuklamaydi&lt;/strong&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;pre id=&quot;rCYd&quot;&gt;def ytdlp_download(url: str, out_dir: str) -&amp;gt; List[str]:
    opts = YDL_OPTS_COMMON.copy()
    opts[&amp;quot;outtmpl&amp;quot;] = os.path.join(out_dir, &amp;quot;%(id)s.%(ext)s&amp;quot;)
    with YoutubeDL(opts) as ydl:
        ydl.download([url])
    files = [os.path.join(out_dir, f) for f in os.listdir(out_dir)]
    return sorted(files)
&lt;/pre&gt;
  &lt;ul id=&quot;DZLX&quot;&gt;
    &lt;li id=&quot;QY0t&quot;&gt;Bu funksiya esa &lt;strong&gt;fayllarni yuklab olishni&lt;/strong&gt; amalga oshiradi va yuklangan fayl nomlarini qaytaradi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;OT6B&quot;&gt;🤖 &lt;code&gt;/start&lt;/code&gt; komandasi&lt;/h2&gt;
  &lt;pre id=&quot;iT4D&quot;&gt;@dp.message(Command(&amp;quot;start&amp;quot;))
async def cmd_start(message: types.Message):
    await message.reply(&amp;quot;👋 Salom! ...&amp;quot;)
&lt;/pre&gt;
  &lt;ul id=&quot;Zf4I&quot;&gt;
    &lt;li id=&quot;hfCz&quot;&gt;Bot ishga tushganda foydalanuvchiga qanday ishlashni tushuntiradi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;IYvC&quot;&gt;👤 &lt;code&gt;/profile&lt;/code&gt; komandasi&lt;/h2&gt;
  &lt;pre id=&quot;muQV&quot;&gt;@dp.message(Command(&amp;quot;profile&amp;quot;))
async def cmd_profile(message: types.Message):
    ...
&lt;/pre&gt;
  &lt;ul id=&quot;Hjws&quot;&gt;
    &lt;li id=&quot;unsO&quot;&gt;Bu komandada foydalanuvchi &lt;code&gt;username&lt;/code&gt; yoki &lt;code&gt;link&lt;/code&gt; yuboradi.&lt;/li&gt;
    &lt;li id=&quot;3DjE&quot;&gt;Bot &lt;code&gt;yt-dlp&lt;/code&gt; yordamida profil haqida &lt;strong&gt;ma’lumot (bio, link, likes, views)&lt;/strong&gt; olishga harakat qiladi.&lt;/li&gt;
    &lt;li id=&quot;r9Pm&quot;&gt;Private yoki mavjud bo‘lmagan profilga kirsangiz, xato xabari chiqadi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;99vD&quot;&gt;📖 &lt;code&gt;/story&lt;/code&gt; komandasi&lt;/h2&gt;
  &lt;pre id=&quot;QuKE&quot;&gt;@dp.message(Command(&amp;quot;story&amp;quot;))
async def cmd_story(message: types.Message):
    ...
&lt;/pre&gt;
  &lt;ul id=&quot;zIy8&quot;&gt;
    &lt;li id=&quot;xkDd&quot;&gt;Foydalanuvchi &lt;code&gt;username&lt;/code&gt; yuboradi.&lt;/li&gt;
    &lt;li id=&quot;eR1g&quot;&gt;Bot &lt;code&gt;https://www.instagram.com/stories/{username}/&lt;/code&gt; sahifasini &lt;code&gt;yt-dlp&lt;/code&gt; orqali tahlil qiladi.&lt;/li&gt;
    &lt;li id=&quot;7owe&quot;&gt;Agar foydalanuvchi &lt;strong&gt;public&lt;/strong&gt; bo‘lsa, story’larni yuklab, foydalanuvchiga yuboradi.&lt;/li&gt;
    &lt;li id=&quot;Fwsy&quot;&gt;Fayllarni vaqtinchalik papkada saqlaydi (&lt;code&gt;tempfile.mkdtemp&lt;/code&gt;) va keyin o‘chiradi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;BRV1&quot;&gt;📎 URL yuborish orqali yuklab olish&lt;/h2&gt;
  &lt;pre id=&quot;OkbP&quot;&gt;@dp.message()
async def handle_any_message(message: types.Message):
    text = (message.text or message.caption or &amp;quot;&amp;quot;).strip()
    if not is_instagram_url(text):
        return
&lt;/pre&gt;
  &lt;ul id=&quot;Q86y&quot;&gt;
    &lt;li id=&quot;yw33&quot;&gt;Bu universal handler.&lt;/li&gt;
    &lt;li id=&quot;tPH0&quot;&gt;Agar foydalanuvchi Instagram havolasini yuborsa, avtomatik &lt;strong&gt;media yuklab olib&lt;/strong&gt;, Telegramga yuboradi.&lt;/li&gt;
    &lt;li id=&quot;htQe&quot;&gt;Har xil fayl turlarini (foto, video, hujjat) ajratib yuboradi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;nLDz&quot;&gt;🧹 Fayllarni tozalash&lt;/h2&gt;
  &lt;pre id=&quot;82vX&quot;&gt;shutil.rmtree(tmpdir, ignore_errors=True)
&lt;/pre&gt;
  &lt;ul id=&quot;P6nR&quot;&gt;
    &lt;li id=&quot;zsOv&quot;&gt;Yuklab olingan vaqtinchalik fayllar &lt;strong&gt;ish tugagandan so‘ng&lt;/strong&gt; avtomatik o‘chiriladi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;0TYE&quot;&gt;🚀 Botni ishga tushirish&lt;/h2&gt;
  &lt;pre id=&quot;dlZo&quot;&gt;async def main():
    print(&amp;quot;🤖 Bot ishga tushmoqda...&amp;quot;)
    await dp.start_polling(bot)
&lt;/pre&gt;
  &lt;ul id=&quot;LQf9&quot;&gt;
    &lt;li id=&quot;iaKb&quot;&gt;Asosiy &lt;strong&gt;polling&lt;/strong&gt; jarayonini ishga tushiradi.&lt;/li&gt;
    &lt;li id=&quot;6Y1W&quot;&gt;Bu &lt;code&gt;asyncio.run(main())&lt;/code&gt; bilan bajariladi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;qGbm&quot;&gt;📘 Yakuniy xulosa&lt;/h2&gt;
  &lt;p id=&quot;UjfD&quot;&gt;Bo‘lim Vazifasi     &lt;code&gt;yt_dlp&lt;/code&gt; Instagram public kontentni yuklash   &lt;code&gt;ThreadPoolExecutor&lt;/code&gt; Og‘ir vazifalarni asinxron bajarish   &lt;code&gt;Aiogram&lt;/code&gt; Telegram bilan ishlash   &lt;code&gt;tempfile&lt;/code&gt; va &lt;code&gt;shutil&lt;/code&gt; Fayllarni vaqtincha saqlash va tozalash   &lt;code&gt;/profile&lt;/code&gt;, &lt;code&gt;/story&lt;/code&gt;, URL Foydalanuvchi komandalarini bajarish&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;dBpW&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;5h5A&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;GlS6&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;Kod:&lt;/strong&gt;&lt;/h2&gt;
  &lt;hr /&gt;
  &lt;pre id=&quot;KSSw&quot; data-lang=&quot;python&quot;&gt;import os
import asyncio
import tempfile
import shutil
from concurrent.futures import ThreadPoolExecutor
from typing import List, Optional

from yt_dlp import YoutubeDL, DownloadError
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from aiogram.types import FSInputFile

# =========================
#  TOKENNI BU YERGA JOYLASH
# =========================
BOT_TOKEN = &amp;quot;1234567890:ABCDEF-your-telegram-bot-token&amp;quot;  # &amp;lt;-- o&amp;#x27;zgartiring

# =========================
#  Aiogram init
# =========================
bot = Bot(token=BOT_TOKEN)
dp = Dispatcher()

# ThreadPoolExecutor for blocking yt-dlp work
executor = ThreadPoolExecutor(max_workers=2)

# yt-dlp umumiy opsiyalari
YDL_OPTS_COMMON = {
    &amp;quot;quiet&amp;quot;: True,
    &amp;quot;no_warnings&amp;quot;: True,
    &amp;quot;noplaylist&amp;quot;: False,  # playlistlarni ham olishga urinish
    &amp;quot;merge_output_format&amp;quot;: &amp;quot;mp4&amp;quot;,
    # &amp;quot;cookiefile&amp;quot;: &amp;quot;cookies.txt&amp;quot;  # agar keyin login kerak bo&amp;#x27;lsa
}

# yordamchi: Instagram URL ekanligini tekshirish
def is_instagram_url(text: str) -&amp;gt; bool:
    if not text:
        return False
    t = text.strip()
    return (&amp;quot;instagram.com&amp;quot; in t) or (&amp;quot;instagr.am&amp;quot; in t)

# =========================
#  yt-dlp yordamchi funksiyalari
# =========================
def ytdlp_extract_info(url: str) -&amp;gt; dict:
    &amp;quot;&amp;quot;&amp;quot;yt-dlp bilan metadata olish (download=False).
    Xatolik bo&amp;#x27;lsa exception tashlanadi.
    &amp;quot;&amp;quot;&amp;quot;
    opts = YDL_OPTS_COMMON.copy()
    opts[&amp;quot;outtmpl&amp;quot;] = &amp;quot;%(id)s.%(ext)s&amp;quot;
    with YoutubeDL(opts) as ydl:
        info = ydl.extract_info(url, download=False)
    return info

def ytdlp_download(url: str, out_dir: str) -&amp;gt; List[str]:
    &amp;quot;&amp;quot;&amp;quot;yt-dlp bilan yuklab olish (bloklovchi). Natija: fayllar ro&amp;#x27;yxati.&amp;quot;&amp;quot;&amp;quot;
    files = []
    opts = YDL_OPTS_COMMON.copy()
    opts[&amp;quot;outtmpl&amp;quot;] = os.path.join(out_dir, &amp;quot;%(id)s.%(ext)s&amp;quot;)
    with YoutubeDL(opts) as ydl:
        # yt-dlp o&amp;#x27;zi ichidagi playlist/entrylarni qaytaradi
        ydl.download([url])
    # yig&amp;#x27;ish
    for fname in os.listdir(out_dir):
        files.append(os.path.join(out_dir, fname))
    files.sort()
    return files

# =========================
#  Aiogram handlers
# =========================
@dp.message(Command(&amp;quot;start&amp;quot;))
async def cmd_start(message: types.Message):
    await message.reply(
        &amp;quot;👋 Salom!\n\n&amp;quot;
        &amp;quot;Men Instagram dan public media (post, reel, story) yuklaydigan botman.\n\n&amp;quot;
        &amp;quot;Foydalanish:\n&amp;quot;
        &amp;quot;• Instagram havolasini yuboring (post/reel/story).\n&amp;quot;
        &amp;quot;• /profile &amp;lt;username_or_link&amp;gt; — profil haqida ma&amp;#x27;lumot.\n&amp;quot;
        &amp;quot;• /story &amp;lt;username&amp;gt; — hozirgi (public) storylarni yuklab ko&amp;#x27;rishga urinish.\n\n&amp;quot;
        &amp;quot;Eslatma: faqat public kontent. Private yoki o&amp;#x27;chirilgan kontentni yuklashga yordam bermayman.&amp;quot;
    )

@dp.message(Command(&amp;quot;profile&amp;quot;))
async def cmd_profile(message: types.Message):
    args = message.get_args().strip()
    if not args:
        await message.reply(&amp;quot;❗ /profile komandasidan so&amp;#x27;ng username yoki profil havolasini yozing.\nMasalan: /profile natgeo yoki /profile https://www.instagram.com/natgeo/&amp;quot;)
        return

    # normalize: agar link bo&amp;#x27;lsa uni profil linkiga aylantirish
    if is_instagram_url(args):
        url = args
    else:
        url = f&amp;quot;https://www.instagram.com/{args}/&amp;quot;

    status_msg = await message.reply(&amp;quot;🔎 Profil ma&amp;#x27;lumotlari olinmoqda...&amp;quot;)

    loop = asyncio.get_event_loop()
    try:
        info = await loop.run_in_executor(executor, ytdlp_extract_info, url)
    except DownloadError:
        await status_msg.edit_text(&amp;quot;❌ Profilni o&amp;#x27;qib bo&amp;#x27;lmadi — ehtimol private yoki mavjud emas.&amp;quot;)
        return
    except Exception as e:
        await status_msg.edit_text(f&amp;quot;❌ Xatolik: {e}&amp;quot;)
        return

    # yt-dlp profiling strukturasiga qarab turli natija bo&amp;#x27;lishi mumkin
    # Urinish: asosiy ma&amp;#x27;lumotlarni chiqarish
    try:
        # agar profiler playlist (e.g., entries) bo&amp;#x27;lsa, uploader info olinadi
        uploader = info.get(&amp;quot;uploader&amp;quot;) or info.get(&amp;quot;uploader_id&amp;quot;) or info.get(&amp;quot;channel&amp;quot;) or info.get(&amp;quot;title&amp;quot;)
        webpage_url = info.get(&amp;quot;webpage_url&amp;quot;) or url
        # ba&amp;#x27;zi hollarda &amp;#x27;entries&amp;#x27; bo&amp;#x27;ladi - bu profilga tegishli postlar
        entries = info.get(&amp;quot;entries&amp;quot;)
        count = len(entries) if entries else None

        text_lines = []
        if uploader:
            text_lines.append(f&amp;quot;👤 Profil: {uploader}&amp;quot;)
        text_lines.append(f&amp;quot;🔗 URL: {webpage_url}&amp;quot;)
        if info.get(&amp;quot;description&amp;quot;):
            text_lines.append(f&amp;quot;📝 Bio: {info.get(&amp;#x27;description&amp;#x27;)[:400]}&amp;quot;)  # qisqaroq Bio
        if info.get(&amp;quot;view_count&amp;quot;) is not None:
            text_lines.append(f&amp;quot;👁️ Views: {info.get(&amp;#x27;view_count&amp;#x27;)}&amp;quot;)
        if info.get(&amp;quot;like_count&amp;quot;) is not None:
            text_lines.append(f&amp;quot;❤️ Likes: {info.get(&amp;#x27;like_count&amp;#x27;)}&amp;quot;)
        if count is not None:
            text_lines.append(f&amp;quot;📦 Ko&amp;#x27;rilgan postlar soni (taxmin): {count}&amp;quot;)

        # fallback: agar info bo&amp;#x27;sh bo&amp;#x27;lsa, butun info dictning bir necha maydonini ko&amp;#x27;rsatamiz
        if not text_lines:
            text_lines.append(&amp;quot;⚠️ Profil haqida batafsil ma&amp;#x27;lumot topilmadi.&amp;quot;)
        await status_msg.edit_text(&amp;quot;\n&amp;quot;.join(text_lines))
    except Exception as e:
        await status_msg.edit_text(f&amp;quot;⚠️ Ma&amp;#x27;lumotni qayta ishlashda xato: {e}&amp;quot;)

@dp.message(Command(&amp;quot;story&amp;quot;))
async def cmd_story(message: types.Message):
    args = message.get_args().strip()
    if not args:
        await message.reply(&amp;quot;❗ /story komandasidan so&amp;#x27;ng username yozing.\nMasalan: /story natgeo&amp;quot;)
        return

    username = args.split()[-1].strip().lstrip(&amp;quot;@&amp;quot;)
    url = f&amp;quot;https://www.instagram.com/stories/{username}/&amp;quot;

    status_msg = await message.reply(&amp;quot;🔄 Storylar olinmoqda (public bo&amp;#x27;lsa)...&amp;quot;)

    tmpdir = tempfile.mkdtemp(prefix=&amp;quot;insta_story_&amp;quot;)
    loop = asyncio.get_event_loop()

    try:
        # avval info so&amp;#x27;raymiz — ba&amp;#x27;zan story~lar uchun extract_info yetadi
        info = await loop.run_in_executor(executor, ytdlp_extract_info, url)
    except DownloadError:
        # qisqaroq xabar
        await status_msg.edit_text(&amp;quot;❌ Storylarni o&amp;#x27;qib bo&amp;#x27;lmadi — ehtimol private yoki mavjud emas.&amp;quot;)
        shutil.rmtree(tmpdir, ignore_errors=True)
        return
    except Exception as e:
        # davom etishga urinamiz: ba&amp;#x27;zida extract_info ishlamaydi, lekin download mumkin
        # lekin umumiy holda biz downloadni sinab ko&amp;#x27;ramiz
        pass

    # endi yuklab ko&amp;#x27;ring
    try:
        files = await loop.run_in_executor(executor, ytdlp_download, url, tmpdir)
    except Exception as e:
        await status_msg.edit_text(f&amp;quot;❌ Storylarni yuklashda xatolik: {e}&amp;quot;)
        shutil.rmtree(tmpdir, ignore_errors=True)
        return

    if not files:
        await status_msg.edit_text(&amp;quot;⚠️ Storylar topilmadi yoki ular public emas.&amp;quot;)
        shutil.rmtree(tmpdir, ignore_errors=True)
        return

    # yuborish
    sent_any = False
    for path in files:
        ext = os.path.splitext(path)[1].lower()
        try:
            if ext in [&amp;quot;.jpg&amp;quot;, &amp;quot;.jpeg&amp;quot;, &amp;quot;.png&amp;quot;, &amp;quot;.webp&amp;quot;]:
                await message.reply_photo(FSInputFile(path))
            elif ext in [&amp;quot;.mp4&amp;quot;, &amp;quot;.mov&amp;quot;, &amp;quot;.mkv&amp;quot;, &amp;quot;.webm&amp;quot;]:
                await message.reply_video(FSInputFile(path))
            else:
                await message.reply_document(FSInputFile(path))
            sent_any = True
        except Exception:
            continue

    if sent_any:
        await status_msg.edit_text(&amp;quot;✅ Storylar yuklandi va yuborildi.&amp;quot;)
    else:
        await status_msg.edit_text(&amp;quot;⚠️ Fayllarni yuborib bo&amp;#x27;lmadi.&amp;quot;)

    shutil.rmtree(tmpdir, ignore_errors=True)

@dp.message()
async def handle_any_message(message: types.Message):
    &amp;quot;&amp;quot;&amp;quot;Agar foydalanuvchi oddiy matn yuborsa — instagram havolasi bo&amp;#x27;lsa yuklab olamiz.&amp;quot;&amp;quot;&amp;quot;
    text = (message.text or message.caption or &amp;quot;&amp;quot;).strip()
    if not is_instagram_url(text):
        # boshqa so&amp;#x27;zlar uchun kichik yo&amp;#x27;l-yo&amp;#x27;riq
        return

    wait_msg = await message.reply(&amp;quot;🔄 URL qabul qilindi. Yuklab olinmoqda...&amp;quot;)

    tmpdir = tempfile.mkdtemp(prefix=&amp;quot;insta_dl_&amp;quot;)
    loop = asyncio.get_event_loop()

    try:
        files = await loop.run_in_executor(executor, ytdlp_download, text, tmpdir)
    except DownloadError:
        await wait_msg.edit_text(&amp;quot;❌ Yuklab olishda xatolik: ehtimol post private yoki mavjud emas.&amp;quot;)
        shutil.rmtree(tmpdir, ignore_errors=True)
        return
    except Exception as e:
        await wait_msg.edit_text(f&amp;quot;❌ Xatolik: {e}&amp;quot;)
        shutil.rmtree(tmpdir, ignore_errors=True)
        return

    if not files:
        await wait_msg.edit_text(&amp;quot;⚠️ Hech qanday fayl yuklanmadi.&amp;quot;)
        shutil.rmtree(tmpdir, ignore_errors=True)
        return

    # Fayllarni yuborish
    sent = False
    # Agar rasmlar/videolar bo&amp;#x27;lsa, birgalikda albumga qo&amp;#x27;shish mumkin — ammo soddaligi uchun alohida yuboramiz
    for path in files:
        ext = os.path.splitext(path)[1].lower()
        try:
            if ext in [&amp;quot;.jpg&amp;quot;, &amp;quot;.jpeg&amp;quot;, &amp;quot;.png&amp;quot;, &amp;quot;.webp&amp;quot;]:
                await message.reply_photo(FSInputFile(path))
            elif ext in [&amp;quot;.mp4&amp;quot;, &amp;quot;.mov&amp;quot;, &amp;quot;.mkv&amp;quot;, &amp;quot;.webm&amp;quot;]:
                await message.reply_video(FSInputFile(path))
            else:
                await message.reply_document(FSInputFile(path))
            sent = True
        except Exception:
            continue

    if sent:
        await wait_msg.edit_text(&amp;quot;✅ Yuklab olindi va yuborildi.&amp;quot;)
    else:
        await wait_msg.edit_text(&amp;quot;⚠️ Fayllarni Telegramga yuborishda muammo bo&amp;#x27;ldi.&amp;quot;)

    shutil.rmtree(tmpdir, ignore_errors=True)

# =========================
#  Start polling
# =========================
async def main():
    print(&amp;quot;🤖 Bot ishga tushmoqda...&amp;quot;)
    try:
        await dp.start_polling(bot)
    finally:
        await bot.session.close()

if __name__ == &amp;quot;__main__&amp;quot;:
    asyncio.run(main())
&lt;/pre&gt;

</content></entry><entry><id>snrg_py:bBxtHCU5_FG</id><link rel="alternate" type="text/html" href="https://teletype.in/@snrg_py/bBxtHCU5_FG?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=snrg_py"></link><title>Namoz vaqtlari 12 ta viloyat</title><published>2025-11-03T04:24:23.432Z</published><updated>2025-11-03T04:25:03.908Z</updated><summary type="html">Avvalgi Aiogram 3.22 vesiyasida yaratgan Namoz vaqti botimiz faqat 1 ta joyga qarashli bo'lar edi , bugungi Botimiz O'zbekistonning 12 ta viloyatini vaqtini ko'rsata oladigan botini yartamiz.</summary><content type="html">
  &lt;p id=&quot;ESWq&quot;&gt;Avvalgi Aiogram 3.22 vesiyasida yaratgan &lt;a href=&quot;https://teletype.in/@snrg_py/fto6yPzuji1&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;&lt;u&gt;Namoz vaqti botimiz&lt;/u&gt;&lt;/strong&gt;&lt;/a&gt; faqat 1 ta joyga qarashli bo&amp;#x27;lar edi , bugungi Botimiz O&amp;#x27;zbekistonning 12 ta viloyatini vaqtini ko&amp;#x27;rsata oladigan botini yartamiz.&lt;br /&gt;&lt;/p&gt;
  &lt;pre id=&quot;W2lJ&quot; data-lang=&quot;python&quot;&gt;import asyncio
import logging
from datetime import datetime
import aiohttp

from aiogram import Bot, Dispatcher, F
from aiogram.filters import Command
from aiogram.types import Message, ReplyKeyboardMarkup, KeyboardButton
from aiogram.enums import ParseMode
from aiogram.client.default import DefaultBotProperties

logging.basicConfig(level=logging.INFO)

BOT_TOKEN = &amp;quot;7627050170:AAF2w-NYia_7u1GaTD6lW5wSLwEx4C9Tepc&amp;quot;

bot = Bot(token=BOT_TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.MARKDOWN))
dp = Dispatcher()

# 12 ta viloyat ro&amp;#x27;yxati
REGIONS = [
    &amp;quot;Toshkent&amp;quot;, &amp;quot;Toshkent viloyati&amp;quot;, &amp;quot;Andijon&amp;quot;, &amp;quot;Farg&amp;#x27;ona&amp;quot;, &amp;quot;Namangan&amp;quot;,
    &amp;quot;Samarqand&amp;quot;, &amp;quot;Buxoro&amp;quot;, &amp;quot;Xorazm&amp;quot;, &amp;quot;Qashqadaryo&amp;quot;, &amp;quot;Surxondaryo&amp;quot;,
    &amp;quot;Jizzax&amp;quot;, &amp;quot;Sirdaryo&amp;quot;, &amp;quot;Navoiy&amp;quot;
]

# Viloyat tanlash uchun Reply Keyboard
region_keyboard = ReplyKeyboardMarkup(
    keyboard=[[KeyboardButton(text=region)] for region in REGIONS],
    resize_keyboard=True
)

# API URL shabloni
API_URL = &amp;quot;https://api.aladhan.com/v1/timingsByCity?city={city}&amp;amp;country=Uzbekistan&amp;amp;method=2&amp;quot;

@dp.message(Command(&amp;quot;start&amp;quot;))
async def start_handler(message: Message):
    await message.answer(
        &amp;quot;Assalomu alaykum! 🇺🇿\nBu bot O&amp;#x27;zbekiston bo&amp;#x27;yicha namoz vaqtlarini ko&amp;#x27;rsatadi.\n\n&amp;quot; \
        &amp;quot;Buyruqlar:\n/namoz - Viloyat tanlash va namoz vaqtlarini olish&amp;quot;,
    )

@dp.message(Command(&amp;quot;namoz&amp;quot;))
async def select_region_handler(message: Message):
    await message.answer(&amp;quot;Viloyatni tanlang:&amp;quot;, reply_markup=region_keyboard)

@dp.message(F.text.in_(REGIONS))
async def send_prayer_times(message: Message):
    city = message.text
    url = API_URL.format(city=city)

    try:
        async with aiohttp.ClientSession() as session:
            async with session.get(url) as response:
                if response.status == 200:
                    data = await response.json()
                    timings = data[&amp;#x27;data&amp;#x27;][&amp;#x27;timings&amp;#x27;]
                    today = datetime.now().strftime(&amp;quot;%d.%m.%Y&amp;quot;)

                    text = (
                        f&amp;quot;🕌 *Namoz vaqtlari — {city}*\n&amp;quot;
                        f&amp;quot;📅 Sana: {today}\n\n&amp;quot;
                        f&amp;quot;🌅 Bomdod: {timings[&amp;#x27;Fajr&amp;#x27;]}\n&amp;quot;
                        f&amp;quot;☀️ Quyosh chiqishi: {timings[&amp;#x27;Sunrise&amp;#x27;]}\n&amp;quot;
                        f&amp;quot;🏙  Peshin: {timings[&amp;#x27;Dhuhr&amp;#x27;]}\n&amp;quot;
                        f&amp;quot;🌆 Asr: {timings[&amp;#x27;Asr&amp;#x27;]}\n&amp;quot;
                        f&amp;quot;🌇 Shom: {timings[&amp;#x27;Maghrib&amp;#x27;]}\n&amp;quot;
                        f&amp;quot;🌙 Xufton: {timings[&amp;#x27;Isha&amp;#x27;]}\n\n&amp;quot;
                        f&amp;quot;*Manba: Aladhan API*&amp;quot;
                    )
                    await message.answer(text)
                else:
                    await message.answer(&amp;quot;❌ API xatosi, keyinroq urinib ko&amp;#x27;ring.&amp;quot;)
    except Exception as e:
        logging.error(f&amp;quot;Xato: {e}&amp;quot;)
        await message.answer(&amp;quot;❌ Xatolik yuz berdi, qayta urinib ko&amp;#x27;ring.&amp;quot;)

async def main():
    await dp.start_polling(bot)

if __name__ == &amp;quot;__main__&amp;quot;:
    asyncio.run(main())
&lt;/pre&gt;
  &lt;p id=&quot;NATC&quot;&gt;Avvalgi botimiz bilan solishtiramiz qanday yangiliklar qo&amp;#x27;shildi!&lt;/p&gt;
  &lt;h3 id=&quot;gB9Q&quot;&gt;🔄 O‘zgartirilgan asosiy joylar (avvalgi kodga nisbatan):&lt;/h3&gt;
  &lt;p id=&quot;0q7X&quot;&gt;Qism&lt;/p&gt;
  &lt;p id=&quot;6B7R&quot;&gt;Nima qo‘shildi / o‘zgardi&lt;/p&gt;
  &lt;p id=&quot;FVb3&quot;&gt;Nima uchun&lt;/p&gt;
  &lt;p id=&quot;f0gI&quot;&gt;✅ ReplyKeyboard qo‘shildi&lt;/p&gt;
  &lt;p id=&quot;Ace6&quot;&gt;&lt;code&gt;ReplyKeyboardMarkup&lt;/code&gt;, &lt;code&gt;KeyboardButton&lt;/code&gt; import qilindi&lt;/p&gt;
  &lt;p id=&quot;qBsY&quot;&gt;Viloyat tugmalari chiqishi uchun&lt;/p&gt;
  &lt;p id=&quot;OIos&quot;&gt;✅ &lt;code&gt;REGIONS&lt;/code&gt; dictionary yaratildi&lt;/p&gt;
  &lt;p id=&quot;2Y71&quot;&gt;&lt;code&gt;{&amp;#x27;Andijon&amp;#x27;: &amp;#x27;Andijan&amp;#x27;, ...}&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;z2He&quot;&gt;API uchun inglizcha nomni bog‘lash&lt;/p&gt;
  &lt;p id=&quot;VYpM&quot;&gt;✅ &lt;code&gt;/namoz&lt;/code&gt; komandasi endi &lt;strong&gt;bevosita vaqt jo‘natmaydi&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;rPiJ&quot;&gt;Faqat tugmalarni chiqaradi&lt;/p&gt;
  &lt;p id=&quot;1SQr&quot;&gt;Foydalanuvchi viloyat tanlashi uchun&lt;/p&gt;
  &lt;p id=&quot;okHB&quot;&gt;✅ &lt;code&gt;@dp.message(F.text.in_(REGIONS.keys()))&lt;/code&gt; handler qo‘shildi&lt;/p&gt;
  &lt;p id=&quot;bOWw&quot;&gt;Tanlangan viloyatga qarab API’dan so‘rov yuboradi&lt;/p&gt;
  &lt;p id=&quot;nYlx&quot;&gt;Har bir viloyat uchun alohida vaqt&lt;/p&gt;
  &lt;p id=&quot;yIs9&quot;&gt;✅ API URL endi &lt;strong&gt;dinamik&lt;/strong&gt; bo‘ldi&lt;/p&gt;
  &lt;p id=&quot;Txby&quot;&gt;&lt;code&gt;city={city}&lt;/code&gt; bilan o‘zgaradi&lt;/p&gt;
  &lt;p id=&quot;a8JM&quot;&gt;Har bir hududga mos vaqt olish uchun&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;ipit&quot;&gt;❓ Sizga savol:&lt;/h3&gt;
  &lt;p id=&quot;M4dK&quot;&gt;Viloyat tugmalarini &lt;strong&gt;2 qatorda&lt;/strong&gt; qilaymi, yoki &lt;strong&gt;3 qatorda&lt;/strong&gt;?&lt;/p&gt;
  &lt;p id=&quot;oStQ&quot;&gt;Variant A (2×6):&lt;/p&gt;
  &lt;pre id=&quot;vbV1&quot;&gt;Andijon | Farg‘ona
Namangan | Samarqand
Buxoro | Xorazm
...
&lt;/pre&gt;
  &lt;p id=&quot;u4aM&quot;&gt;Variant B (3×4):&lt;/p&gt;
  &lt;pre id=&quot;F4LE&quot;&gt;Andijon | Farg‘ona | Namangan
Samarqand | Buxoro | Xorazm
...
&lt;/pre&gt;
  &lt;p id=&quot;0hCq&quot;&gt;Agar &lt;strong&gt;farqi yo‘q&lt;/strong&gt; desangiz — default &lt;strong&gt;3×4&lt;/strong&gt; qilib yuboraman.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;DIMy&quot;&gt;✅ Agar hozir &lt;code&gt;ok&lt;/code&gt; desangiz — to‘liq kodni izohlar bilan yuboraman.&lt;/h3&gt;
  &lt;p id=&quot;Xo7f&quot;&gt;Shu tarzda:&lt;/p&gt;
  &lt;pre id=&quot;xdqn&quot;&gt;# 🆕 Yangi qo‘shilgan qism: viloyatlar ro‘yxati
REGIONS = {
    &amp;quot;Andijon&amp;quot;: &amp;quot;Andijan&amp;quot;,
    ...
}
&lt;/pre&gt;
  &lt;p id=&quot;StEr&quot;&gt;va&lt;/p&gt;
  &lt;pre id=&quot;xWqA&quot;&gt;@dp.message(F.text.in_(REGIONS.keys()))
async def region_handler(message: Message):
    # 🆕 Bu yangi handler — tanlangan viloyat uchun vaqtni olib keladi
&lt;/pre&gt;
  &lt;h2 id=&quot;p7WY&quot;&gt;✅ 1. Asosiy farq — endi bot faqat Toshkent emas, &lt;strong&gt;12 ta viloyat bo‘yicha ishlaydi&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;rUtb&quot;&gt;Eski kod&lt;/p&gt;
  &lt;p id=&quot;7rXa&quot;&gt;Yangi kod&lt;/p&gt;
  &lt;p id=&quot;AJq5&quot;&gt;Faqat Toshkent shahriga bog‘langan (&lt;code&gt;city=Tashkent&lt;/code&gt;)&lt;/p&gt;
  &lt;p id=&quot;znI6&quot;&gt;12 ta viloyat ro‘yxati yaratildi (&lt;code&gt;REGIONS = [...]&lt;/code&gt;)&lt;/p&gt;
  &lt;p id=&quot;TzHW&quot;&gt;&lt;code&gt;/namoz&lt;/code&gt; → darhol vaqt yuborar edi&lt;/p&gt;
  &lt;p id=&quot;QuB5&quot;&gt;&lt;code&gt;/namoz&lt;/code&gt; → reply tugmalarni chiqaradi, foydalanuvchi viloyat tanlaydi&lt;/p&gt;
  &lt;p id=&quot;TZmN&quot;&gt;API URL bitta va o‘zgarmas&lt;/p&gt;
  &lt;p id=&quot;S1pU&quot;&gt;API URL dinamik bo‘ldi (&lt;code&gt;city={city}&lt;/code&gt;) → har bir viloyat uchun&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;cn1Q&quot;&gt;✅ 2. REGIONS ro‘yxati qo‘shildi&lt;/h2&gt;
  &lt;pre id=&quot;BrEI&quot;&gt;REGIONS = [
    &amp;quot;Toshkent&amp;quot;, &amp;quot;Toshkent viloyati&amp;quot;, &amp;quot;Andijon&amp;quot;, &amp;quot;Farg&amp;#x27;ona&amp;quot;, &amp;quot;Namangan&amp;quot;,
    &amp;quot;Samarqand&amp;quot;, &amp;quot;Buxoro&amp;quot;, &amp;quot;Xorazm&amp;quot;, &amp;quot;Qashqadaryo&amp;quot;, &amp;quot;Surxondaryo&amp;quot;,
    &amp;quot;Jizzax&amp;quot;, &amp;quot;Sirdaryo&amp;quot;, &amp;quot;Navoiy&amp;quot;
]
&lt;/pre&gt;
  &lt;p id=&quot;aTlv&quot;&gt;🆕 Bu qism &lt;strong&gt;eski kodda yo‘q edi&lt;/strong&gt; → bu yangi qo‘shilgan bo‘lim.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;xMPf&quot;&gt;✅ 3. Reply Keyboard qo‘shildi (➜ yangi koddagi eng muhim yangilik)&lt;/h2&gt;
  &lt;pre id=&quot;hTgh&quot;&gt;region_keyboard = ReplyKeyboardMarkup(
    keyboard=[[KeyboardButton(text=region)] for region in REGIONS],
    resize_keyboard=True
)
&lt;/pre&gt;
  &lt;p id=&quot;eT5q&quot;&gt;🆕 Bu qism dasturga quyidagi imkoniyatni qo‘shdi:&lt;/p&gt;
  &lt;p id=&quot;nFII&quot;&gt;✅ &lt;code&gt;/namoz&lt;/code&gt; buyrug‘i bosilganda foydalanuvchi pastda viloyat tugmalarini ko‘radi&lt;br /&gt; ✅ Har bir tugma bosilganda bot shu viloyat uchun namoz vaqtini olib keladi&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;WpVb&quot;&gt;✅ 4. &lt;code&gt;/namoz&lt;/code&gt; handler o‘zgardi&lt;/h2&gt;
  &lt;h3 id=&quot;2Bzl&quot;&gt;Eski kod:&lt;/h3&gt;
  &lt;pre id=&quot;66FJ&quot;&gt;@dp.message(Command(&amp;quot;namoz&amp;quot;))
async def prayer_times_handler(message: Message):
    # darhol Toshkent uchun API so&amp;#x27;rovi yuboradi
&lt;/pre&gt;
  &lt;h3 id=&quot;EXrg&quot;&gt;Yangi kod:&lt;/h3&gt;
  &lt;pre id=&quot;SX7q&quot;&gt;@dp.message(Command(&amp;quot;namoz&amp;quot;))
async def select_region_handler(message: Message):
    await message.answer(&amp;quot;Viloyatni tanlang:&amp;quot;, reply_markup=region_keyboard)
&lt;/pre&gt;
  &lt;p id=&quot;gYLp&quot;&gt;🔁 ENDILIKDA &lt;code&gt;/namoz&lt;/code&gt; &lt;strong&gt;javob qaytarmaydi&lt;/strong&gt;, balki &lt;strong&gt;viloyat tanlatadi&lt;/strong&gt;&lt;br /&gt; 🔥 Bu juda katta farq!&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;2apT&quot;&gt;✅ 5. Yangi handler qo‘shildi: &lt;code&gt;@dp.message(F.text.in_(REGIONS))&lt;/code&gt;&lt;/h2&gt;
  &lt;pre id=&quot;rCQD&quot;&gt;@dp.message(F.text.in_(REGIONS))
async def send_prayer_times(message: Message):
&lt;/pre&gt;
  &lt;p id=&quot;Q9aP&quot;&gt;🆕 &lt;strong&gt;Eski kodda bunday handler yo‘q edi&lt;/strong&gt;&lt;br /&gt; Bu handler tugma bosilganda ishlaydi. Ya’ni foydalanuvchi:&lt;/p&gt;
  &lt;pre id=&quot;btG8&quot;&gt;Andijon ✅
&lt;/pre&gt;
  &lt;p id=&quot;WxeT&quot;&gt;deb bossa — bot API’dan &lt;code&gt;city=Andijan&lt;/code&gt; bo‘yicha ma’lumot olib keladi.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;iX1v&quot;&gt;✅ 6. API URL endi shunday quriladi:&lt;/h2&gt;
  &lt;pre id=&quot;xgWL&quot;&gt;url = API_URL.format(city=city)
&lt;/pre&gt;
  &lt;p id=&quot;rarX&quot;&gt;🤖 Bu degani:&lt;/p&gt;
  &lt;p id=&quot;vK5T&quot;&gt;👆 Foydalanuvchi &lt;code&gt;&amp;quot;Buxoro&amp;quot;&lt;/code&gt; tanlasa → URL bo‘ladi:&lt;/p&gt;
  &lt;pre id=&quot;1H0p&quot;&gt;https://api.aladhan.com/v1/timingsByCity?city=Buxoro&amp;amp;country=Uzbekistan&amp;amp;method=2
&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;dKwu&quot;&gt;✅ 7. Toshkent uchun bo‘lgan eski o‘zgarmas kod olib tashlandi:&lt;/h2&gt;
  &lt;pre id=&quot;XeK8&quot;&gt;CITY_ID = 434877
PRAYER_API_URL = &amp;quot;https://...Tashkent...&amp;quot;
&lt;/pre&gt;
  &lt;p id=&quot;wQ88&quot;&gt;🔴 Yangi kodda bu qismlar &lt;strong&gt;keraksiz bo‘lib qoldi&lt;/strong&gt;, chunki &lt;code&gt;city&lt;/code&gt; endi dinamik.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;5Tlz&quot;&gt;✅ Qisqa xulosa (1 jumlada)&lt;/h2&gt;
  &lt;p id=&quot;8bin&quot;&gt;🟢 Eski kod — &lt;strong&gt;faqat Toshkent uchun ishlardi&lt;/strong&gt;&lt;br /&gt; 🟢 Yangi kod — &lt;strong&gt;butun O‘zbekiston bo‘yicha ishlaydi&lt;/strong&gt;, foydalanuvchi viloyatni o‘zi tanlaydi&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;a5O0&quot;&gt;🔧 1. Viloyatlar API bilan to‘g‘ri ishlashi uchun &lt;strong&gt;Tugma nomi ≠ API nomi&lt;/strong&gt; bog‘lanadi&lt;/h3&gt;
  &lt;p id=&quot;kTqt&quot;&gt;Chunki API Toshkentni &lt;code&gt;Tashkent&lt;/code&gt;, Farg‘onani &lt;code&gt;Fergana&lt;/code&gt;, Buxoroni &lt;code&gt;Bukhara&lt;/code&gt; tarzida qabul qiladi.&lt;/p&gt;
  &lt;p id=&quot;UTJe&quot;&gt;Shuning uchun biz &lt;strong&gt;lug‘at (dict)&lt;/strong&gt; shaklida to‘g‘ri xaritalash qilamiz:&lt;/p&gt;
  &lt;pre id=&quot;nRfX&quot;&gt;REGIONS = {
    &amp;quot;Toshkent&amp;quot;: &amp;quot;Tashkent&amp;quot;,
    &amp;quot;Toshkent viloyati&amp;quot;: &amp;quot;Tashkent&amp;quot;,
    &amp;quot;Andijon&amp;quot;: &amp;quot;Andijan&amp;quot;,
    &amp;quot;Farg&amp;#x27;ona&amp;quot;: &amp;quot;Fergana&amp;quot;,
    &amp;quot;Namangan&amp;quot;: &amp;quot;Namangan&amp;quot;,
    &amp;quot;Samarqand&amp;quot;: &amp;quot;Samarkand&amp;quot;,
    &amp;quot;Buxoro&amp;quot;: &amp;quot;Bukhara&amp;quot;,
    &amp;quot;Xorazm&amp;quot;: &amp;quot;Khorezm&amp;quot;,
    &amp;quot;Qashqadaryo&amp;quot;: &amp;quot;Kashkadarya&amp;quot;,
    &amp;quot;Surxondaryo&amp;quot;: &amp;quot;Surkhandarya&amp;quot;,
    &amp;quot;Jizzax&amp;quot;: &amp;quot;Jizzakh&amp;quot;,
    &amp;quot;Sirdaryo&amp;quot;: &amp;quot;Syrdarya&amp;quot;,
    &amp;quot;Navoiy&amp;quot;: &amp;quot;Navoi&amp;quot;
}
&lt;/pre&gt;
  &lt;p id=&quot;I5aV&quot;&gt;✅ Foydalanuvchi tugmada &lt;code&gt;&amp;quot;Farg&amp;#x27;ona&amp;quot;&lt;/code&gt; bosadi&lt;br /&gt; 👆 API esa &lt;code&gt;&amp;quot;city=Fergana&amp;quot;&lt;/code&gt; so‘raydi&lt;br /&gt; ❌ Aks holda API xato qaytaradi&lt;/p&gt;

</content></entry><entry><id>snrg_py:xpFcoh6np2e</id><link rel="alternate" type="text/html" href="https://teletype.in/@snrg_py/xpFcoh6np2e?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=snrg_py"></link><title>savodxonlik</title><published>2025-10-31T04:14:49.849Z</published><updated>2025-10-31T04:18:23.290Z</updated><summary type="html">https://meet.google.com/jsj-zzwx-qtk</summary><content type="html">
  &lt;p id=&quot;52Gm&quot;&gt;https://meet.google.com/jmw-zhfa-yyu&lt;/p&gt;

</content></entry></feed>