Bisakah saya membuat perintah sendiri?

12

Saya bertanya-tanya apakah saya bisa membuat perintah sendiri seperti jika saya mengetik 'musik' di baris perintah, vlc saya harus terbuka dan mulai memainkan daftar putar saya. VLC hanyalah sebuah contoh tetapi pertanyaannya tetap.

Bisakah saya membuat perintah sendiri? Jika ya, bagaimana?

harisibrahimkv
sumber
Anda dapat membuat skrip, jika itu yang Anda inginkan?
Alvar

Jawaban:

19

Ya - buat file bernama musik dan masukkan yang berikut di dalamnya:

#!/bin/bash
echo "Hello world"

Selanjutnya, ketik chmod +x music- ini membuat file dapat dieksekusi. Anda sekarang dapat mengetik ./musicuntuk menjalankan skrip ini.

Merupakan ide bagus untuk mengetik echo $PATHdan menyalin skrip ke salah satu direktori tersebut. Saya sarankan membuat $HOME/bindan menambahkan itu ke PATH Anda melalui ~/.bash_profileatau ~/.profile. Hal ini dapat dilakukan dengan menambahkan (ke salah satu file): export PATH="$HOME/bin:$PATH". Anda kemudian perlu menjalankan source .bash_profile(dengan asumsi Anda memasukkannya ke file itu) untuk memuatnya kembali.

Alternatif lain adalah menambahkan perintah yang ingin Anda jalankan sebagai bash alias. Anda dapat melakukan ini dengan menambahkan berikut ini ke file yang bernama .bash_aliasesdi direktori home Anda:

alias music='vlc --some-option --foo'

Jalankan source ~/.bash_aliasesatau keluar dan masuk dan itu seharusnya bekerja :-)

Nick
sumber
3

Cara terbaik untuk melakukan ini adalah memodifikasi (atau membuat) file yang dipanggil .bash_aliasesdi folder rumah Anda.

Sintaksnya cukup sederhana:

alias install='sudo apt-get -y install'

Dengan perintah ini, jika Anda mengetik installterminal, itu akan ditafsirkan sebagai

sudo apt-get -y install

Namun, perintah ini tidak akan berfungsi di mana pun di luar terminal.

Basscal
sumber
1

File yang dapat dieksekusi di direktori di jalur Anda bisa menjadi "perintah". Ini bisa berupa skrip seperti yang disarankan dalam jawaban lain, tetapi bisa juga berupa program kompilasi dalam bahasa yang didukung yang Anda tahu.

Alias ​​juga akan bekerja, tetapi terbatas karena mereka "satu-baris" sehingga melakukan sesuatu yang rumit dengan mereka dengan cepat menghasilkan kode yang sangat sulit dibaca. Juga, karena mereka mengeksekusi dalam lingkup variabel yang sama dengan shell yang Anda ketik, mereka dapat dengan mudah memiliki efek samping yang tidak diinginkan seperti meninggalkan Anda di direktori lain atau membiarkan variabel yang ditentukan hanya diperlukan oleh tugas yang dilakukan alias. (Tentu saja, kadang-kadang Anda mungkin ingin menggunakan alias justru karena ia memiliki efek samping yang diinginkan.)

Jika Anda menempatkan perintah baru Anda di direktori di jalur Anda, mereka dapat ditemukan oleh shell dan dieksekusi. Tempat paling umum untuk meletakkannya adalah $ HOME / bin. Jika direktori ini ada, seringkali akan secara otomatis ditambahkan ke jalur Anda.

Dua hal yang perlu diingat ketika mengatur ini adalah: 1) Biasanya terbaik menggunakan nama unik untuk perintah Anda yang tidak cocok dengan apa pun yang sudah ditentukan pada sistem Anda. Ada banyak perdebatan tentang ini, tetapi intinya adalah bahwa perintah yang sudah dikenal seharusnya tidak memiliki hasil yang tidak terduga jika orang lain menggunakan sistem Anda dan bahwa membiasakan diri dengan perintah umum melakukan sesuatu yang istimewa dapat membuat Anda dalam masalah ketika Anda bekerja pada sistem lain di mana itu tidak didefinisikan seperti itu.

2) Anda dapat menambahkan $ HOME / bin ke awal atau akhir jalur Anda (atau di mana saja di antaranya, tetapi itu biasanya tidak dilakukan).

Menambahkannya ke depan jalur Anda adalah pilihan yang paling nyaman karena versi perintah Anda akan selalu menjadi yang dijalankan dan akan ditemukan lebih cepat. Ini juga kerentanan keamanan karena siapa pun yang bisa mendapatkan izin menulis ke $ HOME / bin Anda (jauh lebih mudah daripada mendapatkan akses root) dapat mengganti perintah umum dengan kode berbahaya yang berpotensi dengan sangat mudah. Juga, jika Anda perlu meminta bantuan dari seseorang yang tidak mengetahui sistem Anda, maka mereka kemungkinan akan tersandung oleh perilaku khusus perintah khusus Anda kecuali jika Anda menghabiskan banyak usaha ekstra untuk menjelaskan semuanya hanya dari menanyakan pertanyaan Anda.

Menambahkannya ke akhir pernyataan jalur Anda sedikit lebih aman karena perintah apa pun dengan nama yang sama dengan perintah Anda yang sudah ada di jalur Anda akan ditemukan terlebih dahulu dan jalankan - dan apa pun yang bergantung pada perintah itu berfungsi seperti yang diharapkan masih akan berfungsi .

Untuk menghindari semua ini (dengan mengorbankan pengetikan ekstra), Anda juga dapat menempatkan perintah di direktori yang tidak ada di jalur Anda sehingga hampir tidak akan pernah berjalan secara tidak sengaja karena Anda harus mengetikkan nama jalur lengkap untuk menjalankannya.

Seperti kebanyakan hal di Linux, ada banyak cara untuk membuat dan menggunakan perintah baru dan masing-masing memiliki kelebihan dan keterbatasan masing-masing.

Joe
sumber