Saat Anda mencoba menjalankan perintah (dengan atau tanpa sudo
) dan dapatkan pesan kesalahan yang berbunyi "Perintah tidak ditemukan", ini berarti skrip atau file yang Anda coba jalankan tidak ada di lokasi yang ditentukan oleh variabel PATH Anda. Apa variabel ini, dan bagaimana Anda menjalankan perintah yang tidak dapat ditemukannya?
Memahami variabel lingkungan
Dalam komputasi, sebuah variabel adalah tempat untuk nilai yang dapat berubah. Anda menggunakan variabel setiap hari dalam percakapan normal, meskipun Anda tidak menganggapnya seperti itu. Saat Anda mengatakan "laptop saya", Anda menggunakan "laptop" sebagai variabel umum atau pengganti untuk komputer yang Anda bawa, terlepas dari apakah itu Lenovo, Mac, atau Raspberry Pi dalam kasus yang mewah.
Variabel lingkungan adalah variabel khusus yang berisi informasi tentang sesi login Anda. Banyak dari variabel ini ditetapkan secara default selama instalasi atau pembuatan pengguna. Mereka disimpan untuk shell sistem, aplikasi, dan skrip untuk digunakan saat menjalankan perintah.
Ada variabel global, atau ditentukan sistem, dan variabel lokal, atau ditentukan pengguna.
Variabel global
Variabel global sudah ditentukan sebelumnya di shell login Anda, tetapi variabel tersebut tidak dapat diubah dan dapat dimodifikasi atau dihapus sesuai dengan preferensi Anda. Anda dapat menggunakan printenv
atau env
perintah untuk menampilkan variabel lingkungan di sistem Anda:
$ env
SHELL=/bin/bash
SESSION_MANAGER=local/kiwi.homelinux.local:@/tmp/.ICE-unix/1906,unix/kiwi.homelinux.local:/tmp/.ICE-unix/19
06
WINDOWID=153092103
COLORTERM=truecolor
XDG_CONFIG_DIRS=/home/tux/.config/kdedefaults:/etc/xdg:/etc/kde/xdg
LESS=-XR
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1
HISTCONTROL=:ignorespace:ignoredups:ignorespace:ignoredups
PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/share/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig
[...]
env
perintah mencetak semua variabel lingkungan global. Variabel peka huruf besar/kecil, dan semua distribusi Linux menggunakan huruf besar untuk nama variabel lingkungan secara default.
[ Jauhkan perintah, alias, dan tip favorit Anda dari Git. Unduh lembar contekan Git. ]
Variabel lokal
Variabel lokal hanya ada di dalam shell tertentu. Oleh karena itu, ketika Anda mendefinisikan variabel lokal, itu hanya tersedia di shell Anda saat ini. Itu tidak menyebar atau bertahan ke sesi shell baru kecuali Anda mengekspornya sebagai variabel global.
Variabel lokal sering didefinisikan dalam huruf kecil untuk menghindari penimpaan variabel global dengan nama yang sama.
Variabel lingkungan PATH
Variabel lingkungan global PATH mencantumkan direktori yang dicari sistem Anda untuk perintah yang valid dan dapat dieksekusi. Secara default, ini berisi direktori standar yang biasanya menyimpan executable seperti /usr/bin
, /usr/local/bin
, dan seterusnya.
Saat Anda mengetikkan perintah, seperti grep
atau vim
, sistem Anda menelusuri semua direktori yang tercantum dalam variabel PATH Anda, sesuai urutan daftarnya, hingga menemukan file yang dapat dieksekusi dengan nama yang sama. Jika gagal menemukannya, akan muncul kesalahan "Perintah tidak ditemukan".
$ printenv PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/tux/.local/bin:/home/tux/bin
$ env $PATH
env: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/tux/.local/bin:/home/tux/bin
5 cara untuk memperbaiki kesalahan "Perintah tidak ditemukan"
Ada beberapa cara untuk memperbaiki masalah ini. Ini dia lima di antaranya.
1. Sertakan jalur
Tidak semua yang ingin Anda jalankan harus berada di jalur Anda. Anda dapat mengeksekusi file secara langsung dengan menentukan jalur ke file yang ingin Anda jalankan. Dengan mengidentifikasi lokasi file, Anda menghindari kebutuhan sistem untuk mencari jalur Anda sama sekali.
Misalnya, Anda memiliki skrip bernama hello
yang ingin Anda jalankan. Itu terletak di direktori home Anda, dan Anda telah menandainya sebagai yang dapat dieksekusi dengan chmod +x
:
$ ~/hello
hello world
Dengan memberi tahu sistem Anda lokasi file, variabel PATH tidak pernah terlibat, dan file berjalan seperti yang diharapkan.
2. Tambahkan jalur baru
Sebagai alternatif, Anda dapat menambahkan direktori baru ke PATH Anda. Tambahkan file yang dapat dieksekusi ke direktori itu, lalu Anda dapat menjalankannya tanpa menyediakan jalur secara manual:
$ cp ~/hello ~/.local/bin
$ export PATH=$PATH:$HOME/.local/bin
$ printenv PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/tux/.local/bin
Anda mungkin ingin menambahkan variabel lingkungan PATH baru ke shell login Anda dengan memasukkannya ke dalam .bashrc
Anda file sebagai pengaturan baru.
3. Salin file ke lokasi jalur yang ada
Jika Anda ingin mengeksekusi file atau skrip biner Anda, salin ke salah satu jalur direktori yang sudah terdaftar di variabel lingkungan PATH:
$ sudo cp ~/hello /usr/local/bin/
$ hello
hello world
4. Beri tahu Bash di mana mencarinya
Mungkin opsi paling sederhana, terutama untuk skrip atau aplikasi satu kali, adalah memberi tahu Bash untuk tidak mempertimbangkan PATH melainkan "lihat di sini." Lakukan ini dengan menempatkan titik dan garis miring di depan perintah, skrip, atau nama aplikasi. Untuk hello
scriptnya seperti ini :
$ sudo ./hello
hello world
Tidak ada perubahan permanen yang dilakukan pada sistem. Ini mungkin berguna jika Anda sedang menulis skrip dan ingin mengujinya sebelum menyalin atau memindahkannya ke lokasi penyimpanan normalnya (mungkin di sepanjang PATH).
5. Instal sebuah paket
Terkadang ketika Anda mencoba menggunakan perintah dan Bash menampilkan kesalahan "Perintah tidak ditemukan", mungkin karena program tersebut tidak diinstal pada sistem Anda. Perbaiki ini dengan menginstal paket perangkat lunak yang berisi perintah. Misalnya, jika Anda belum menginstal Nmap, maka nmap
perintah gagal saat Anda mengetiknya di terminal:
$ nmap
nmap: command not found
$ sudo dnf install --assumeyes --quiet nmap
$ nmap
Nmap 7.92 ( https://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
[...]
[ Ingin mempelajari lebih lanjut? Daftar untuk uji coba gratis akses penuh ke kurikulum Red Hat. ]
Tetap pada jalurnya
Variabel PATH adalah alat yang ampuh yang dapat Anda gunakan untuk menyesuaikan bagaimana sistem Anda merespons perintah, jadi luangkan waktu untuk membiasakan diri dengannya. Ini sering digunakan saat menjalankan perintah untuk menemukan perintah yang dapat dieksekusi.
Dalam tutorial ini, Anda mempelajari lima cara untuk memperbaiki kesalahan "Perintah tidak ditemukan" di terminal Anda—tiga di antaranya bergantung pada variabel PATH. Sekarang setelah Anda mengetahui variabel apa dan bagaimana executable perintah ditemukan, Anda tidak akan bingung lagi ketika kesalahan "Command not found" muncul di layar Anda.