터미널이란 텍스트를 통해 내 기기와 상호작용할 수 있는 텍스트 기반의 프롬프트를 지칭한다.
프롬프트(prompt)는 컴퓨터 터미널 또는 터미널 에뮬레이터의 CLI(커맨드 라인 인터페이스)의 명령줄 대기모드를 가리킨다.
터미널을 사용하는 이유?
명령어 한 줄 타이핑해서 한번에 대여섯개씩 명령어를 실행할 수 있다.
마우스로 클릭하고 드래그하는 것보다 훨씬 빠르다
컴퓨터에 대한 모든 액세스 권한이 제공됨. 보통 접근이 금지된 설정이나 소프트웨어, 운영체제 부분 같은 것에 대한 액세스 권한 등이 접근가능.
중대한 변경 사항을 반영하거나 권한을 바꿀 수 있는 등.
숨겨진 파일같은 것이 일반적인 그래픽 인터페이스에서는 보이지 않는 것들이 터미널에서는 보인다.
터미널을 열어서 탐색하고 명령어를 쓸 수 있어야 한다.
쉘은 터미널에서 실행되는 소프트웨어가 있는 프로그램.
널리 쓰이는 Shell인 Bash, Z Shell가 있다. zsh라고 뜨면 Z Shell이다.
Z Shell이 조금 더 최신이라서 Bash엔 없는 기능들이 있다.
Bash는 Mac의 표준. 서로 바꿔 쓸 수 있다.
터미널에서 새 창을 만들때 홈 디렉토리라는 위치가 자동으로 나타난다.
홈 디렉토리는 사용자 계정 디렉토리다.
컴퓨터에 계정이 5개라면 각각 고유한 홈 디렉토리를 가진다.
LS는 List라는 의미. 터미널에 입력할때마다 현재 있는 디렉토리의 콘텐츠를 나열한다.
홈 디렉토리의 기호는 ~ 물결표. 어느 위치에서든지 ~를 입력하고 엔터 누르면 홈 디렉토리로 이동한다.
print working directory의 약자. 현재 위치를 알려주는 것. 나침반 같은거다.
change directory 라는 뜻
앞으로 혹은 뒤로 움직일 수 있다.
cd와 디렉토리를 입력하면 거기로 이동한다.
예를 들어 ls를 입력했을때 movie 디렉토리가 보이면
cd movie //movie 디렉토리로 이동
다 입력할 필요없이 앞에 조금 치고 탭을 누르면 완성된다.
cd .. //뒤로가기
경로란 특정 파일이나 리소스로의 경로를 뜻한다.
상대 경로는 현재 위치에서 cd .. 로 뒤로가든지 cd 디렉토리로 로 앞으로 가든지 할때의 경로.
절대경로란 / 슬래시를 이용해서 현재 위치가 어디이든지 상관없이 컴퓨터의 디렉토리로 들어가는 것.
cd /
이건 루트 디렉토리다. 가장 위의 디렉토리.
cd /Users/kk
이렇게 절대경로로 이동 할 수 있다. 절대경로는 루트 디렉토리 / (슬래시)로 시작한다.
현재 위치가 어디이든지 상관없이 특정 위치로 이동할 수 있다.
콘솔을 지운다. 커맨드+K
make directory의 약자. 새 폴더를 생성.
mkdir Dwarf
Dwarf라는 디렉토리를 생성
mkdir Dwarf Goat
Dwarf와 Goat라는 디렉토리 두개를 한번에 생성.
현재 위치가 아닌 다른 위치에서 만드는것도 가능하다.
mkdir ../Frog
현재 위치의 상위 폴더에 Frog 디렉토리를 생성.
mkdir Frog/TreeFrog Sugar
서로 각기 다른 위치의 여러개를 한번에 만들수도 있다.
Frog폴더 안에 TreeFrog를 만들고, 현재 위치에서 Sugar폴더를 만든다.
메뉴얼의 의미한다.
man ls
ls를 실행하는 것이 ls에 대한 man 페이지가 뜬다.
-대시부호가 붙은 리스트들이 보인다. -a, -b 같은 것들.
ls를 어떻게 작동시킬지 정하는 다양한 플래그들이다.
순서를 반대로 하거나 -r, 파일의 크기에 따라 정렬 -S
파일마다 더 많은 정보를 나열 -l
숨겨진 파일까지 출력 -a
두개를 결합할수도 있다.
ls -la
숨겨진 파일까지 더 많은 정보를 나열.
파일을 생성. 확장자도 적어주어야 한다.
touch bob.html
bob.html 파일을 생성.
touch app.js index.html app.css
app.js와 index.html과 app.css 를 한번에 생성.
터치는 원래 파일 생성이 아니라 주된 목적은 파일의 수정 시간과 접근 시간을 바꾸는 것이다. 파일이 없으면 디폴트 권한을 가진 새로운 파일을 생성하는 것임.
제거.
하나 혹은 여러 개의 파일을 제거한다.
주의할 점은 컴퓨터 휴지통으로 가는게 아니라 그냥 한방에 사라진다.
조심해야함.
rm app.js
app.js를 지운다.
rm app.css index.html
app.css와 index.html을 한번에 지운다.
파일은 지워지지만 디렉토리를 지우려면 rm이 아니라 rmdir로 한다.
rmdir newProject
newProject 디렉토리를 지움. 그러나 rmdir는 빈 폴더만 지울 수 있다.
무언가 들어있는 폴더에 rmdir를 하면 Directory not empty로 뜬다.
이럴땐 플래그를 쓴다.
-r 반복
-f 강행
rm -rf
반복된다는 것은 중첩된 폴더를 모두 삭제. 한단계 하위 폴더에서 그치지 않는다.
강행한다는 뜻은 다시 묻지 않고 곧바로 작업한다는 듯.