커맨드를 통해 컴퓨터에게 명령어를 주는 방식을 Command Line(CLI)라고 합니다.
CLI는 언제 사용하나요?
- 웹 개발 환경 설정과 서버 실행
- 라이브러리 다운로드 및 설치
- 협업 시 코드 관리
유닉스 - 1970년대 초반에 개발된 운영 체제
유닉스 운영 체제 (UNIX에서 파생된 운영체제들을 가리킨다 _ Linux, Window, macOS ...)
유닉스 커맨드 - 유닉스 운영 체제에서 쓸 수 있는 명령어
핵심 10~20개 정도 알아보자!
WSL 이란?
=> Windows Subsystem for Linux
윈도우에서 리눅스 명령을 사용할 수 있게 해 주는 것
그리고 나서 우분투(ubuntu)를 ms store에서 다운 받고 초기 설정하자 ~
짜짠...! 골치 아프게 하네... 맥북 꼭 산다...
다음 단계로 가상 머신 (virtual box) 설치하자!
다음, 가상 머신 생성 + 우분투 설치하기
터미널은 인풋을 받고, 아웃풋을 출력해 주는 프로그램을 뜻합니다.
터미널에 date
커맨드를 입력하니까 현재 시간이 출력됐고, cal
커맨드를 입력하니까 이번 달 달력이 출력된다.
커멘트에는 argument나 option을 줘서 커맨드 조건을 추가할 수 있다.
터미널 꿀팁
- 방향키 (위 방향키)
- 커서 이동 단축키 (ctrl + a, ctrl + e, alt + 방향키(좌우))
- 입력 취소 (Ctrl + c)
- 터미널 내용 지우기 (clear)
- 커맨드 or argument 자동 완성(tap)
유닉스 디렉토리 구조에 대해 알아보자.
디렉토리나 폴더의 위치를 문자열로 표기할 줄 알아야 한다.
현재 위치해 있는 디렉토리를 Working directory라고 합니다.
워킹 디렉토리를 확인하기 위해서는 pwd
을 입력하면 된다.
pwd - print working directory
다른 디렉토리를 이동하기 위해서 cd
를 이용하면 된다.
ex. cd / cd ~ / cd /codeit / cd -
cd - change directory
디렉토리의 내용물을 리스트해서 알 수 있다.
알고 싶은 디렉토리에 가서 ls
를 입력하면 그 디렉토리의 내용물들을 알 수 있다.
ls -a
를 하면 모든 리스트를 알 수 있다.
ls -l
를 하면 파일과 디렉토리의 자세한 정보를 알 수 있다 (long format)
절대 경로
루트 디렉토리를 기준으로 어떤 파일이나 디렉토리의 고유한 경로를 표시하는 것
상대 경로
워킹 디렉토리를 기준으로 어떤 파일이나 디렉토리의 고유한 경로를 표시하는 것
- 현재 디렉토리를
.
으로 표시한다. - ./react/main- 상위 디렉토리를
..
으로 표시한다. - ../../../Documents
(주의 사항)
공백이 있는 문자는 1) 작은 따옴표 2) 큰 따옴표 3) 역슬래시를 사용한다.
폴더 만들기 - mkdir
파일 만들기 - touch
ex)
mkdir ~/unix_practice
cd unix_practice
mkdir reports // unix_practice에서 reports라는 폴더 만들기
cd reports
mkdir Sep
ls // 폴더 안에 확인하기
cd Sep
touch finances.txt performance.txt // Sep라는 폴더에서 파일 두 개 만들기
cd .. // 상위 폴더로 이동
mkdir Aug Oct
touch Aug/finance.txt Aug/performance.txt
cd Aug
ls // finances.txt performance.txt 이렇게 파일 있다고 뜸
Vim의 4가지 사용 모드
모드 전환 키는 이미지 안을 살펴보면 알 수 있다.
i
를 눌러 입력 모드로 전환한다.
V - 줄 단위
v - 글자
y - 복사하기
p - 붙여넣기
d - 잘라내기
<쉬운 방법>
yy - 복사하기
dd - 잘라내기
:w hello_world.txt
(초반 저장하기_파일 이름 작성)
:w
- 저장하기
:q
- 빠져나가기
:q!
- 변경사항 저장하지 않고 나가기
:wq
- vim으로 작성한 내용을 저장 동시에 vim을 종료
cat
- 파일 내용을 한꺼번에 보기 (concatenate - 이어붙이다)
less
- 파일 내용을 페이지 단위로 보기
head
- 파일 내용의 첫 부분 10줄 보기
tail
- 파일 내용의 끝 부분 10줄 보기
응용)
head -n 5 파일명
- 파일 처음 5줄 보기
less dont_stop_me_now.txt
- 파일을 페이지 단위로 보기
head -n 15 dont_stop_me_now.txt
- 파일을 처음 15줄 보기
mv path1 path2
- 파일과 디렉토리 옮기기, 이름 변경하기
ex)
그럼 이미 존재하는 파일명으로 변경하려고 시도하면?
다시 꺼내오려면 ?
-> mv Obj .
mv를 사용할 때 주의할 점
폴더 내에 변경하려고 하는 이름과 같은 파일이 있다면 덮어쓰기할 가능성이 있다.
해결책
-> -i
라는 옵션을 추가하면 덮어쓸지 확인하는 과정을 가질 수 있다.
cp path1 path2
- path1(대상)을 path2(위치)에 복사하고 붙여넣기
(= cp [-ri] SOURCE_PATH DEST_PATH
)
ex)
cp 주의점
해결책
-> -i
라는 옵션을 추가하면 덮어쓸지 확인하는 과정을 가질 수 있다.
디렉토리를 복붙할 때?
-> r 옵션을 붙여야 한다.
cp -r path1 path2
r: 재귀적 (recursive)
ex)
rm path1
디렉토리를 삭제하려면 -r
옵션을 사용해야 한다.
파일 지울지 물어보지 않고 바로 지우기 위해서 -f
옵션을 사용한다.
$ apt update (관리자 권한으로 해야 오류가 안 뜸)
$ sudo apt update (sudo
- 관리자 권한을 일시적으로 얻기 위해 사용) (그리고 패스워드를 누르면 된다. 별표시 안뜬다 - 유의)
$ sudo apt install + (설치할 대상)
$ sudo apt remove + (제거할 대상)
구글에 homebrew 입력하고 들어가서 터미널에 입력할 명령어 복붙하기
brew help (설치되었는지 확인)
brew install + (설치할 대상)
brew uninstall + (제거할 대상)
유닉스 운영 체제에서 특정 작업을 하려면 관리자 권한이 필요할 때가 있습니다. 특히 설치 관련 작업을 할 때 필요한 경우가 많습니다. 보통 컴퓨터에서 사용하는 계정은 일반 계정이기 때문에 관리자 권한이 없습니다.
그래서 관리자 권한이 필요한 커맨드를 실행하려고 하면 권한 오류가 납니다. 하지만,
sudo
을 사용하여 잠시 관리자 권한을 획득할 수 있습니다.
WSL
을 사용하면 듀얼 부팅이나 가상 머신을 사용하는 것보다 더 가볍게 리눅스 환경을 이용할 수 있다. 그리고 바로 윈도우에 있는 파일에 쉽게 접근할 수 있다.
듀얼 부팅이나 가상 머신을 사용하면 별도의 리눅스 환경이 생성되기 때문에 리눅스를 사용할 때는 윈도우에 있는 파일에 접근하기 어렵다.
WSL
은 윈도우 안에 존재하는 '하위 시스템'이기 때문에 윈도우 파일에 쉽게 접근할 수 있다.
윈도우 파일을 접근하려면?
윈도우 파일은
/mnt/c
경로에 있다./mnt/c
가 윈도우의C: 드라이브
이다.
사용자의 홈 디렉토리로 가기
ex) /mnt/c/Users/matthewSong
C: 드라이브의 Users 디렉토리 뒤에 사용자의 이름을 붙이면 된다.
일단 윈도우 파일은 /mnt/c 안에 있다는 사실 기억하면 좋을 것 같다
파워셀이란 윈도우 전용 커맨드라인 툴이다. 보통 시스템 관리, 자동화, 개발 등에 사용이 된다.
PowerShell vs cmd
cmd도 PowerShell과 같이 윈도우 전용 커맨드라인 툴입니다.
하지만 PowerShell에 비해 기능이 적고 cmd에서 할 수 있는 모든 건 PowerShell에서도 할 수 있다.
간단한 작업을 할 때는 cmd를 써도 되지만, PowerShell이 더 복잡한 것도 아니니까 그냥 PowerShell을 쓰는게 무방하다.
PowerShell을 사용해보자!
unix와 PowerShell의 차이점 알아보기
만약 파일을 덮어쓰고 싶다면 -Force 옵션을 사용하면 된다.