Texniki

Linux Command Line: Ən Çox İstifadə Olunan Əmrlər və Praktiki Təlimat

s

self-study.az

Redaksiya

5 Fevral 202516 dəq oxunuş
Linux Command Line: Ən Çox İstifadə Olunan Əmrlər və Praktiki Təlimat

Giriş

Command line (əmr sətiri) ilk baxışda qorxulu görünə bilər - qara ekran, yalnız mətn, heç bir vizual interfeys. Amma professional developer kimi command line bilmək vacib bacarıqdır. Server idarəetməsindən tutmuş Git əməliyyatlarına qədər, bir çox tapşırıqlar terminal vasitəsilə daha sürətli və effektiv yerinə yetirilir.

Bu məqalədə sıfırdan başlayaraq ən çox istifadə olunan Linux command line əmrlərini praktiki nümunələrlə öyrənəcəksiniz.

Terminologiya: Console, Terminal, Shell və CLI

Command line haqqında danışarkən çox rast gəlinən 4 termin var. Gəlin onları aydınlaşdıraq:

Console (Konsol)

Kompüterlə fiziki qarşılıqlı əlaqə quran cihaz. Sadə dillə desək - ekran, klaviatura və siçan.

Terminal

Əmr daxil etmək üçün istifadə etdiyimiz proqram. Terminal özü heç bir əmri yerinə yetirmir, sadəcə shell-ə əmrləri ötürür.

Populyar terminallar:

  • macOS: Terminal.app, iTerm2
  • Windows: Command Prompt, PowerShell, Windows Terminal
  • Linux: GNOME Terminal, Konsole, Alacritty

Shell

Əmr sətiri interpretoru. Əmrləri qəbul edir, işləyir və nəticəni qaytarır. Terminal-ın "beyni"dir.

CLI (Command Line Interface)

Komanda daxil etdiyimiz və nəticələri gördüyümüz interfeys.

Qısaca:

Siz klaviaturada yazırsınız → Terminal qəbul edir → Shell işləyir → Nəticə ekranda görünür

Hansı Shell İstifadə Edirsiniz?

Fərqli shell proqramları var və hər birinin özünəməxsus xüsusiyyətləri var:

Bash (Bourne Again Shell)

  • Ən geniş yayılmış shell
  • macOS və Linux-da default
  • POSIX uyğun
  • Çox sayda tutorial və resurs

Zsh (Z Shell)

  • Bash-dan inkişaf etmiş versiya
  • macOS Catalina-dan başlayaraq default
  • Güclü autocompletion
  • Oh My Zsh kimi framework-lər

Fish (Friendly Interactive Shell)

  • İstifadəçi dostu interfeys
  • Built-in syntax highlighting
  • Autosuggest xüsusiyyəti
  • POSIX uyğun deyil

Ash/Dash

  • Minimalist və sürətli
  • Script icra üçün optimal
  • POSIX uyğun

Hansi shell istifadə etdiyinizi yoxlamaq:

echo $0

Nəticə: -bash, -zsh, və ya başqa shell adı

Niyə Command Line İstifadə Etməli?

1. Sürət və Effektivlik

GUI-də bir neçə dəqiqə çəkən əməliyyat command line-da bir saniyə çəkir.

Misal: 100 faylın adını dəyişdirmək

  • GUI: Hər faylı bir-bir sağ klikləyib rename
  • CLI: for file in *.txt; do mv "$file" "new_$file"; done

2. Avtomatlaşdırma

Script yazaraq eyni əməliyyatları dəfələrlə avtomatik yerinə yetirə bilərsiniz.

3. Server və Cloud İdarəetməsi

AWS, DigitalOcean, və s. serverlər əksəriyyətlə yalnız CLI vasitəsilə idarə olunur. GUI yoxdur.

4. Developer Tools

Git, npm, Docker, Kubernetes - hamısı əsasən CLI-dan istifadə edir.

Əsas Naviqasiya Əmrləri

pwd - Print Working Directory

Hazırda hansı qovluqda olduğunuzu göstərir.

pwd
# Nəticə: /Users/username/Documents

cd - Change Directory

Qovluqlar arasında hərəkət etmək üçün.

cd Documents          # Documents qovluğuna keç
cd ..                # Bir qovluq geri qayıt
cd ~                 # Home directory-ə keç
cd /                 # Root directory-ə keç
cd -                 # Əvvəlki qovluğa qayıt

