GNU/Linux >> Belajar Linux >  >> Linux

Cara memperbaiki kesalahan Perintah tidak ditemukan di Linux

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.


Linux
  1. perintah yum-config-manager tidak ditemukan [Perbaiki]

  2. c_rehash :Perintah tidak ditemukan kesalahan – Solusi

  3. Cara Memperbaiki Perintah Sudo Tidak Ditemukan di Debian 10

  1. Cara Memperbaiki Kesalahan Rust "linker 'cc' tidak ditemukan" Di Linux

  2. envsubst:perintah tidak ditemukan

  3. perintah linux ditemukan tetapi tidak ditemukan saat menggunakan sudo

  1. Cara Memperbaiki "perintah semanage" Tidak Ditemukan Kesalahan di CentOS

  2. Perintah Tidak Ditemukan di Bash Tetap

  3. Cara Memperbaiki Perintah Ifconfig tidak ditemukan di Linux Ubuntu