GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Sudo Mengabaikan Alias?

Saya menjalankan Ubuntu 10.04 dan saya menggunakan upstart untuk manajemen daemon. Aplikasi perusahaan saya dijalankan sebagai daemon dan harus dijalankan sebagai root karena berbagai hak istimewa. Mis.:

sudo start my-application-long-ID
sudo stop my-application-long-ID
etc

Saya ingin memperkenalkan alias untuk menyingkat perintah ini sebagai sesuatu seperti:

alias startapp='sudo start my-application-long-ID'

dan jalankan sebagai startapp dan itu berfungsi tetapi saya lebih suka tidak memiliki sudo di alias.

alias startapp='start my-application-long-ID'

tidak ketika dijalankan menggunakan sudo startapp , mengembalikan sudo: startapp: command not found .

Namun, ketika saya menambahkan alias:

alias sudo='sudo '

sudo startapp sekarang berfungsi tetapi saya masih penasaran mengapa sudo mengabaikan alias.

Jawaban yang Diterima:

Saya melihat informasi di bawah ini dari sini.

Saat menggunakan sudo, gunakan perluasan alias (jika tidak, sudo mengabaikan alias Anda)

alias sudo='sudo '

Alasan mengapa itu tidak berhasil dijelaskan di sini.

Bash hanya memeriksa kata pertama dari perintah untuk alias, kata apa pun
setelah itu tidak dicentang. Itu berarti dalam perintah seperti sudo ll, hanya
kata pertama (sudo) yang diperiksa oleh bash untuk sebuah alias, ll akan diabaikan.
Kita dapat memberitahu bash untuk memeriksa kata berikutnya setelah alias (yaitu sudo) dengan
menambahkan spasi di akhir nilai alias.


Linux
  1. Alias ​​baris perintah di Linux Shell

  2. Bagaimana Cara `alias Sudo !!`?

  3. Mengapa Pengguna Root Membutuhkan Izin Sudo?

  1. Mengapa Plymouth Mulai Sangat Terlambat?

  2. Mengapa pengeditan core_pattern dibatasi?

  3. Mengapa perintah sudo membutuhkan waktu lama untuk dieksekusi?

  1. 10 alias Bash yang berguna untuk Linux

  2. Mengapa [a-z] Mencocokkan Huruf Kecil Di Bash?

  3. Mengapa saya tidak memiliki penyorotan sintaks ketika saya sudo vi <filename>?