Saat Anda masuk ke shell Linux, Anda mewarisi lingkungan kerja tertentu. Sebuah lingkungan , dalam konteks shell, berarti ada variabel tertentu yang telah ditetapkan untuk Anda, yang memastikan perintah Anda berfungsi sebagaimana dimaksud. Misalnya, variabel lingkungan PATH menentukan di mana shell Anda mencari perintah. Tanpanya, hampir semua yang Anda coba lakukan di Bash akan gagal dengan perintah tidak ditemukan kesalahan. Lingkungan Anda, meskipun sebagian besar tidak terlihat oleh Anda saat melakukan tugas sehari-hari, sangat penting.
Ada banyak cara untuk mempengaruhi lingkungan shell Anda. Anda dapat membuat modifikasi pada file konfigurasi, seperti ~/.bashrc dan ~/.profile , Anda dapat menjalankan layanan saat startup, dan Anda dapat membuat perintah kustom atau skrip fungsi Bash Anda sendiri.
Tambahkan ke lingkungan Anda dengan sumber
Bash (bersama dengan beberapa shell lainnya) memiliki perintah bawaan yang disebut source . Dan di sinilah hal itu bisa membingungkan:source melakukan fungsi yang sama dengan perintah . (ya, itu hanya satu titik), dan itu bukan source yang sama sebagai Tcl perintah (yang mungkin muncul di layar Anda jika Anda mengetik man source ). source . bawaan perintah tidak ada di PATH . Anda sama sekali, sebenarnya. Ini adalah perintah yang disertakan sebagai bagian dari Bash, dan untuk mendapatkan informasi lebih lanjut tentangnya, Anda dapat mengetik help source .
. perintah sesuai dengan POSIX. source perintah tidak didefinisikan oleh POSIX tetapi dapat dipertukarkan dengan . perintah.
Selengkapnya tentang Bash
- Lembar contekan bash
- Pengantar pemrograman dengan Bash
- Panduan sysadmin untuk skrip Bash
- Artikel Bash terbaru
Menurut help Bash , source perintah mengeksekusi file di shell Anda saat ini. Klausa "di shell Anda saat ini" penting, karena itu berarti tidak meluncurkan sub-kulit; oleh karena itu, apa pun yang Anda jalankan dengan source terjadi di dalam dan memengaruhi saat ini . Anda lingkungan.
Sebelum menjelajahi bagaimana source dapat mempengaruhi lingkungan Anda, coba source pada file uji untuk memastikan bahwa itu mengeksekusi kode seperti yang diharapkan. Pertama, buat skrip Bash sederhana dan simpan sebagai file bernama hello.sh :
#!/usr/bin/env bash
echo "halo dunia"
Menggunakan source , Anda dapat menjalankan skrip ini bahkan tanpa menyetel bit yang dapat dieksekusi:
$ source hello.sh
hello world
Anda juga dapat menggunakan. perintah untuk hasil yang sama:
$ . hello.sh
halo dunia
source dan . perintah berhasil mengeksekusi konten file pengujian.
Menyetel variabel dan fungsi impor
Anda dapat menggunakan source untuk "mengimpor" file ke lingkungan shell Anda, sama seperti Anda menggunakan include kata kunci dalam C atau C++ untuk mereferensikan perpustakaan atau import kata kunci di Python untuk membawa modul. Ini adalah salah satu kegunaan paling umum untuk source , dan ini adalah penyertaan default umum di .bashrc file ke source file bernama .bash_aliases sehingga setiap alias khusus yang Anda tentukan akan diimpor ke lingkungan Anda saat Anda masuk.
Berikut adalah contoh mengimpor fungsi Bash. Pertama, buat fungsi dalam file bernama myfunctions . Ini mencetak alamat IP publik Anda dan alamat IP lokal Anda:
function myip() {
curl http://icanhazip.com
ip addr | grep inet$IP | \
cut -d"/" -f 1 | \
grep -v 127\.0 | \
grep -v \:\:1 | \
awk '{$1=$1};1'
} Impor fungsi ke dalam shell Anda:
$ source myfunctions Uji fungsi baru Anda:
$ myip
93.184.216.34
inet 192.168.0.23
inet6 fbd4:e85f:49c:2121:ce12:ef79:0e77:59d1
inet 10.8.42.38Telusuri sumber
Saat Anda menggunakan
sourcedi Bash, ia mencari direktori Anda saat ini untuk file yang Anda referensikan. Ini tidak terjadi di semua shell, jadi periksa dokumentasi Anda jika Anda tidak menggunakan Bash.Jika Bash tidak dapat menemukan file yang akan dieksekusi, Bash akan mencari
PATH. Anda sebagai gantinya. Sekali lagi, ini bukan default untuk semua shell, jadi periksa dokumentasi Anda jika Anda tidak menggunakan Bash.Ini adalah kedua fitur kenyamanan yang bagus di Bash. Perilaku ini sangat kuat karena memungkinkan Anda untuk menyimpan fungsi umum di lokasi terpusat di drive Anda dan kemudian memperlakukan lingkungan Anda seperti lingkungan pengembangan terintegrasi (IDE). Anda tidak perlu khawatir tentang di mana fungsi Anda disimpan, karena Anda tahu bahwa fungsi tersebut setara dengan
/usr/includelokal Anda. , jadi di mana pun Anda berada saat Anda mencarinya, Bash akan menemukannya.Misalnya, Anda dapat membuat direktori bernama
~/.local/includesebagai tempat penyimpanan untuk fungsi-fungsi umum dan kemudian masukkan blok kode ini ke dalam.bashrc. Anda berkas:untuk saya di $HOME/.local/include/*;
lakukan sumber $i
selesaiIni "mengimpor" file apa pun yang berisi fungsi khusus di
~/.local/includeke dalam lingkungan shell Anda.Bash adalah satu-satunya shell yang mencari direktori saat ini dan
PATH. Anda ketika Anda menggunakan salah satusourceatau.perintah.Menggunakan sumber untuk sumber terbuka
Menggunakan
sourceatau.untuk mengeksekusi file bisa menjadi cara yang nyaman untuk mempengaruhi lingkungan Anda sambil menjaga perubahan Anda tetap modular. Lain kali Anda berpikir untuk menyalin dan menempelkan blok besar kode ke.bashrcAnda file, pertimbangkan untuk menempatkan fungsi terkait atau grup alias ke dalam file khusus, lalu gunakansourceuntuk menelannya.
My Linux Story:me-remix distribusi pada usia 17 tahun Membaca tentang open source dalam bahasa PrancisLinux