Memahami File Inisialisasi Shell dan Profil Pengguna di Linux


Linux adalah sistem berbagi waktu multi-pengguna, yang menyiratkan bahwa lebih dari satu pengguna dapat masuk dan menggunakan suatu sistem. Dan administrator sistem mempunyai tugas untuk mengelola berbagai aspek tentang bagaimana pengguna yang berbeda dapat mengoperasikan sistem dalam hal menginstal/memperbarui/menghapus perangkat lunak, program yang dapat mereka jalankan, file yang dapat mereka lihat/edit, dan seterusnya.

Linux juga memungkinkan lingkungan pengguna dibuat atau dipelihara dengan dua cara utama: menggunakan konfigurasi seluruh sistem (global) dan konfigurasi khusus pengguna (pribadi). Biasanya, metode dasar bekerja dengan sistem Linux adalah shell, dan shell menciptakan lingkungan bergantung pada file tertentu yang dibacanya selama inisialisasi setelah login pengguna berhasil.

Bacaan yang Disarankan: Cara Mengatur Variabel Lingkungan di Linux

Pada artikel ini, kami akan menjelaskan file inisialisasi shell sehubungan dengan profil pengguna untuk manajemen pengguna lokal di Linux. Kami akan memberi tahu Anda di mana menyimpan fungsi shell khusus, alias, variabel, serta program startup.

Penting: Untuk tujuan artikel ini, kami akan fokus pada bash, shell yang kompatibel dengan sh yang shell paling populer/digunakan pada sistem Linux di luar sana.

Jika Anda menggunakan program shell yang berbeda (zsh, ash, fish, dll..), baca dokumentasinya untuk mengetahui lebih lanjut tentang beberapa file terkait yang akan kita bicarakan di sini.

Inisialisasi Shell di Linux

Ketika shell dipanggil, ada file inisialisasi/startup tertentu yang dibacanya yang membantu mengatur lingkungan untuk shell itu sendiri dan pengguna sistem; yaitu fungsi, variabel, alias yang telah ditentukan sebelumnya (dan disesuaikan), dan sebagainya.

Ada dua kategori file inisialisasi yang dibaca oleh shell:

  • file startup seluruh sistem – ini berisi konfigurasi global yang berlaku untuk semua pengguna di sistem, dan biasanya terletak di direktori /etc. Ini termasuk: /etc/profiles dan /etc/bashrc atau /etc/bash.bashrc.
  • file startup khusus pengguna – konfigurasi penyimpanan ini yang berlaku untuk satu pengguna di sistem dan biasanya terletak di direktori home pengguna sebagai file titik. Mereka dapat mengesampingkan konfigurasi seluruh sistem. Ini mencakup: .profiles, .bash_profile, .bashrc dan .bash_login.

Sekali lagi, shell dapat dipanggil dalam tiga mode yang memungkinkan:

1. Shell Login Interaktif

Shell dipanggil setelah pengguna berhasil masuk ke sistem, menggunakan /bin/login, setelah membaca kredensial yang disimpan dalam file /etc/passwd.

Ketika shell dimulai sebagai shell login interaktif, ia membaca /etc/profile dan ~/.bash_profile khusus penggunanya.

2. Shell non-login interaktif

Shell dimulai pada baris perintah menggunakan program shell misalnya $/bin/bash atau $/bin/zsh. Ini juga dapat dimulai dengan menjalankan perintah /bin/su.

Selain itu, shell non-login interaktif juga dapat dipanggil dengan program terminal seperti konsole, terminator atau xterm dari dalam lingkungan grafis.

Ketika shell dimulai dalam keadaan ini, shell akan menyalin lingkungan shell induk, dan membaca file ~/.bashrc khusus pengguna untuk instruksi konfigurasi startup tambahan.

su
ls -la

3. Shell Non-interaktif

Shell dipanggil ketika skrip shell sedang berjalan. Dalam mode ini, ia memproses skrip (kumpulan perintah/fungsi sistem shell atau generik) dan tidak memerlukan input pengguna di antara perintah kecuali sebaliknya. Ini beroperasi menggunakan lingkungan yang diwarisi dari shell induk.