Praktiki məsləhət: Tab düyməsi ilə autocomplete istifadə edin:

cd Doc[Tab]  # Avtomatik "Documents" yazacaq

ls - List

Qovluqdakı faylları siyahıya alır.

ls                   # Faylları göstər
ls -a               # Gizli faylları da göstər (.bashrc, .gitignore)
ls -l               # Ətraflı məlumat (icazələr, ölçü, tarix)
ls -lh              # Human-readable ölçülər (KB, MB)
ls -la              # Hamısını birləşdir
ls *.js             # Yalnız .js fayllarını göstər

Nümunə nəticə:

$ ls -lh
drwxr-xr-x  5 user  staff   160B Jan 15 10:30 Documents
-rw-r--r--  1 user  staff   2.5K Jan 14 09:15 README.md
-rw-r--r--  1 user  staff   150K Jan 13 14:20 image.png

Qovluq Əməliyyatları

mkdir - Make Directory

Yeni qovluq yaratmaq üçün.

mkdir my-project              # Tək qovluq
mkdir -p projects/react/app   # Nested qovluqlar (parent-lər də yaranır)
mkdir project1 project2       # Bir neçə qovluq eyni anda

rmdir - Remove Directory

Boş qovluğu silir.

rmdir old-folder              # Yalnız boş qovluq silinir

Qeyd: İçində fayl olan qovluğu silmək üçün rm -r istifadə edin (aşağıda izah olunub).

Fayl Əməliyyatları

touch

Boş fayl yaradır və ya mövcud faylın tarixini yeniləyir.

touch index.html              # Yeni fayl
touch file1.txt file2.txt     # Bir neçə fayl

cp - Copy

Fayl və ya qovluq kopyalayır.

cp source.txt destination.txt           # Fayl kopyalama
cp -r folder1 folder2                   # Qovluq kopyalama (-r = recursive)
cp *.js backup/                         # Bütün .js fayllarını backup-a
cp -i file.txt dest.txt                 # Üzərinə yazmadan əvvəl soruş

mv - Move

Fayl köçürür və ya adını dəyişir.

mv oldname.txt newname.txt              # Adını dəyişdir
mv file.txt Documents/                  # Başqa qovluğa köçür
mv *.log logs/                          # Bütün log fayllarını köçür

rm - Remove

Fayl və ya qovluq silir.

rm file.txt                             # Fayl sil
rm -r folder/                           # Qovluq və içindəkiləri sil
rm -rf folder/                          # Zorla sil (təhlükəli!)
rm *.tmp                                # Bütün .tmp fayllarını sil
rm -i important.txt                     # Təsdiq soruş

⚠️ XƏBƏRDARLIQ: rm əmri faylları birdəfəlik silir. Recycle Bin-ə getmir!

# TƏHLÜKƏLİ - ASLA işlətməyin:
rm -rf /        # Bütün sistemi silər
rm -rf ~        # Home directory-ni silər
rm -rf .        # Cari qovluğun hamısını silər

Faylları Oxumaq və Redaktə Etmək

cat - Concatenate

Fayl məzmununu ekrana çıxarır.

cat file.txt                            # Faylı göstər
cat file1.txt file2.txt                 # Bir neçə faylı ardıcıl göstər
cat file1.txt file2.txt > merged.txt    # Birləşdir və yeni fayla yaz

head və tail

Faylın əvvəl və sonunu göstərir.

head file.txt                           # İlk 10 sətir
head -n 5 file.txt                      # İlk 5 sətir
tail file.txt                           # Son 10 sətir
tail -n 20 file.txt                     # Son 20 sətir
tail -f logs.txt                        # Real-time log izləmə

Praktiki istifadə:

tail -f /var/log/nginx/access.log      # Nginx loglarını canlı izlə

echo

Mətn ekrana çıxarır və ya fayla yazır.

echo "Hello World"                      # Ekrana çıxar
echo "text" > file.txt                  # Faylı üzərinə yaz (köhnə məzmun silinir)
echo "text" >> file.txt                 # Faylın sonuna əlavə et
echo $HOME                              # Environment variable göstər

less və more

Böyük faylları səhifələrlə oxumaq üçün.

