나는 지금 유데미라는 온라인 강의 사이트에서 'Linux Mastery: Master the Linux Command Line in 11.5 Hours' 라는 강의를 듣고 있다. 강의를 들으면서 중요한 내용들을 조금씩 정리해 보려고 한다.
먼저 본 강좌는 우분투 환경에서 실습을 진행한다.
우분투를 사용하기 위해서는 우분투 다운로드 사이트에 가서 Ubuntu Desktop을 다운로드 받고, 오라클 VirtualBox를 통해서 가상환경을 만들어 주어야 한다. VB를 다운받고 우분투를 다운받아서 까는 데에 시간이 다소 걸릴 수 있다. 하지만 어렵지 않으니 기본 설정으로 계속 진행을 하면 큰 문제없이 다음과 같은 화면을 볼 수 있을 것이다. (여담이지만 색깔이 되게 예쁘다 ㅋㅋ)
참고로 나는 현재 MAC OS 환경에서 개발을 하고 있으므로 이를 바탕으로 설명을 하려고 한다.
control+option+T를 누르면 터미널 창이 켜지고 control+D를 누르면 터미널 창이 꺼진다.
오늘은 먼저 BASH에 대해서 알아보려고 한다. BASH를 이해하기 위해서는 Shell을 알아야 한다.
우리가 방금 켜본 터미널 창에 글자를 입력하는 것을 Command라고 부른다.
간단한 명령을 하나 입력해 보도록 하자.
$ echo Hello World
Hello World
우리가 echo Hello World라고 입력을 하니까(Input) 출력(Output)을 Hello World라고 하는 결과를 받았다.
그렇다면 여기서 echo라는 명령어를 컴퓨터는 '뒤에 있는 글자를 그대로 출력해 주면 되는군!' 이라고 이해한 것으로 볼 수 있다.
즉, echo에 의미를 부여한 것이다.
이 과정에서 이러한 커맨드 명령을 해석하는 프로그램을 우리는 Shell이라고 부른다.
이 세상에 여러가지 언어가 있듯이, 쉘에도 여러가지 문법이 있는데
리눅스에서 기본적으로 쓰는 쉘을 BASH(Bourne Again SHell)라고 한다.
따라서 리눅스 환경에서 프로그래밍을 하기 위해서는 BASH 명령어에 익숙해져야 할 필요가 있다.
커맨드 명령어도 알아야 하지만, 명령어에 따라서 달라지는 것들이 크게 두 가지가 있는데
첫 번째는 options 이고, 두 번째는 inputs 이다.
달력을 출력하는 cal 명령을 통해서 살펴보자.
# 오늘이 포함되어 있는 한 달의 달력이 출력
$ cal
# 이번 달과 다음 달이 출력
$ cal -A 1
# 이번 달과 앞으로의 2달이 더 출력
$ cal -A 2
# 지난 달과 이전의 3달 전까지 더 출력
$ cal -B 3
# 2015년 5월과 그 다음 달이 출력
$ cal -A 1 5 2015
보는 것처럼 cal 이라는 명령에 조건들(-A, -B 등)이 달라질 때 마다, 그리고 입력값(1, 2, 3, 1 5 2015 등)이 달라질 때 마다
같은 명령이라도 결과가 달라질 수 있다.
따라서 여기서 알 수 있는 건, 우리가 터미널을 통해 명령하는 커맨드(Command)는 다음과 같은 순서로 입력을 해야 한다는 것이다.
Command = CommandName + [Options] + [Inputs]
그렇다면 수 많은 명령어와 그에 따른 각기 다른 규칙들을 일일이 다 외워야 하는 걸까?
다행스럽게도 우리는 굳이 그럴 필요가 없이 Linux Manual을 통해 간단한 방법으로
어떤 명령어를 어떻게 쓸 수 있는지에 대해서 찾아볼 수가 있다.
# ABC라는 글자로 명령어를 검색해 보고 싶을 때(이름 또는 설명에서)
$ man -k ABC
# ABC라는 이름의 명령어를 어떻게 쓰는지 알고 싶을 때
$ man ABC
# 다음 방법으로도 ABC 명령어에 대해 간단하게 알아볼 수 있다.
$ ABC --help
예를 들어 which라는 단어로 내가 명령어를 검색하고 싶다면
이렇게 which가 이름이나 설명에 들어간 명령어를 쭉 리스트로 볼 수가 있다.
명령어 이름 옆에 숫자가 1부터 8까지 적혀져 있는데
이 숫자들은 Manual Structure에 대한 정보를 나타낸다.
주로 쓰는 번호는 1번(User Commands), 5번(File Formats and Conventions), 8번(System Admin)인 것 정도만 기억해 두자.
여기서 내가 sol 이라는 명령어를 어떻게 쓰는지 알고 싶다면 man sol이라고 입력을 하면 되고 그러면 다음과 같은 문서가 나온다.
해당 명령어에 대한 설명과 쓰는 방법(synopsis), 옵션들 등이 자세하게 나와 있다.
그리고 이렇게 찾아보지 않고도 sol --help 라고 입력해도 간단한 정보들을 찾아볼 수 있으니 참고하자.
'Prog. Langs & Tools > Linux' 카테고리의 다른 글
[Udemy] 리눅스 강의 #4 (nano, find, sort 등) (0) | 2019.08.22 |
---|---|
[Udemy] 리눅스 강의 #3 (alias, wildcards, basic commands) (0) | 2019.08.16 |
[Udemy] 리눅스 강의 #2 (Command I/O, Pipeline) (0) | 2019.08.07 |