Сүлжээний командууд (curl, wget, ssh)
Terminal-аас интернэттэй ажиллах чадвар хөгжүүлэгчид зайлшгүй хэрэгтэй. Файл татах, API дуудах, алсын серверт холбогдох — бүгдийг командын мөрөөс хийж болно. Энэ хичээлд curl, wget, ssh гурван гол хэрэгслийг судална.
curl — URL-аас өгөгдөл авах
curl бол URL-тай ажиллах хамгийн хүчирхэг хэрэгсэл юм. API дуудах, файл татах, форм илгээх — бүгдэд тохирно.
Энгийн хэрэглээ:
# Вэб хуудасны HTML-г харах
curl https://example.com
# API-с JSON авах
curl https://api.github.com/users/torvalds
# Гаралтыг файлд хадгалах
curl -o index.html https://example.com
# Файлын нэрийг URL-с авах
curl -O https://example.com/data.csv
Хамгийн их ашигладаг тугнууд:
# Дэлгэрэнгүй мэдээлэл (verbose)
curl -v https://example.com
# Зөвхөн HTTP status code
curl -o /dev/null -s -w "%{http_code}" https://example.com
# POST хүсэлт илгээх
curl -X POST \
-H "Content-Type: application/json" \
-d '{"name": "Болд", "age": 25}' \
https://api.example.com/users
# Нууц үг шаардах endpoint
curl -u username:password https://api.example.com/private
# Дахин чиглүүлэлт дагах (-L)
curl -L https://example.com/redirect
Практик жишээ — GitHub API ашиглах:
#!/bin/bash
set -euo pipefail
# GitHub хэрэглэгчийн мэдээлэл авах
get_github_user() {
local username="$1"
local response
response=$(curl -s "https://api.github.com/users/$username")
echo "$response"
}
user_info=$(get_github_user "torvalds")
echo "Хариу: $user_info"
wget — Файл татаж авах
wget нь файл татахад тусгайлан зориулагдсан. Интернэт тасарсан ч дахин оролдох, бүхэл сайт татах зэрэг онцлогтой:
# Файл татах
wget https://example.com/file.zip
# Файлыг өөр нэрээр хадгалах
wget -O myfile.zip https://example.com/file.zip
# Тасалдвал үргэлжлүүлэх (-c)
wget -c https://example.com/bigfile.iso
# Чимээгүй горим
wget -q https://example.com/data.csv
# Бүх холбоос дагаж татах (сайт татах)
wget -r -l2 https://example.com
curl болон wget харьцуулалт:
# Файл татахад хоёул адил
curl -O https://example.com/file.zip
wget https://example.com/file.zip
# API дуудахад curl илүү тохиромжтой
curl -X POST -H "Content-Type: application/json" -d '{}' https://api.example.com
# Тасалдвал үргэлжлүүлэхэд wget илүү хялбар
wget -c https://example.com/hugefile.tar.gz
ssh — Алсын серверт холбогдох
ssh (Secure Shell) нь алсын компьютерт аюулгүй холбогдоход ашиглагдана. Бараг бүх production сервер SSH-аар удирддаг:
# Серверт холбогдох
ssh username@server_ip
# Өөр port ашиглах
ssh -p 2222 username@server_ip
# SSH key ашиглах
ssh -i ~/.ssh/mykey.pem username@server_ip
# Нэг команд ажиллуулаад гарах
ssh username@server_ip "ls -la /var/log"
# Файл хуулах (scp)
scp localfile.txt username@server_ip:/remote/path/
scp username@server_ip:/remote/file.txt ./local/
SSH key үүсгэх:
# RSA key үүсгэх
ssh-keygen -t ed25519 -C "minii@email.com"
# Public key-г серверт нэмэх
ssh-copy-id username@server_ip
# Эсвэл гараар нэмэх
cat ~/.ssh/id_ed25519.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
SSH config файл тохируулах — нууц үгийн оронд богино нэрээр холбогдох:
# ~/.ssh/config файл үүсгэх
cat > ~/.ssh/config << 'EOF'
Host myserver
HostName 192.168.1.100
User deploy
IdentityFile ~/.ssh/id_ed25519
Port 22
Host production
HostName prod.example.com
User ubuntu
IdentityFile ~/.ssh/prod_key.pem
EOF
# Одоо богино нэрээр холбогдоно
ssh myserver
ssh production
Практик script — Вэб API-тай ажиллах
#!/bin/bash
set -euo pipefail
readonly API_URL="https://api.github.com"
check_api() {
local status_code
status_code=$(curl -o /dev/null -s -w "%{http_code}" "$API_URL")
if [[ "$status_code" == "200" ]]; then
echo "✓ API хэвийн ажиллаж байна (HTTP $status_code)"
else
echo "✗ API хариу алдаатай (HTTP $status_code)" >&2
return 1
fi
}
download_if_updated() {
local url="$1"
local output="$2"
wget -q --timestamping -O "$output" "$url"
echo "Татагдлаа: $output"
}
check_api
download_if_updated "$API_URL/users/torvalds" "torvalds.json"
Дараагийн хичээлд:
Автоматжуулалтын бодит жишээнүүдийг судална — файл нөөцлөх, log цэвэрлэх, хяналт тавих script-г бүтнээр нь бичнэ.