본문 바로가기
리눅스/명령어 정리

[리눅스] 명령어 기초 - 명령어 사용 방법 & 쉘 기호 & man 명령

by hseoy 2020. 11. 10.
반응형

리눅스에서는 Shell이라는 것이 있고 이 Shell을 통해서 여러 명령어들을 실행하여 리눅스 시스템을 사용할 수 있다. 이 글에서는 이러한 명령어에 대한 기초 지식을 다뤄보려고 한다.

1. 명령어의 사용

- 명령어 형식

$ 명령어 [옵션] [인수]

Shell에서 실행되는 모든 명령어들은 위와 같은 형식으로 실행되게 된다. 모든 명령어는 선택적으로 옵션과 인수를 입력받는다.

- 명령어는 대,소문자를 엄격하게 구분한다.

이러한 명령어들은 대, 소문자를 엄격하게 구분하는 데 그 이유는 간단하다. 이러한 명령어들이 그냥 프로그램명이기 때문이다.(물론 모든 명령들이 프로그램명이라는 것은 아니다. )

directory contents를 조회하는 명령인 'ls'를 기준으로 설명하자면 이 명령어는 Shell 프로그램 내부에서 실행되는 것이 아니라 특정 경로에 실행파일이 존재하고 Shell은 그 실행파일을 실행할 뿐이다. 우리가 C언어 파일을 컴파일 하여 실행할 때 대소문자를 다르게 하면 파일을 못 찾듯이 Shell 역시 명령을 못찾게 되는 것이다.

- 여러 명령의 동시 수행 가능

명령어들은 한 번에 하나만 수행 가능한 것이 아니라 여러 명령을 동시에 수행시키도록 할 수도 있는 데 그러기 위해서는 명령어와 명령어 사이에 ';'를 넣어야 한다. 예를 들어 'who ; date'와 같이 사용하게 되면 who 명령과 date 명령이 동시에 수행되게 된다.

2. 쉘 기호

< 표준입력 방향 변경
> 표준출력 방향 변경(파일 생성)
>> 표준출력 방향 변경(파일에 추가)
| 명령어의 표준출력을 다음 명령어의 표준입력으로 연결
* 메타문자 : 모든 문자 대치
? 메타문자 : 한 문자 대치
[ ]  메타문자 : [ ] 안의 문자 중 한 문자 선택
\ \ 다음의 특수문자(* ? [ ] ; > <) 의미 제거
'' ' '로 둘러싸인 모든 특수문자 의미 제거
`` ``는 명령어의 실행 결과를 인수로 사용
$ 사용자가 정의한 변수 값으로 대치
"" $, \, !, ', "를 제외한 특수문자 의미 제거

<의 경우에는 예를 들어 temp.txt에 "Hello World"가 있고 이 내용을 cat 명령을 수행할 때의 입력으로 사용하고 싶다면 "cat < temp.txt"와 사용할 수 있다. 반대로 >는 표준 출력 내용을 파일로 저장할 때 사용하는 데 "echo Hello World > temp.txt"와 같이 사용할 수 있다. 이외 아래와 같은 형태로 많이 사용한다.

$ echo $HOME
$ echo "hello world"
$ ls abc* > temp.txt
$ who | sort

 

3. 명령어 사용법 보기 - man 명령

모든 명령어의 옵션, 사용법을 외우고 있는 것은 불가능하다. 그렇기 때문에 메뉴얼 등을 참고하여 그때 그때 사용법을 빠르게 살펴보는 것이 중요한 데 그때 사용되는 명령이 man(manual) 명령이다.

man 명령어

명령어의 사용법을 페이지 단위로 제공해주는 명령으로 명령에 대한 기본 설명, 문법, 옵션, 참고 명령어, 오류 정보 등 많은 정보들을 제공해준다. 만약 나타나는 내용이 한 화면을 넘게 되면 마지막 줄에 'Manual page ls(1) line 1'과 같은 메시지가 나타나는 데 이때 스페이스바를 누르면 다음 페이지가, 엔터를 누르면 다음 줄이, q를 누르면 나가게 된다. 

Manual에 나타나는 정보들은 다음과 같다. 아래와 같은 내용 외에도 여러 섹션들이 존재한다.

Name 명령의 이름과 목적
Synopsis 명령의 일반 형식
Description 전체 설명
Options 사용된 옵션과 설명
Files 이 명령에 대한 중요 파일의 목록
See Also 관련 정보를 볼 수 있는 곳
Diagnostics 예상 가능한 에러와 경로
Bugs 실수, 단점 그리고 경로

실제로 ls 명령에 대한 manual page를 살펴보면 아래와 같다.

ls의 메뉴얼 페이지 1

영어로 되있어서 읽기 어려울 것 같지만 천천히 읽다보면 많은 도움이 된다.

반응형

댓글