/
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/etc
/home
/var
/tmp
/dev
Di Linux, everything is a file — hardware direpresentasikan sebagai file di /dev
/ ├── bin/ ← Command dasar ├── etc/ ← Konfigurasi ├── home/ ← Data user ├── var/ ← Log & cache └── dev/ ← Devices
Membuat folder baru
mkdir myfolder mkdir -p parent/child
-p = buat parent jika belum ada
-p
Membuat file atau update timestamp
touch file.txt touch -t 202401011200 file
Menyalin file atau direktori
cp file.txt backup.txt cp -r folder/ backup/
-r = recursive untuk folder
-r
Memindahkan atau rename file
mv old.txt new.txt mv file.txt /home/user/
Menghapus file atau folder
rm file.txt rm -r folder/ rm -rf folder/
rm -rf / = hapus seluruh sistem! Linux tidak ada Recycle Bin.
rm -rf /
Menampilkan lokasi direktori sekarang
pwd # Output: /home/alice/projects
Berpindah ke direktori lain
cd /etc # Absolute path cd .. # Parent directory cd ~ # Home directory cd - # Direktori sebelumnya
Menampilkan isi direktori
ls ls -l ls -a ls -lh ls -lt
-l
-a
-lh
-lt
Mencari file berdasarkan nama, ukuran, tanggal
find / -name "config.txt" find . -name "*.log" find . -mtime -7 find . -size +100M
Menampilkan seluruh isi file
cat file.txt cat file1.txt file2.txt
Cocok untuk file kecil
Menampilkan 10 baris pertama
head file.txt head -n 5 file.txt
Berguna untuk cek header file
Menampilkan 10 baris terakhir
tail file.txt tail -f /var/log/syslog
-f = follow mode untuk monitoring log real-time
-f
Menampilkan file dengan scroll
less file.txt
Navigasi: Arrow, PageUp/Down, / search, q quit
q
Cocok untuk file besar
Statistik file (baris, kata, byte)
wc file.txt # baris kata byte wc -l file.txt # Hanya jumlah baris wc -w file.txt # Hanya jumlah kata wc -c file.txt # Hanya jumlah byte
Mencari text dalam file
grep "error" file.log grep -i "error" file.log # Case insensitive grep -r "pattern" folder/ # Recursive grep -n "word" file.txt # Dengan nomor baris ps aux | grep nginx # Cari di proses
Edit text secara stream
sed 's/old/new/' file.txt # Replace pertama sed 's/old/new/g' file.txt # Replace semua sed -i 's/old/new/g' file.txt # Edit in-place sed '1,5d' file.txt # Hapus baris 1-5
Memproses text berbasis kolom
awk '{print $1}' file.txt # Print kolom 1 awk -F: '{print $1}' /etc/passwd # Delimiter : awk '$3 > 100' file.txt # Filter angka
Menghubungkan output antar command
echo "text" > file.txt # Write (overwrite) echo "text" >> file.txt # Append cat < file.txt # Input dari file cat file | grep error # Pipe output cmd > /dev/null 2>&1 # Suppress all output
Menampilkan proses secara real-time
top
Shortcuts: k=kill, q=quit, M=sort RAM, P=sort CPU
k
M
P
Menampilkan penggunaan disk
df -h
Menampilkan size folder
du -sh /var/log du -h --max-depth=1 .
Menampilkan penggunaan RAM
free -h
available lebih penting dari free — Linux cache agresif
available
free
Informasi sistem
uname -a # Semua info uname -r # Kernel version uptime # Waktu aktif sistem whoami # User sekarang id # User & group ID
Melihat list proses
ps # Proses sendiri ps aux # Semua proses ps aux | grep nginx
Menghentikan proses
kill 1234 # Graceful (SIGTERM) kill -9 1234 # Force kill (SIGKILL) kill -15 1234 # Graceful (explicit) pkill nginx # Kill by name killall nginx # Kill semua instance
-15
-9
-1
Mengatur prioritas proses
nice -n 10 ./script.sh # Jalankan dengan priority rendah renice 5 -p 1234 # Ubah priority proses berjalan
Priority: -20 (tertinggi) sampai +20 (terendah)
Menjalankan proses di background
./script.sh & # Jalankan di background Ctrl+Z # Pause & masukkan background bg # Lanjutkan di background fg # Bawa ke foreground jobs # List background jobs
Membuat/extracting archive
tar -cvf archive.tar folder/ # Create tar -xvf archive.tar # Extract tar -cvzf archive.tar.gz folder/ # Compress gzip tar -xvzf archive.tar.gz # Extract gzip tar -tvf archive.tar # List isi
Kompresi format zip
zip -r backup.zip folder/ unzip backup.zip
Kompresi single file
gzip file.txt # → file.txt.gz gunzip file.txt.gz # → file.txt
Menguji koneksi ke host
ping google.com ping -c 4 8.8.8.8 # 4 kali lalu stop
Mengambil data dari server
curl https://api.example.com curl -I https://google.com # Headers saja curl -o file.zip URL # Download file curl -X POST -d "k=v" URL # POST request
Mendownload file dari web
wget https://example.com/file.tar.gz wget -c URL # Resume download
ip addr
netstat -tuln
ss -tuln
nslookup
traceroute
3-level permission: Owner | Group | Others
-rwxr-xr-- 1 alice dev file.txt ||||||||| ||||||||└── Others (r--) ||||||└──── Group (r-x) ||||└────── Owner (rwx) |└───────── Type (-=file, d=dir)
r
w
x
Mengubah permission file
chmod 755 script.sh # rwxr-xr-x chmod 644 file.txt # rw-r--r-- chmod 777 folder/ # Full access (WASPADA!) # Symbolic mode chmod u+x file # Tambah execute owner chmod go-w file # Hapus write group/others chmod a+r file # Read untuk semua
u
g
o
a
Mengubah owner dan group
chown bob file.txt chown bob:dev file.txt chown -R bob:dev folder/ chgrp dev file.txt
SetUID, SetGID, Sticky Bit
chmod u+s program # SetUID - jalankan sebagai owner chmod g+s folder/ # SetGID - inherit group chmod +t /tmp # Sticky bit - hanya owner bisa hapus
Akses remote terminal dengan enkripsi
Client (laptop) ←── Encrypted (port 22) ──→ Server
Menghubungkan ke server remote
ssh user@192.168.1.100 ssh -p 2222 user@server.com # Port custom
Membuat key pair untuk autentikasi
ssh-keygen -t ed25519 -C "email@example.com" # Output: # ~/.ssh/id_ed25519 (private - JANGAN SEBAR) # ~/.ssh/id_ed25519.pub (public - copy ke server)
Menyalin public key ke server
ssh-copy-id user@server.com # Sekarang login tanpa password!
Transfer file via SSH
scp file.txt user@server:/path/ # Upload scp user@server:/path/file.txt . # Download scp -r folder/ user@server:/path/ # Folder
Sinkronisasi folder
rsync -avz folder/ user@server:/backup/ rsync -avz --delete folder/ user@server:/backup/
-a=archive, -v=verbose, -z=compress
-v
-z
Advanced Package Tool
apt update # Update repo list apt upgrade # Upgrade semua paket apt install nginx # Install paket apt remove nginx # Uninstall paket apt search nginx # Cari paket apt list --installed # List installed apt autoremove # Hapus unused deps
Yellowdog Updater Modified / Dandified YUM
yum update # Update semua yum install nginx # Install yum remove nginx # Remove yum search nginx # Search yum list installed # List installed dnf update # DNF (newer)
Package Manager
pacman -Syu # Sync & upgrade pacman -S nginx # Install pacman -R nginx # Remove pacman -Ss nginx # Search pacman -Q # List installed
Cross-distro package managers
# Snap snap install nginx snap remove nginx snap list # Flatpak flatpak install flathub org.nginx.Nginx flatpak run org.nginx.Nginx
apt install
dnf install
pacman -S
zypper install
snap install
flatpak install
Variabel yang menyimpan konfigurasi sistem
echo $PATH # Lihat PATH echo $HOME # Lihat home directory echo $USER # Lihat username env # Lihat semua env var printenv # Sama dengan env
Mengatur variabel lingkungan
export VAR=value # Set untuk session ini VAR=value command # Set untuk satu command echo 'export VAR=value' >> ~/.bashrc # Permanent
Direktori yang dicari untuk command
echo $PATH # /usr/local/bin:/usr/bin:/bin # Tambah direktori ke PATH export PATH=$PATH:/new/directory
Konfigurasi shell untuk user
# ~/.bashrc (bash) # ~/.zshrc (zsh) # Contoh konfigurasi alias ll='ls -lh' alias gs='git status' export EDITOR=vim export PATH=$PATH:/usr/local/bin
Memuat ulang konfigurasi
source ~/.bashrc # Reload bash source ~/.zshrc # Reload zsh . ~/.bashrc # Shortcut
~/.bash_profile
~/.bashrc
Untuk consistency, source .bashrc dari .bash_profile
.bashrc
.bash_profile
Menjalankan command sebagai root/superuser
sudo apt update sudo nano /etc/hosts sudo -i # Interactive root shell sudo -u bob command # Sebagai user lain sudo -k # Reset timestamp
Mengatur siapa boleh sudo
sudo visudo # Edit sudoers file # Contoh: alice boleh sudo tanpa password alice ALL=(ALL) NOPASSWD: ALL
Berpindah ke user lain
su - # Switch ke root su - alice # Switch ke alice su -c "command" root # Jalankan command sebagai root
sudo
su
sudo -i
Best Practice: Gunakan sudo daripada su untuk keamanan
Editor sederhana dengan shortcut di bawah
nano file.txt
Ctrl+O
Ctrl+X
Ctrl+W
Ctrl+K
Ctrl+U
Ctrl+G
3 mode: Normal | Insert | Command
Normal (default) ←→ Insert (i/a/o) ←→ Command (:)
Navigasi dan editing
h j k l
gg
G
dd
yy
p
Save, quit, search
:w " Save :q " Quit :wq / :x " Save & quit :q! " Quit tanpa save :set nu " Tampilkan nomor baris /search " Cari teks n " Next match
Mengetik text
i
O
Esc
Praktikkan setiap hari!
echo "Linux is fun!"