Advertisement
  1. Code
  2. DevOps

Perintah Shell *NIX yang Berguna untuk Web Developer

Scroll to top
Read Time: 10 min

Indonesian (Bahasa Indonesia) translation by Aditia Dwiperdana (you can also view the original English article)

Jadi, kenapa *NIX dan kenapa kamu perlu menggunakan konsol?

Menurut statistik W3Techs, Unix digunakan oleh 68% semua website yang sistem operasinya mereka tahu. Artinya jika kamu adalah web developer, kode kamu mungkin berjalan pada server Linux. Dan setidaknya kamu perlu tahu bagaimana untuk mengatur dan mendebug kode pada sistem Unix dan Linux. Kita cari tahu apa yang perlu kamu tahu agar bisa nyaman dengan command line.

Dasar-dasar

Perintah *NIX dasar memiliki tiga komponen:

  • command atau program yang akan dijalankan
  • options untuk mengubah perilaku perintah tersebut
  • arguments atau data input yang dibutuhkan untuk menjalankan perintah tersebut

Contohnya, jika kamu ingin mendapatkan daftar file dalam direktori /var/www, kamu perlu menjalankan perintah ls dengan argumen /var/www. Untuk menambahkan ukuran tile ke keluaran perintah, kamu perlu menambahkan opsi -s, dan perintah akhir akan terlihat seperti ini:

Pengalihan I/O dan Pipeline

Banyak perintah *NIX menggunakan input dan output yang bisa kamu gunakan, dan fitur ini membuat kamu bisa mengirim keluaran dari perintah ke file menggunakan pengalihan, atau melempar keluaran dari satu perintah menjadi input perintah lain menggunakan pipeline. Contohnya, kita bisa mengeluarkan hasil dari perintah sebelumnya ke sebuah file:

Perintah ini akan membuat atau menghapus file /var/www/file.txt dan mengeluarkan daftar file di direktori /var/www. Berikut adalah daftar pengalihan I/O standar dan pipeline:

  • > mengalihkan keluaran dari perintah ke file di hardisk. File tersebut akan dihapus dan ditimpa.
  • >> pengalihan yang sama, tapi menambahkan ke file keluaran.
  • < Mengambil input untuk perintah dari file.
  • | melempar keluaran dari satu perintah menjadi input untuk perintah lain.
  • tee mengalihkan output ke file dan melemparnya ke perintah berikutnya pada pipeline.

Perintah Utama

Untuk menampilkan halaman manual untuk sebuah perintah, jalankan man. Halaman manual mengikuti susunan umum dan mungkin mencakup nama, sinopsis, deksripsi, dan contoh penggunaan. Ini akan menampilkan dokumentasi perintah chmod:

Untuk menjalankan beberapa perintaht seperti menyimpan pengaturan atau me-reboot proses, kamu perlu menjalankannya sebagai super user. Untuk menjalankan ini, kamu perlu mengawali perintah kamu dengan sudo:

Jika kamu perlu menjalankan beberapa perintah sebagai super user, kamu bisa menggunakan su, atau perintah switch user.

Catatan: untuk menyimpan layer keamanan dan menghindari eksekusi tanpa sengaja, jangan gunakan sudo dan su tanpa tujuan.

Praktek di Dunia Nyata

Navigasi Dasar

Ada tiga perintah utama untuk navigasi pada pohon file:

  • pwd untuk mencetak nama direktori saat ini
  • cd untuk mengganti direktori
  • ls untuk mendaftar isi direktori

Berikut adalah contoh menggunaka perintah-perintah tadi dengan output di terminal:

Mencari File

Terdapat perintah find untuk mencari file dalam hirarki direktori. Perintah ini sangat kuat dan bisa mencari file dan direktori berdasarkan nama, access permission, data, dan ukuran.

Temukan semua direktori dengan nama "logs" di direktori /var/www menggunakan opsi -type:

Untuk mencari file PHP di direktori saat ini, tambahkan opsi -name:

Temukan file dengan permissions tertentu menggunakan opsi -perm:

Temukan semua file yang lebih besar dari 500MB:

Tentu saja kamu bisa mengombinasikan semua opsi ini dalam satu perintah, dan ini hanya perintah find dasar, yang sangat baik dalam mencari file. Gunakan halaman manual untuk mendapatkan lebih banyak informasi.

Manipulasi File dan Folder

Ada lima perintah utama untuk memanipulasi file dan folder dalam sistem *NIX:

  • touch digunakan untuk mengubah timestamp pada file atau direktori yang sudah ada, dan perintah ini juga cara termudah untuk membuat file baru
  • mkdir untuk membuat direktori
  • cp untuk menyalin file dan direktori
  • mv untuk memindahkan atau mengubah nama file dan direktori
  • rm untuk menghapus file dan folder

Contoh berikutnya akan membuat file index.html, menyalin file ini ke direktori baru di /var/www, dan menghapus file sumber.

Perintah berguna lain adalah ln, yang dirancang untuk membuat tautan antar file. Perintah ln biasa digunakan untuk membuat symbolic link untuk mendukung virtual host:

Mengubah Access Permisssion

Untuk mengubah pemilik dan grup file, gunakan chown. Jangan lupa untuk memberi kepemilikan ke user apache saat kamu membuat virtual host untuk aplikasi webmu.

Terkadang cache atau direktori log dari aplikasi harus bisa ditulis oleh semua user jadi kamu perlu mengubah akses mode menjadi 777 dengan perintah chmod. Tambahkan opsi -R untuk menambahkan permission ke semua file dan folder di dalamnya.

Jika kamu ingin membuat sebuah file hanya executable, gunakan chmod dengan opsi +x.

Membaca File

