source, bağımsız değişkenleri kabul eden, bir komut dosyasındaki komutları ayrıştıran ve bunları kabuk ortamında yürüten kullanışlı, yerleşik bir kabuk komutudur. Dosyanın içeriği kaynak tarafından okunur ve ardından komutları yürüten Araç Komut Dili (TCL) yorumlayıcısına iletilir.
Linux'ta komutları yürütmek ve kabuk ortamlarıyla çalışmak için kaynağı nasıl kullanacağımızı öğrenelim ve bunun bash komutundan nasıl farklı olduğuna dair kısa bir açıklama yapalım.
Bir Dosyadaki Komutları Yürütmek için kaynağı kullanın
Source komutunu kullanmak için önce bir örnek dosya oluşturmanız ve onu bazı kabuk komutlarıyla doldurmanız gerekir. İle yeni bir dosya oluşturarak başlayın dokunma komutu. Dosyayı seçtiğiniz bir metin düzenleyicide açın ve birkaç temel kabuk komutu yazın.
dokunmakÖlçek.txt
viÖlçek.txt# Komutları metin dosyasına yazın:
Eko "Merhaba!"
pwd
ls
# Dosyayı kaynak veya nokta sözdizimi ile kaynaklayın
. Ölçek.txt
kaynakmetin.txt
Metin dosyasını yazın ve onu kaynak komuta argüman olarak iletmeye devam edin. Sistem dosyadaki komutları yürütecek ve bir çıktı döndürecektir.
Artık kaynağı kullanmanın temellerini bildiğinize göre, Bash kabuk ortamını değiştirmeyi deneyelim. Ancak, devam etmeden önce, temel bir anlayışa sahip olmalısınız. Linux'ta ortam değişkenleri.
Bash Kabuğu Ortamını Güncellemek için kaynak Komutu kullanın
Linux'ta ortam değişkenleri kalıtsaldır ancak değiştirilemez. $TEST ortam değişkenini değiştiren bir Bash kabuk betiği yürütürseniz, betik yeni bir çatallı kabuk işlemi ve orijinal Bash yerine $TEST'in değiştirilmesi onun içinde yer alacak çevre.
Alt süreç, üst sürecin ortamını değiştiremez. Yalnızca kendi ortamını değiştirebilir. Bunu pratik bir örnekle anlayalım:
dışa aktarma TEST="borç"
vi örneği# Bu komutları dosyaya yazın
dışa aktarma TEST="yatak"
Eko $ TEST
# Dosyayı yazın, çalıştırılabilir yapın ve ardından çalıştırın
chmod +x örneği
./örnek # bu "yatak" değerini döndürür
Eko $ TEST # bu "deb" döndürür
Kaynak komutunun devreye girdiği yer burasıdır. Source komutuyla, aynı kabuk ortamında, aksi takdirde çatallanacak olan bir betiği çalıştırabilirsiniz. Bu nedenle, ortam değişkenlerini değiştiren bir betiği kaynak olarak kullanırsanız, değişiklikleri Bash kabuk ortamı için yapacaktır.
Test etmek için, yukarıdaki kod kutusundaki komutları yeni bir dosyaya yazın ve çalıştırılabilir yapmak yerine kaynak komutu kullanın.
# Yeni bir dosya oluşturun ve düzenleyin
vi Ölçek dosya
. test_file
Eko $ TEST # Bu, "yatak" değerini döndürür
Gördüğünüz gibi, source komutunu kullanarak üst sürecin ortam değişkenlerini güncelleyebildiniz. Bu, kaynak komutun birincil kullanım durumudur, yani ana ortamı değiştirmek için.
Bash kabuk ortamını kaynak komutla güncellemek için ihtiyacınız olan tüm adımlar bu kadar.
Linux bash ve kaynak Komutları Arasındaki Fark
Linux bash ve kaynak komutları arasındaki fark, bash komutuyla bir komut dosyası yürüttüğünüzde, bunun Linux'a betiği okumak ve yürütmek, çıktıyı orijinal kabuk işlemine kopyalamak ve onu görüntülemek için yeni bir Bash işlemi oluşturmak için çekirdek.
Ancak kaynak komut yerleşik bir kabuk geçerli kabuk işlemi içindeki bir dosyayı okur ve değerlendirir. Böylece betik tarafından yapılan tüm değişiklikler Bash kabuğunda tutulacaktır.
Kaynak Komut Hatalarında Sorun Giderme
Bazı Linux sistemlerinde, kaynak komutunu kullanmaya çalışırken "kaynak bulunamadı" hatasıyla karşılaşabilirsiniz. Bu hatayı iki şekilde düzeltebilirsiniz:
1. Kabuğu Değiştir
Bazı kabuklar kaynak komutunu desteklemez. Bu durumda, kabuk ortamınızı ile değiştirmeniz gerekecektir. chsh -s ($hangi kabuk_adı) emretmek.
Sonra yeni bir terminali ateşleyin kabuğunu değiştirmekve kaynak komutunu kullanmayı deneyin. Yeni kabuk kaynak bulmayı destekliyorsa kusursuz bir şekilde çalışmalıdır.
2. Nokta/Nokta Söz Dizimini Kullanma
Bazı kabuk ortamları desteklemiyor "kaynak"sözdizimi ama alternatif".sözdizimi. "Kaynak" sözdizimi, Bash'te nokta ile eşanlamlıdır. Ancak bu, POSIX kabuğunda çalışmaz, bu nedenle maksimum uyumluluk için nokta sözdizimini kullanın.
Bilmeniz Gereken Temel Linux Komutları
Linux kabuk komutları, terminali kullanarak sistemle etkileşim kurmanın harika bir yoludur. *NIX sistemlerini kullanmanın özüdür.
Tüm komutları bilmeniz gerekmese de, birkaç yararlı komut hakkında bilgi sahibi olmak, Linux dünyasının derinliklerine inerken kesinlikle verimli olacaktır.