Похожие презентации:
6-шы_Дәріс_Windows Subsystem for Linux. WSL, Ubuntu, Windows Terminal және Bash
1. №6 Дәріс Windows Subsystem for Linux
WINDOWS ІШІНДЕГІ LINUX№6 Дәріс
Windows Subsystem for Linux
Windows Terminal — Ubuntu
PowerShell
WSL, Ubuntu, Windows Terminal және Bash
wsl --install · нағыз Linux ядросы · секундта ашылатын терминал ·
/mnt/c және \\wsl$ · bash скрипттері · apt · Windows пен Linux
командалары бір жолда
Ubuntu
cmd
+
student@pc:~$ uname -a
Linux pc 5.15.167.4-microsoft-standard-WSL2
student@pc:~$ ls /mnt/c/Users
Public student
student@pc:~$ echo "Сәлем, Linux!" > hello.txt
student@pc:~$ notepad.exe hello.txt
student@pc:~$ _
2. Бүгін не үйренеміз
ЖОСПАРБүгін не үйренеміз
1
2
3
Не және неге
Қалай жұмыс істейді
Орнату
Мәселе, анықтама, dual boot / ВМ / Sandbox /
контейнермен салыстыру, WSL 1 және WSL 2
Hyper-V, жеңіл утилиталық ВМ, Microsoft
жинаған Linux ядросы, дистрибутивтер
Талаптар, wsl --install, алғашқы іске қосу,
пайдаланушы, wsl.exe командалары
4
5
6
Windows Terminal
Bash негіздері
Екі әлемнің байланысы
Профильдер, қойындылар мен панельдер,
settings.json, пернетақта тіркесімдері
Командалар, файлдар, рұқсаттар, скрипт,
конвейер мен қайта бағыттау, apt
/mnt/c және \\wsl$, interop, желі мен GUI,
.wslconfig, қателер, практика
2
3. Таныс жағдай: Linux құралы керек, ал компьютерде — Windows
1-БӨЛІМ · НЕ ЖӘНЕ НЕГЕТаныс жағдай: Linux құралы керек, ал компьютерде —
Windows
gcc, bash скрипті, Python ортасы, Docker, ssh, grep — бұлардың бәрі Linux-та «үйінде». Windows-та оларды қалай аламыз?
Dual boot (екі ОЖ қатар)
VirtualBox / Hyper-V ВМ
WSL 2
• Дискіні бөлу, жүктеуші (GRUB)
• Бөлек ОЖ, толық оқшаулау
• wsl --install — бір команда
• Әр ауысу — компьютерді қайта жүктеу
• ISO + орнату: 30–60 минут, 20–40 ГБ
• Терминал 1–2 секундта ашылады
• Екі жүйе бір мезгілде жұмыс істемейді
• Файл алмасу — ортақ бума арқылы
• Қате кезінде Windows жүктелмей қалуы
мүмкін
• Екі жұмыс үстелі, екі буфер, екі терезе
• Windows файлдары /mnt/c-да, Linux файлдары
— Проводникте
Ауыр және тәуекелді
Жұмыс істейді, бірақ ауыр
• Диск ≈ 1–2 ГБ, жады керегінше
Жеңіл және біріктірілген
WSL — ВМ мен хосттың арасындағы шекараны барынша жұқартқан виртуализация: Linux терминалы Windows-тың кәдімгі терезесіндей
ашылады, ал файлдар мен командалар екі жаққа да жүреді.
3
4. Windows Subsystem for Linux деген не
1-БӨЛІМ · НЕ ЖӘНЕ НЕГЕWindows Subsystem for Linux деген не
Windows Subsystem for Linux (WSL) — Windows-тың құрамындағы, Linux дистрибутивтерін (Ubuntu, Debian, Kali және т.б.) екінші ОЖ
орнатпай және дәстүрлі виртуалды машина жасамай тікелей Windows ішінде іске қосуға мүмкіндік беретін компонент. Linux командалары,
утилиталары мен қосымшалары Windows файлдарымен және бағдарламаларымен қатар, бір жұмыс үстелінде жұмыс істейді.
Windows-тың бөлігі
Windows 10 (2004+) және
Windows 11; Home
басылымында да бар —
Sandbox-тан айырмасы
осы.
Нағыз Linux
ядросы
WSL 2: Microsoft жинаған
Linux ядросы, wsl --update
арқылы жаңарады; syscallдар толық үйлесімді.
Секундта
Терминал 1–2 секундта
ашылады; ВМ фонда
«ұйықтайды», жады
керегінше беріледі және
қайтарылады.
Екі жақты
интеграция
/mnt/c, \\wsl$, localhost,
.exe шақыру, буфер —
Windows пен Linux бір
жұмыс үстелінде.
Бірнеше
дистрибутив
Ubuntu, Debian, Kali,
openSUSE, Alpine қатар
орнатылады; әрқайсысы —
бөлек файл жүйесі.
4
5. Басқа тәсілдермен салыстыру
1-БӨЛІМ · НЕ ЖӘНЕ НЕГЕБасқа тәсілдермен салыстыру
Критерий
Dual boot
VirtualBox / Hyper-V
ВМ
Windows Sandbox
WSL 2
Docker контейнері
Іске қосу
қайта жүктеу
1–3 минут
10–20 секунд
1–2 секунд
секундтар
Диск
бөлек раздел, 20+ ГБ
20–60 ГБ
≈0
1–2 ГБ VHDX (өседі)
образ 50 МБ – 5 ГБ
Ядро
өз ядросы
өз ядросы
бөлек Windows ядросы
Microsoft жинаған Linux
ядросы
хост ядросы (WSL 2
ішінде)
Файлдар
бөлек
ортақ бума
ортақ бума
/mnt/c және \\wsl$ тікелей
volume / bind mount
Linux GUI
толық
толық
— (Windows)
WSLg арқылы
әдетте жоқ
Қолдану
Linux — негізгі жүйе
басқа ОЖ, ұзақ стенд
бір реттік тест
әзірлеу, скрипт, Linux
құралдары
қызметтерді орау
Виртуализация шкаласы: толық ВМ → бір реттік ВМ (Sandbox) → жеңіл утилиталық ВМ (WSL 2) → контейнер (Docker). WSL — ВМ-нің оқшаулануы мен
контейнердің жеңілдігінің арасында; Docker Desktop-тың өзі Windows-та WSL 2-нің үстінде жұмыс істейді.
5
6. WSL 1 және WSL 2: аударма қабатынан нағыз ядроға
1-БӨЛІМ · НЕ ЖӘНЕ НЕГЕWSL 1 және WSL 2: аударма қабатынан нағыз ядроға
2016
2019–2020
2021
2022
2023–2024
WSL 1
WSL 2
WSLg
Store нұсқасы
Жаңа мүмкіндіктер
Windows 10 Anniversary: Linux
жүйелік шақыруларын Windows
ядросына «аударатын» қабат;
Linux ядросы жоқ
Нағыз Linux ядросы жеңіл
Hyper-V ВМ ішінде; толық
үйлесімділік, Docker жұмыс
істейді
Linux GUI қосымшалары
Windows терезесінде
(Wayland/X11 → RDP)
wsl --install әдепкі; WSL
Microsoft Store арқылы
Windows-тан бөлек жаңарады
systemd қолдауы, mirrored желі
режимі, wsl --manage, дискіні
автоматты қысу
Критерий
WSL 1
WSL 2 (әдепкі)
Архитектура
syscall аударма қабаты, ядро жоқ
нағыз Linux ядросы, жеңіл ВМ (Hyper-V)
Үйлесімділік
ішінара: Docker, systemd, кейбір драйверлер жоқ
толық
Linux файл жүйесі (ext4)
баяу (NTFS үстінде)
жылдам (VHDX ішіндегі ext4)
Windows файлдары (/mnt/c)
жылдам
баяуырақ (9P протоколы)
Талап
Hyper-V керек емес
Virtual Machine Platform, firmware виртуализациясы
Нұсқаны тексеру және ауыстыру: wsl -l -v → VERSION бағанасы; wsl --set-version Ubuntu 2. Бүгінгі дәріс пен зертхана — тек WSL 2.
6
7. Архитектурасы: бір жеңіл ВМ, бір ядро, бірнеше дистрибутив
2-БӨЛІМ · ҚАЛАЙ ЖҰМЫС ІСТЕЙДІАрхитектурасы: бір жеңіл ВМ, бір ядро, бірнеше дистрибутив
WSL 2 — жеңіл утилиталық ВМ
Windows (хост) — NT ядросы
Проводник · VS Code · Windows Terminal · wsl.exe
/mnt/c · \\wsl$ (9P)
Ubuntu
Debian
Kali
localhost · .exe · буфер
ext4 VHDX
ext4 VHDX
ext4 VHDX
C:\ — NTFS
Бір Linux ядросы (Microsoft жинаған) — барлық дистрибутивке ортақ
Microsoft гипервизоры — Hyper-V (Virtual Machine Platform мүмкіндігі)
Аппаратура: процессор (VT-x / AMD-V), жады, диск
Бір ВМ — бәріне
Жады керегінше
Ядро — Microsoft-тан
Interop
Барлық дистрибутив бір жеңіл ВМде, бір ядрода жұмыс істейді;
әрқайсысы — өз файл жүйесі бар
бөлек «контейнер» іспетті.
ВМ бос тұрса жады хостқа
қайтарылады; шегі .wslconfig-те
(әдепкі — хост жадының 50 %).
Ядро Windows Update / wsl --update
арқылы жаңарады; дистрибутив өз
ядросын әкелмейді.
wsl.exe, 9P файл сервері, localhost
бағыттау, Windows PATH — екі жүйе
бір-бірінің командаларын шақырады.
7
8. Талаптар: не керек және қалай тексереміз
3-БӨЛІМ · ОРНАТУТалаптар: не керек және қалай тексереміз
Windows
Windows 10 нұсқа 2004 (build 19041)+ немесе Windows 11.
Барлық басылым — Home да (Sandbox-тан айырмасы).
Аппаратура
x64 немесе ARM64; firmware-де (BIOS/UEFI) виртуализация
VT-x / AMD-V қосулы; ≥ 4 ГБ RAM (ұсыныс — 8 ГБ).
Мүмкіндіктер
«Virtual Machine Platform» және «Windows Subsystem for
Linux» — wsl --install өзі қосады.
PowerShell: тексеру
winver
# нұсқа және build нөмірі
systeminfo | findstr /i "hyper-v"
# → Virtualization Enabled In Firmware: Yes
Get-ComputerInfo | Select WindowsVersion, OsBuildNumber
wsl --status
# орнатулы ма, әдепкі нұсқа
wsl --version
# WSL, ядро, WSLg нұсқалары
Ескерту: «Virtualization Enabled In Firmware: No» болса — BIOS/UEFI-де Intel VT-x немесе
AMD SVM қосыңыз; әйтпесе wsl --install соңында 0x80370102 қатесі шығады (24-слайд).
ВМ ішінде
VirtualBox / Hyper-V ішіндегі Windows-та WSL 2 үшін nested
virtualization қосу керек.
8
9. Бір команда: wsl --install
3-БӨЛІМ · ОРНАТУБір команда: wsl --install
# PowerShell немесе Терминал — әкімші ретінде
wsl --install
# мүмкіндіктер + ядро + Ubuntu
# ... компьютерді қайта жүктеу ...
wsl --list --online
# қолжетімді дистрибутивтер
wsl --install -d Debian
# нақты дистрибутивті қосу
wsl --update
# WSL мен ядроны жаңарту
wsl --version
# не орнатылғанын тексеру
WSL --INSTALL НЕ ІСТЕЙДІ
Мүмкіндіктерді қосады
1
«Windows Subsystem for Linux» және «Virtual Machine
Platform»
Ядроны жүктейді
2
Microsoft жинаған Linux ядросы (WSL 2)
Әдепкі нұсқа — 2
3
Жаңа дистрибутивтер WSL 2 болып орнатылады
Ubuntu орнатады
4
Microsoft Store-дан соңғы LTS нұсқасы
Қайта жүктеу сұрайды
5
Балама: Microsoft Store → «Ubuntu 24.04 LTS» → Орнату. Store-да Debian,
Kali Linux, openSUSE, Alpine да бар.
Содан кейін Ubuntu бірінші рет ашылады
Ескі тәсіл (скрипттерде кездеседі): dism.exe /online /enable-feature
/featurename:Microsoft-Windows-Subsystem-Linux /all және
VirtualMachinePlatform, сосын ядро пакеті.
9
10. Алғашқы іске қосу: Linux пайдаланушысы және шақыру жолы
3-БӨЛІМ · ОРНАТУАлғашқы іске қосу: Linux пайдаланушысы және шақыру
жолы
Ubuntu — алғашқы іске қосу
Installing, this may take a few minutes...
Please create a default UNIX user account.
The username does not need to match your Windows username.
Enter new UNIX username: student
New password: ********
Retype new password: ********
Installation successful!
student@pc:~$ uname -a
Linux pc 5.15.167.4-microsoft-standard-WSL2 x86_64 GNU/Linux
student@pc:~$ lsb_release -ds
Ubuntu 24.04.1 LTS
Пайдаланушы — Linux-тікі
Windows тіркелгісіне қатысы жоқ; пароль sudo үшін керек.
Терілген пароль экранда көрінбейді — бұл қалыпты.
Шақыру жолының анатомиясы
student @ pc : ~ $
пайдаланушы @ компьютер : ағымдағы бума (~ =
/home/student) $ = қарапайым, # = root
Тексеру
uname -a → …microsoft-standard-WSL2 — нағыз ядро;
lsb_release — дистрибутив нұсқасы; Windows-та wsl -l -v →
VERSION 2.
10
11. wsl.exe — дистрибутивтерді басқару
3-БӨЛІМ · ОРНАТУwsl.exe — дистрибутивтерді басқару
Команда (Windows жағында)
Не істейді
wsl
әдепкі дистрибутивтің қабығын ашу
wsl -l -v
дистрибутивтер тізімі, күйі (Running / Stopped) және нұсқасы
wsl -d Debian
нақты дистрибутивті ашу; -u root — басқа пайдаланушымен
wsl --set-default Ubuntu
әдепкі дистрибутивті таңдау
wsl --set-version Ubuntu 2
WSL 1 → WSL 2 түрлендіру
wsl --shutdown
ВМ-ді толық тоқтату (конфигурацияны қолдану, жадыны босату)
wsl --terminate Ubuntu
бір дистрибутивті тоқтату
wsl --export Ubuntu ubuntu.tar
резервтік көшірме (толық файл жүйесі)
wsl --import Lab2 D:\wsl\lab2 ubuntu.tar
көшірмеден жаңа дистрибутив жасау (клон)
wsl --unregister Ubuntu
дистрибутивті барлық файлдарымен жою — қайтарылмайды!
Клон мысалы: зертхана алдында таза Ubuntu-ды export етіп, әр топқа import арқылы бөлек данасын жасауға болады — Sandbox-тағы «әр жолы таза» идеясының WSL
нұсқасы.
11
12. Windows Terminal: бір терезе — барлық қабықтар
4-БӨЛІМ · WINDOWS TERMINALWindows Terminal: бір терезе — барлық қабықтар
Тіркесім
Әрекет
˅
Ctrl+Shift+T
жаңа қойынды (әдепкі профиль)
student@pc:~$ pwd
/home/student
student@pc:~$ ls -la | head -2
total 36
drwxr-x--- 4 student student 4096 Oct 11 10:02 .
student@pc:~$ _
Ctrl+Shift+D
ағымдағы профильді қайталау
Alt+Shift+D
панельді бөлу
Alt+←↑→↓
панельдер арасында жүру
Ctrl+Shift+W
қойындыны жабу
Ctrl+,
параметрлер (settings.json)
Ctrl+Shift+P
командалар палитрасы
Windows Terminal
Windows PowerShell
Ubuntu
Command Prompt
Git Bash
Ескі консоль (conhost) да жұмыс істейді, бірақ Terminal: қойындылар, Unicode,
GPU-рендеринг, түс схемалары, settings.json.
Профильдер
Қойындылар мен панельдер
Орнату
Әр қабық — профиль: PowerShell, cmd, Ubuntu, Git
Bash, Azure Cloud Shell. WSL дистрибутивтері тізімге
автоматты қосылады.
Бір терезеде бірнеше қабық: Ubuntu-да скрипт,
қасында PowerShell-де лог. Панельдерді бөлуге,
өлшемін өзгертуге болады.
Windows 11-де алдын ала орнатулы және әдепкі;
Windows 10-да Microsoft Store немесе winget install
Microsoft.WindowsTerminal.
12
13. settings.json: әдепкі профиль және бастапқы бума
4-БӨЛІМ · WINDOWS TERMINALsettings.json: әдепкі профиль және бастапқы бума
settings.json (үзінді)
{
"defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}",
"profiles": {
"defaults": {
"font": { "face": "Cascadia Mono", "size": 12 }
},
"list": [
{
"name": "Ubuntu",
"source": "Windows.Terminal.Wsl",
"startingDirectory": "//wsl$/Ubuntu/home/student",
"colorScheme": "One Half Dark"
}
]
}
}
defaultProfile
Ctrl+Shift+T және терезе ашылғанда қай қабық. GUID-ті Ubuntu
профилінің «guid» өрісінен көшіріңіз.
startingDirectory
Әдепкі бойынша Terminal Ubuntu-ды C:\Users\… (яғни /mnt/c/…)
ішінен ашады. Linux үй бумасын қою — жылдамдық үшін де
маңызды.
source
WSL профильдерін Terminal динамикалық түрде өзі жасайды;
дистрибутивті жойсаңыз — профиль де кетеді.
Қайда
Ctrl+, → Параметрлер терезесінің төменгі сол жағында «JSON
файлын ашу». Көп параметрді графикалық терезеден де өзгертуге
болады.
13
14. Bash — Linux-тың командалық қабығы
5-БӨЛІМ · BASH НЕГІЗДЕРІBash — Linux-тың командалық қабығы
Shell (қабық) — пернетақтадан терілген команданы оқып, орындап, нәтижесін
көрсететін бағдарлама. Bash (Bourne Again SHell, 1989) — Ubuntu мен көп
дистрибутивтің әдепкі қабығы; Windows-тағы cmd мен PowerShell-дің Linuxтағы баламасы.
ls
-l
/home
команда · опция (-l, --long) · аргумент
Ubuntu
student@pc:~$ ls -l /home
drwxr-x--- 4 student student 4096 Oct 11 10:02 student
student@pc:~$ ls --help | head -2
Usage: ls [OPTION]... [FILE]...
List information about the FILEs.
student@pc:~$ history | tail -1
43 history | tail -1
Перне
Не істейді
Tab
файл және команда атауын толықтыру
↑/↓
командалар тарихы
Ctrl+C
команданы тоқтату
Ctrl+D
енгізуді аяқтау / шығу (exit)
Ctrl+L
экранды тазалау (clear)
Ctrl+R
тарихтан іздеу
man ls, ls --help
анықтама
Ереже: Linux регистрді ажыратады (ls ≠ LS, File.txt ≠ file.txt); опциялар «-»
(қысқа) немесе «--» (ұзын); бос орны бар атау — тырнақшада: "My file.txt".
14
15. Файлдар мен бумалар: Linux ↔ Windows командалары
5-БӨЛІМ · BASH НЕГІЗДЕРІФайлдар мен бумалар: Linux
Windows командалары
Linux (Bash)
Windows (cmd)
Не істейді
pwd
cd
ағымдағы буманы көрсету
ls -la
dir
файлдар тізімі (барлығы, толық)
cd ~ · cd .. · cd /mnt/c
cd %USERPROFILE% · cd ..
буманы ауыстыру: үй, жоғары, диск
mkdir -p lab/src
md lab\src
бума жасау (ішкілерімен)
touch notes.txt
type nul > notes.txt
бос файл жасау
cp -r src backup
xcopy src backup /E
көшіру (бумамен)
mv old.txt new.txt
move / ren
жылжыту немесе атын өзгерту
rm -r lab
rd /s lab
жою (бумамен) — сұрамайды!
cat · less · head · tail
type · more
файлды оқу: толық, беттеп, басы, соңы
nano file.txt
notepad file.txt
мәтін редакторы (Ctrl+O сақтау, Ctrl+X шығу)
grep -rn "WSL" .
findstr /s WSL *
мәтін ішінен іздеу
Файл жүйесінің түбірі — / (диск әріптері жоқ): /home — пайдаланушылар, /etc — конфигурация, /bin, /usr — бағдарламалар, /tmp — уақытша, /mnt — қосылған дискілер
(Windows: /mnt/c).
15
16. Рұқсаттар: rwx, chmod және sudo
5-БӨЛІМ · BASH НЕГІЗДЕРІРұқсаттар: rwx, chmod және sudo
-
rwx
r-x
r-x
1
student
student
52
Oct 11
hello.sh
түрі: - файл, d
бума
иесі: оқу, жазу,
орындау
топ: оқу, орындау
басқалар
сілтемелер
иесі
тобы
байт
өзгерген күні
атауы
$ ls -l hello.sh
-rw-r--r-- 1 student student 52 Oct 11 10:00 hello.sh
$ ./hello.sh
bash: ./hello.sh: Permission denied
# x жоқ
$ chmod +x hello.sh
# орындау рұқсатын қосу
$ chmod 755 hello.sh
# сандармен: rwx r-x r-x
$ ls -l hello.sh
-rwxr-xr-x 1 student student 52 Oct 11 10:00 hello.sh
$ sudo chown root:root hello.sh
# иесін өзгерту (root)
Сандар
r = 4, w = 2, x = 1, қосындысы — бір цифр: 7 = rwx, 5 = r-x, 4 = r--. 755:
иесі — бәрі, қалғандары — оқу мен орындау.
777 неге жаман
Оқулықтағы 777 бәріне бәрін береді: үйренуге жарайды, бірақ кез
келген пайдаланушы файлды өзгерте алады. Скриптке 755 жеткілікті.
sudo
«superuser do» — бір команданы әкімші (root) құқығымен орындау;
пароль — Linux пайдаланушысыныкі. apt пен жүйелік файлдар үшін.
16
17. Скрипт: командалар тізбегі бір файлда
5-БӨЛІМ · BASH НЕГІЗДЕРІСкрипт: командалар тізбегі бір файлда
hello.sh
#!/bin/bash
# hello.sh — алғашқы скрипт
name=${1:-Student}
# 1-аргумент, болмаса Student
echo "Сәлем, $name!"
echo "Бүгін: $(date +%F)"
# команда нәтижесін қою
count=$(ls /mnt/c/Users | wc -l)
echo "C:\Users ішінде $count элемент"
if [ -d "$HOME/projects" ]; then
echo "projects бумасы бар"
else
mkdir "$HOME/projects" && echo "projects жасалды"
fi
for f in *.sh; do echo "скрипт: $f"; done
Іске қосу
student@pc:~$ nano hello.sh
# немесе: cat > hello.sh ... Ctrl+D
student@pc:~$ bash hello.sh Aida
Сәлем, Aida!
Бүгін: 2026-10-11
C:\Users ішінде 2 элемент
projects жасалды
скрипт: hello.sh
student@pc:~$ ./hello.sh
bash: ./hello.sh: Permission denied
student@pc:~$ chmod +x hello.sh && ./hello.sh
Сәлем, Student!
#!/bin/bash — «shebang»: файлды қай интерпретатор орындайды. ./
неге керек: ағымдағы бума іздеу жолында (PATH) жоқ, сондықтан
орнын нақты айтамыз. $1 — бірінші аргумент, $(…) — команда
нәтижесі.
17
18. Конвейер және қайта бағыттау: кішкентай командалардан үлкен жұмыс
5-БӨЛІМ · BASH НЕГІЗДЕРІКонвейер және қайта бағыттау: кішкентай командалардан
үлкен жұмыс
Белгі
Мағынасы
Мысал
Мысалдар
>
шығысты файлға жазу (үстінен)
ls -la > list.txt
>>
файл соңына қосу
echo "жаңа жол" >> log.txt
<
файлдан енгізу
sort < names.txt
|
конвейер: бірінің шығысы — екіншісінің
кірісі
ls /mnt/c | wc -l
2>
қате ағынын бағыттау
gcc a.c 2> errors.txt
&&
алдыңғысы сәтті болса ғана
gcc a.c -o a && ./a
student@pc:~$ cat words.txt | sort | uniq -c \
| sort -rn | head -3
5 wsl
3 bash
2 ubuntu
student@pc:~$ ls -la | grep "\.sh$"
-rwxr-xr-x 1 student student 52 hello.sh
student@pc:~$ ./hello.sh > out.txt 2>&1
student@pc:~$ wc -l out.txt
5 out.txt
||
алдыңғысы сәтсіз болса
ping -c1 8.8.8.8 || echo "желі жоқ"
&
фонда іске қосу
notepad.exe &
Unix философиясы: әр команда бір істі жақсы істейді; күрделі
есеп — командаларды «құбырмен» жалғау. Оқулықтағы мысал:
ls | findstr — Linux пен Windows командасы бір конвейерде (21слайд).
18
19. apt: бағдарламаларды орнату — пакеттер мен репозиторийлер
5-БӨЛІМ · BASH НЕГІЗДЕРІapt: бағдарламаларды орнату — пакеттер мен репозиторийлер
apt — Advanced Package Tool
sudo apt update
sudo apt upgrade -y
sudo apt install mc gcc git python3
apt search htop
apt list --installed | wc -l
sudo apt remove mc
C тілінде Hello, World!
# пакеттер тізімін жаңарту
# орнатылғандарды жаңарту
# орнату (тәуелділіктерімен)
# пакет іздеу
# орнатылғандар саны
# жою
Пакет — бағдарлама + метадеректер + тәуелділіктер тізімі; репозиторий — Ubuntu
серверлеріндегі пакеттер қоймасы; apt update тізімді жаңартады, install жүктеп, тәуелділіктерін
өзі шешеді. Store мен winget-тің Linux баламасы.
student@pc:~$ cat > hello.c
#include <stdio.h>
int main(void) {
printf("Hello, World!\n");
return 0;
}
student@pc:~$ gcc hello.c -o hello && ./hello
Hello, World!
Midnight Commander
sudo apt install mc → mc: екі панельді файл менеджері, F5 көшіру,
F6 жылжыту, F8 жою; Ctrl+O — панельдердің артындағы
терминалды көрсету. /mnt/c арқылы Windows дискілері де
көрінеді.
19
20. Екі файл жүйесі: /mnt/c және \\wsl$
6-БӨЛІМ · ЕКІ ӘЛЕМНІҢ БАЙЛАНЫСЫЕкі файл жүйесі: /mnt/c және \\wsl$
Linux файл жүйесі — ext4 (VHDX файлында)
Windows файл жүйесі — NTFS
/home/student/projects
C:\Users\student\Documents
Windows-тан көрінуі (Проводник, VS Code):
Linux-тан көрінуі:
\\wsl$\Ubuntu\home\student\projects
/mnt/c/Users/student/Documents
9P протоколы арқылы — баяуырақ; Windows рұқсаттары
немесе \\wsl.localhost\Ubuntu\…; explorer.exe . — ағымдағы буманы
ашады
Жобаны Linux жағында сақтаңыз
Жол соңы: CRLF және LF
Регистр мен рұқсаттар
Linux құралдарымен (gcc, python, git, docker) жұмыс
істейтін файлдар — /home/… ішінде: бірнеше есе
жылдам. /mnt/c — Windows-пен алмасу үшін.
Windows редакторы жолды \r\n-мен аяқтайды; bash
«^M: command not found» дейді. Шешімі: sudo apt
install dos2unix → dos2unix hello.sh, немесе VS Code-та
LF таңдау.
Linux-та File.txt ≠ file.txt; /mnt/c-дағы файлдардың
Linux рұқсаттары шартты (metadata опциясы); chmod
онда күткендей жұмыс істемеуі мүмкін.
20
21. Interop: Windows пен Linux командалары бір жолда
6-БӨЛІМ · ЕКІ ӘЛЕМНІҢ БАЙЛАНЫСЫInterop: Windows пен Linux командалары бір жолда
Ubuntu терминалында
PowerShell / cmd терминалында
# Linux → Windows: .exe атауымен шақырылады
notepad.exe hello.sh &
# Блокнот, фонда (&)
explorer.exe .
# Проводник: осы бума
cmd.exe /c dir
# Windows командасы
powershell.exe -c Get-Date # PowerShell командасы
ls -la | clip.exe
# шығыс → Windows буфері
wslpath -w ~
# → \\wsl$\Ubuntu\home\...
wslpath -u "C:\Users"
# → /mnt/c/Users
# Windows → Linux: wsl.exe арқылы
wsl ls -la
# Linux командасы
wsl -d Ubuntu -u root id
# дистрибутив, пайдаланушы
wsl bash -c "uname -r"
# bash арқылы
dir | wsl grep txt
# Windows → Linux сүзгісі
wsl ls /etc | findstr host # Linux → Windows сүзгісі
wsl --exec gcc a.c -o a
# қабықсыз орындау
Қалай істейді: Linux-тың PATH-ына Windows жолдары қосылады
(appendWindowsPath), .exe файлдары хостта іске қосылады, ағындар
(stdin/stdout) екі жаққа да жалғанады — сондықтан конвейер араласып жұмыс
істейді.
Оқулықтағы мысал: explorer.exe . → Проводник Linux бумасын ашады; ls |
findstr — Linux тізімі Windows сүзгісі арқылы; notepad.exe & — фонда,
терминал бос қалады.
21
22. Желі, GUI және әзірлеу құралдары
6-БӨЛІМ · ЕКІ ӘЛЕМНІҢ БАЙЛАНЫСЫЖелі, GUI және әзірлеу құралдары
Желі: localhost екі жаққа да
Желі режимдері
student@pc:~/projects$ python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 ...
Әдепкі — NAT: WSL-дің өз виртуалды желісі мен IP-і, бірақ localhost екі жаққа да
бағытталады. Windows 11 22H2+: mirrored режимі — Windows IP-і мен
интерфейстері Linux-та да көрінеді (.wslconfig).
# Windows браузерінде: http://localhost:8000 — ашылады
# Linux IP-і: hostname -I
(NAT режимінде 172.x.x.x)
# Windows-тан да: curl http://localhost:8000
WSLg — Linux GUI
Linux-та іске қосылған сервер (веб, дерекқор, Jupyter) Windows браузерінен
localhost арқылы ашылады — порт бағыттауды баптау керек емес.
VS Code: Remote – WSL
sudo apt install gedit → gedit: Linux терезесі Windows жұмыс үстелінде ашылады
(Windows 11, Windows 10 21H2+). Бастау мәзіріне де қосылады.
Ubuntu терминалында code . → VS Code Windows-та ашылады, бірақ файлдар,
терминал, отладка — Linux ішінде. Әзірлеушілердің негізгі жұмыс режимі.
Docker Desktop
Windows-та Docker Desktop WSL 2 backend-ін қолданады: контейнерлер осы жеңіл
ВМ-де жұмыс істейді. Келесі дәрістердің тақырыбы.
22
23. Конфигурация: .wslconfig (ВМ) және wsl.conf (дистрибутив)
6-БӨЛІМ · ЕКІ ӘЛЕМНІҢ БАЙЛАНЫСЫКонфигурация: .wslconfig (ВМ) және wsl.conf (дистрибутив)
# C:\Users\student\.wslconfig — бүкіл WSL 2 ВМ-іне
[wsl2]
memory=4GB
# ВМ-ге берілетін ең көп жады
processors=2
# виртуалды ядролар
swap=0
# своп файлы (0 — өшіру)
localhostForwarding=true
# localhost бағыттау
# networkingMode=mirrored # Windows 11 22H2+
# /etc/wsl.conf — әр дистрибутивтің ішінде (sudo nano)
[boot]
systemd=true
# қызметтер (Docker, ssh) үшін
[experimental]
autoMemoryReclaim=gradual
sparseVhd=true
[interop]
enabled=true
appendWindowsPath=true
# .exe шақыруға рұқсат
# Windows PATH-ын қосу
[user]
default=student
# әдепкі пайдаланушы
# бос жадыны хостқа қайтару
# дискіні автоматты қысу
[automount]
enabled=true
# Windows дискілері → /mnt/*
options="metadata,umask=22" # Linux рұқсаттары /mnt-те
Қолдану: файлды сақтаған соң PowerShell-де wsl --shutdown, сосын терминалды қайта ашу. Әдепкі мәндер: жады — хосттың 50 %, процессорлар — бәрі, своп —
жадының 25 %. .wslconfig — Windows жағында, пайдаланушы бумасында; wsl.conf — Linux ішінде, әр дистрибутивге бөлек.
23
24. Жиі қателер және оларды шешу
6-БӨЛІМ · ЕКІ ӘЛЕМНІҢ БАЙЛАНЫСЫЖиі қателер және оларды шешу
Белгі
Себебі
Шешімі
WslRegisterDistribution failed, 0x80370102
firmware-де виртуализация өшірулі немесе VMP
мүмкіндігі қосылмаған
BIOS/UEFI → VT-x / SVM; Enable-WindowsOptionalFeature
VirtualMachinePlatform
0x800701bc: WSL 2 requires an update to its kernel
ядро компоненті ескі
wsl --update, сосын wsl --shutdown
/mnt/c-дағы жоба өте баяу (git status, npm)
9P арқылы мыңдаған ұсақ файл
жобаны /home/… ішіне көшіру (ext4)
Интернет жоқ, apt update істемейді
DNS (resolv.conf), VPN немесе антивирус
wsl --shutdown; VPN-мен mirrored режимін сынау; DNS-ті
қолмен
ext4.vhdx дискісі өсіп кетті
жойылған файлдар орны қайтарылмайды
sparseVhd=true немесе wsl --manage Ubuntu --set-sparse true;
diskpart compact
Пароль ұмытылды
—
wsl -d Ubuntu -u root passwd student
^M: bad interpreter / command not found
скрипт CRLF форматында
dos2unix файл.sh; редакторда LF
Дистрибутив «бұзылды»
конфигурация немесе пакеттер қатесі
wsl --export (сақтау) → wsl --unregister → қайта орнату
Әмбебап бірінші қадам: wsl --shutdown, сосын терминалды қайта ашу; екіншісі — wsl --update.
24
25. Кімге және не үшін: WSL, Sandbox, ВМ, контейнер
ҚОЛДАНУКімге және не үшін: WSL, Sandbox, ВМ, контейнер
Әзірлеуші
DevOps / админ
Студент
Деректер мен ML
Python, Node, Go, C — Linux
ортасында, редактор Windows-та (VS
Code Remote – WSL); серверде қалай
жұмыс істесе, компьютерде солай.
bash скрипттері, ssh, ansible, kubectl,
docker — бәрі Linux құралдары;
Windows ноутбуктан серверлерді
басқару.
Курстың зертханалары: Linux
командалары, gcc, скрипттер, mc —
ВМ орнатпай, үй компьютерінде,
Home басылымында.
Jupyter, pandas, CUDA (NVIDIA GPU
WSL 2-де қолжетімді) — Linux
кітапханалары Windows-тағы
браузермен.
Міндет
Құрал
Күмәнді .exe файлды тексеру
Windows Sandbox (өткен дәріс)
Басқа ОЖ-ны толық зерттеу, ескі Windows, графикалық Linux жұмыс үстелі
VirtualBox / Hyper-V ВМ
Linux командалары, скрипттер, әзірлеу құралдары — Windows-пен қатар
WSL 2
Қызметті орап, кез келген жерде бірдей іске қосу
Docker (WSL 2 үстінде)
25
26. Зертханалық жұмысқа дайындық
ПРАКТИКАЗертханалық жұмысқа дайындық
1. Орнату. wsl --install → Ubuntu → пайдаланушы жасау; wsl -l -v, wsl --version және uname -a
нәтижелерін есепке скриншотпен қосыңыз.
2. Terminal. Windows Terminal орнатып, Ubuntu-ды әдепкі профиль етіңіз; startingDirectory — Linux
үй бумасы; панельді бөліп, қасында PowerShell ашыңыз.
3. Скрипт. ~/lab/hello.sh: аты бойынша сәлемдесу, күн, /mnt/c/Users элементтерінің саны; chmod +x;
нәтижесін out.txt-ке 2>&1 арқылы жазыңыз.
4. Пакеттер. apt update; mc, gcc орнату; hello.c жазып, компиляциялап, іске қосу; mc-де /mnt/c-ға
кіріп, Ctrl+O көрсету.
5. Interop. Ubuntu-дан explorer.exe . және notepad.exe; PowerShell-ден dir | wsl grep; wslpath екі
бағытта. Қай команда қай жүйеде орындалғанын түсіндіріңіз.
6*. Қосымша. .wslconfig-те жады 2 ГБ; free -h арқылы дәлелдеу; wsl --export арқылы резервтік
көшірме; CRLF скриптін dos2unix-пен түзету.
\\wsl$\Ubuntu\home\student\
└── lab\
├── hello.sh
├── out.txt
├── hello.c
└── hello
C:\Users\student\
├── .wslconfig
└── ubuntu-backup.tar
Есеп: скриншоттар, hello.sh,
hello.c, out.txt, wsl -l -v шығысы
26
27. Есте қалатын алты нәрсе
ҚОРЫТЫНДЫЕсте қалатын алты нәрсе
1 · WINDOWS ІШІНДЕГІ LINUX
2 · БІР КОМАНДА
3 · WINDOWS TERMINAL
WSL 2 — Hyper-V-дегі жеңіл ВМ ішіндегі нағыз
Linux ядросы; дистрибутивтер бір ядроны
бөліседі. Home-да да бар.
wsl --install → қайта жүктеу → Ubuntu; Linux
пайдаланушысы бөлек; wsl -l -v, --shutdown, -export / --import, --unregister.
Бір терезе — барлық қабықтар: профильдер,
қойындылар, панельдер; settings.json:
defaultProfile, startingDirectory.
4 · BASH
5 · ЕКІ ФАЙЛ ЖҮЙЕСІ
6 · INTEROP
команда -опция аргумент; ls, cd, mkdir, cp, mv,
rm, cat, nano; rwx + chmod + sudo; #!/bin/bash, $1,
$(…); | > >> 2> &&; apt.
/mnt/c — Windows дискілері (баяу, алмасу үшін);
\\wsl$ — Linux файлдары (жоба осында); CRLF
→ LF.
.exe Linux-тан, wsl.exe Windows-тан, аралас
конвейер, wslpath, localhost екі жаққа; .wslconfig
пен wsl.conf; wsl --shutdown.
Виртуализация шкаласы: толық ВМ → Sandbox → WSL 2 → контейнер. Келесі дәрісте — контейнерлер мен Docker: Docker Desktop дәл осы WSL
2-нің үстінде жұмыс істейді.
27
28. Сұрақтар
ӨЗІН-ӨЗІ ТЕКСЕРУСұрақтар
1
WSL 2-нің VirtualBox-тағы Ubuntu ВМ-інен және Windows Sandbox-тан басты айырмашылығы неде? Үш қасиетін атаңыз.
2
WSL 1 мен WSL 2-нің архитектурасы қалай ерекшеленеді? Неге WSL 2-де /mnt/c баяуырақ, ал /home жылдамырақ?
3
wsl --install командасы қандай бес қадамды орындайды? Linux пайдаланушысы мен Windows тіркелгісінің байланысы бар ма?
4
./hello.sh «Permission denied» деді. Себебі не, қалай түзетеміз, 755 деген не? Неге 777 ұсынылмайды?
5
ls /mnt/c/Users | wc -l және dir | wsl grep txt — әр команда қай жүйеде орындалады? Деректер қалай өтеді?
6
Windows Блокнотында жазылған скрипт Ubuntu-да «^M: command not found» береді. Не болды және не істейміз?
28