Perintah unalias Bash: menghapus alias sementara atau dari konfigurasi

unalias adalah perintah bawaan yang menghapus alias yang terdaftar di shell Bash saat ini. Anda dapat menghapus alias tertentu atau menghapus semua alias dengan opsi -a, tetapi ini tidak menghapus secara otomatis definisi yang tersimpan di file startup.

Ini berguna ketika opsi yang tidak diinginkan diterapkan karena alias atau ketika sulit mengeksekusi perintah asli. Memahami perbedaan antara penghapusan sementara dan penghapusan permanen adalah kunci.

Apa itu perintah unalias?

Jika alias mendaftarkan nama perintah dan string pengganti, unalias menghapus pendaftaran itu di sesi Bash saat ini. Setelah dihapus, jika Anda memasukkan nama yang sama, Bash akan mencari lagi kandidat berikutnya seperti fungsi, perintah bawaan, atau eksekutabel di PATH.

Artikel ini berdasarkan Bash. Shell lain mungkin memiliki perintah dengan nama yang sama, tetapi opsi yang didukung dan file konfigurasi bisa berbeda.

Sintaks Dasar

unalias nama [nama ...]
unalias -a

Menentukan satu atau lebih nama akan menghapus alias yang sesuai. -a menghapus semua alias di shell saat ini.

Menghapus alias tertentu

alias ll='ls -alF'
unalias ll

Untuk percobaan berikut, definisikan kembali alias ll='ls -alF' terlebih dahulu jika contoh sebelumnya sudah dijalankan. Baris pertama menampilkan definisinya, baris kedua menghapusnya, dan type ll memeriksa arti nama yang tersisa. Jika tidak ada kandidat lain, type melaporkan bahwa nama tidak ditemukan.

alias ll
unalias ll
type ll

Setelah menghapus alias, jika ada fungsi atau file eksekusi dengan nama yang sama, target tersebut dapat dipilih. Jangan hanya mengasumsikan bahwa "perintah telah hilang"; disarankan untuk memeriksa kandidat yang tersisa dengan type -a name.

Menghapus beberapa alias sekaligus

unalias ll la grep

Jika salah satu nama bukan alias, Bash mengembalikan status gagal; alias lain yang ditemukan tetap dapat dihapus. Karena itu, status gagal tidak berarti semua perubahan dibatalkan.

Menghapus semua alias

unalias -a

-a menghapus semua alias di shell saat ini. Karena dapat menghapus tidak hanya pengaturan pribadi tetapi juga alias yang disediakan oleh distribusi untuk kenyamanan atau keamanan, gunakan dengan hati-hati kecuali itu adalah shell sementara yang bertujuan untuk mempersempit penyebab masalah.

Untuk melihat definisi saat ini sebelum menghapus, tampilkan daftar berikut. Keluaran itu bukan berkas cadangan otomatis: salin ke lokasi aman jika diperlukan. Definisi alias adalah kode shell, jadi hanya pulihkan definisi yang Anda percayai.

alias -p

Perbedaan antara penghapusan sementara dan penghapusan permanen

Hanya dihapus di terminal saat ini

unalias hanya mengubah tabel alias dari proses Bash saat ini. Ketika shell baru membaca file startup seperti ~/.bashrc, definisi yang masih ada di sana dapat membuat alias kembali.

Hapus juga di terminal baru

Untuk mencegah alias dibuat kembali, cari file konfigurasi tempat alias didefinisikan dan hapus atau komentari barisnya. Contoh berikut mencari teks spesifik dalam dua file pengguna yang umum; file yang tidak ada diabaikan. Definisi dengan format berbeda atau di file lain tidak akan ditemukan oleh pencarian ini.

grep -n "alias ll=" ~/.bashrc ~/.bash_aliases 2>/dev/null

Setelah mengubah file, gunakan unalias ll untuk menghapus alias yang sudah ada di shell saat ini; menghapus baris definisi dan memuat ulang file tidak menghapusnya dengan sendirinya. Pada Bash interaktif non-login, shell baru biasanya membaca ~/.bashrc. Perintah berikut memuat ulang seluruh file pada shell saat ini, termasuk perintah lain di dalamnya; periksa isinya terlebih dahulu.

source ~/.bashrc

