Apakah ada cara untuk menambahkan perintah khusus /bin
?
Sebagai contoh, saya menggunakan docker container ls
banyak, dan ingin mengubahnya menjadi perintah pintas, seperti dcls
.
Jika saya menambahkan file bernama dcls
ke /bin
dan di dalam file, tentukan perintah yang tepat docker container ls
, saya menganggap ini tidak akan berhasil.
Apa cara yang benar, jika ada, untuk melakukan hal seperti ini?
ubuntu
command-line
docker
alex067
sumber
sumber
/bin
, Anda dapat menambahkan~/bin
(bin di direktori Anda sendiri), atau ke/usr/local/bin
(untuk berbagi dengan semua pengguna sistem Anda, tetapi tidak mengganggu manajer paket). Atau lebih baik dalam hal ini, untuk menggunakan alias.Jawaban:
Cara mudah untuk pintasan adalah dengan mendefinisikan sebuah
alias
Ini akan dijalankan
docker container ls
ketika Anda masukdcls
dan perintahalias
mencantumkan alias yang Anda tetapkan. Untuk menghapus alias gunakan iniunalias dcls
.Jika Anda menggunakan bash, Anda dapat menyimpan alias di
~/.bashrc
atau~/.bash_aliases
.Jika Anda
~/.bash_aliases
tidak membaca saat startup, Anda dapat menambahkan baris ini ke~/.bashrc
:sumber
~/.bashrc
atau~/.profile
atau ... Jika Anda tidak menyimpan alias hilang saat Anda keluar atau menutup terminal.echo "alias dcls='docker container ls'" >> ~/.bashrc
, lalu sumber dengan. ~/.bashrc
atau keluar dan login lagi.Sebenarnya, apa yang Anda gambarkan akan berhasil, dengan beberapa catatan:
docker container ls
ke dalam file bernama/bin/dcls
. Tetapi perilaku itu bisa sedikit rumit. Ini sedikit lebih dapat diandalkan untuk memulai file dengan garis yang disebut "shebang", sehingga file tersebut akan terlihat seperti yang menentukan bahwa file tersebut adalah skrip shell.sudo
).Ikuti dua langkah di atas dan Anda akan bisa mengetik
yang menentukan bahwa argumen apa pun yang Anda ketikkan padadcls
dan itu akan dilakukandocker container ls
. Tetapi, jika Anda mengetikdcls -l foo
, itu masih akan dilakukandocker container ls
. Jika Anda ingin melakukannyadocker container ls -l foo
, Anda harus mengubah skrip untuk mengatakandcls
baris perintah harus diteruskan kedocker container ls
perintah.Secara alami, ada hal-hal yang lebih rumit yang dapat Anda lakukan dengan argumen baris perintah.
Untuk pemetaan satu perintah sederhana → satu perintah sederhana, yang tidak perlu dibagi dengan pengguna lain, lebih mudah untuk mendefinisikan alias ( seperti yang disarankan Freddy ), atau fungsi shell. Fungsi yang lebih rumit sering ditulis sebagai skrip; yaitu file teks yang berisi perintah. Tetapi, jika Anda tidak perlu membaginya dengan pengguna lain, itu lebih umum untuk menggunakan
Kemudian salinbin
direktori pribadi .dcls
ke$HOME/bin
, dan tambahkan untuk Anda~/.bashrc
.Juga, sudah umum untuk memasukkan skrip pribadi ke dalam
/usr/local/bin
, dan pergi/bin
ke program yang disertakan dengan sistem.sumber
/bin
,/usr/bin
, dan biasanya bersama direktori seperti/usr/local/bin
dan kadang-kadang/opt
, sehingga program-program di direktori tersebut tersedia untuk semua pengguna./usr/local/bin
sehingga tidak mengganggu manajer paket.$HOME/bin
. Anda harus benar-benar menggunakan ini. Ini bukan hanya ruang lingkup yang tepat, tetapi membantu ketika Anda menginstal ulang sistem Anda (dan menjaga AndaHOME
) untuk tidak kehilangan perintah kustom Anda.~/.local/bin
sebagai gantinya .Jika hanya untuk Anda, alias baik-baik saja tetapi menurut Linux Filesystem Hierarchy Standard lokal-lebar skrip sistem masuk
/usr/local/bin/
, tidak/bin
./bin
, lebih baik untuk menjaga standar terutama jika perangkat lunak Anda akan digunakan di situs pelanggan./opt
Script itu sendiri adalah:
sumber