본 내용은 해당 강의 토대로 작성
CLI 환경과 유닉스
01. CLI 환경이란
운영체제
- Windows, Android, macOS, iOS, ubuntu, UNIX, Red Hat 등
- 기기에서 프로그램이 실행될 수 있도록 도와주는 역할
- 운영체제를 다루기 위해 command(명령어)를 알 필요가 있다.
UNIX
- 많은 운영체제들이 유닉스로부터 발전되어 왔다.
- ubuntu, Red Hat, Chrome OS, Adroid, iOS, macOS, Linux
- command도 거의 동일
- 20 ~ 30개의 command면 실무에서도 충분
02. 유닉스(Unix-certified)와 유사 유닉스(Unix-like)
유닉스(Unix-certified)
- 인증받은 운영체제들
- 유닉스 자체는 1970년 초, 미국 벨 연구소에서 개발 (by 켄 톰슨, 데니스 리치)
- 대부분 C언어로 작성
- 다른 컴퓨터에 수정해서 적용하기 쉬움
- 다양한 버전의 유닉스가 만들어 짐
- POSIX: Unix라면 갖춰야 할 규격과 기능
유사 유닉스(Unix-like)
- Unix의 코드를 한 줄도 사용하지 않고 만든 Unix와 유사한 운영 체제
- 자유 소프트웨어 재단에서 개발
- 쉬운 사용, 쉬운 변형
- GNU(Gnu is Not Unix)/Linux
- Linux kernel: 운영체제의 핵심부분, 리누스 토발즈가 완성
- 무료 배포
- Linux 배포판: ubuntu, Red Hat, CentOS
- POSIX를 거의 만족
03. GUI와 CLI
GUI
- Graphical User Interface
- 그래픽을 활용한 환경
CLI
- Command Line Interface
- 키보드를 커맨드를 입력해서 사용하는 방식
- 장점
- 빠른 성능
- 명확성
- 단순하고 정확하게 컴퓨터를 사용할 수 있다.
04. terminal
- CLI 환경으로 컴퓨터를 사용할 수 있게하는 프로그램
몇 가지 명령어
clear
: 화면 정리하기
date
: 현재 년, 월, 일, 요일, 시, 분, 초를 출력
cal
: 달력 출력
05. 옵션과 인자
- 옵션 또는 인자를 사용함으로서, 커맨드를 원하는 대로 사용할 수 있다.
- 인자와 옵션은 정해진 방식에 맞춰서 사용한다.
옵션 (option)
- 커맨드의 구체적인 동작 방식 지정
- 값(인자)를 주는 경우도 있다.
cal -y
: 올해의 모든 달력 출력
cal -B 값
: 값만큼 전의 달력도 함께 출력
cal -A 값
: 값만큼 후의 달력도 함께 출력
cal -j
: 모든 날짜를 1월 1일을 기준으로 몇 번째 날짜인지 표기
인자 (argument)
- 커맨드의 동작 대상 지정
cal 년도
: 해당 년도의 달력을 출력
cal 월 년도
: 해당 년도, 월의 달력을 출력
06. 옵션에 관해 알아야할 내용
-
옵션은 값을 줘야하는 옵션, 주지 않아야 하는 옵션이 있다.
-
옵션은 여러개를 쓰는 것도 가능하다.
cal -B 2 -A 3
현재 달로부터 2달 전, 3달 후까지의 달력들이 모두 출력
- 여러 옵션을 동시에 쓸 때는 하이픈(-) 뒤에 여러 옵션의 이름을 써도 된다.
- 단, 값을 안주는 옵션과 줘야하는 옵션을 같이 쓸 경우, 값을 줘야하는 옵션을 더 뒤에 써야 한다.
cal -B 2 -jA 3
07. 커맨드의 사용법
- 커맨드에 대한 공식 메뉴얼을 본다.
man 궁금한 커맨드
: 해당 커맨드의 공식 메뉴얼을 볼 수 있다.
- 방향키로 위 아래 이동이 가능
- space: 한 페이지 아래로 이동
- b: 위로 이동
- q: 나가기
08. 메뉴얼의 항목
- 섹션, 메뉴얼 이름
- NAME: 커맨드의 이름과 커맨드에 대한 간단한 설명
- SYNOPSIS: 어떻게 커맨드를 실행할 수 있는지, 사용 가능한 형식(인자, 옵션들의 조합)을 보여준다.
- DESCRIPTION: 커맨드에 대한 더 자세한 설명과 각 옵션에 대한 설명
Comment
맨날 cd, clear 만쓰다가 cal이라는 명령어를 보니 신선하다…
'programming study > CLI' 카테고리의 다른 글
[코드잇] 유닉스 커맨드 라인 (5) (2021.2.28) (0) | 2021.02.28 |
---|---|
[코드잇] 유닉스 커맨드 라인 (4) (2021.2.28) (0) | 2021.02.28 |
[코드잇] 유닉스 커맨드 라인 (3) (2021.2.28) (0) | 2021.02.28 |
[코드잇] 유닉스 커맨드 라인 (2) (2021.2.28) (0) | 2021.02.28 |
[생활코딩]POSIX CLI 1 (2020.12.2) (0) | 2020.12.05 |