Memahami File Startup Shell Seluruh Sistem

Di bagian ini, kami akan menjelaskan lebih lanjut tentang file startup shell yang menyimpan konfigurasi untuk semua pengguna di sistem dan ini termasuk:

/etc/profile file – menyimpan konfigurasi lingkungan seluruh sistem dan program startup untuk pengaturan login. Semua konfigurasi yang ingin Anda terapkan ke semua lingkungan pengguna sistem harus ditambahkan dalam file ini.

Misalnya, Anda dapat mengatur variabel lingkungan PATH global Anda di sini.

cat /etc/profile

Catatan: Pada sistem tertentu seperti RHEL/CentOS 7, Anda akan mendapatkan peringatan seperti “Tidak disarankan untuk mengubah file ini kecuali Anda tahu apa yang kamu lakukan. Jauh lebih baik untuk membuat skrip shell .sh khusus di /etc/profile.d/ untuk membuat perubahan khusus pada lingkungan Anda, karena ini akan mencegah perlunya penggabungan pembaruan di masa mendatang”.

Direktori /etc/profile.d/ – menyimpan skrip shell yang digunakan untuk membuat perubahan khusus pada lingkungan Anda:

cd /etc/profile.d/
ls  -l 

File /etc/bashrc atau /etc/bash.bashrc – berisi fungsi dan alias seluruh sistem termasuk konfigurasi lain yang berlaku untuk semua pengguna sistem.

Jika sistem Anda memiliki beberapa jenis shell, sebaiknya letakkan konfigurasi khusus bash di file ini.

cat /etc/bashrc

Memahami File Startup Shell Khusus Pengguna

Selanjutnya, kami akan menjelaskan lebih lanjut mengenai file titik startup shell (bash) khusus pengguna, yang menyimpan konfigurasi untuk pengguna tertentu di sistem, file tersebut terletak di direktori home pengguna dan mencakup:

ls -la

File ~/.bash_profile – ini menyimpan konfigurasi lingkungan spesifik pengguna dan program startup. Anda dapat mengatur variabel lingkungan PATH khusus Anda di sini, seperti yang ditunjukkan pada gambar di bawah:

cat ~/.bash_profile

File ~/.bashrc – file ini menyimpan alias dan fungsi khusus pengguna.

cat ~/.bashrc

File ~/.bash_login – berisi konfigurasi khusus yang biasanya hanya dijalankan saat Anda masuk ke sistem. Jika ~/.bash_profile tidak ada, file ini akan dibaca oleh bash.

File ~/.profile – file ini dibaca tanpa adanya ~/.bash_profile dan ~/.bash_login; ia dapat menyimpan konfigurasi yang sama, yang juga dapat diakses oleh shell lain di sistem. Karena kita terutama berbicara tentang bash di sini, perhatikan bahwa shell lain mungkin tidak memahami sintaks bash.

Selanjutnya, kami juga akan menjelaskan dua file penting khusus pengguna lainnya yang belum tentu merupakan file inisialisasi bash:

File ~/.bash_history – bash menyimpan riwayat perintah yang telah dimasukkan oleh pengguna pada sistem. Daftar perintah ini disimpan di direktori home pengguna di file ~/.bash_history.

Untuk melihat daftar ini, ketik:

history 
or 
history | less

File ~/.bash_logout – tidak digunakan untuk startup shell, namun menyimpan instruksi khusus pengguna untuk prosedur logout. Itu dibaca dan dieksekusi ketika pengguna keluar dari shell login interaktif.

Salah satu contoh praktisnya adalah dengan membersihkan jendela terminal saat logout. Ini penting untuk koneksi jarak jauh, yang akan meninggalkan jendela bersih setelah ditutup:

cat bash_logout 

Untuk wawasan tambahan, periksa isi file inisialisasi shell ini di berbagai distro Linux dan baca juga halaman manual bash:

Itu saja untuk saat ini! Pada artikel ini, kami menjelaskan file startup/inisialisasi shell di Linux. Gunakan formulir komentar di bawah untuk menulis kembali kepada kami.