Linux merupakan sistem operasi terbuka yang bisa dimodifikasi dan dikembangkan. Biasanya linux digunakan untuk menangani jaringan. Pertama kali dikembangkan oleh Linus Torvalds pada tahun 1991. Komponen mayor dari linux ada 5, yaitu kernel (driver), daemons (process), applications, data files, dan configuration files. Linux biasanya diakses melalui CLI atau command line interface, meskipun demikian tersedia juga dalam bentuk GUI atau graphical user interface. Kernel atau kalau di windows disebut driver merupakan komponen yang cukup krusial, sebab jika tidak dipatching sebelum update maka memungkinkan terjadinya crash atau bug. Ada 3 distro besar di linux, yaitu fedora, debian, dan openSUSE, distro ubuntu merupakan turunan dari debian sedangkan red hat merupakan turunan dari fedora. Distro red hat ini berbayar karena kita bisa bertanya jika terjadi error. Distro red hat memiliki kedekatan dengan CentOS karena distro CentOS merupakan distro gratis yang diharapkan menjadi jembatan sebelum menggunakan red hat.
Begitu linux di-install maka akan muncul di CLI untuk login (masukan user name) dan password (masukan kata sandi). Ada 3 syntax standar yang digunakan, yaitu man (untuk melihat man page), -i (mencari dengan case-insensitive), dan whoami (untuk mengetahui siapa yang login). Sedangkan untuk mengetahui identitas baik uid, gid, maupun groups bisa menggunakan syntax id. Nama host juga bisa diketahui melalui syntax hostname. Berikut daftar syntax yang mungkin dibutuhkan:
- uptime : mengetahui panjang waktu sistem sejak boot
- date : melihat tanggal
- cal : melihat kalender
- clear : menghapus layar
- echo : seperti print pada python atau console.log di JavaScript
- history : melihat apa yang telah dilakukan user
- touch : membuat file dengan ekstensi tertentu
- cat : menampilkan isi file
- ls -l 1>folder.txt : menyimpan data permission ke file folder.txt
- find / -name "*" -print 2> / dev/null : mencetak pesan error
- ls : melihat file yang ada di lokasi saat ini
- pwd : mengetahui lokasi saat ini
![]() |
| sumber: vitalsource.com |
Cara untuk membuat user account menggunakan syntax: useradd (nama user), nah, untuk melihat user yang telah dibuat bisa menggunakan syntax: id (nama user). Berikut syntax penting untuk user atau group:
- useradd -c "new employee" jdoe : membuat user baru bernama jdoe dengan komentar new employee
- useradd -e 2025-01-01 jdoe : membuat user baru bernama jdoe dengan expired date 1 Januari 2025
- useradd -d /users/jdoe jdoe : membuat user baru bernama jdoe dengan path home directory di /users/jdoe
- userdel -r jdoe : menghapus user dengan nama jdoe
- passwd (nama user) : memberikan password ke user tertentu
- groupadd (nama group) : membuat grup
- groupdel (nama group) : menghapus grup
- groupmod -n (nama grup baru) (nama group lama) : mengubah nama grup
- tail -n 3 /etc/group : melihat daftar group 3 terakhir
- usermod -aG (nama grup pertama),(nama grup kedua) (nama user) : memasukan user ke dalam dua grup yang berbeda
- gpasswd -a (nama user) (nama grup) : memasukkan satu user ke dalam satu grup
Untuk membuat teks di linux ada 3 cara, yaitu melalui Vim, GNU nano, dan gedit. Pilihan untuk mengedit teks opsional bagi pengguna linux artinya bergantung kenyamanan. Secara user interface lebih mudah menggunakan GNU nano. Khusus untuk gedit hanya bisa dilakukan di GUI atau graphical user interface. Syntax yang digunakan untuk membuat file adalah: nano (nama file.ekstensi). Jika file yang sudah dibuat begitu banyak sehingga sulit untuk mencarinya satu per satu maka bisa menggunakan syntax grep, seperti:
- ls -l | grep .txt : cari file atau folder dengan ekstensi .txt
- ls -l | grep index : cari file atau folder dengan nama yang mengandung index
- / : root of the file system
- /boot : boot files and kernel
- /dev : devices
- /etc : configuration files
- /home : standard users' home directories
- /media : removable media
- /mnt : network drives
- /rott : root user home directory
- /var : log files, print spool, network services
- cp file.txt file1.txt : membuat duplikasi dari file.txt dengan nama file1.txt
- cp (nama file) (destination) : membuat duplikasi dengan lokasi tertentu
- rm (nama file) : menghapus file
- mkdir (nama directories) : membuat directories
- mv (nama file atau directories) (lokasi yang dituju) : memindahkan file atau direktori
- rmdir (nama directory) : menghapus directory
- pwd : mengetahui posisi saat ini
- hash : melihat proses yang sedang running
- cksum (nama file) : melihat value dari file biasanya untuk melihat terjadinya corrupt saat transfer
- find (nama file atau directory) : menemukan nama file atau directory secara persis
- grep (pattern) : menemukan nama file atau directory sesuai pattern tertentu
- diff (file1) (file2) : membandingkan dua file
- tar -cvf (nama kompres).tar file1 file2 : membuat kompres file1 dan file2
- tar -xf (namaFile.tar) : untuk dekompres file .tar
- gzip (namaFile.tar) : membuat file lebih terkompres
- gzip -d (namaFile.tar.gz) : untuk dekompres file.tar.gz
![]() |
| sumber: vitalsource.com |
Gambar diatas menunjukkan siapa yang memiliki permission atas sebuah file, permission untuk user artinya khusus untuk user tersebut saja yang bisa mengakses, sedangkan permission group artinya setiap user yang masuk ke dalam grup bisa menggunakan permission tersebut, dan other permission artinya selain user dan group. Untuk mengubah permission dengan cara simbolik maka ada beberapa simbol yang perlu diketahui, yaitu:
- Identity
- u : user
- g : guest
- o : other
- Permission
- r : read
- w : write
- x : execute
- Operator
- + : menambah permission yang sebelum -
- - : menghapus permission yang sebelumnya sudah ada
- = : mengganti permission yang lama menjadi yang baru
- Contoh penggunaan:
- chmod u+r file.txt : mengubah permission file.txt menjadi read untuk user
- chmod u-r file.txt : mengubah permission file.txt menjadi -
- chmod u=x file.txt : mengubah permission file.txt yang sebelumnya r menjadi x
- Read : 4
- Write : 2
- Execute : 1
- All permision : 7
- Contoh penggunaan:
- chmod 400 file.txt : mengubah permission menjadi r--------
- chmod 637 file.txt : mengubah permission menjadi rw--wxrwx
- touch file.txt
- touch file1.txt
- mkdir file
- cp *.txt file/
- perintah di atas akan membuat file duplikasi yaitu file.txt dan file1.txt kemudian ditempatkan di directory file
- touch file2019.txt
- touch file2020.txt
- touch file2021.txt
- touch file2022.txt
- rm file202?.txt
- perintah di atas akan membuat file dengan awalan file202 dan satu karakter apapun untuk dihapus
- sort (nama file) : otomatis data yang ada di dalam file akan diurutkan secara alfabet
- sort -r (nama file) : otomatis data yang ada di dalam file akan diurutkan terbalik dari alfabet
- sort -u (nama file) : mengurutkan dengan menghapus duplikat (biasanya digunakan untuk log)
- sort -M (nama file) : mengurutkan berdasarkan Month (bulan)
- echo $PATH : melihat path secara spesifik
- ps : melihat proses yang sedang berjalan
- ps -ef : melihat seluruh proses yang sedang berjalan walaupun hidden
- ps -e : melihat seluruh proses (hidden juga) tetapi lebih ringkas
- pstree : melihat proses yang sedang berjalan dengan format tree
- top : melihat rangkuman proses sistem real-time
- killall -9 less : akan menghentikan proses dengan cmd less
- jobs : menampilkan proses yang dimulai oleh user dengan urutan
- at : untuk menjalankan proses
- crontab -e : edit crontab file dengan root user
- sudo systemctl status httpd : setelah install httpd maka diperiksa statusnya apakah berjalan
- lscpu : menampilkan informasi dari cpu
- lshw : menampilkan daftar hardware
- du : memeriksa ukuran file dan direktori
- df : melihat disk free
- vmstat : melihat apakah menggunakan virtual memory
- free : melihat apakah menggunakan physical memory
- uptime : mengetahui sudah berapa lama sistem digunakan sejak diaktifkan
- namasaya="ronaldo"
- echo $namasaya
- maka akan menghasilkan ronaldo
- echo $USER : untuk mencetak nama user
- echo $HOME : untuk mencetak path home
- echo $SHELL : untuk mencetak path bash
- alias ll='ls -l' : cara singkat untuk mendapatkan ls -l dengan ll saja
- unalias ll : menghapus cara singkat (short hand)
- nano ~/.bashrc : menambahkan alias di file bashrc
- Buat file script.sh
- touch script.sh
- Kemudian edit dengan nano
- nano script.sh
- Misalnya saat script.sh dijalankan akan menampilkan 'Hello World', gunakan shebang (#!/bin/bash)
- #!/bin/bash
- echo 'Hello World'
- Simpan file yang diedit dengan nano tersebut kemudigan gunakan syntax dibawah untuk menjalankannya:
- ./script.sh
- Jika berhasil akan tampil frasa Hello World
- Buat file script.sh dan gunakan syntax:
- #!/bin/bash
- sum=$(($1 + $2))
- echo $1 + $2 equals $sum
- Jalankan syntax dengan
- ./script.sh 4 5
- Jika berhasil akan muncul 4 + 5 equals 9
- Conditional statements
- #!/bin/bash
- if [ cp file1 /tmp ];
- then
- rm file1
- fi
- Looping statements
- for
- #!/bin/bash
- for x in 1 2 3 4 5 a b c d
- do
- echo "the value is $x"
- done
- until
- #!/bin/bash
- counter=1
- until [ $counter -gt 10 ];
- do
- echo $counter
- ((counter++))
- done
- echo "loop exited"
- echo "counter equals $counter"
- while
- #!/bin/bash
- counter=1
- while [ $counter -le 10 ];
- do
- echo $counter
- ((counter++))
- if [ counter == $1 ];
- then
- break
- fi
- done
- echo "loop exited"
- echo "counter equals $counter"
Kernel dalam linux sangat penting karena jika terjadi masalah maka akan menghambat proses bahkan bisa menghentikan proses. Kernel itu mirip seperti driver di windows. Patching adalah salah satu metode yang digunakan untuk menyeragamkan instalasi dari kernel yang ada di linux. Sayangnya linux memiliki beberapa distro yang membuat cara untuk manajemen perangkat lunak berbeda. Sedikitnya ada 2 pendekatan, yaitu red hat method dan debian method. Untuk mendownload update-an misalnya ada dua metode yaitu wget dan curl. Sebaiknya menggunakan wget jika hendak mendownload sebab dengan wget jika terjadi proses download yang berhenti maka bisa dilanjutkan sedangkan dengan curl akan membuat proses download dimulai dari awal.
Selain manajemen perangkat lunak di linux juga perlu dilakukan manajemen log yaitu aktivitas yang terjadi di sistem operasi. Ada 8 level keamanan log di linux, yaitu:
- 0 - emergency (sistem menjadi tidak stabil)
- 1 - alert (aksi dibutuhkan)
- 2 - critical (sistem mungkin tidak dibutuhkan)
- 3 - error (kondisi error yang tidak kritis)
- 4 - warn (peringatan)
- 5 - notice (normal events)
- 6 - info (informasi umum)
- 7 - debug (informasi debug)
Biasanya seorang manajer log akan melihat apa aktivitas pertama atau aktivitas terakhir. Nah, untuk memudahkan untuk melihatnya bisa menggunakan syntax head dan tail. Karena biasanya banyak sekali log yang ada teknik pencarian dengan pip ( | ) dan grep cukup sering digunakan. Ada 9 file log yang penting, yaitu:
- /var/log/syslog - store system information
- /var/log/secure - authentication information red hat
- /var/log/kern - linux kernel information
- /var/log/boot.log - startup message
- /var/log/maillog - mail message
- /var/log/daemon.log - running background service
- /var/log/auth.log - authentication information debian
- /var/log/cron.log - schedule task
- /var/log/httpd - apache information for red hat
ref:


Komentar