Skip to main content
  1. Posts/

Linux Commands Cheat Sheet

·6 mins·
linux linux
Table of Contents

Berikut merupakan Cheat Sheet untuk perintah linux yang paling umum digunakan berdasarkan kategori dan dapat digunakan sebagai referensi baik untuk pengguna dasar atau berpengalaman.

cheat linux

Useful Commands
#

Menghapus Package di Ubuntu
#

apt-get --purge -y remove mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*

Membuat User
#

Membuat user baru dengan home directory:

useradd -m -d /home/user user

Membuat user baru dengan menentukan shell (contoh: shell non-login):

useradd -m -d /home/user -s /sbin/nologin user

Membuat user sistem dengan opsi tambahan:

adduser --system --shell /bin/bash --group --disabled-password --home /home/user user

Menghapus User
#

Menghapus user beserta home directory dan file terkait:

userdel -rfRPZ user

Melihat Proses dengan Penggunaan CPU Tertinggi
#

Gunakan perintah berikut untuk melihat proses yang menggunakan CPU paling tinggi:

ps H -eo pid,pcpu | sort -nk2 | tail

Contoh output:

$ ps H -eo pid,pcpu | sort -nk2 | tail
31396  0.6
31396  0.6
31396  0.6
31396  0.6
31396  0.6
31396  0.6
31396  0.6
31396  0.6
30904  1.0
30914  1.0

Dari output tersebut, terlihat bahwa PID 30914 dan 30904 menggunakan CPU paling tinggi.

Catatan: Karena menggunakan opsi H (Threads view), satu proses bisa muncul beberapa kali tergantung jumlah thread yang aktif.

Melihat Pemakaian RAM dari Setiap PID
#

Gunakan perintah berikut untuk melihat penggunaan RAM oleh masing-masing proses, serta menghitung total penggunaan RAM:

ps -eo pid,rss= | sort -nk2 | awk '{printf "PID: %s, RAM Usage: %.2f MB\n", $1, $2/1024; sum+=$2} END {print "\nTotal RAM Usage: " sum/1024 " MB"}'

Mengetahui Service dari PID
#

Gunakan perintah berikut untuk mencari informasi service atau proses berdasarkan PID:

ps aux | grep 30914

Atau bisa juga dengan melihat isi direktori /proc untuk PID tersebut:

ls -l /proc/30914

Memeriksa Status Koneksi pada Port Tertentu
#

Untuk melihat koneksi yang menggunakan port tertentu, misalnya port 80, gunakan:

netstat -nap | grep :80

Atau alternatif lainnya:

lsof -i :80

Melihat Jumlah Thread
#

Untuk mengetahui jumlah total thread yang berjalan di sistem:

ps -eLf | wc -l

Menemukan File Log Berukuran Besar
#

Mencari file log yang ukurannya lebih dari 1000MB:

find / -name '*log*' -size +1000M -exec du -h {} \;

Metode alternatif:

  1. Menggunakan du dan sort untuk menemukan file atau direktori yang mengandung kata “log”:
    du -a / | sort -rn | grep log | more
    
  2. Menggunakan find dan ls untuk menampilkan file log berurutan berdasarkan ukuran:
    find / -type f -name "*log*" | xargs ls -lSh | more
    

Monitoring Disk I/O
#

Untuk memantau aktivitas disk secara real-time:

iotop -o

Opsi -o hanya menampilkan proses yang aktif melakukan I/O.

Menemukan File Berdasarkan User Tertentu
#

Untuk menemukan file yang dimiliki oleh user dengan UID 1000:

find / -uid 1000 -ls

Catatan: Gunakan / (root) sebagai lokasi pencarian agar menjangkau seluruh filesystem, bukan hanya di direktori saat ini (.).

Menemukan File Berdasarkan Tanggal Tertentu
#

Gunakan perintah berikut untuk mencari file berdasarkan waktu:

find /path/to/directory -type f -newerXY 'yyyy-mm-dd' -ls

Penjelasan huruf X dan Y:

  • a — Waktu terakhir file diakses (access time)
  • B — Waktu file dibuat (birth time) (tidak selalu tersedia di semua filesystem)
  • c — Waktu perubahan metadata inode (change time)
  • m — Waktu terakhir file dimodifikasi (modification time)
  • t — Waktu referensi dibandingkan langsung dengan waktu tertentu

Contoh Penggunaan

  1. Mencari file yang diakses pada tanggal tertentu:

    find / -type f -newerat '2024-07-07' ! -newerat '2024-07-08' -ls
    
    • -newerat '2024-07-07' — File yang diakses setelah 7 Juli 2024.
    • ! -newerat '2024-07-08' — Tapi tidak setelah 8 Juli 2024, sehingga hanya yang tepat di tanggal 7.
  2. Mencari file yang dimodifikasi pada hari tertentu menggunakan format lain:

    find /path/to/directory -type f -newermt "Oct 13" ! -newermt "Oct 14"
    
    • -newermt "Oct 13" — File yang dimodifikasi setelah 13 Oktober.
    • ! -newermt "Oct 14" — Tetapi tidak setelah 14 Oktober.

Generate Password
#

1. Generate strong password 24 karakter (Alfanumerik):

cat /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 24

2. Generate strong password 24 karakter (Alfanumerik + Simbol):

cat /dev/urandom | tr -dc 'A-Za-z0-9!@#$%^&*()' | head -c 24

3. Generate banyak password sekaligus (bulk passwords):

cat /dev/urandom | tr -dc 'A-Za-z0-9!@#$%^&*()' | fold -w 24 | head -n 23
  • fold -w 24 memotong output setiap 24 karakter.
  • head -n 23 menampilkan 23 password.