less largefile.txt                      # Səhifələrlə göstər
# Space: növbəti səhifə
# b: əvvəlki səhifə
# /pattern: axtarış
# q: çıxış

nano və vim

CLI mətn redaktorları.

nano file.txt                           # Başlanğıc dostu redaktor
vim file.txt                            # Güclü amma mürəkkəb
code file.txt                           # VS Code-da aç (yüklü olmalıdır)

Faydalı Utility Əmrlər

man - Manual

Əmr haqqında ətraflı təlimat.

man ls                                  # ls əmri haqqında manual
man git-commit                          # Git commit haqqında

Çıxmaq üçün q basın.

--help

Sürətli yardım.

ls --help                               # ls əmrinin əsas istifadəsi
git --help                              # Git əmrləri siyahısı

clear

Terminalı təmizləyir.

clear                                   # və ya Ctrl+L

history

Əvvəlki əmrləri göstərir.

history                                 # Əmr tarixçəsi
history | grep git                      # Yalnız git əmrlərini göstər
!150                                    # 150-ci əmri təkrar işə sal
!!                                      # Sonuncu əmri təkrar işə sal

grep - Global Regular Expression Print

Fayl və ya mətn içində axtarış.

grep "error" log.txt                    # "error" sözünü tap
grep -i "error" log.txt                 # Case-insensitive
grep -r "TODO" .                        # Rekursiv axtarış (bütün fayllar)
grep -n "function" app.js               # Sətir nömrəsi ilə
ls -la | grep ".txt"                    # Pipe ilə istifadə

find

Fayl və qovluq axtarışı.

find . -name "*.js"                     # Bütün .js faylları
find . -type f -name "test*"            # "test" ilə başlayan fayllar
find . -type d -name "node_modules"     # node_modules qovluqları
find . -size +10M                       # 10MB-dan böyük fayllar
find . -mtime -7                        # Son 7 gündə dəyişmiş fayllar

wc - Word Count

Sətirlər, sözlər, bayts sayır.

wc file.txt                             # Sətr, söz, bayt sayı
wc -l file.txt                          # Yalnız sətr sayı
ls | wc -l                              # Qovluqdakı fayl sayı

chmod - Change Mode

Fayl icazələrini dəyişir.

chmod +x script.sh                      # İcra icazəsi əlavə et
chmod 755 script.sh                     # rwxr-xr-x
chmod 644 file.txt                      # rw-r--r--

İcazə rəqəmləri:

  • 7 = rwx (oxu, yaz, icra)
  • 6 = rw- (oxu, yaz)
  • 5 = r-x (oxu, icra)
  • 4 = r-- (yalnız oxu)

Pipe (|) və Redirection (>, >>)

Pipe - Əmrləri Birləşdirmək

Bir əmrin çıxışını başqa əmrə göndərir.

ls -la | grep ".js"                     # ls nəticəsində .js faylları axtar
cat file.txt | wc -l                    # Fayl neçə sətrdir
history | grep git | tail -5            # Son 5 git əmri
ps aux | grep node                      # Node processlərini tap

Redirection - Output-u Fayla Göndərmək

ls > files.txt                          # Output-u fayla yaz (üzərinə)
ls >> files.txt                         # Output-u əlavə et
command 2> errors.txt                   # Yalnız error-ları fayla yaz
command > output.txt 2>&1               # Hər ikisini eyni fayla

Praktiki nümunə:

npm test > test-results.txt 2>&1        # Test nəticələrini fayla yaz

Git Əmrləri

Developer üçün Git bilmək mütləqdir. Ən çox istifadə olunan Git əmrləri:

Repository Yaratmaq və Klonlamaq

git init                                # Yeni repo yarat
git clone https://github.com/user/repo  # Repo-nu endir
git clone [url] my-folder               # Xüsusi qovluğa endir

Dəyişikliklərlə İşləmək

git status                              # Hal-hazırki vəziyyət
git add file.txt                        # Faylı stage-ə əlavə et
git add .                               # Bütün dəyişiklikləri əlavə et
git add *.js                            # Bütün .js fayllarını əlavə et
git commit -m "Fix bug"                 # Commit yarat
git commit -am "Update"                 # Stage və commit birlikdə

Remote ilə İşləmək

