리눅스에서는 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를 살펴보면 아래와 같다.
영어로 되있어서 읽기 어려울 것 같지만 천천히 읽다보면 많은 도움이 된다.
'리눅스 > 명령어 정리' 카테고리의 다른 글
[리눅스] 명령어 정리 - which (0) | 2020.11.12 |
---|---|
[리눅스] 명령어 정리 - echo (0) | 2020.11.12 |
[리눅스] 명령어 정리 - ls (0) | 2020.11.12 |
[리눅스] 명령어 정리 - cal, clear (0) | 2020.11.12 |
[리눅스] 명령어 정리 - date (0) | 2020.11.11 |
댓글