CLI (Command Line Interface)
텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식. 작업 명령은 사용자가 컴퓨터 키보드 등을 통해 문자열의 형태로 입력하며, 컴퓨터로부터의 출력 역시 문자열의 형태로 주어진다.
- Terminal : 텍스트 입출력 환경. CLI 를 제공하는 프로그램이다. 명령을 처리하고 결과를 출력할 수 없다. (비유: TV 화면)
- Shell : command interpreter. CLI 명령을 해석 및 처리하고 결과를 출력하는 프로그램. (비유: TV 화면에서 실행 중인 프로그램)

Help Command Line
1. command help : <command> -h 또는 <command> --help
2. 메뉴얼 페이지 : man [section] command
Arch manual pages
man.archlinux.org — manual pages from Arch Linux packages This website is a repository of all manual pages available in the Arch Linux packages. There are 75104 manual pages and 8209 symbolic links from 3683 packages, another 10872 packages do not contai
man.archlinux.org
3. 설명 : whatis <command>
4. 정보 : info <command>
[info 에서 단축키]
q - 종료
n - 다음 노드
p - 이전 노드
u - 부모 노드
l - 들렸던 마지막 노드
b - 노드 시작
e - 노드 끝
t - 노드 맨위
Enter - 래퍼런스
Down - 한줄 밑에
Up - 한줄 위에
Space, Page Down - 스크린 하나 페이지 다운
Backspace, Page Up - 스크린 하나 페이지 업
Tab - 다음 래퍼런스로 이동
s - 찾기
? - 커맨드 요약 리스트
< Shell Environment >
Shell 종류
- Bash
- C shell (csh)
- Korn shell (ksh)
- Z shell (zsh)
대부분 bash, zsh를 많이 사용한다. zsh는 bash의 동일한 쉘을 기반으로 추가 기능을 제공한다.
Shell 환경
- variables
- functions
- aliases
Login Shell VS Non-login Shell
- login shell 실행 단계
1) /etc/profile
2) /etc/profile.d/*.sh
3) /etc/profile.local
4) ~/.profile
5) /etc/bash.bashrc
6) /etc/bash_completion.d/*.sh
7) /etc/bash.bashrc.local
8) /etc/inputrc
9) ~/.bashrc
10) ~/.alias
- Non-login shell 실행 단계
1) /etc/bash.bashrc
2) /etc/bash_completion.d/*.sh
3) /etc/bash.bashrc.local
4) /etc/inputrc
5) ~/.bashrc
6) ~/.alias
Shell alias
- 정의 : alias ALIAS_NAME="COMAND"
- 삭제 : unalias ALIAS_NAME
- 리스트업 모든 별칭 : alias
- 별칭 정의 파일 : ~/.alias
Shell history
- command history : ~/.bash_history
- view history : history
- scroll : 화살표
- search <string>로 시작 : <string> + <PgUP>/<PgDown>
- <string> 찾기 : Ctrl+R 이후 실행은 Enter 키. 변경은 Tab 키.
- 재실행 : !<command-number>
(+)Tips: Amazon linux 는 history timestamp 가 없는데 bashrc 에서 따로 포맷 적어주면 됨.
Tab Auto-completion
한번 탭치면 자동 완성, 두번 탭치면 매치할 수 있는 명령어 나옴.
Escape Characters
\ : \ 이후 다음 문자를 특수처리함. ex) mkdir new\ directory 여기서 \가 공백 문자를 이스케이프 처리하여 new directory를 두개의 인자로 분리하지 않고 하나의 폴더 이름으로 인식하도록 함.
"" : 문자열을 묶어주며 특수문자의 기능을 허용한다. 예를 들어 $로 시작하는 변수를 포함할 경우 해당 문자열 안에서도 그대로 동작하게 함.
ex) name=jeongeun 이라면 echo "$name" 으로 했을 때 결과는 jeongeun
'' : 문자열을 그대로 묶어주며, 내부에 있는 모든 문자를 문자 그대로 처리한다. 변수나 특수 문자의 기능도 허용되지 않는다.
ex) name=jeongeun 이라면 echo "$name" 으로 했을 때 결과는 $name 으로 그래도 출력됨.
Variables
- echo $변수명: 현재 세션에 설정된 변수값 출력
- set : 현재 세션에 설정된 환경변수와 셸 변수 모두 출력
- env : 현재 셀 환경에서 정의된 모든 환경변수 출력
(+) 터미널에서 설정한 변수는 그 세션 동안에만 유효하고 로그아웃하면 사라짐. 영구적으로 변수 설정하려면 ~/.bashrc 등의 설정 파일에 추가하면 로그인할 때마다 해당 변수가 자동으로 설정된다.
< Vim Editor >
Main mode (3가지)
1) Command Mode
2) Insert Mode
- insert : i(insert), a(append), o(open new line)
3) Command Line Mode
- command mode로 갈 때 <esc> :
- -Command Mode(명령 모드)에서 Cursor Keystrokes
- k OR UpArrow : 커서 위 라인으로 한 칸 이동
- j OR DownArrow : 커서 아래 라인으로 한 칸 이동
- h OR LeftArrow : 커서 왼쪽 문자로 한 칸 이동
- l OR RightArrow : 커서 오른쪽 문자로 한 칸 이동
- Insert Mode(입력 모드)
Insert
- i 또는 Insert : 현재 커서 위치부터 입력
- I : 현재 커서 줄의 맨 앞에서 부터 입력
- a : 현재 커서 위치 다음 칸 부터 입력
- A : 현재 커서 있는 줄의 마지막부터 입력
- o / O : 커서의 (아래 행/위 행) 라인 추가
- s / S : 커서 위치의 (한 글자/한 줄) 지우고 입력
Delete
- x OR Delete : 문자 삭제
- dd : 문장 삭제
Copy/Paste
- yy : 커서가 위치한 줄 복사
- p / P : 붙여넣기 (행 위/행 아래)
Undo/Redo
- u : 이전 명령 취소 (되돌리기)
- Ctrl + r : 되돌리기 취소
Search
- /XXX : XXX에 대해 아래로 검색
- ?XXX : XXX에 대해 위로 검색
- n / N : 문자열의 (다음/이전)으로 계속 검색
- :%s/[대상문자열]/[바꿀 문자열]/g : 파일 전체에서 모든 대상 문자열을 바꿀문자열로 치환
Save/Open
- ZZ OR :w : 파일 저장
- :q / :q! : 변경내용을 저장하지 않고 종료
- :w <file> : <file>이란 새로운 파일로 저장
- :o <file> : <file> 이름의 파일 열기
Other
- G : 파일 제일 위로 이동
Vimdiff
- vimdiff <파일1> <파일2> : 파일1, 파일2 분할화면
-> Vim 은 윈도우에서 기본 제공을 하지 않기 때문에 따로 설치를 해야한다.
Vim window는 리눅스랑 살짝 다르다.
'OS' 카테고리의 다른 글
[ Linux ] Remote SSH (0) | 2024.11.12 |
---|---|
[ Linux ] FHS - 파일시스템 계층 구조 표준 (0) | 2024.11.10 |
[ Linux ] Boot Process - BIOS VS UEFI (1) | 2024.11.09 |
[ Storage ] DAS NAS SAN (0) | 2024.11.08 |
[ Linux ] 로그 아키텍처 (Log Architecture) (4) | 2024.11.06 |