git remote -v                           # Remote-ları göstər
git remote add origin [url]             # Remote əlavə et
git remote set-url origin [url]         # Remote URL dəyişdir
git push                                # Remote-a göndər
git push -u origin main                 # İlk push (tracking qur)
git pull                                # Remote-dan çək
git fetch                               # Remote məlumatı yenilə

Branch və Merge

git branch                              # Branch-ları göstər
git branch feature-login                # Yeni branch yarat
git checkout feature-login              # Branch-a keç
git checkout -b new-feature             # Yarat və keç
git merge feature-login                 # Branch-ı birləşdir
git branch -d feature-login             # Branch sil

Tarixçə və Dəyişikliklər

git log                                 # Commit tarixçəsi
git log --oneline                       # Qısa format
git log --graph --all                   # Vizual tree
git diff                                # Stage olmamış dəyişikliklər
git diff --staged                       # Stage olunmuş dəyişikliklər
git diff branch1 branch2                # Branch-lar arası fərq

Geri Almaq və Dəyişdirmək

git reset HEAD file.txt                 # Unstage et
git checkout -- file.txt                # Fayldakı dəyişiklikləri ləğv et
git reset --hard HEAD                   # Bütün dəyişiklikləri ləğv et
git revert [commit]                     # Commit-i geri al (yeni commit)

Praktiki Git Workflow:

# 1. Branch yarat
git checkout -b feature-navbar

# 2. Kod yaz və əlavə et
git add .
git commit -m "Add responsive navbar"

# 3. Main-ə birləşdir
git checkout main
git merge feature-navbar

# 4. Remote-a göndər
git push origin main

# 5. Branch-ı təmizlə
git branch -d feature-navbar

Klaviatura Shortcut-ları

Terminal Naviqasiyası

  • Ctrl + C - Hazırki prosesi dayandır
  • Ctrl + D - Terminal-ı bağla (və ya EOF)
  • Ctrl + L - Ekranı təmizlə (clear)
  • Ctrl + A - Sətr əvvəlinə keç
  • Ctrl + E - Sətr sonuna keç
  • Ctrl + U - Kursordan əvvəl hər şeyi sil
  • Ctrl + K - Kursordan sonra hər şeyi sil
  • Ctrl + W - Əvvəlki sözü sil
  • Ctrl + R - Tarixdə axtarış (reverse search)

Kopyala-Yapışdır

  • Ctrl + Shift + C - Kopyala
  • Ctrl + Shift + V - Yapışdır

Tab Completion

  • Tab - Autocomplete
  • Tab Tab - Bütün variantları göstər

Əmr Tarixçəsi

  • (Yuxarı ox) - Əvvəlki əmr
  • (Aşağı ox) - Növbəti əmr
  • !! - Son əmri təkrar
  • !$ - Son əmrin son arqumenti

Alias Yaratmaq

Tez-tez istifadə etdiyiniz uzun əmrlər üçün qısayollar yaradın.

Müvəqqəti Alias

alias ll="ls -la"                       # Bu sessiya üçün
alias gs="git status"
alias ga="git add"
alias gc="git commit -m"

Daimi Alias

~/.bashrc və ya ~/.zshrc faylına əlavə edin:

# ~/.bashrc və ya ~/.zshrc
alias ll="ls -lah"
alias ..="cd .."
alias ...="cd ../.."
alias gs="git status"
alias gp="git pull"
alias gc="git commit -m"
alias gpo="git push origin"
alias hosts="sudo nano /etc/hosts"
alias update="sudo apt update && sudo apt upgrade"

Faylı yadda saxlayıb terminal-ı yenidən başladın və ya:

source ~/.bashrc                        # və ya ~/.zshrc

Bash Scripting Əsasları

Sadə Script

hello.sh faylı yaradın:

#!/bin/bash
# Bu shebang - hansı interpreter istifadə olunacaq

echo "Hello, World!"
echo "Bugünkü tarix: $(date)"
echo "Sizin istifadəçi adınız: $USER"

İcra edin:

chmod +x hello.sh                       # İcra icazəsi ver
./hello.sh                              # İşə sal

Dəyişənlər

#!/bin/bash

NAME="John"
AGE=25

echo "Ad: $NAME"
echo "Yaş: $AGE"

Parametrlər

#!/bin/bash
# greet.sh

