[강의] CSS/Unix/Git_실용적 유닉스 커맨드1
유닉스 커맨드 시작하기
유닉스 커맨드란?
- command: 명령어
- Command Line Interface / Command Line(CLI환경): 커맨드를 통해 컴퓨터를 사용하는 방식
- Graphical User Interface(GUI환경): 화면과 마우스를 통해 컴퓨터를 사용하는 방식
- 유닉스 (Unix): 1970년대 초반에 개발된 운영 체제
소프트웨어를 개발하고 실행할 수 있는 편리한 플랫폼
유명한 운영체제들 중 윈도우를 제외한 대부분이 유닉스에서 파생됐고 이를 묶어서 유닉스 운영 체제 라고 부름
따라서 유닉스 커맨드가 보편적으로 사용됨
터미널 사용해 보기
haeun@DESKTOP-1N7RI0E:~$
:프롬프트
haeun 사용자가 DESKTOP-1N7RI0E 컴퓨터에 로그인되어 있다는 뜻
~
: 내가 현재 위치해 있는 폴더로 물결 기호느 사용자의 홈 폴더
$
or%
: 프롬프트의 끝을 알리는 기호
프롬프트가 보인다는 건 커맨드를 입력받을 준비가 됐다는 것
터미널? shell? bash?
- 터미널: 인풋을 받고, 아웃풋을 출력해 주는 프로그램
우리가 보통 생각하는 커맨드를 입력하는 '검은 화면'
- shell: 커맨드를 해석해 주는 프로그램
컴퓨터는 date
나 cal
같은 커맨드를 이해하지 못하며 컴퓨터가 이해할 수 있는 형태로 바꿔줘야함
shell에는 여러 종류가 있는 데 그 중 하나가 bash(Bourne again shell)와 zsh(Z shell)임
bash가 가장 보편적임
커맨드의 기본 형태
커맨드 옵션 아규먼트
- 인자 (argument): 커맨드의 대상
- 옵션: 커맨드가 실행되는 방식을 바꿀 수 있음(
-
+알파벳)
커맨드 매뉴얼: man
[]
: 선택해서 쓸 수 있는 부분
-
: -
가 붙은건 옵션이고 아닌거 아규먼트임 / 아규먼트를 받는 옵션도 있음
터미널 사용 꿀팁
위쪽 방향키
: 이전에 실행했던 커맨드 입력
Ctrl + A
: 커맨드 줄 가장 앞부분으로 커서 이동
Ctrl + E
: 커맨드 줄 가장 뒷부분으로 커서 이동
Alt + 좌우방향키
: 단어 단위로 커서 이동
- `Ctrl + C: 실행 취소
cleat
커맨드: 터미널 내용 지움 / 커맨드 히스토리는 남아 있음
Tab
: 커맨드나 아규먼트 자동 완성
디렉토리와 파일 다루기
유닉스 폴더 구조와 파일 경로
- 유닉스의 디렉토리 구조: root 파일에서 시작하는 거꾸로된 나무와 같은 구조
- 사용자의 홈 디렉토리: 사용자의 개인 파일들이 들어 있음
컴퓨터에 일반적으로 필요한 파일들은 홈 디렉토리 바깥에 있음
- 파일경로: 디렉토리나 폴더의 위치를 문자열로 표기한 것
- 루트부터 해당 파일 까지의 디렉토리를 한 줄로 써줌
- 디렉토리 안으로 들어갈 때는
/
를 써주면 됨
- 이 때 루트는
/
로 퉁칠 수 있음
- haeun 디렉토리의 경로 예시:
/home/haeun
- 현재 로그인된 사용자의 홈디렉토리는
~
로 표시할 수 있음
즉, haeun 사용자의 경우 ~
= home/haeun
~/Documents/Projects
처럼 줄여쓰는 데 사용할 수 있음
디렉토리와 파일 둘러보기: pwd
, cd
, ls
- 워킹 디렉토리 = 현재 디렉토리
pwd
(print working directory): 현재 디렉토리의 경로
cd
(Change Directory): 다른 디렉토리로 이동
- 가고자 하는 디렉토리의 경로를 인자로 받음
- 예외적으로 홈디렉토리로 오고 싶을 때는 아무 아규먼트도 안 줘도 됨
- cd -
:이전에 있던 디렉토리로 감
ls
(list): 디렉토리의 내용물을 리스트해서 보여줌
- 경로를 인자로 주면 해당 인자의 내용물을 리스트 해줌
절대 경로와 상대 경로
- 절대 경로: 루트 디렉토리를 기준으로 어떤 파일이나 디렉토리의 고유한 경로를 표시하는 것
경로가 길어질수록 불편하다는 문제가 있음
- 상대 경로: 워킹 디렉토리를 기준으로 경로를 나타내는 것
.
: 현재 디렉토리
./Documents/PycharmProjects
..
: 상위 디렉토리
./
를 생략할 수 있음: 경로가 루트 /
로 시작하지 않으면 자동으로 상대 경로로 인식하기 때문
파일이나 디렉토리 이름에 공백이 있을 경우
- 파일이나 디렉토리 이름에는 공백을 안 사용하는게 더 바람직함 (대신
_
사용하기)
''
, ""
, \
이용하기
cd hello\ world
ls의 중요한 옵션들
a
옵션: 모든 파일과 디렉토리를 보여줌
- 유닉스 파일 시스템에는 숨겨진 파일들이 있음 (이름이
.
으로 시작함)
- 주로 사용자 설정을 정장하고 있는 파일이나 컴퓨터가 자동으로 생성하는 파일들이 숨겨짐
ㅣ
옵션: long format으로 추가 정보를 볼 수 있음
루트(Root) 디렉토리 안에는 어떤 것들이 있을까?
/bin
: binaries의 약자로 binary는 간단히 말해서 컴퓨터가 실행할 수 있는 프로그램을 뜻함
- 커맨드도 프로그램이라고 할 수 있으며 커맨드를 입력하면 커맨드에 해당하는 프로그램이 실행되는 것임
- 그 프로그램의 일부가
/bin
디렉토리 안에 있음
읽어 보기
디렉토리와 파일 만들기: mkdir
, touch
mkdir dir1 dir2
: 디렉토리 dir1
과 dir2
를 만드는 명령어
touch
: 파일의 마지막 접근 시간이나 수정 시간을 업데이트 하는 커맨드
touch file1 file2
: 파일 file1
과 file2
를 만드는 명령어
CLI 텍스트 에디터 vim
- CLI 전용 텍스트 에디터들 중 하나
- Vim의 4가지 사용 모드
- 일반 모드(Normal Mode)
- 입력 모드(Insert Mode)
- 비주얼 모드(Visual Mode)
- 명령 모드(Command Mode)
vim으로 파일 작성하기
파일 내용 살펴보기: cat, less, head, tail
cat PATH1 PATH2 ...
: 경로에 해당하는 파일들의 내용을 출력하며 파일이 여러 개인 경우 내용을 모두 붙여서 출력함
concatenate는 이어붙이다 라는 뜻
less PATH
: PATH에 해당하는 파일을 페이지 단위로 나눠서 보여줌
- 단축키:
줄 이동: 위쪽 / 아래쪽 방향키
다음 페이지: space 아니면 f
이전 페이지: b
마지막 페이지: G
처음 페이지: g
head [-n count] PATH
: PATH에 해당하는 파일의 처음 10줄을 출력함
n 옵션: 출력되는 줄 개수를 바꿈
tail [-n count] PATH
: PATH에 해당하는 파일의 마지막 10줄을 출력함
n 옵션: 출력되는 줄 개수를 바꿈
디렉토리와 파일 옮기기, 이름 변경하기: mv
mv [-i] SOURCE_PATH DEST_PATH
: 디렉토리/파일을 이동하거나 이름을 변경함
- 두 번째 아규먼트(DEST_PATH) 가 이미 존재하는 디렉토리의 경로일 경우 SOURCE_PATH에 해당하는 디렉토리/파일을 그 안으로 이동함
- 그렇지 않으면 DEST_PATH로 이름 변경함
- i 옵션: 이동/이름 변경을 할 때 똑같은 이름의 디렉토리/파일이 있으면 덮어씌워지는데, 확인을 하면서 mv를 하려면 i 옵션을 사용하면 됨
디렉토리와 파일 복사 붙여넣기: cp
cp [-ri] SOURCE_PATH DEST_PATH
: 디렉토리/파일을 복사함
- 두 번째 아규먼트(DEST_PATH) 가 이미 존재하는 디렉토리의 경로일 경우 SOURCE_PATH에 해당하는 디렉토리/파일을 그 안으로 복사함
- 그렇지 않으면 DEST_PATH라는 이름으로 복사함
- r 옵션: 디렉토리를 복사할 때는 꼭 r 옵션을 써야 함
- i 옵션: 복사할 때 똑같은 이름의 파일이 있으면 덮어씌워지는데 확인을 하면서 cp를 하려면 i 옵션을 사용하면 됨
디렉토리와 파일 삭제하기: rm
rm [-rif] PATH1 PATH2 ...
: 경로에 해당하는 파일/디렉토리들을 지워줌
- r 옵션: 디렉토리를 삭제할 때는 꼭 r 옵션을 써야 함
- i 옵션: 복사할 때 각 파일을 정말 지울 것인지 물어봄
- f 옵션: 지울 것인지 절대 확인하지 않고 바로 지움