GNU/Linux >> Belajar Linux >  >> Linux

Apa perintah unix untuk mengetahui file yang dapat dieksekusi yang sesuai dengan perintah yang diberikan?

Perintah yang digunakan bervariasi dari satu shell ke shell lainnya.

Hanya built-in shell yang akan memberi tahu seseorang dengan benar apa yang akan dilakukan shell untuk nama perintah yang diberikan, karena hanya built-in yang dapat sepenuhnya mengetahui tentang alias, fungsi shell, built-in lainnya, dan sebagainya. Ingat:Tidak semua perintah sesuai dengan file yang dapat dieksekusi.

  • Untuk shell Bourne Again, bash , built-in adalah type perintah:

    $ type '['
    [ is a shell builtin
    
  • Untuk Kerang Ikan, fish , type builtin bekerja mirip dengan bash. Untuk mendapatkan jalur ke file yang dapat dieksekusi, gunakan command -v :

    $ type cat
    cat is /bin/cat
    $ command -v cat
    /bin/cat
    
  • Untuk Korn Shell, ksh , built-in adalah whence perintah — dengan type awalnya diatur sebagai alias biasa untuk whence -v dan command bawaan dengan -v opsi yang setara dengan whence :

    $ whence -v ls
    ls is a tracked alias for /bin/ls
    
  • Untuk Z Shell, zsh , built-in adalah whence perintah, dengan command bawaan dengan -v opsi yang setara dengan whence dan type bawaan , which , dan where setara dengan whence dengan opsi -v , -c , dan -ca masing-masing.

    $ whence ls
    /bin/ls
    
  • Untuk T C Shell, tcsh , built-in adalah which perintah — jangan bingung dengan perintah eksternal apa pun dengan nama itu:

    > which ls
    ls: aliased to ls-F
    > which \ls
    /bin/ls
    

Bacaan lebih lanjut

  • https://unix.stackexchange.com/questions/85249/

Anda dapat menggunakan which untuk ini:

[email protected]:~$ which ls
/bin/ls

Ia bekerja dengan mencari PATH untuk file yang dapat dieksekusi cocok dengan nama argumen. Perhatikan bahwa ini tidak berfungsi dengan alias shell:

[email protected]:~$ alias listdir=/bin/ls
[email protected]:~$ listdir /
bin    dev   initrd.img      lib32   media  proc  selinux  tmp  vmlinuz
...
[email protected]:~$ which listdir
[email protected]:~$

type , bagaimanapun, berfungsi:

[email protected]:~$ type listdir
listdir is aliased to `/bin/ls'

which tidak tidak (harus) mengembalikan file yang dapat dieksekusi. Ini mengembalikan nama file pertama yang cocok ditemukan di $PATH (atau beberapa file bernama serupa saat menggunakan which -a )... sebenarnya dapat dieksekusi mungkin berjarak beberapa tautan.

  • which locate
    /usr/bin/locate
    `
  • file $(which locate)
    /usr/bin/locate: symbolic link to /etc/alternatives/locate'

Perintah yang menemukan sebenarnya yang dapat dieksekusi adalah readlink -e ,
(bersamaan dengan which )

  • readlink -e $(which locate)
    /usr/bin/mlocate

Untuk melihat semua tautan perantara :

f="$(which locate)"             # find name in $PATH
printf "# %s\n" "$f"
while f="$(readlink "$f")" ;do  # follow links to executable
    printf "# %s\n" "$f"
done

# /usr/bin/locate
# /etc/alternatives/locate
# /usr/bin/mlocate

Linux
  1. Temukan file dan direktori di Linux dengan perintah find

  2. Apa yang setara dengan perintah File Linux untuk windows?

  3. Cara menemukan file .pid untuk proses tertentu

  1. Bagaimana cara mengetahui apa yang dilakukan perintah Linux

  2. Apa Penggunaan Sah dari Perintah `sentuh`?

  3. Apa perbedaan antara perintah locate dan find di Linux?

  1. Linux:Cari tahu siapa yang masuk ke server

  2. Bagaimana cara mengetahui grup apa yang dimiliki pengguna tertentu?

  3. Bagaimana cara mengetahui akhir baris dalam file teks?