echo "Salam, $1!"
echo "Sizin yaşınız: $2"

# İstifadə: ./greet.sh Ali 30

Şərtlər

#!/bin/bash

if [ -f "file.txt" ]; then
    echo "Fayl mövcuddur"
else
    echo "Fayl tapılmadı"
fi

Döngü

#!/bin/bash

# For loop
for i in 1 2 3 4 5; do
    echo "Nömrə: $i"
done

# While loop
count=0
while [ $count -lt 5 ]; do
    echo "Say: $count"
    count=$((count + 1))
done

Praktiki Script: Git Repo Yaratmaq

#!/bin/bash

# GitHub repo yaradıb, commit edib push edən script

echo "Repo adı:"
read REPO_NAME

echo "Repo description:"
read DESCRIPTION

# GitHub-da repo yarat (gh CLI lazımdır)
gh repo create $REPO_NAME --public --description "$DESCRIPTION"

# Local setup
git init
echo "# $REPO_NAME" > README.md
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin "https://github.com/$GITHUB_USERNAME/$REPO_NAME.git"
git push -u origin main

echo "✅ Repo uğurla yaradıldı!"

Process İdarəetməsi

ps - Process Status

İşləyən prosesləri göstərir.

ps                                      # Cari shell prosesləri
ps aux                                  # Bütün proseslər
ps aux | grep node                      # Node prosesləri

top və htop

Real-time proses monitoru.

top                                     # Proses monitorinq
htop                                    # Daha yaxşı interfeys (yükləmək lazımdır)

kill

Prosesi dayandırır.

kill 1234                               # Process ID ilə
kill -9 1234                            # Zorla dayandır
killall node                            # Bütün node proseslərini dayandır
pkill -f "python script.py"             # Pattern ilə

bg və fg

Background və foreground idarəetməsi.

command &                               # Background-da işə sal
Ctrl+Z                                  # Prosesi pause et
bg                                      # Background-a göndər
fg                                      # Foreground-a gətir
jobs                                    # Background işləri göstər

Network Əmrləri

ping

Server əlaqəsini yoxlayır.

ping google.com                         # Əlaqəni yoxla
ping -c 4 google.com                    # 4 dəfə ping

curl

HTTP request göndərir.

curl https://api.example.com            # GET request
curl -X POST https://api.example.com    # POST request
curl -o file.html https://example.com   # Faylı endir

wget

Fayl endirir.

wget https://example.com/file.zip       # Fayl endir
wget -c https://example.com/big.zip     # Davam etdir

ssh

Uzaq serverə qoşul.

ssh user@server.com                     # SSH ilə qoşul
ssh -p 2222 user@server.com             # Xüsusi port

scp

Fayl köçürmək.

scp file.txt user@server:/path/         # Serverə göndər
scp user@server:/path/file.txt .        # Serverdən çək

Sistem Məlumatları

uname -a                                # Sistem məlumatı
df -h                                   # Disk istifadəsi
du -sh folder/                          # Qovluq ölçüsü
free -h                                 # RAM istifadəsi
uptime                                  # Sistem uptime
whoami                                  # İstifadəçi adı
hostname                                # Host adı
date                                    # Tarix və vaxt
cal                                     # Təqvim

Paket Menecerləri

Ubuntu/Debian (apt)

sudo apt update                         # Paket siyahısını yenilə
sudo apt upgrade                        # Paketləri yenilə
sudo apt install package-name           # Paket yüklə
sudo apt remove package-name            # Paket sil
sudo apt search keyword                 # Paket axtar

macOS (Homebrew)

brew update                             # Homebrew yenilə
brew upgrade                            # Paketləri yenilə
brew install package-name               # Paket yüklə
brew uninstall package-name             # Paket sil
brew search keyword                     # Paket axtar
brew list                               # Yüklü paketlər

Node.js (npm)

npm install                             # package.json-dan yüklə
npm install package-name                # Paket yüklə
npm install -g package-name             # Global yüklə
npm uninstall package-name              # Sil
npm update                              # Yenilə
npm list                                # Yüklü paketlər

Faydalı Kombinasiyalar

1. Böyük Faylları Tapmaq

find . -type f -size +100M -exec ls -lh {} \;

2. Qovluqdakı Sətr Sayı

find . -name "*.js" | xargs wc -l

