File profil / konfigurasi abu

26

Saya mencari cara untuk menyesuaikan sesi Ash dengan set aliases dan whatnots saya sendiri . Apa yang setara dengan Ash dari bashrcfile Bash ?

reg
sumber

Jawaban:

21

Ash pertama kali membaca file-file berikut (jika ada):

  • Sistem: /etc/profile
  • Pengguna: ~/.profile
reg
sumber
8
Asalkan dijalankan sebagai shell login, yang bukan default (misalnya di Alpine Linux / Docker)
Jakub Holý
2
@ JakubHolý apakah Anda menemukan cara untuk menjalankan skrip profil untuk shell non-login?
David Lukac
@ DavidLukac - Lihat Jawaban saya yang lain di sini untuk cangkang non-login.
spechter
8

Shell non-login juga akan membaca file jika ditentukan dalam variabel lingkungan ENV.

Jadi, jika Anda mengaturnya entah bagaimana (Mungkin di profil ~ /. Anda, atau kontrol lingkungan 'menyeluruh' lainnya), maka setiap shell bercabang di masa depan akan menjalankan skrip itu. Sangat berguna untuk kasus non-login.

Sulit untuk menemukan dokumentasi tentang ini, tetapi dipastikan berfungsi pada busybox-w32 (berjalan pada Windows). Bahkan sulit untuk menemukan dokumentasi yang bagus tentang set abu.

UPDATE: Ada berbagai varian abu di alam. 'ENV' mungkin tidak berfungsi dengan semuanya. Ada beberapa info tentang varian di sini: https://www.in-ulm.de/~mascheck/various/ash/

Ada saran di sana bahwa beberapa varian abu dapat menggunakan 'SHINIT' sebagai pengganti ENV.

spechter
sumber
Tidak bekerja untuk saya di bawah Alpine 3.7.
knite
@knite Busybox's Ash (digunakan oleh Alpine) menggunakan ENV .
kirbyfan64sos
Apakah variabel ENV atau SHINIT ditetapkan atau diatur ke nilai tertentu? Saya mencoba memaksa buruh pelabuhan untuk membaca .profile di /root/.profile tanpa secara eksplisit memulai dengan / bin / sh-l
Leon
@Leon - ENV (atau mungkin SHINIT) perlu berisi path lengkap file untuk memuat / sumber. Tapi ini hanya untuk startup varian 'ash' shell - bukan shell sh atau bash yang umum.
spechter