Untuk melihat file di konsol, kamu bisa menggunakan perintah cat. Dengan cat, kamu bisa menyambungkan isi file menggunakan paramemter tambahan, kamu juga bisa menggunakan mask di nama file.

Tapi perintah cat akan membuat kamu bingung dengan cepat, karena menampilkan ouput mentah tanpa membagi halaman, jadi tidak cocok digunakan dengan output log. Untuk melihat teks dalam per halaman, kamu bisa menggunakan perintah more atau less.

Perintah berguna yang lain adalah tail, yang membuat output bagian akhir dari file. Perintah ini cocok untuk melihat histori log. Awalnya, perintah tail hanya mencetak 10 baris terakhir, dan kamu bisa mengubah jumlah tersebut menggunakan parameter -n.

Tapi jika kamu punya banyak file log, kamu perlu sesuatu yang lebih canggih untuk melakukan pencarian. Sesuatu seperti grep, program yang membaca input standar, menguji setiap baris terhadap suatu pola, dan menulis ke output standar baris-baris yang memenuhi pola tersebut. Dengan menggunakannya dengan cat dan pipeline, kamu akan mendapat apa yang kamu cari.

Jika kamu ingin menyaring output berupa baris-baris teks, kamu bisa menggunakan perintah grep:

Seperti yang bisa kamu lihat, grep baik untuk digunakan dalam pipeline. Pada contoh ini, perintah terakhir akan mengeluarkan semua baris berisi "shutting down" dari file log.

Mengedit File

Jika kamu ingin mengedit file dalam konsol, kamu bisa menggunakan tiga editor teks paling populer:

  • GNU nano, editor teks yang kecil dan bersahabat, merupakan pilihan tepat untuk tugas sederhana
  • Vim, editor teks untuk programmer yang sudah lama dikembangkan, merupakan yang paling canggih tapi sangat rumit untuk pemula
  • mcedit, windowed editor dengan fitur yang lengkap dari Midnight Commander, yang mudah digunakan tapi tidak terinstall di semua sistem *NIX

Bandingkan dan pilih yang kamu suka.

Pembuatan Arsip

Kadang kamu perlu membackup atau mengkompres data di server.

Perangkat paling umum untuk membuat arsip tar dan zip. Perhatikan bahwa perintah zip belum tentu terinstall di server kamu.

Kamu bisa membuat arsip dengan perintah berikut:

Jika kamu hanya ingin melihat daftar file dalam sebuah arsip, kamu bisa menggunakan opsi -l pada tar dan unzip.

Atau untuk mengekstrak source code:

Menjadwal Tugas

Jika kamu ingin menjadwal skrip untuk berjalan di waktu tertentu, kamu perlu menggunakan Cron, yang diatur oleh tabel cron, file konfigurasi yang menentukan perintah shell untuk berjalan di jadwal tertentu. Dan perintah untuk mengelola tabel cron adalah crontab.

Memanggil crontab dengan opsi -l akan menampilkan tabel cron.

Gunakan opsi -u untuk melihat nama user yang menggunakan crontab tersebut. Jika kamu iingin menjalankan tugas aplikasi web, lebih baik untuk mengedit crontab untuk user www-data.

Dalam output ini, kamu bisa melihat contoh sebuah tabel cron. Seperti yang bisa kamu lihat, setiap baris dijadwal berdasarkan menit, jam, hari, bulan, dan hari dalam minggu. Sebuah kolom bisa berupa asterisk, yang berarti semua nilai pada kolom. Kamu juga bisa menggunakan set dan range menggunakan koma dan hypen. Jika range diikuti oleh slash, menentukan jumlah skip yang dilakukan sepanjang range. Pada contoh ini, perintah pertama akan dijalankan setiap lima menit, dan perintah kedua akan dijalankan dari Senin sampai Jumat pukul 15:00.

Untuk mengedit daftar ini, jalankan crontab dengan opsi -e, bukan -l. Daftar cron akan terbuka di editor defaultmu. Gunakan opsi -r untuk membersihkan daftar cron.

Memonitor Performa

Perintah top menampikan ringkasan informasi sistem dan menyediakan tampilan real-time yang dinamis tentang proses sistem yang sedang berjalan. Tekan Shift-M untuk mengurut proses berdasarkan penggunaan memori, atau Shift-P untuk mengurut berdasarkan penggunakan CPU.

Untuk menampilkan memory yang tersedia dan yang sedang terpakai, gunakan perintah free. Tambahkan opsi -h untuk menampilkan output dalam format yang mudah dibaca.

Perintah lain yang berguna adalah df, yang akan melaporkan penggunan ruang pada system disk. Kamu bisa memanggilnya dengan opsi -a untuk menampilkan semua sistem file di servermu. Jangan lupa untuk menambahkan opsi -h agar format mudah dibaca.

Histori Command Line

Kamu bisa menggunakan !! untuk mengulang perintah terakhir, atau gunakan sudo !! jika kamu lupa menjalankan perintah menggunakan sudo.

Jika kamu lupa sintaks perintah atau malas menulis banyak perintah, kamu bisa menggunakan history untuk menampilkan histori perintah yang kamu gunakan. Lebih baik jika kamu menggabungkan perintah ini dengan perintah seperti grep, tail, dan lain-lain untuk menemukan yang kamu cari.

Kesimpulan

Menggunakan konsol itu tidak terlalu sulit. Sistem Unix dan Linux mudah dimengerti dan digunakan karena desain yang sederhana dan dokumentasi yang baik. Saya harap artikel ini akan membuat kamu lebih nyaman di command line dan membawa kamu ke level berikutnya dalam mengelola aplikasi web dengan command line.

Jika kamu punya pertanyaan atau ingin berbagai perintah konsol favoritmu, jangan ragu untuk meninggalkan komentar di bawah artikel.

Bacaan lebih lanjut

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.