NETWORK TOOL HUB / LINUX GUIDE
Perintah Dasar Linux hingga Advanced: Panduan Lengkap Command Line
Pelajari Linux command line dari navigasi direktori, manajemen file, administrasi sistem, jaringan, keamanan, hingga otomatisasi pekerjaan. Dilengkapi fungsi, sintaks, dan contoh yang bisa langsung dipraktikkan.
Command line atau command-line interface (CLI) merupakan salah satu cara utama untuk berinteraksi dengan sistem operasi Linux. Melalui terminal, pengguna dapat mengelola file, memasang aplikasi, memeriksa jaringan, mengatur hak akses, menjalankan layanan, dan melakukan troubleshooting tanpa harus bergantung pada antarmuka grafis.
Kemampuan menggunakan terminal sangat bermanfaat bagi pelajar Teknik Jaringan Komputer dan Telekomunikasi (TJKT), administrator sistem, network engineer, developer, serta siapa pun yang ingin memahami cara kerja Linux dan server.
1. Mengenal Command Line Linux
Terminal adalah aplikasi untuk memasukkan perintah, sedangkan shell merupakan program yang membaca dan menjalankan perintah tersebut. Contoh shell yang populer adalah Bash dan Zsh.
Memahami struktur perintah
command [options] [arguments]command: program atau perintah yang dijalankan.options: pilihan untuk mengatur perilaku perintah.arguments: target atau data yang diproses.
Contoh:
ls -lah /var/logls menampilkan isi direktori, -l menampilkan format terperinci, -a menyertakan file tersembunyi, -h membuat ukuran lebih mudah dibaca, dan /var/log adalah lokasi yang diperiksa.
Catatan penting sebelum mulai
- Linux membedakan huruf besar dan kecil, misalnya
File.txtdanfile.txt. - Simbol
/digunakan sebagai pemisah direktori. - Gunakan tombol Tab untuk melengkapi nama file atau perintah.
- Gunakan tombol panah atas untuk memanggil perintah sebelumnya.
- Perintah yang tersedia dapat berbeda antar-distribusi Linux.
2. Perintah Dasar dan Navigasi Direktori
Bagian ini berisi perintah yang paling sering digunakan saat pertama kali bekerja dengan terminal Linux.
| Perintah | Fungsi | Contoh |
|---|---|---|
pwd | Menampilkan direktori kerja saat ini. | pwd |
ls | Menampilkan isi direktori. | ls |
ls -lah | Menampilkan file tersembunyi, permission, pemilik, dan ukuran yang mudah dibaca. | ls -lah /home |
cd | Berpindah ke direktori home pengguna. | cd |
cd .. | Berpindah ke direktori induk. | cd .. |
cd - | Kembali ke direktori kerja sebelumnya. | cd - |
cd /var/log | Berpindah menggunakan path absolut. | cd /var/log |
clear | Membersihkan tampilan terminal. | clear |
whoami | Menampilkan nama pengguna efektif saat ini. | whoami |
id | Melihat UID, GID, dan grup pengguna. | id |
date | Menampilkan tanggal dan waktu sistem. | date |
cal | Menampilkan kalender jika utilitas tersedia. | cal |
history | Menampilkan riwayat perintah shell. | history |
man | Membuka manual suatu perintah. | man ls |
command --help | Menampilkan bantuan ringkas, jika didukung. | ip --help |
type | Memeriksa jenis perintah dan lokasinya. | type cd |
which | Mencari lokasi executable melalui PATH. | which python3 |
exit | Keluar dari shell saat ini. | exit |
Contoh navigasi sederhana
pwd
ls -lah
cd /etc
pwd
cd -
historyCatatan: tombol Q biasanya digunakan untuk keluar dari tampilan manual atau pager seperti less.
3. Manajemen File dan Direktori
Perintah berikut digunakan untuk membuat, menyalin, memindahkan, mencari, dan menghapus file maupun direktori.
| Perintah | Fungsi | Contoh |
|---|---|---|
mkdir | Membuat direktori. | mkdir gambar |
mkdir -p | Membuat direktori bertingkat sekaligus. | mkdir -p proyek/src/css |
touch | Membuat file kosong atau memperbarui timestamp. | touch catatan.txt |
cp | Menyalin file. | cp a.txt b.txt |
cp -r | Menyalin direktori beserta isinya. | cp -r sumber/ salinan/ |
mv | Memindahkan atau mengganti nama file. | mv lama.txt baru.txt |
rm | Menghapus file. | rm catatan.txt |
rmdir | Menghapus direktori kosong. | rmdir folder_kosong |
rm -r | Menghapus direktori beserta isinya secara rekursif. | rm -r folder_uji |
file | Mendeteksi jenis file. | file dokumen.bin |
stat | Melihat metadata file. | stat catatan.txt |
find | Mencari file berdasarkan nama atau kriteria. | find . -name "*.log" |
locate | Mencari path melalui database indeks jika tersedia. | locate nginx.conf |
ln -s | Membuat symbolic link. | ln -s /var/www/html web |
basename | Mengambil nama file dari sebuah path. | basename /var/log/syslog |
dirname | Mengambil bagian direktori dari sebuah path. | dirname /var/log/syslog |
Contoh membuat struktur proyek
mkdir -p latihan-linux/{dokumen,backup,script}
touch latihan-linux/dokumen/catatan.txt
cp latihan-linux/dokumen/catatan.txt latihan-linux/backup/
find latihan-linux -type frm -rf dengan target yang belum diperiksa. Perintah penghapusan rekursif dapat menghilangkan banyak file sekaligus. Menambahkan sudo tidak membuatnya lebih aman.4. Membaca dan Mengolah Teks
Perintah ini berguna untuk membaca konfigurasi, memeriksa log, mencari pola, serta mengolah keluaran program.
| Perintah | Fungsi | Contoh |
|---|---|---|
cat | Menampilkan atau menggabungkan isi file. | cat catatan.txt |
less | Membaca file panjang dengan navigasi. | less /var/log/syslog |
head | Menampilkan bagian awal file. | head -n 20 file.txt |
tail | Menampilkan bagian akhir file. | tail -n 50 file.log |
tail -f | Mengikuti penambahan baris log secara langsung. | tail -f aplikasi.log |
grep | Mencari baris yang cocok dengan pola. | grep "error" file.log |
grep -r | Mencari pola dalam file di direktori secara rekursif. | grep -r "listen" /etc/nginx |
wc | Menghitung baris, kata, atau byte. | wc -l file.txt |
sort | Mengurutkan baris. | sort nama.txt |
uniq | Menghilangkan baris duplikat yang berurutan. | sort nama.txt | uniq |
cut | Mengambil kolom atau karakter tertentu. | cut -d: -f1 /etc/passwd |
tr | Mengganti atau menghapus karakter. | echo "linux" | tr a-z A-Z |
sed | Melakukan transformasi teks berbasis pola. | sed 's/http/https/g' file.txt |
awk | Memproses teks berbentuk kolom. | awk '{print $1}' file.txt |
diff | Membandingkan dua file. | diff lama.conf baru.conf |
tee | Menampilkan output sekaligus menulisnya ke file. | ip addr | tee ip.txt |
echo | Menampilkan teks atau nilai variabel. | echo "Halo Linux" |
printf | Menampilkan teks dengan format tertentu. | printf "IP: %s\n" "192.168.1.1" |
Contoh mencari error dalam log
grep -in "error" aplikasi.log
tail -n 100 aplikasi.log
tail -f aplikasi.logOpsi -i mengabaikan perbedaan huruf besar dan kecil, sedangkan -n menampilkan nomor baris. Pada file log yang terus diperbarui, tail -f dapat membantu mengamati kejadian terbaru.
5. User, Permission, dan Keamanan
Linux memiliki sistem pengguna dan permission untuk membatasi siapa yang dapat membaca, menulis, atau mengeksekusi file.
| Perintah | Fungsi | Contoh |
|---|---|---|
sudo | Menjalankan perintah dengan hak administratif yang diizinkan. | sudo apt update |
sudo -i | Membuka shell login sebagai root jika diizinkan. | sudo -i |
su | Beralih ke pengguna lain. | su - namauser |
passwd | Mengubah kata sandi pengguna. | passwd |
useradd | Membuat akun pengguna dengan opsi yang ditentukan. | sudo useradd -m siswa |
usermod | Mengubah pengaturan akun pengguna. | sudo usermod -aG sudo siswa |
userdel | Menghapus akun pengguna. | sudo userdel siswa |
groups | Melihat grup pengguna. | groups siswa |
chmod | Mengubah permission file atau direktori. | chmod 640 rahasia.txt |
chown | Mengubah pemilik file atau direktori. | sudo chown siswa:siswa file.txt |
umask | Melihat atau mengatur mask permission default. | umask |
getfacl | Melihat access control list jika tersedia. | getfacl file.txt |
setfacl | Mengatur access control list jika didukung. | setfacl -m u:siswa:r file.txt |
sudo -l | Melihat hak sudo pengguna. | sudo -l |
last | Melihat catatan login yang tersedia. | last |
Memahami permission numerik
| Nilai | Hak akses | Arti |
|---|---|---|
4 | r — read | Membaca file. |
2 | w — write | Menulis atau mengubah file. |
1 | x — execute | Menjalankan file atau menelusuri direktori. |
7 | rwx | Membaca, menulis, dan mengeksekusi. |
6 | rw- | Membaca dan menulis. |
5 | r-x | Membaca dan mengeksekusi. |
0 | --- | Tidak memiliki hak akses. |
Contoh:
chmod 755 script.sh
chmod 640 rahasia.txt
chmod u+x script.sh
ls -l755 berarti pemilik memiliki hak penuh, sedangkan grup dan pengguna lain memiliki hak baca dan eksekusi. 640 berarti pemilik dapat membaca dan menulis, grup hanya membaca, dan pengguna lain tidak memiliki hak akses.
chmod 777 sebagai solusi umum. Berikan izin minimum yang diperlukan. Perintah sudo su memang sering dijumpai, tetapi sudo untuk perintah tertentu atau sudo -i yang digunakan secara sadar biasanya lebih mudah dikendalikan.6. Package Manager dan Instalasi Aplikasi
Package manager membantu mengunduh, memasang, memperbarui, dan menghapus aplikasi serta dependensinya.
Debian, Ubuntu, dan turunannya
sudo apt update
sudo apt upgrade
sudo apt install curl
sudo apt remove curl
sudo apt purge nama-paket
sudo apt autoremove
apt search nginx
apt show nginx
dpkg -l
dpkg -L nginx| Perintah | Fungsi |
|---|---|
apt update | Memperbarui indeks paket yang tersedia. |
apt upgrade | Memperbarui paket yang terpasang sesuai resolusi dependensi. |
apt install | Memasang paket dari repositori. |
apt remove | Menghapus paket, umumnya tanpa menghapus seluruh konfigurasi. |
apt purge | Menghapus paket beserta konfigurasi sistem yang dikelola paket tersebut. |
dpkg -i | Memasang paket lokal berformat DEB; dependensi mungkin perlu diperbaiki. |
Distribusi lain
# Fedora / RHEL modern
sudo dnf install nginx
sudo dnf update
# Arch Linux
sudo pacman -S nginx
sudo pacman -Syu
# openSUSE
sudo zypper install nginx
sudo zypper refreshGunakan package manager yang sesuai dengan distribusi. Jangan mencampur repositori atau paket dari distribusi berbeda tanpa memahami dampaknya.
7. Proses dan Monitoring Sistem
Gunakan perintah berikut untuk memeriksa beban CPU, penggunaan memori, proses aktif, dan program yang berjalan di latar belakang.
| Perintah | Fungsi | Contoh |
|---|---|---|
top | Memantau proses dan penggunaan sumber daya secara langsung. | top |
htop | Monitor proses interaktif jika terpasang. | htop |
ps | Menampilkan snapshot proses. | ps aux |
pgrep | Mencari PID berdasarkan nama atau pola. | pgrep nginx |
pidof | Mencari PID program berdasarkan nama. | pidof sshd |
kill | Mengirim sinyal ke proses berdasarkan PID. | kill 1234 |
killall | Mengirim sinyal ke proses berdasarkan nama. | killall program |
free -h | Melihat penggunaan RAM dan swap. | free -h |
uptime | Melihat lama sistem berjalan dan load average. | uptime |
nice | Menjalankan program dengan nilai prioritas penjadwalan tertentu. | nice -n 10 command |
renice | Mengubah nilai nice proses yang berjalan. | renice 10 -p 1234 |
jobs | Melihat pekerjaan latar belakang shell saat ini. | jobs |
bg | Melanjutkan job yang ditangguhkan di latar belakang. | bg %1 |
fg | Mengembalikan job ke foreground. | fg %1 |
watch | Menjalankan ulang perintah berkala untuk memantau perubahan. | watch -n 2 free -h |
vmstat | Melihat statistik memori virtual, proses, dan sistem. | vmstat 2 |
Menghentikan proses dengan benar
pgrep -a nginx
ps aux | grep nginx
kill 1234
kill -TERM 1234Sinyal default kill adalah SIGTERM, yang meminta proses berhenti secara normal. Gunakan kill -KILL 1234 hanya jika diperlukan, karena proses tidak diberi kesempatan menangani penghentian tersebut.
8. Perintah Jaringan dan Konektivitas
Bagian ini sangat berguna untuk praktik jaringan, konfigurasi server, pengecekan koneksi internet, dan troubleshooting layanan.
| Perintah | Fungsi | Contoh |
|---|---|---|
ip addr | Melihat alamat IP pada interface. | ip addr show |
ip link | Melihat status dan informasi interface jaringan. | ip link show |
ip route | Melihat tabel routing. | ip route |
ip neigh | Melihat cache neighbor seperti pemetaan IPv4 ke MAC melalui ARP. | ip neigh show |
ping | Menguji keterjangkauan host melalui ICMP jika diizinkan. | ping -c 4 8.8.8.8 |
traceroute | Melacak hop menuju tujuan jika tersedia. | traceroute example.com |
tracepath | Melacak jalur jaringan pada sistem yang mendukungnya. | tracepath example.com |
ss | Melihat socket dan koneksi jaringan. | ss -tuln |
ss -tpn | Melihat koneksi TCP, PID/program jika diizinkan, dan port numerik. | sudo ss -tpn |
curl | Menguji HTTP dan mengirim atau menerima data URL. | curl -I https://example.com |
wget | Mengunduh file atau mengambil sumber melalui URL. | wget https://example.com/file.zip |
dig | Memeriksa DNS record. | dig example.com A |
nslookup | Melakukan pencarian DNS. | nslookup example.com |
host | Melakukan lookup DNS sederhana. | host example.com |
hostname | Melihat atau mengatur hostname sistem. | hostname |
hostname -I | Menampilkan alamat IP yang terpasang pada host di Linux yang mendukung opsi ini. | hostname -I |
nmcli | Mengelola atau memeriksa koneksi melalui NetworkManager. | nmcli device status |
ethtool | Melihat informasi interface Ethernet jika didukung. | sudo ethtool eth0 |
tcpdump | Menganalisis paket jaringan dari interface. | sudo tcpdump -i any |
nft | Memeriksa atau mengelola aturan firewall berbasis nftables. | sudo nft list ruleset |
ufw | Mengelola firewall sederhana pada sistem yang memakai UFW. | sudo ufw status |
Contoh troubleshooting jaringan bertahap
# 1. Periksa alamat IP
ip addr
# 2. Periksa routing
ip route
# 3. Uji konektivitas ke IP publik
ping -c 4 1.1.1.1
# 4. Uji resolusi DNS
dig example.com
# 5. Periksa respons HTTP
curl -I https://example.com
# 6. Periksa port yang sedang listening
sudo ss -tulnpMemahami opsi penting pada ss
-t: menampilkan socket TCP.-u: menampilkan socket UDP.-l: menampilkan socket yang sedang listening.-n: menampilkan alamat dan port numerik.-p: menampilkan informasi proses jika izin mencukupi.
9. Disk, Filesystem, dan Arsip
Gunakan perintah ini untuk memeriksa kapasitas penyimpanan, perangkat blok, mount point, dan arsip.
| Perintah | Fungsi | Contoh |
|---|---|---|
df -h | Melihat kapasitas filesystem yang terpasang. | df -h |
du -sh | Melihat total ukuran sebuah direktori. | du -sh /var/log |
du -ah | Menampilkan ukuran file dan direktori secara rekursif. | du -ah . |
lsblk | Melihat perangkat blok dan partisi. | lsblk -f |
blkid | Melihat UUID dan tipe filesystem yang dikenali. | sudo blkid |
findmnt | Melihat informasi mount point. | findmnt |
mount | Melihat atau memasang filesystem. | mount |
umount | Melepas filesystem yang sedang terpasang. | sudo umount /mnt/data |
sync | Meminta data tertunda ditulis ke penyimpanan. | sync |
tar -czf | Membuat arsip tar terkompresi gzip. | tar -czf backup.tar.gz folder/ |
tar -xzf | Mengekstrak arsip tar gzip. | tar -xzf backup.tar.gz |
tar -tf | Melihat daftar isi arsip tanpa mengekstraknya. | tar -tf backup.tar.gz |
gzip | Mengompres file dengan gzip. | gzip file.log |
gunzip | Mengekstrak file gzip. | gunzip file.log.gz |
zip | Membuat arsip ZIP jika utilitas tersedia. | zip -r backup.zip folder/ |
unzip | Mengekstrak arsip ZIP. | unzip backup.zip |
rsync | Menyinkronkan file dan direktori secara efisien. | rsync -av sumber/ tujuan/ |
Memeriksa ruang penyimpanan
df -h
lsblk -f
du -sh /var/log
du -sh /home/* 2>/dev/nulldf menampilkan penggunaan kapasitas filesystem, sedangkan du menghitung penggunaan ruang oleh file dan direktori. Keduanya menjawab pertanyaan yang berbeda ketika disk hampir penuh.
mount, umount, dan pengelolaan partisi perlu dilakukan dengan hati-hati. Pastikan target perangkat benar dan tidak sedang digunakan sebelum mengubah filesystem.10. Service, Log, dan Troubleshooting
Pada server Linux modern, systemd umum digunakan untuk mengelola layanan dan proses saat boot.
| Perintah | Fungsi | Contoh |
|---|---|---|
systemctl status | Memeriksa status service. | systemctl status nginx |
systemctl start | Menjalankan service. | sudo systemctl start nginx |
systemctl stop | Menghentikan service. | sudo systemctl stop nginx |
systemctl restart | Menghentikan dan menjalankan ulang service. | sudo systemctl restart nginx |
systemctl reload | Meminta service memuat ulang konfigurasi jika didukung. | sudo systemctl reload nginx |
systemctl enable | Mengatur service agar diaktifkan saat boot. | sudo systemctl enable nginx |
systemctl disable | Menghapus pengaktifan otomatis saat boot. | sudo systemctl disable nginx |
systemctl list-units | Melihat unit systemd yang dimuat. | systemctl list-units --type=service |
journalctl | Membaca log systemd journal. | journalctl -b |
journalctl -u | Memfilter log berdasarkan service. | journalctl -u nginx |
journalctl -f | Mengikuti log baru secara langsung. | journalctl -u nginx -f |
dmesg | Melihat pesan kernel. | dmesg -T |
uname | Menampilkan informasi kernel. | uname -a |
lsb_release | Menampilkan informasi distribusi jika tersedia. | lsb_release -a |
timedatectl | Memeriksa waktu dan konfigurasi zona waktu systemd. | timedatectl |
systemctl reboot | Memulai ulang sistem melalui systemd. | sudo systemctl reboot |
shutdown | Menjadwalkan atau menjalankan shutdown. | sudo shutdown -h now |
Alur memeriksa layanan yang bermasalah
sudo systemctl status nginx
sudo nginx -t
sudo journalctl -u nginx -n 100 --no-pager
sudo ss -tulnpJika Nginx gagal berjalan, periksa status layanan, validasi sintaks konfigurasi menggunakan nginx -t, baca log, kemudian periksa apakah port yang diperlukan sudah digunakan program lain.
Beberapa perintah, seperti nginx, lsb_release, dan systemctl, mungkin tidak tersedia pada semua distribusi atau lingkungan minimal.
11. SSH, Transfer File, dan Remote Server
Perintah berikut membantu mengakses server jarak jauh dan memindahkan data antarperangkat.
| Perintah | Fungsi | Contoh |
|---|---|---|
ssh | Mengakses shell server melalui SSH. | ssh user@192.168.1.10 |
ssh -p | Menghubungkan SSH pada port tertentu. | ssh -p 2222 user@server |
ssh-keygen | Membuat pasangan kunci SSH. | ssh-keygen -t ed25519 |
ssh-copy-id | Memasang public key pada akun server jika didukung. | ssh-copy-id user@server |
scp | Menyalin file melalui SSH. | scp file.txt user@server:/tmp/ |
scp -r | Menyalin direktori melalui SSH. | scp -r folder/ user@server:/tmp/ |
sftp | Transfer file interaktif melalui SSH. | sftp user@server |
rsync -av | Menyinkronkan direktori lokal. | rsync -av sumber/ tujuan/ |
rsync -e ssh | Menyinkronkan data ke server melalui SSH. | rsync -av -e ssh folder/ user@server:/backup/folder/ |
Contoh koneksi ke server Debian
# Mengakses server
ssh siswa@192.168.1.10
# Mengirim file ke server
scp laporan.txt siswa@192.168.1.10:/home/siswa/
# Mengambil file dari server
scp siswa@192.168.1.10:/home/siswa/laporan.txt .
# Menyinkronkan direktori
rsync -av -e ssh website/ siswa@192.168.1.10:/var/www/website/12. Perintah Advanced dan Otomatisasi
Setelah memahami perintah dasar, pengguna dapat memanfaatkan utilitas lanjutan untuk pencarian sistem, analisis resource, penjadwalan tugas, serta otomatisasi administrasi.
12.1 Pencarian dan analisis sistem
| Perintah | Fungsi | Contoh |
|---|---|---|
find | Mencari file berdasarkan nama, tipe, ukuran, waktu, atau kriteria lainnya. | find /var/log -type f -name "*.log" |
find -size | Mencari file berdasarkan ukuran. | find . -type f -size +100M |
xargs | Meneruskan input menjadi argumen perintah lain. | printf '%s\n' a.txt b.txt | xargs -r ls -l |
lsof | Melihat file terbuka oleh proses jika tersedia. | sudo lsof -i :80 |
fuser | Mengidentifikasi proses yang menggunakan file atau resource tertentu. | sudo fuser -v /var/log |
strace | Menelusuri system call suatu program untuk debugging. | strace -o trace.log command |
time | Mengukur waktu eksekusi perintah. | time find . -type f |
timeout | Membatasi durasi eksekusi perintah. | timeout 10s ping -c 100 1.1.1.1 |
watch | Memantau perubahan hasil perintah berkala. | watch -n 5 'df -h' |
12.2 Shell dan environment
| Perintah | Fungsi | Contoh |
|---|---|---|
env | Menampilkan environment variable. | env |
printenv | Menampilkan environment variable tertentu. | printenv PATH |
export | Mengekspor variabel ke lingkungan proses berikutnya. | export APP_ENV=development |
alias | Membuat singkatan perintah pada shell yang mendukungnya. | alias ll='ls -lah' |
source | Membaca dan menjalankan file pada shell saat ini. | source ~/.bashrc |
set | Melihat atau mengubah opsi shell dan variabel. | set -o |
ulimit | Melihat atau mengatur batas resource pada shell. | ulimit -a |
crontab | Mengelola jadwal pekerjaan cron pengguna. | crontab -e |
at | Menjadwalkan pekerjaan satu kali jika layanan tersedia. | at now + 5 minutes |
bash -n | Memeriksa sintaks skrip Bash tanpa menjalankannya. | bash -n backup.sh |
bash -x | Menjalankan skrip dengan pelacakan perintah untuk debugging. | bash -x backup.sh |
12.3 Informasi perangkat keras dan kernel
| Perintah | Fungsi | Contoh |
|---|---|---|
lscpu | Menampilkan informasi CPU. | lscpu |
lsmem | Menampilkan rentang memori sistem jika tersedia. | lsmem |
lspci | Menampilkan perangkat pada bus PCI. | lspci |
lsusb | Menampilkan perangkat USB. | lsusb |
lshw | Menampilkan informasi perangkat keras jika terpasang. | sudo lshw -short |
modinfo | Menampilkan informasi modul kernel. | modinfo e1000 |
lsmod | Menampilkan modul kernel yang sedang dimuat. | lsmod |
modprobe | Memuat atau menghapus modul kernel sesuai opsi. | sudo modprobe modul |
sysctl | Membaca atau mengubah parameter kernel. | sysctl net.ipv4.ip_forward |
modprobe dan sysctl -w dapat memengaruhi perilaku sistem. Jangan mengubah parameter kernel pada server produksi tanpa memahami konsekuensinya.13. Operator dan Kombinasi Command
Salah satu kemampuan penting pengguna Linux tingkat lanjut adalah menggabungkan beberapa perintah menggunakan operator shell dan pipeline.
| Operator | Fungsi | Contoh |
|---|---|---|
| | Mengirim output perintah pertama menjadi input perintah berikutnya. | ps aux | grep nginx |
&& | Menjalankan perintah kedua jika perintah pertama berhasil. | mkdir backup && cd backup |
|| | Menjalankan perintah kedua jika perintah pertama gagal. | ping -c 1 host || echo "Gagal" |
; | Menjalankan perintah berikutnya setelah perintah sebelumnya selesai. | pwd; ls |
> | Mengarahkan output standar ke file dan menimpa isi sebelumnya. | echo "Halo" > file.txt |
>> | Menambahkan output standar ke akhir file. | echo "Baris baru" >> file.txt |
2> | Mengarahkan output error standar ke file. | command 2> error.log |
2>&1 | Mengarahkan stderr ke tujuan stdout saat itu. | command > output.log 2>&1 |
& | Menjalankan pekerjaan di latar belakang shell. | sleep 60 & |
$? | Memeriksa status keluar perintah sebelumnya. | echo $? |
$HOME | Referensi variabel direktori home pengguna. | cd "$HOME" |
Contoh kombinasi yang berguna
1. Mencari proses tertentu
ps aux | grep '[n]ginx'2. Menghitung jumlah file log
find /var/log -type f -name "*.log" | wc -l3. Menyimpan output dan error ke file yang sama
command > hasil.log 2>&14. Menjalankan langkah berikutnya hanya jika berhasil
sudo nginx -t && sudo systemctl reload nginx5. Membuat arsip beserta catatan waktu
tar -czf "backup-$(date +%F).tar.gz" dokumen/> akan menimpa file tujuan. Periksa nama file terlebih dahulu. Untuk operasi penting, uji perintah dengan data contoh sebelum menggunakannya pada file sebenarnya.14. Tips Belajar Linux Command Line
14.1 Gunakan manual dan dokumentasi
man grep
grep --help
info coreutilsTidak perlu menghafal semua opsi. Biasakan membaca dokumentasi saat menemukan perintah baru. Tidak semua utilitas menyediakan --help atau halaman info.
14.2 Berlatih di direktori khusus
mkdir -p ~/latihan-linux
cd ~/latihan-linux
mkdir dokumen backup
touch dokumen/catatan.txt
echo "Belajar Linux" > dokumen/catatan.txt
cat dokumen/catatan.txt
cp dokumen/catatan.txt backup/
find . -type f14.3 Pahami perbedaan root dan pengguna biasa
Root merupakan akun dengan hak istimewa sangat luas. Gunakan akun biasa untuk pekerjaan sehari-hari dan tambahkan sudo hanya ketika operasi memang memerlukan hak administratif.
14.4 Pelajari berdasarkan kebutuhan
- Pemula:
pwd,ls,cd,mkdir,cp,mv,rm. - Administrator:
sudo,chmod,chown,apt,systemctl,journalctl. - Jaringan:
ip,ping,ss,dig,curl,tcpdump. - Advanced:
find,grep,awk,sed,rsync,strace, Bash scripting.
14.5 Kenali perintah berisiko
| Perintah | Risiko | Praktik yang disarankan |
|---|---|---|
rm -rf | Menghapus direktori dan isinya secara rekursif. | Periksa target dan gunakan direktori latihan. |
chmod -R | Mengubah permission banyak file sekaligus. | Batasi cakupan dan pilih permission yang tepat. |
chown -R | Mengubah pemilik banyak file sekaligus. | Pastikan path dan pemilik tujuan benar. |
mkfs | Membuat filesystem baru dan dapat menghancurkan data pada perangkat target. | Verifikasi perangkat sebelum menjalankannya. |
dd | Menyalin data tingkat blok; target yang salah dapat merusak data. | Periksa input dan output dengan teliti. |
shutdown | Mematikan sistem dan memutus layanan yang berjalan. | Pastikan tidak ada pekerjaan penting yang terganggu. |
nft / ufw | Perubahan firewall dapat memutus akses jaringan. | Siapkan akses pemulihan sebelum mengubah aturan server jarak jauh. |
Kesimpulan
Linux command line merupakan keterampilan penting untuk memahami administrasi sistem, server, jaringan komputer, dan otomatisasi. Mulailah dari navigasi direktori dan manajemen file, kemudian lanjutkan ke permission, proses, jaringan, service, dan scripting.
Untuk menjadi lebih mahir, praktikkan setiap perintah di lingkungan pengujian dan pahami hasilnya. Penguasaan Linux bukan sekadar menghafal sintaks, melainkan kemampuan memilih perintah yang tepat, membaca output, dan menyelesaikan masalah secara sistematis.
Referensi pembelajaran jaringan komputer, Linux, dan teknologi informasi. Simpan artikel ini sebagai panduan saat berlatih menggunakan terminal.
