본문 바로가기
컴퓨터 공학/시스템 프로그래밍

쉘(Shell)에 관하여

by 조엘 2020. 5. 10.

사실 운영체제와 시스템 쪽은 아직 내가 깊게 공부를 하지 않아서 잘 모른다ㅜㅜ 하지만 오늘 그래도 나름 새로운 지식(?)을 깨달은 것 같아 블로그에 포스팅 해보려고 한다. 만약 내가 잘못알고 있는게 있다면 제발 알려주셨으면 한다!

 

Shell은 하드웨어를 동작하게 해주는 사용자 명령어 해석기!

커널(간략히 운영체제라고 생각하자)을 직접 사용자가 조작하는 것은 거의 불가능하다고 한다. 고로 커널을 조작할 수 있는 쉘이 내가 하드웨어와 소통할 수 있는 최밑단의 방법이다.

 

쉘에서 명령어를 치면, 커널이 쉘의 명령을 번역하여 알아듣고, 커널이 하드웨어에게 해당 명령을 수행해 달라고 부탁을 또 한다. 

 

쉘은 종류가 한개가 아니다! Powershell, bash, cmd, zsh 등등 사용자에게 맞는 쉘을 통해 자기에게 맞는 환경을 구축해보자!

 

 

GUI 와 CLI는 같은 놈이야!

음... 사실 완전히 같다고 단언하기엔 내 지식이 너무 짧다ㅜㅜ (차이점을 알려주실 수 있는 분 계시면 너무 환영입니다) 여기서 같은 놈이라는 것은 파일을 실행하는 데에 있어서 결국 클릭을 해주느냐, 커맨드 라인으로 실행을 해주느냐의 차이일 뿐, 같은 결과를 보여준다는 것!

 

굉장히 간단한 파이썬 프로그램을 작성해 보았다. 

무한루프로 Hello를 출력해주는 파이썬 코드이다.

 

이렇게 무식하게 무한루프를 돌리는 이유는, 그래야 GUI로 클릭을 통해 파일을 실행했을 때, Hello가 찍히는 걸 볼 수 있어서다! (내 컴퓨터 미안해!)

 

결과를 확인해 보자!

 

 

 

 

아주 깔끔하게 무한루프를 돌아주시는 중....

GUI 환경에서 확인해봤으니, CLI를 통해 쉘로 이 파이썬 파일을 실행해보자! Git bash, Powershell, cmd를 다 해보겠다. 

Git Bash
Powershell
cmd

수많은 hello와 함께 쉘이랑 조금 친해지길 바라며... 포스팅을 마치겠다!

 

반응형

'컴퓨터 공학 > 시스템 프로그래밍' 카테고리의 다른 글

예외적인 제어흐름 (1부)  (0) 2020.08.30
링커 (2부)  (0) 2020.08.29
링커 (1부)  (0) 2020.08.29

댓글