π‘ λ³Έ λ¬Έμλ 'Shellκ³Ό μ(Shell) μ€ν¬λ¦½νΈ(*.sh)'μ λν΄ μ 리ν΄λμ κΈμ λλ€.
κΈ°λ³Έμ μΈ λ¦¬λ μ€μμμ Shellκ³Ό μ€μ νμΌ μ μ© μμμ λν΄ μ 리νμμΌλ μ°Έκ³ νμκΈ° λ°λλλ€.
1. μ(Shell) μ΄λ?
μ(Shell)μ 컀λκ³Ό μ¬μ©μ μ¬μ΄λ₯Ό μ΄μ΄μ£Όλ 맀κ°μ²΄ μν μ νλ νλ‘κ·Έλ¨μ λλ€. μμ νλμ λͺ λ Ήμ΄ μ²λ¦¬κΈ°(Command Processor)λ‘μ¨, μ¬μ©μμΌλ‘λΆν° λͺ λ Ήμ΄λ₯Ό μ λ ₯ λ°μ κ·Έκ²μ νλ‘μΈμ±νκΈ° μν΄ μ»€λμκ² λ겨주λ μΌμ νλ νλ‘κ·Έλ¨μ λλ€.
μ°λ¦¬κ° νν μ¬μ©νλ μλμ°μ λͺ λ Ή ν둬ννΈ(CMD)λ μμ΄λ©°, λ€μν μ’ λ₯μ μμ μμ보λλ‘ νκ² μ΅λλ€.
2. μ(Shell) μ’ λ₯
νμ¬ κ°μ₯ μΌλ°μ μΌλ‘ μ¬μ©νλ μμ linuxμ κΈ°λ³Έμ μΌλ‘ κΉλ €μλ bash μ νλ‘κ·Έλ¨μ΄κΈ°μ μ΄κ²λ§ μ μκ³ μμ΄λ λ¬Έμ λ κ²μ μμ§λ§, μ’ λ₯λ³λ‘ κ°λ¨νκ² νλ κ²λ λμ κ² μκΈ°μ μ½μ΄λ³΄λ κ²μ μΆμ²ν©λλ€.
2.1 Bourne Shell (sh)
- Bourne Shell μ 1974λ 'Stephen Bourne' (μ€ν°λΈ λ³Έ) μ΄ κ°λ°νμκ³ , μ΅μ΄μ μ(Shell) μ λλ€.
- λλΆλΆμ 리λ μ€μ κΈ°λ³Έμ μΌλ‘ μ€μΉκ° λμ΄μμ΅λλ€.
- μ€μΉ μμΉλ '/bin/sh' μ λλ€.
2.2 C Shell (csh)
- C Shell μ 1978λ 'Bill Joy' (λΉ μ‘°μ΄) κ° κ°λ°ν μ(Shell) μ λλ€.
- C Shell μ Bourne Shell μ μ¬μ©μ±μ λμ΄κ³ , C μΈμ΄λ₯Ό κΈ°λ°μΌλ‘ ν μΈ΅ λ κ°λ ₯νκ² λ§λ€μ΄μ‘μ΅λλ€.
- λλ¬Έμ κ°λ ₯ν ν λ‘κ·Έλ¨ μμ± κΈ°λ₯μ μ§λ μ΅λλ€.
- μ€μΉ μμΉλ '/bin/csh' μ΄λ€.
2.3 tee-see-Shell (tcsh)
- tee-see-Shell μ 'Carnegie Mellon University' (μΉ΄λ€κΈ° λ©λ° λνκ΅) μ νμλ€μ΄ κ°λ°νμ¬ 1983λ μμ€μ½λλ₯Ό κ²μνμμ΅λλ€.
- κ°λ¨νκ² μ€λͺ νλ©΄ C Shell μμ λͺ λ Ή ν μμ±κ³Ό λͺ λ Ή ν νΈμ§ κΈ°λ₯μ μΆκ°ν κ²μ λλ€.
- μ΄κΈ° λ§₯ OS X λ tcshλ₯Ό κΈ°λ³Έ μ Έλ‘ ν¬ν¨νκ³ μμμ΅λλ€.
- μ€μΉ μμΉλ '/bin/tcsh' μ λλ€.
2.4 Z Shell (zsh)
- Z Shell μ 'Paul Falstad' (ν΄ ν΄μ€νλ) κ° 1990λ λνκ΅μ μ¬ν μ€ μΌ λ 첫 λ²μ μ μμ±νμμ΅λλ€.
- Z Shell μ μ§κΈκΉμ§μ μ λ§μ μ(Shell) λ€μ κΈ°λ₯μ λ¨ΈκΈκ³ μμΌλ©°, λ§μ κ°μ μ¬νλ€μ΄ κ°μΆμ΄μ§ νμ₯ν Bourne Shell μ λλ€.
- Mac OSμ κΈ°λ³Έ μλ‘ μ±ν λμ΄μλ€
- μ€μΉ μμΉλ '/bin/zsh' μ λλ€.
2.5 Bourne-again shell (bash)
- Bourne-again shell μ νμ¬ κ°μ₯ λ§μ΄ μ°μ΄λ Shell μ΄λ©°, μ€μ¬μ Bash Shell μ GNU νλ‘μ νΈλ₯Ό μν΄ 'Brian Fox' (λΈλΌμ΄μΈ νμ€) κ° μμ±ν μ(Shell) μ λλ€.
- GNU μ΄μ체μ μ 리λ
μ€ λ± κΈ°λ³Έ μλ‘ μ±ν λμ΄μλ€.
(μ¬μ€μ λͺ¨λ 리λ μ€κ° κΈ°λ³ΈμΌλ‘ Bash Sehll λ§μ μ¬μ©νλ€...) - C Shell κ³Ό Bourne Shell μ κΈ°λ₯λ€μ΄ λ§μ΄ ν¬ν¨ λμ΄ μμ΅λλ€.
- λλΆλΆ Shell Script λΌκ³ κ²μμ νλ©΄ κΈ°μ€μ΄ μμ€νꡬλ Bash Shell λ‘ μμ± λμ΄ μμ΄ κ·Έλ§νΌ μλ£κ° λ°©λλ©΄μ λ°°μ°κΈ° μ½κ³ , κ°λ ₯νλ€λ μ¦κ±°μ λλ€.
- μ€μΉ μμΉλ '/bin/bash' μ λλ€.
3. μ(Shell) μ€μ νμΌ: profile, *rc
μ¬μ©μκ° κ³μ μΌλ‘ λ‘κ·ΈμΈ ν¨κ³Ό λμμ μ½μ΄λ리λ μ μ€μ νμΌλ€μ΄ μ‘΄μ¬ν©λλ€.
3.1 μ μ€μ νμΌ μ’ λ₯
3.1.1 μ§μμ±
- μ μμ μΈ νμΌμ /etc λλ ν 리μ μμΉνλ©° μλμ μ μ¬ν νμΌμ΄ μμ΅λλ€.
- /etc/profile
- /etc/profile.d/*sh
- /etc/*rc/
- μ§μμ μΈ νμΌμ μ¬μ©μ κ°κ°μΈμ μν μ€μ λ΄μ©μ λ΄κ³ μμ΄ κ·Έ νμΌμ μ¬μ©νλ νΉμ μ¬μ©μμκ²λ§ μν₯μ λΌμΉλ μ¨κΉνμΌ(.*)μ λ§ν©λλ€.
3.1.2 μ€μ μμ
- λΆν
μμ : μ²μ 리λ
μ€λ₯Ό λΆν
νμ λ μ€μ λλ νμΌμ
λλ€.
- /etc/profile
- /etc/profile.d/*.sh
- ~/.profile
- μ μ μ μμ : νΉμ μ(bash, zsh, ...)μ μ μν μμ μμ μ μ©λλ νμΌλ‘ μ μνλ μμ μμ rc file(interactive)λ₯Ό μ½μ΄λ€μ
λλ€.
- ~/.bash_login
- ~/.bash_profile
- ~/.bashrc
- /etc/bashrc
3.2 μ μ€μ νμΌ μ½λ μμ
ν΄λΉ νμΌλ€μ μ½μ΄ λ리λ μμλ μλμ κ°μ΅λλ€.
3.2.1 /etc/profile
- νκ²½ λ³μμ bashκ° μνλ λ μ€νλλ νλ‘κ·Έλ¨μ μ μ΄νλ μ μμ μΈ μμ€ν μ€μ κ³Ό κ΄λ ¨λ νμΌμ λλ€.
- rootλ‘ λ‘κ·ΈμΈ νλ κ²½μ° μΌλ°μ¬μ©μλ€κ³Όλ λ¬λ¦¬ PATH λ³μμ κ΄λ¦¬ λͺ λ Ήμ΄λ λκ΅¬κ° μ€μΉλμ΄ μλ /sbin, /usr/sbin, /usr/local/sbin κ²½λ‘κ° μ€μ λμ΄ μμ΅λλ€.
3.2.2 /etc/profile.d/*.sh
- /etc/profileκ° μ€ννλ©΄μ μ½μ΄λ€μ΄λ μ μ€ν¬λ¦½νΈ νμΌλ€
3.2.3 ~/.bash_profile or ~/.bash_login or ~/.profile
- νκ²½ λ³μμ bashκ° μνλ λ μ€νλλ νλ‘κ·Έλ¨μ μ μ΄νλ μ§μμ μΈ μμ€ν μ€μ κ³Ό κ΄λ ¨λ νμΌμ λλ€.
- μ΄ νκ²½λ³μλ€μ μ€μ§ μ¬μ©μμκ²λ§ νμ λλ©°, bashκ° login shellλ‘ μ°μΌ λ(i.e. μ²μ loginν λ)μ μνλ©λλ€.
3.2.4 ~/.bashrc
- νκ²½ λ³μμ bashκ° μνλ λ μ€νλλ νλ‘κ·Έλ¨μ μ μ΄νλ μ§μμ μΈ μμ€ν μ€μ κ³Ό κ΄λ ¨λ νμΌμ λλ€.
- μ΄ νκ²½λ³μλ€μ μ€μ§ μ¬μ©μμκ²λ§ νμ λλ©°, bashκ° μ€νλ λλ§λ€ μνλ©λλ€.
3.2.5 /etc/bashrc
- μμ€ν μ μ(λͺ¨λ μ¬μ©μ)μ λν νκ²½μ€μ νμΌλ‘ μλ‘μ΄ bashκ° μ€νλ λ λ§λ€ λ΄μ©μ μ½μ΄λ€μ λλ€.
+ ~/.bash_logout
- μΆκ°λ‘, μ¬μ©μκ° λ‘κ·ΈμμνκΈ° μ§μ μ μ€ννλ νλ‘κ·Έλ¨μ κ΄ν μ€μ νμΌμ ~/.bash_logout μ λλ€.
μ°Έκ³
- [Blog] μμ κ°λ , bashrcμ κ°λ : https://dohk.tistory.com/191
- [Blog] /etc/profile, ~/.bash_profile, ~/.bashrc, /etc/bashrc νμΌ λΉκ΅: https://coding-chobo.tistory.com/72
'Study: ComputerScience(CS) > CS: OperatingSystem' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[OS] μ(Shell) κΈ°λ³Έ λ¬Έλ²: bash shell (0) | 2023.01.22 |
---|---|
[OS] 리λ μ€ κ΅¬μ‘°: 컀λ(Kernel), μ(Shell), νλ‘μΈμ€(Process), μ μΈμ (Shell Session) (0) | 2022.07.25 |