Bash ?
Bashλ Unix κ³μ΄ μ΄μ체μ μμ μ¬μ©λλ λͺ λ Ή μ€ μΈν°νμ΄μ€(Command Line Interface, CLI)λ₯Ό μν μ(shell)μ΄λ€. Bashλ "Bourne Again SHell"μ μ½μλ‘μ, Stephen Bourne μ(sh)μ κΈ°λ°μΌλ‘ κ°λ°λμ΄ Unix, Linux, macOS λ±μμ κΈ°λ³Έ μλ‘ λ§μ΄ μ¬μ©λ©λλ€.
*μμ μ¬μ©μκ° λͺ λ Ήμ΄λ₯Ό μ λ ₯νκ³ μ΄μ체μ μ μνΈμμ©νλ νκ²½μ μ 곡νλ νλ‘κ·Έλ¨μ΄λ€
Bashλ λ€μν κΈ°λ₯μ μ 곡νλ©°, μ£Όλ‘ λ€μκ³Ό κ°μ μν μ μννλ€.
- λͺ λ Ήμ΄ μ€ν: μ¬μ©μλ Bash μμμ λ€μν λͺ λ Ήμ΄λ₯Ό μ λ ₯νμ¬ νμΌμ μμ±, μμ , μμ νκ±°λ νλ‘κ·Έλ¨μ μ€νν μ μμ
- νμΌ μμ€ν νμ: Bashλ λλ ν 리λ₯Ό λ³κ²½νκ³ νμΌ λ° ν΄λλ₯Ό νμΈνλ λ±μ νμΌ μμ€ν κ΄λ ¨ λͺ λ Ήμ΄λ₯Ό μ 곡ν μ μμ
- νκ²½ λ³μ μ€μ : Bashλ νκ²½ λ³μλ₯Ό μ€μ νμ¬ μ¬μ©μκ° μ μΈμ λμ μ¬μ©ν μ μλ λ°μ΄ν°λ₯Ό μ§μ ν μ μμ
- νμ΄νλΌμΈ: Bashλ μ¬λ¬ λͺ λ Ήμ΄λ₯Ό νμ΄ν(|)λ‘ μ°κ²°νμ¬ μ λ ₯κ³Ό μΆλ ₯μ μ°κ²°νκ³ , λ°μ΄ν°λ₯Ό λ³ννλ μμ μ μνν μ μμ
- μ€ν¬λ¦½ν : Bash μ€ν¬λ¦½νΈλ₯Ό μμ±νμ¬ μ¬λ¬ λͺ λ Ήμ΄μ νλ¦ μ μ΄ κ΅¬μ‘°λ₯Ό κ²°ν©νμ¬ μλνλ μμ μ μνν μ μμ
Bashλ μ¬μ©μκ° μ λ ₯ν λͺ λ Ήμ΄λ₯Ό ν΄μνμ¬ μ΄μ체μ μ 컀λμκ² μ λ¬νκ³ , 컀λμ΄ λͺ λ Ήμ΄λ₯Ό μ€νν κ²°κ³Όλ₯Ό μμκ² λ°ννλ€. μ΄λ κ² μ¬μ©μμ μ΄μ체μ μ¬μ΄λ₯Ό μ€κ°νλ μν μ μννλ€.
λν Bashλ λ€μν μ΅μ κ³Ό 맀κ°λ³μλ₯Ό μ¬μ©νμ¬ λ€μν μμ μ μνν μ μλ€. μ μ€ν¬λ¦½νΈλ₯Ό ν΅ν΄ λ°λ³΅μ μ΄κ³ 볡μ‘ν μμ μ μλννλλ°μλ λ§μ΄ μ¬μ©λλ€. Bashλ μ μ©νκ³ κ°λ ₯ν λꡬλ‘μ, μ»΄ν¨ν° μμ€ν κ΄λ¦¬, νλ‘κ·Έλλ°, λ°μ΄ν° λΆμ, κ°λ° λ± λ€μν λΆμΌμμ νμ©λλ€.
*컀λ(Kernel)μ μ»΄ν¨ν°μ μ΄μ체μ (OS, Operating System) μ€μμ ν΅μ¬μ μΈ λΆλΆμ΄λ€. μ΄μ체μ λ μ»΄ν¨ν°μ νλμ¨μ΄μ μννΈμ¨μ΄λ₯Ό κ΄λ¦¬νκ³ , μμ© νλ‘κ·Έλ¨μ΄ νλμ¨μ΄μ μνΈμμ©ν μ μλλ‘ μ§μνλ€. 컀λμ μ΄λ¬ν μ΄μ체μ μ ν΅μ¬ μν μ λ΄λΉνλ©°, μμ€ν 리μμ€λ₯Ό κ΄λ¦¬νκ³ , νλμ¨μ΄μ μμ© νλ‘κ·Έλ¨ μ¬μ΄μ μΈν°νμ΄μ€ μν μ μνν©λλ€.
Bashλ νλ‘κ·Έλλ° μΈμ΄μΌκΉ?
Bashλ νλ‘κ·Έλλ° μΈμ΄λ μλλ€. Bashλ μ€ν¬λ¦½ν μΈμ΄(scripting language) λλ λͺ λ Ήμ΄ ν΄μκΈ°(shell interpreter)λ‘ λΆλ₯λλ€. μ€ν¬λ¦½ν μΈμ΄λ νλ‘κ·Έλλ° μΈμ΄μ μ μ¬ν λ¬Έλ²μ κ°μ§κ³ μμ§λ§, μΌλ°μ μΈ νλ‘κ·Έλλ° μΈμ΄μ²λΌ μ»΄νμΌκ³Ό κ°μ λ¨κ³ μμ΄ λ°λ‘ ν΄μλμ΄ μ€νλλ€.
Bashλ μ£Όλ‘ λͺ λ Ή μ€ μΈν°νμ΄μ€(Command Line Interface, CLI)μμ μ¬μ©λλ μ€ν¬λ¦½ν μΈμ΄λ‘μ, μ¬μ©μκ° λͺ λ Ήμ΄λ₯Ό μ λ ₯νκ³ μ΄μ체μ μ μνΈμμ©νλλ°μ μ£Όλ‘ μ¬μ©λλ€.
μ€ν¬λ¦½ν μΈμ΄λ€μ μ£Όλ‘ μ€νμ΄ λΉ λ₯΄κ³ κ°νΈνλ©°, μμ κ·λͺ¨μ μμ μ λΉ λ₯΄κ² μ²λ¦¬νλ λ°μ νΉνλμ΄ μλ€. λ°λ©΄, μΌλ°μ μΈ νλ‘κ·Έλλ° μΈμ΄λ€μ λ 볡μ‘ν μ ν리μΌμ΄μ κ°λ°κ³Ό μμ€ν ꡬμΆμ μ¬μ©λλ€. κ° μΈμ΄λ€μ νΉμ μ©λμ νΉμ±μ λ°λΌ μ ν©ν μν©μμ μ¬μ©λλ©°, Bashλ μ£Όλ‘ λͺ λ Ή μ€ μμμ κ°λ¨ν μμ μ λΉ λ₯΄κ² μ²λ¦¬νλλ°μ λ§μ΄ μ¬μ©λλ€.
μμ£Ό μ¬μ©νλ Bash λͺ λ Ήμ΄
λͺ κ°μ§ μμ£Ό μ¬μ©λλ Bash λͺ λ Ήμ΄λ€μ λν΄ μ€λͺ ν΄λλ¦¬κ² μ΅λλ€. μ΄ λͺ λ Ήμ΄λ€μ Unix/Linux κΈ°λ° μμ€ν μμ μ¬μ©λλ μΌλ°μ μΈ λͺ λ Ήμ΄λ€μ΄λ©°, Windowsμμλ WSL(Windows Subsystem for Linux)μ ν΅ν΄ μ¬μ©ν μ μλ€.
- ls: νμ¬ λλ ν 리μ νμΌκ³Ό ν΄λ λͺ©λ‘μ μΆλ ₯
$ ls
- cd: λλ ν 리 λ³κ²½ λͺ λ Ήμ΄λ‘, μ§μ λ λλ ν λ¦¬λ‘ μ΄λ
$ cd directory_name
- mkdir: μλ‘μ΄ λλ ν 리λ₯Ό μμ±
$ mkdir new_directory
- rm: νμΌμ΄λ λλ ν 리λ₯Ό μμ
$ rm file_name
$ rm -r directory_name
- cp: νμΌμ΄λ λλ ν 리λ₯Ό 볡μ¬
$ cp source_file destination_file
$ cp -r source_directory destination_directory
- mv: νμΌμ΄λ λλ ν 리λ₯Ό μ΄λνκ±°λ μ΄λ¦μ λ³κ²½
$ mv old_name new_name
$ mv source_file destination_directory
- pwd: νμ¬ μμ μ€μΈ λλ ν 리μ κ²½λ‘λ₯Ό μΆλ ₯
$ pwd
- cat: νμΌμ λ΄μ©μ μΆλ ₯
$ cat file_name
- echo: λ¬Έμμ΄μ μΆλ ₯
$ echo "Hello, Bash!"
- grep: νμΌ λ΄μμ νΉμ ν¨ν΄μ κ²μ
$ grep "pattern" file_name
- head: νμΌμ μ λΆλΆμ μΆλ ₯
$ head -n 10 file_name # νμΌμ 첫 10μ€μ μΆλ ₯
- tail: νμΌμ λ· λΆλΆμ μΆλ ₯
$ tail -n 10 file_name # νμΌμ λ€μμ 10μ€μ μΆλ ₯
- chmod: νμΌ λλ λλ ν 리μ κΆνμ λ³κ²½
$ chmod +x file_name # νμΌμ μ€ν κΆνμ μΆκ°