Command Line Interface
: command 를 통해 컴퓨터를 사용하는 방식
Graphical User Interface
: 화면과 마우스를 통해 컴퓨터를 사용하는 방식
command 방식의 기본 커맨드 = unix command
Terminal 커맨드를 입력하는 검은 창, 인풋을 받고 아웃풋을 출력하는 창
Prompt 프롬프트가 보인다면, 명령을 입력받을 준비가 되어 있다는 것!
yewon@Macbook-Pro ~ %
/* 사용자.컴퓨터.내가 위치한 폴더.프롬프트의 끝을 알리는 기호 */
shell 커맨드를 해석해주는 프로그램,
terminal 에서 출력된 값을 컴퓨터가 이해할 수 있는 형태로 바꿔줌
bash (Bourne again shell) shell 의 종류 중 하나, 가장 보편적임
man 커맨드 매뉴얼, argument 로 커맨드를 넣으면 됨
date 현재 날짜와 시간을 출력
cal 이번 달 달력을 출력
cal -option argument
ex) cal -j 10 2020 = 2020년 10월의 1월 1일부터의 날짜수를 출력해줘
month와 year은 argument 또는 인자
커맨드가 실행되는 방식을 바꿀 수 있는 option
위쪽 방향키 이전에 실행했던 커맨드가 입력됨
ctrl + A 커서를 맨 앞 커맨드로 이동
ctrl + E 커서를 맨 뒤 커맨드로 이동
option + 왼쪽 방향키 이전 단어로 커서 이동
option + 오른쪽 방향키 다음 단어로 커서 이동
ctrl + C 실행하고 있는 작업을 취소
clear 커맨드, 화면이 깨끗해짐 but 히스토리는 남아있음
tab 지금 작성하고 있는 커맨드나 아규먼트를 자동 완성
root (최상위 디렉토리) - 상위/부모 디렉토리 - 하위/자식 디렉토리
사용자의 홈 디렉토리 (각종 문서, 바탕화면 파일, 다운로드 파일)
*Linux는 Home, Mac OS는 Users
~현재 사용자의 홈 디렉토리
ex) /home/yewon = ~
pwd 현재 위치에 있는 디렉토리의 경로, Print Working Directory
cd 다른 디렉토리로 이동, Change Directory, Argument로 파일 경로 입력
cd - 이전 디렉토리로 이동
ls 디렉토리의 내용물을 쭉 리스트로 나열, list,
Argument로 파일 경로를 입력하면 그에 대한 디렉토리의 내용물을 리스트로 나열
: 모든 파일과 디렉토리를 보여줌
: 디테일한 파일 정보를 보여줌
<total> 디렉토리의 내용물이 차지하고 있는 공간
첫 칼럼의 첫 글자는 파일 종류 를 의미
ex) d = 디렉토리 - = 일반 파일
첫 칼럼의 나머지 글자는 권한 관련 내용
두번째 칼럼의 숫자는 이 파일과 연결된 링크의 개수
세번째 칼럼은 파일의 소유자
네번째 칼럼은 소유자가 속한 그룹
다섯번째 칼럼은 파일의 용량 (byte)
디렉토리의 경우 이 숫자에 큰 의미x
여섯번째 칼럼은 파일의 마지막 수정 날짜와 시간
마지막 칼럼은 파일 이름
파일 경로
디렉토리나 폴더의 위치를 문자열로 나타낸 것
파일, 디렉토리의 이름에 공백이 있을 경우
'', "", \ 사용
but 애초에 공백을 사용하지 않는게 가장 바람직함.
ex) hello world (x) hello_world (o)
루트 디렉토리를 기준으로 어떤 파일이나 디렉토리의 고유한 경로를 표시
경로가 길어질 수록 불편함
현재 자신이 위치해있는 디렉토리(working directory)를 기준으로 경로를 표시
현재 디렉토리는 . 으로 표시
상위 디렉토리는 .. 으로 표시
: binaries 의 약자, 컴퓨터가 실행할 수 있는 프로그램
: 관리자 전용 프로그램
: 컴퓨터 설정 파일, 각종 프로그램의 설정 파일과 관리자 권한 설정 파일
: 사용자들의 홈 디렉토리, 사용자의 모든 파일이 저장된 곳
: 사용자에게 필요한 파일이 저장된 곳,
ex) usr/local = 사용자가 직접 설치한 프로그램 파일
/bin VS /user/bin
전자는 컴퓨터가 시작하거나 자신을 수리하기 위한 커맨드
후자는 컴퓨터가 필요로 하기보단 사용자가 필요한 커맨드
mkdir 디렉토리 만들기, Argument로 경로 입력
touch 파일 만들기, Argument로 경로 입력
GUI 환경에서는 Microsoft word나 VS Code, 메모장에서 내용을 작성한다.
그렇다면, CLI 환경에서는 어떻게 작성할까?
바로 VIM 이라는 텍스트 에디터를 사용한다!
vim 커맨드를 사용하여 vim 을 실행해보자
esc)커서 이동, 텍스트 붙여넣기, 작업 취소
i)텍스트 입력
yy : 복사
dd : 잘라내기
p : 커서 아랫줄에 붙여넣기
v/V)텍스트 블록 지정, 텍스트 복사
v : 글자 단위
V : 줄 단위
y : 복사
p : 커서 아랫줄에 붙여넣기
d : 잘라내기
:)내용 저장, vim 종료
w 파일이름 + enter : 파일을 지정한 파일이름으로 저장
q + enter : 빔 종료
wq + enter : 저장함과 동시에 종료
q! + enter : 변경사항을 저장하지 않고 종료
: concatenate의 약자로 이어붙인다는 뜻
파일 내용을 한꺼번에 출력
파일 내용을 페이지 단위로 나눠서 출력
g : 처음 페이지로 이동
G : 마지막 페이지로 이동
q 를 눌러 종료
파일의 첫 10줄 출력
파일의 마지막 10줄 출력
_n옵션__
줄의 개수(argument) 변경 가능
yewon@MacBook-Pro ~ % head -n 5 memo.txt
/* memo.txt 파일의 첫 5줄 출력 */
mv path1 path2
/* 작업할 대상의 경로 . 이동할 목적지 또는 변경할 이름 */
i 옵션 (interactive)
덮어쓰기 충돌이 일어나는 것을 방지!
: copy
cp path1 path2
/* 복사할 대상의 경로 . 복사할 위치 (path2 이름을 가진 파일, 디렉토리 생성) */
i 옵션 (interactive)
덮어쓰기 충돌이 일어나는 것을 방지!
r 옵션 (recursive)
디렉토리를 복사할 때 사용, 자식 디렉토리도 같이 복사됨!
: remove
rm path path2 path3 ..
/* 삭제할 파일이나 디렉토리 경로 (여러개 가능)
r 옵션 (recursive)
디렉토리를 삭제할 때 사용
i 옵션 (interactive)
삭제할 때 한번 더 확인하는 메세지 출력
f 옵션
어떤 상황이라도 삭제
** -rf로 많이 사용