3. Port İstifadəsini Yoxlamaq

lsof -i :3000                           # 3000 portunu kim istifadə edir

4. Fayl İçində Sözü Dəyişdirmək

sed -i 's/old-text/new-text/g' file.txt

5. Node Modules-i Təmizləmək

find . -name "node_modules" -type d -prune -exec rm -rf {} +

6. Git Branch-ları Təmizləmək

git branch | grep -v "main" | xargs git branch -D

Yeni Başlayanlar üçün Təhlükəli Əmrlər

Bu əmrlərdən UZAQ DURUN:

rm -rf /                                # Bütün sistemi silər
rm -rf ~                                # Home directory-ni silər
rm -rf *                                # Cari qovluğu silər
:(){ :|:& };:                           # Fork bomb (sistemi dondurur)
chmod -R 777 /                          # Təhlükəsiz sistem yaradır
dd if=/dev/random of=/dev/sda           # Disk-i məhv edir

Qızıl Qayda: rm -rf istifadə etməzdən əvvəl 3 dəfə yoxlayın!

Praktiki Workflow Nümunələri

React Layihə Başlatmaq

# 1. Qovluq yarat və keç
mkdir my-react-app && cd my-react-app

# 2. React app yarat
npx create-react-app .

# 3. Git-ə əlavə et
git init
git add .
git commit -m "Initial commit"

# 4. GitHub-a push et
gh repo create my-react-app --public
git remote add origin [repo-url]
git push -u origin main

# 5. Development server başlat
npm start

Server Deploy

# 1. Serverə qoşul
ssh user@server.com

# 2. Kod çək
cd /var/www/app
git pull origin main

# 3. Dependencies yüklə
npm install

# 4. Build yarat
npm run build

# 5. PM2 ilə restart
pm2 restart app

# 6. Çıx
exit

Nəticə və Məsləhətlər

Command line öyrənmək vaxt tələb edir, amma investisiya özünü ödəyir. Əsas məsləhətlər:

1. Hər Gün Praktika

GUI əvəzinə terminal istifadə etməyə çalışın:

  • Fayl yaratmaq → touch istifadə edin
  • Qovluq açmaq → cd istifadə edin
  • Fayl axtarmaq → findgrep öyrənin

2. Alias Yaradın

Tez-tez istifadə etdiyiniz əmrlər üçün qısayollar yaradın.

3. Tab İstifadə Edin

Autocomplete vaxtınıza qənaət edir və səhvləri azaldır.

4. Man Page-ləri Oxuyun

Yeni əmr öyrənəndə man command istifadə edin.

5. History İstifadə Edin

Ctrl+R ilə əvvəlki əmrləri axtarın.

6. Script Yazın

Təkrarlanan tapşırıqları avtomatlaşdırın.

7. Git Öyrənin

Developer üçün Git command line bilməyi vacibdir.

Növbəti Addımlar

Bu əmrləri öyrəndikdən sonra:

  • Bash scripting dərinləşin
  • Vim və ya Emacs öyrənin
  • tmux və ya screen multiplexer-lərə baxın
  • awksed mətn prosessinq öyrənin
  • Docker CLI-a keçin

Xülasə

Command line ilk baxışda mürəkkəb görünsə də, ən çox istifadə olunan 20-30 əmri öyrəndikdən sonra rahatlıqla işləyə bilərsiniz. Bu məqalədə əhatə olunanlar:

✅ Naviqasiya: pwd, cd, ls ✅ Fayl əməliyyatları: touch, cp, mv, rm ✅ Mətn: cat, grep, head, tail, echo ✅ Git: init, add, commit, push, pull, branch, merge ✅ Proseslər: ps, kill, top ✅ Network: ping, curl, ssh, scp ✅ Scripting: Variables, loops, conditionals ✅ Shortcuts və aliaslar

İndi növbə praktikada! Terminal açıb bu əmrləri sınayın. Xatırlayın: praktika mükəmməl edir.


Bu məqalə freeCodeCamp-in "Command Line for Beginners" təlimindən ilhamlanaraq hazırlanmışdır.

Orijinal mənbə: freeCodeCamp

s

Müəllif

self-study.az

Redaksiya

self-study.az-da müəllif olaraq fəaliyyət göstərir. Təhsil və karyera mövzularında məqalələr yazır.