Menampilkan Symlink #

Untuk mencari dan menampilkan semua symlink:

find /path/to/search -type l -ls

Mengubah Owner pada Symlink #

Untuk mengubah owner symlink.

chown -h www-data:www-data /var/www/html/storage
  • Opsi -h memastikan perubahan hanya pada symlink, bukan pada target file.

Mengecek Tanggal Expired SSL Certificate
#

Untuk mengecek kapan SSL certificate akan kadaluarsa:

date -d "$(openssl x509 -in /path/to/cert.pem -text -noout | grep 'Not After' | cut -c 25-)"
  • openssl x509 -in /path/to/cert.pem -text -noout akan menampilkan informasi sertifikat.
  • grep 'Not After' mencari baris expired date.
  • cut -c 25- mengambil tanggal mulai dari karakter ke-25.
  • date -d mengubah format output ke format tanggal lokal.

Catatan: Pastikan file .pem sudah berisi sertifikat dalam format yang benar.

Mengubah Tanggal pada File
#

Untuk mengubah timestamp file ke waktu tertentu:

touch -d "2023-10-05 15:30:00" nama_file.txt
  • -d menentukan tanggal dan waktu yang ingin diset.
  • Bisa digunakan untuk file baru ataupun file yang sudah ada.

Mengecek IP Address
#

Anda dapat mengecek alamat IP pada sistem Linux menggunakan perintah berikut:

ip -br addr

Perintah ini menampilkan informasi alamat IP dalam format ringkas dan mudah dibaca.

Alternatif lainnya, Anda bisa menggunakan perintah ifconfig (pastikan paket net-tools telah terinstal):

ifconfig | awk '/^[a-zA-Z]/ {iface=$1} /inet / {print iface, $2}'

Perintah ini akan menampilkan nama interface beserta alamat IP.

Useful Scripts
#

Rename file
#

Script berikut akan mengubah semua nama file dengan awalan “Copy of”.

for file in "Copy of "*; do
    newname="${file/#Copy of /}"
    mv "$file" "$newname"
done

Simulasi

$ ls -l
'Copy of write1.txt'
'Copy of write2.txt'

$ bash script.sh; ls -l
write1.txt
write2.txt

Backup database.
#

Berikut adalah script Bash yang dapat Anda gunakan untuk membackup database.

#!/bin/bash

# Direktori untuk menyimpan backup
BACKUP_DIR="/path/to/backup"

# Nama database yang akan di-backup
DATABASE_NAME="nama_database"

# Mendapatkan tanggal dan waktu saat ini
TIMESTAMP=$(date +"%Y%m%d%H%M")

# Membuat backup database
mysqldump -u username -p password $DATABASE_NAME | gzip > $BACKUP_DIR/backup_$TIMESTAMP.sql.gz

# Menghapus backup lebih dari 5
cd $BACKUP_DIR
ls -1tr | grep "backup_" | head -n -5 | xargs -d '\n' rm -f

Selanjutnya, atur penjadwalan backup menggunakan crontab sesuai kebutuhan.

crontab -e
# Penjadwalan crontab untuk menjalankan script setiap 1 jam
0 * * * * /path/to/your/script.sh

Backup file
#

Berikut adalah script Bash yang dapat Anda gunakan untuk membackup file.

#!/bin/bash

# Direktori yang akan di-backup
SOURCE_DIR="/path/to/source"

# Direktori untuk menyimpan backup
BACKUP_DIR="/path/to/backup"

# Mendapatkan tanggal dan waktu saat ini
TIMESTAMP=$(date +"%Y%m%d%H%M")

# Membuat backup direktori
tar -czf $BACKUP_DIR/backup_$TIMESTAMP.tar.gz -C $SOURCE_DIR .

# Menghapus backup lebih dari 5
cd $BACKUP_DIR
ls -1tr | grep "backup_" | head -n -5 | xargs -d '\n' rm -f

Selanjutnya, atur penjadwalan backup menggunakan crontab sesuai kebutuhan.

crontab -e
# Penjadwalan crontab untuk menjalankan script setiap 1 jam
0 * * * * /path/to/your/script.sh

Menjalankan sudo dengan Password dalam Bash Script
#

Untuk menjalankan perintah sudo dengan memasukkan password secara otomatis di dalam skrip Bash, Anda dapat menggunakan perintah berikut:

echo "password_anda" | sudo -S chown -R web1: "$LOCAL_BACKUP_DIR/"

Penjelasan:

  • echo "password_anda": mencetak password ke output standar.
  • sudo -S: menerima password dari input standar (stdin).
  • chown -R web1:: mengubah kepemilikan direktori dan seluruh isinya menjadi milik user web1.
  • "$LOCAL_BACKUP_DIR/": direktori yang akan diubah kepemilikannya.

⚠️ Peringatan Keamanan: Menyimpan password dalam bentuk teks biasa di dalam skrip adalah praktik yang sangat tidak disarankan karena berisiko tinggi terhadap keamanan. Sebaiknya gunakan metode yang lebih aman seperti konfigurasi sudoers untuk mengizinkan perintah tertentu dijalankan tanpa password.

Related

Install Brave di Linux
·1 min
linux linux
Install Uptime Kuma sebagai Monitoring
·2 mins
linux docker linux monitoring nodejs uptime kuma
Setting Shell variables Saat Menggunakan Sudo di Linux
·1 min
linux linux
Migrasi CentOS 8 ke Almalinux 8
·2 mins
linux linux
Backup dan Restore Partisi table di Linux
·3 mins
linux linux
Recover Root Password Ubuntu
·1 min
ubuntu linux ubuntu