강의 소개 : 영화에서 해커가 까만 화면에 코드를 입력하면 복잡한 글자가 막 나오는 장면, 한번쯤 본 적 있으시죠? 이렇게 입력한 코드를 커맨드라고 하는데요. 커맨드를 사용하면 키보드만 가지고 컴퓨터에 다양한 명령을 내릴 수 있습니다. 이번 토픽에서는 가장 기본적인 '유닉스 커맨드'의 사용법을 핵심만 추려서 소개해 드릴게요.
CLI 환경
: 커맨드를 입력해서 컴퓨터를 사용하는 환경 (Command Line Interface 환경)
유닉스
: 소프트웨어를 개발하고 실행할 수 있는 편리한 플랫폼
macOS
: UNIX 운영 체제이므로 따로 준비할 것 없음Windows
: WSL, Ubuntu 같은 유닉스 계열 운영 체제 설치하여 이용
PowerShell
: 시스템 관리, 자동화, 개발 등 다양한 작업과 기본 유닉스 커맨드를 지원한다.cmd (명령 프롬프트)
: powershell에 비해 기능이 적다.# 도움말 업데이트 #
# 1. powershell 관리자로 실행
# 2. Udate-Help 입력 후 엔터
Udate-Help
# powershell 사용하기 #
# 1. powershell 일반 사용자로 실행
# 2. 유닉스 커맨드 사용
man [-Full] path # -Full : 자세한 정보 확인
ls # ls -al 처럼 보임
&null > filename # touch 대신 사용
cat path # 아규먼트 1개만 가능
mv # default : 덮어쓰기 오류 (해결 : -Force 옵션)
cp # default : 덮어쓰기 오류 (해결 : -Force 옵션), 복사 시 -Recurse 옵션 사용
rm # 폴더 삭제 시 -Recurse 옵션 사용 (선택)
그 외 pwd, cd, mkdir, mv, date, clear, ..
# 차이점
경로 : / 대신 \
옵션 : 보통 한 글자가 아닌 전체 단어
# 3. cmdlet command
Action-Object 형태
IDE (통합 개발 환경) 안에서 코드 작성과 커맨드 실행 동시 가능
Windows Subsystem for Linux (리눅스용 윈도우 하위 시스템) : 리눅스 커맨드와 커맨드라인 앱을 윈도우에서 실행할 수 있게 하는 가벼운 툴
1. Windows menu > powershell
검색 > 관리자로 실행
2. 아래 커맨드를 PowerShell 붙여넣기 후 엔터 (WSL 사용 허용하기)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
3. 컴퓨터 다시 시작
4. Microsoft Store > Ubuntu
검색 > 설치 (장치 간에 사용 : 관심 없음
)
5. 시작
>> WSL 실행됨
6. 메시지에 따라 사용자 이름, 비밀번호 입력 (비밀번호 미노출) >> WSL 사용 준비 완료
7. $
기호 뒤에 커맨드 입력하여 사용
8. 다시 실행하고 싶을 땐 Windows menu > ubuntu
검색 > 앱 실행
$ whoami # 현재 로그인 돼있는 사용자 출력
윈도우 파일은 /mnt/c 경로에 있다.
가상머신 : 컴퓨터 안에 있는 또 다른 가상의 컴퓨터
가상화 프로그램 VirtualBox 설치 + 우분투 설치
1. VirtualBox 다운로드 페이지 > Windows hosts
클릭 > 설치
2. 우분투 설치 파일 다운로드 사이트 > Download
가상 머신 생성
1. (VirtualBox) 새로 만들기
> 이름, 종류:Linux, 버전:Ubuntu(64bit) 설정
2. 메모리 크기 : 4GB(=4096MB) 설정
3. 하드 디스크 : 지금 새 가상 하드 디스크 만들기
4. 하드 디스크 파일 종류 : VDI
5. 물리적 하드 드라이브에 저장 : 동적 할당
6. 파일 위치 및 크기 : 20GB
7. 가상 머신 정보 '저장소' > [광학 드라이브] 비어 있음
> 디스크 이미지 선택/만들기
> 추가
> 우분투 설치 파일 열기
> 선택
> 시작
8. Install Ubuntu
> Continue
> Install Now
> 현재 위치 설정 후 Continue
> 계정 정보 입력 후 Continue
> Restart Now
> Enter키
9. 재부팅 후 계정 클릭 > 비밀번호 입력 > Enter키
> Skip
/ Next
> Done
10. 소프트웨어 업데이트 : Remind Me Later
화면 조정 문제 해결
1. 장치 탭 > 게스트 확장 CD 이미지 삽입
> Run
> 비밀번호 입력 > Authenticate
2. Press Return to close this window 라고 뜨면 Enter키
3. 가상머신 종료 후 다시 시작
터미널
: 인풋을 받고, 아웃풋을 출력해주는 프로그램shell
: 커맨드를 해석해 주는 프로그램bash (Bourne again shell)
: 가장 보편적인 기본 shellzsh (Z shell)
: 10.15 버전 이후 기본적으로 사용하는 shell# Terminal
date # 현재 시간 출력
cal # 이번 달 달력 출력
Ctrl+A
, 가장 뒷부분 Ctrl+E
으로 이동하거나 Alt/Option+방향키
로 단어간 이동Ctrl+C
Tab
커맨드
-옵션 (option)
인자 (arguments)
man arguments # arguments에 대한 매뉴얼 출력
q # 매뉴얼 빠져나오기
NAME
SYNOPSIS
DESCRIPTION
: 커맨드에 대한 일반적인 설명, 옵션에 대한 설명# 1. pwd (print working directory) : 현재 디렉토리의 경로 확인
pwd
# 2. cd (change directory) : 파일/디렉토리 위치 변경
cd [경로(=path)]
cd # 사용자의 홈 디렉토리로 이동
cd / # 루트로 이동
cd ~ # 사용자의 홈 디렉토리로 이동
cd - # 이전에 위치했던 디렉토리로 이동
cd . # 현재 디렉토리로 새로고침
cd .. # 상위 디렉토리로 이동
# 3. ls (list) : 파일/디렉토리의 정보 확인
ls [option] [path]
ls # 현재 디렉토리 정보 확인
ls -a # all : 모든 숨겨진 파일/디렉토리까지도 다 보여줌
ls -l # long format : 여러 추가 정보 보여줌 (파일 종류, 파일 권한, 파일 소유자, 마지막 수정 시간, 파일 사이즈 등)
ls -al # a옵셥 + l옵션 : 모든 파일/디렉토리와 그 추가 정보 보여줌
"""
만약, 파일이나 디렉토리에 공백이 있을 경우
1. 작은 따옴표 '' 사용 - 'my name'
2. 큰 따옴표 "" 사용 - "my name"
3. 역슬래시 \ 사용 - my\ name
"""
ls [-al] [path]
/bin
- binaries : 컴퓨터가 실행할 수 있는 프로그램/sbin
- 관리자 전용 프로그램/etc
- 컴퓨터 설정 파일 (각종 프로그램의 설정 파일, 관리자 권한 설정 파일 등)/home (Linux)
or /Users (Unix)
- 사용자들의 홈 디렉토리 (사용자의 모든 파일을 저장해 놓는 곳)/usr
- 사용자에게 필요한 파일들을 저장/bin
- 컴퓨터가 필요하기보다 사용자가 필요한 커맨드/local
- 사용자가 직접 설치한 프로그램과 관련된 파일들Linux 루트 디렉토리 구성 (kr)
Linux 루트 디렉토리 (en)
생성 : mkdir
, touch
내용 작성 : vim
내용 조회 : cat
, less
, head
, tail
이동 및 이름변경 : mv
복사/붙여넣기 : cp
삭제하기 : rm
mkdir 디렉토리명 .. # 디렉토리 생성
mkdir ~/directory # 절대경로
mkdir directory # 상대경로
touch 파일명 .. # 경로에 해당하는 파일 생성
vim # vim 실행
vim path/to/file # 파일 오픈 or 파일 생성
vim의 4가지 사용 모드
esc
: 커서 이동, 텍스트 붙여넣기, 작업 취소 (defalt)yy
, 텍스트 한 줄 잘라내기 : dd
, 붙여넣기 : p
i
: 텍스트 입력v, V
: 텍스트 블록 지정, 텍스트 복사/잘라내기/붙여넣기v
는 글자 단위, V
는 줄 단위y
, 특정 영역 잘라내기 : d
, 특정 영역 붙여넣기 : p
:
: 내용 저장(q), Vim 종료w
+ enter
q!
+ enter
wq
+ enter
cat 조회할_파일_경로
- concatenate (이어붙이다) : 파일 내용 한 번에 전체 조회less 조회할_파일_경로
- 페이지 단위 조회 (종료 : q
)head [-n count] 조회할_파일_경로
- 처음 내용 조회 (defalut : 10)tail [-n count] 조회할_파일_경로
- 마지막 내용 조회 (defalut : 10)cat path .. # 경로에 해당하는 파일들의 내용 출력
cat test.text
less path # 해당하는 파일을 페이지 단위로 나눠서 출력
less test.text
# 단축키 : 다음페이지 space or f, 이전페이지 b, 처음 페이지 g, 마지막 페이지 G, 줄 이동은 위/아래 방향키
head/tail [-n count] path
head -n 5 test.text # 처음 내용 5줄 조회
tail test.text # 마지막 내용 10줄 조회
mv [-i] source_path dest_path
mv [-i] path1 path2
# path1 = 작업할 대상의 경로
# path2 = 이동할 목적지 or 변경할 이름
# mv는 기존 파일이 있어도 내용을 덮어쓰므로 주의해야 하는데,
# -i 옵션으로 덮어쓸지 말지 결정 가능하다. (y/n 입력)
cp [option] source_path dest_path
cp path1 path2
# path1 = 복사할 대상의 경로
# path2 = 복사할 위치 or 복사본 이름 (path2 이름을 가진 파일/디렉토리 생성)
# i 옵션, r 옵션 존재
# 디렉토리 복사 시 -r 옵션 필요
cp text1.txt text2.txt # 현재 위치에 있는 text1.txt를 text2.txt로 저장하라
rm path
rm [-rif] path ..
# path = 삭제할 파일 또는 디렉토리 경로 (여러 개 가능)
rm -r directory_name
# 디렉토리 삭제 시 -r 옵션 필요
# i옵션 : 어떤 파일을 지우기 전에 항상 물어보고
# f옵션 : 절대 물어보지 않음 (읽기 전용 파일도 마찬가지)
sudo command
sudo apt update # 1) 오류 방지를 위해 업데이트 진행
sudo apt install path # 2) path 프로그램 설치 (y/n)
sudo apt remove path # 3) path 프로그램 삭제 (y/n)
# 실행기의 터미널에서는 sudo를 사용하지 않아도 된다.
# Homebrew 설치 #
# 1. code 복붙 (출처 : homebrew 홈페이지)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 2. password 입력 -> Enter
# 3. 설치 확인 - 내용이 정상적으로 뜨면 정상 설치된 것
brew help
# 외부 프로그램 설치/관리 #
brew install path # 1) path 프로그램 설치
brew install wget # ex) 웹에서 파일 다운로드 받는 프로그램 설치
brew uninstall path # 2) path 프로그램 삭제
-rm -rf __ # 3) path 프로그램에 대한 파일까지 삭제 (__ : 2 입력 시 경로 나타남)