Alias juga dapat didefinisikan dalam pengaturan sistem seperti /etc/bash.bashrc atau /etc/profile.d/, tergantung distribusi dan jenis shell. Sebelum mengubah file sistem, pertimbangkan menghapusnya hanya dalam sesi yang diperlukan atau menambahkan unalias pada konfigurasi pengguna yang dibaca setelah definisi itu.

Melewati alias hanya sekali tanpa menghapusnya

Jika Anda hanya ingin menjalankan perintah asli sekali, tidak perlu menghapus alias. Anda bisa menaruh garis miring terbalik di depan nama perintah atau menggunakan jalur absolut dari file eksekusi.

\ls
/usr/bin/ls

Garis miring terbalik mencegah perluasan alias untuk kata tersebut, tetapi fungsi dengan nama yang sama masih dapat dipanggil. Jalur absolut menghindari pencarian nama dan menjalankan file yang ditentukan; periksa lokasi yang sebenarnya dengan type -P ls.

Alias, fungsi, dan variabel memiliki metode penghapusan yang berbeda

Target Perintah Penghapusan Cara memeriksa
Alias unalias name alias name atau type name
Fungsi Shell unset -f name declare -F name atau type name
Variabel Shell unset -v name declare -p name
Berkas yang dapat dieksekusi Gunakan perintah manajemen berkas type -a name atau command -v name

unalias tidak menghapus fungsi atau berkas dengan nama yang sama. Jika Anda salah mengidentifikasi tipe perintah, target yang dimaksud mungkin tetap ada, jadi periksa terlebih dahulu dengan type.

Gunakan dengan aman dalam skrip

Untuk menghapus hanya jika terdefinisi, periksa status keluar alias terlebih dahulu.

if alias ll >/dev/null 2>&1; then
  unalias ll
fi

Namun, Bash non-interaktif secara default tidak melakukan perluasan alias, jadi tidak banyak situasi di mana skrip biasa perlu menghapus alias pengguna. Lebih baik menulis skrip sehingga tidak bergantung pada pengaturan pribadi dari shell interaktif.

Masalah umum

setelah menjalankan unalias, alias muncul kembali di terminal baru.

Ini karena alias tersebut didefinisikan ulang di ~/.bashrc, ~/.bash_aliases, atau file startup sistem. Anda perlu menemukan lokasi definisinya dan memodifikasinya.

Terjadi kesalahan unalias: tidak ditemukan.

Nama yang ditentukan kemungkinan bukan alias di shell saat ini. Gunakan type -a name untuk memeriksa apakah itu adalah fungsi, perintah bawaan, atau file executable.

Perilaku perintah masih tampak berbeda.

Mungkin ada fungsi shell dengan nama yang sama atau beberapa file executable di jalur yang berbeda. Gunakan type -a name untuk memeriksa semua kandidat, dan jika perlu, bersihkan cache jalur perintah Bash dengan hash -r sebelum memeriksa lagi.

Pemilihan sesuai dengan situasi penggunaan

Situasi Metode yang Direkomendasikan
Jalankan perintah asli hanya sekali Gunakan \name untuk melewati alias atau jalur absolut untuk memilih file.
Hapus alias di terminal saat ini Gunakan unalias name.
Hapus sementara efek dari semua alias Periksa daftar dan kemudian gunakan unalias -a.
Hapus juga di terminal baru Ubah file startup di mana alias didefinisikan.
Hapus fungsi dengan nama yang sama Gunakan unset -f name.

Pertanyaan yang Sering Diajukan

Bisakah saya memulihkan jika saya menjalankan unalias -a?

Tidak ada fungsi untuk langsung membatalkan definisi alias dari shell saat ini. Alias yang disimpan di file startup dapat dimuat ulang dengan source ~/.bashrc, tetapi alias yang dibuat hanya dari baris perintah perlu didefinisikan ulang.

Apakah unalias mempengaruhi terminal lain juga?

Tidak. Setiap proses shell di terminal memiliki tabel alias terpisah, sehingga unalias yang dijalankan di shell saat ini tidak langsung mempengaruhi shell lain.

Apa yang dijalankan jika Anda memasukkan nama yang sama dengan alias yang dihapus?

Bash mencari fungsi yang tersisa, perintah bawaan, dan file yang dapat dijalankan di PATH sesuai dengan aturan pencarian perintah. Hasil pemilihan sebenarnya dapat diperiksa dengan type name.

Artikel terkait dan dokumentasi resmi