Alternatif non-sudo untuk / usr / local / bin untuk skrip umum

16

Saya sudah terbiasa meletakkan skrip umum /usr/local/binsehingga saya bisa menjalankannya dari mana saja dengan terminal.

Sebagai contoh, saya membuat skrip shell bernama 1, membuatnya dapat dieksekusi dengan chmod +x 1dan memasukkannya /usr/local/bin, dan di dalam skrip saya ketik #!/bin/shdi baris pertama, dan kemudian perintah saya. Dari sana, itu sangat mudah digunakan dan cepat untuk dijalankan dengan mengetik

1Enter

di terminal, dari dalam folder apa pun.

Masalah saya adalah saat ini saya sedang mengerjakan komputer yang tidak sudobisa saya lakukan dan saya juga tidak bisa mendapatkannya, jadi saya tidak bisa memasukkan skrip saya /usr/local/bin.

Apa saja pilihan saya? Apakah ada jalur lain dengan kemampuan "lari dari mana saja" yang sama, yang dapat saya akses tanpa sudo, atau cara lain untuk mencapai sesuatu yang setara?

Jawaban yang diterima untuk posting ini mengatakan

Untuk skrip yang dijalankan pengguna, gunakan bin / di direktori home Anda.

Yang saya coba, tetapi tidak ada binfolder di direktori rumah saya, dan ketika saya membuatnya, saya masih tidak bisa menjalankan skrip dari tempat lain.

Saya menjalankan Ubuntu 12.04 LTS.

pengguna985366
sumber
2
Jangan gunakan 1 atau sesuatu seperti itu sebagai nama skrip. Cobalah untuk menghitung sesuatu di shell Anda: misalnya expr 1 + 1 (dan jika tidak Anda melakukannya, beberapa skrip pasti akan melakukannya pada titik tertentu)
frlan
1
@frlan: Bagaimana expr 1 + 1terpengaruh oleh keberadaan skrip bernama 1?
psmears
Benar ... tidak mempengaruhi expr, atau bash aritmatika $(( 1 + 1 )).
Campa

Jawaban:

19

Apa saja pilihan saya? Apakah ada jalur lain dengan kemampuan "lari dari mana saja" yang sama, yang dapat saya akses tanpa sudo, atau cara lain untuk mencapai sesuatu yang setara?

Bagaimana cara melakukannya?

Buat beberapa dir di rumah Anda untuk menyimpan skrip Anda biasanya disebut binsebagai konvensi.

mkdir ~/bin

Sekarang pindahkan skrip Anda ke bin

mv somescript ~/bin

Sekarang bagaimana membuatnya dari mana-mana ?!

Anda harus menambahkan binke PATH

bukalah .bashrc

gedit .bashrc

dan tambahkan baris ini:

export PATH=$PATH:/home/username/bin

Jangan lupa ganti usernamedengan Nama Pengguna Anda

Simpan dan keluar, lalu sumber bashrc

source .bashrc

dan sekarang Anda baik-baik saja, Anda dapat menjalankan skrip Anda seperti dulu! tetapi Anda harus memperhatikan bahwa ini terkait dengan pengguna Anda saja.

Catatan: Lebih baik mengganti nama skrip Anda selain 1, 2 karena Anda mungkin menghadapi beberapa masalah dengan nama itu


MEMPERBARUI:

Anda dapat melakukan hal yang sama hanya dengan membuat direktori sampah di rumah Anda, source ~/.profilealih-alih ~/.bashrc. Sejak menambahkan ~ / bin ke PATH Anda sudah terdaftar di.profile

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
Maythux
sumber
Saya menggunakan export PATH=$PATH:$HOME/binsehingga saya bisa menggunakan bashrc yang sama untuk akun lain dengan nama pengguna yang berbeda.
Anthony G - keadilan untuk Monica
1
Hanya menyebutkan ~/bin secara $PATHdefault di Ubuntu. Jalankan source ~/.profileatau logout / masuk setelah Anda membuat direktori.
Jacob Vlijm
@JacobVlijm Dalam versi apa? !!! Saya menggunakan 12,04, 14,04, 15,04 dan tidak satupun dari mereka memiliki ~ / bin di PATH
Maythux
Dalam semua dari mereka, saya selalu menggunakannya, dalam banyak jawaban saya (diterima) juga, tidak pernah mendapat komentar tentang itu, bekerja di rumah pada lima sistem juga, tetapi, seperti dikatakan, setelah berjalan source ~/.profile. Lihat (mis.) Di sini: askubuntu.com/a/247422/72216
Jacob Vlijm
1
Dia mengatakan sumber ~/.profile, dia tidak pernah mengatakan sumber ~/.bashrc. :) Juga, sebagai aturan umum, variabel lingkungan harus pergi di .profiledan tidak .bashrckarena mereka hanya perlu mengatur sekali. (semua ini bukan untuk mengatakan bahwa jawaban Anda tidak baik, ingatlah, dan +1 dari saya)
terdon
4

Selain /ubuntu//a/643030/218015 Anda mungkin juga dapat mendefinisikan alias di dalam .bashrc Anda untuk tugas-tugas kecil yang sering digunakan. Misalnya

alias ll='ls -l'
alias ls='ls --color=auto'

akan membuat Anda "perintah" ll, yang melakukan ls-l dan ls akan diwarnai setelah mendefinisikan alias. https://wiki.ubuntuusers.de/alias memiliki beberapa contoh lagi dan howto untuk menyiapkannya.

frlan
sumber