터미널 명령어에 들어가기 전에

Aiden·2022년 1월 5일
1
post-thumbnail

Unix 와 Linux

Unix, Linux 명령어와 디렉토리의 관계에 대해 간단히 살펴보겠습니다.

  • Unix, Linux 운영체제에서 사용하는 명령어들은 각각 독립적인 프로그램(파일)으로 이루어져 있고 이 파일들은 bin 과 같은 디렉토리들에 들어있습니다. 이는 Unix 의 철학인 'Everything is a file.' 과 관련이 있습니다. 즉, 모든 것이 파일로 이루어져 있는 것입니다.

  • 특히, 앞서 언급한 bin 디렉토리는 Binary 의 약자로 Linux, Unix 운영체제의 정상적인 구동을 위한 다양한 파일들이 저장되어 있는 장소입니다. 우리가 앞으로 알아보게 될 cat, chown, echo, ls, mkdir 과 같은 단순하면서 필수적인 명령어들 또한 모두 bin 디렉토리 안에 파일로 준비되어 있습니다.

  • 위 사진은 Linux 의 디렉토리 구조입니다. 최상위 디렉토리인 root('/')부터 시작해서 bin, opt, boot와 같은 하위 디렉토리, 그 안에도 또 다른 하위 디렉토리가 존재하는 계층 파일 시스템 구조(tree)로 이루어진 모습을 확인할 수 있습니다.

  • 즉, 우리는 이렇게 디렉토리 안에 파일로 준비되어 있는 다양한 명령어들을 조합하여 마치 블록을 조립하는 것과 같이 다양한 작업들을 수행할 수 있게 되는 것입니다.

  • 물론, 디렉토리의 수도 많고 수행하게 될 작업들이 다양하므로 그 명령어의 개수도 무척 많고 복잡합니다. 하지만 주로 쓰이는 명령어는 그렇게 많지 않기 때문에 기본적인 명령어를 익혀두고 필요할 때 마다 검색하여 사용하는 방법을 채택하는 것이 좋습니다.


$ 와 #

기본 명령어를 알아보기 전에 앞으로 자주 쓰일 $ 와 # 에 대해 알아보겠습니다.

  • 앞으로 Unix 와 Linux 의 명령어들을 소개할 때, $# 에 대해 자주 접하시게 되실 겁니다. 이는 제 포스트 뿐만 아니라 다른 포스트들을 접할 때도 명령어 앞에 꼭 붙어있는 기호들입니다.

  • 간단히 정리하면 $ 는 '일반 사용자' 일 때, # 은 'root' 일 때 터미널에 표시되는 기호입니다.

  • 아래는 ubuntu 터미널에 사용자 명령어가 입력된 상태입니다. '일반 사용자'라는 의미에서 $ 가 붙어있는 모습을 확인할 수 있습니다.

  • 그렇다면, 명령어들을 소개할 때까지도 앞에 $ # 을 붙여 표기하는 이유는 무엇일까요?

  • 사실, 명령어를 한 줄만 입력하게 될 때는 $# 이 필요하지 않습니다. 하지만 연속으로 여러 개의 명령어를 몇 줄에 걸쳐 작성해야 하는 경우에는 각 줄에 대한 구분이 필요합니다. 그렇지 않으면 명령어의 가독성이 떨어지고, 해당 명령어의 시작과 끝을 알아보기 힘들기 때문입니다.

  • 따라서, 아래 그림처럼 명령어의 시작점에 $ # 를 명시하여 각 명령어의 시작과 끝을 알아보기 쉽게 나타냅니다.


sudo

sudo 는 명령어 앞에 자주 붙는 접두사입니다.

  • $ # 이외에도 터미널 명령어들을 소개하는 많은 글을 보면 sudo 라는 단어가 명령어 앞에 붙어있는 모습을 자주 보셨을겁니다.

  • sudo 는 'substitute user do' 의 약어로서, 일반 사용자 상태에서 root 권한이 필요한 명령어를 입력해야 할 때 사용하게 됩니다.

  • 즉, 정리하면 $# 권한이 필요한 명령어를 입력하여 작업을 수행하여야 할 때, 굳이 # 계정으로 전환하지 않더라도 일회성으로 권한을 빌려와 명령을 수행할 수 있도록 추가하는 명령어인 것입니다.

  • 따라서, 현재 자신이 $ 인 일반사용자 권한으로 터미널을 사용하고 있을 때, # root 권한이 필요한 명령어를 입력하고 싶다면, 명령어의 앞에 sudo 를 추가하여 작성할 수 있습니다.

  • 반대로 자신이 # 인 root 권한으로 터미널을 사용하고 있을 때, # root 권한이 필요한 명령어를 입력하고자 한다면, 굳이 sudo 명령어를 붙일 필요가 없는 것입니다.

  • 이제 터미널 기본 명령어들을 익힐 준비는 끝났습니다. 다음 포스트부터는 터미널의 기본 명령어들을 디렉토리 관련 명령어와 파일 관련 명령어로 나누어 살펴보도록 하겠습니다.



출처


https://tourbiz.tistory.com/109
https://swiftcoding.org/remind-of-cli-commands

1개의 댓글

comment-user-thumbnail
2022년 1월 6일

I like penguin.

답글 달기