유닉스 커맨드라인

is Yoon·2023년 9월 15일
0

실용적 유닉스 커맨드

  • 출처 : 코드잇
  • 레슨 수 : 36강
  • 난이도 : 초급

강의 소개 : 영화에서 해커가 까만 화면에 코드를 입력하면 복잡한 글자가 막 나오는 장면, 한번쯤 본 적 있으시죠? 이렇게 입력한 코드를 커맨드라고 하는데요. 커맨드를 사용하면 키보드만 가지고 컴퓨터에 다양한 명령을 내릴 수 있습니다. 이번 토픽에서는 가장 기본적인 '유닉스 커맨드'의 사용법을 핵심만 추려서 소개해 드릴게요.




유닉스 커맨드

  • 유닉스 운영 체제에서 사용하는 커맨드
  • 1,000개 넘게 존재
  • 웹사이트에서 인터넷으로 웹사이트 배포하는 과정 등에서 사용
  • CLI 환경 : 커맨드를 입력해서 컴퓨터를 사용하는 환경 (Command Line Interface 환경)

유닉스 : 소프트웨어를 개발하고 실행할 수 있는 편리한 플랫폼

  • macOS : UNIX 운영 체제이므로 따로 준비할 것 없음
  • Windows : WSL, Ubuntu 같은 유닉스 계열 운영 체제 설치하여 이용



🪟 Window

윈도우 전용 커맨드라인 툴

  1. PowerShell : 시스템 관리, 자동화, 개발 등 다양한 작업과 기본 유닉스 커맨드를 지원한다.
  2. 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에서 WSL 설치하기

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 경로에 있다.

Windows에서 가상 머신에 우분투 설치하기

가상머신 : 컴퓨터 안에 있는 또 다른 가상의 컴퓨터

가상화 프로그램 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. 가상머신 종료 후 다시 시작




1️⃣ 커맨드라인 사용법

  • 터미널 : 인풋을 받고, 아웃풋을 출력해주는 프로그램
  • shell : 커맨드를 해석해 주는 프로그램
    • bash (Bourne again shell) : 가장 보편적인 기본 shell
    • zsh (Z shell) : 10.15 버전 이후 기본적으로 사용하는 shell
# Terminal
date    # 현재 시간 출력
cal     # 이번 달 달력 출력
  1. 위쪽 방향키 : 이전에 실행한 커맨드 입력
  2. 커서 이동 : 줄 가장 앞부분 Ctrl+A, 가장 뒷부분 Ctrl+E 으로 이동하거나 Alt/Option+방향키로 단어간 이동
  3. 실행 취소 : Ctrl+C
  4. 화면 청소 : Clear (history는 남아있음)
  5. 자동 완성 : Tab

커맨드의 기본 형태

커맨드 -옵션 (option) 인자 (arguments)

  • 인자 : 커맨드를 어느 대상에 대해 실행할 것인지
  • 옵션 : 커맨드를 어떻게 실행할 것인지

매뉴얼 (man)

man arguments   # arguments에 대한 매뉴얼 출력
q               # 매뉴얼 빠져나오기
  • NAME
  • SYNOPSIS
  • DESCRIPTION : 커맨드에 대한 일반적인 설명, 옵션에 대한 설명




2️⃣ 파일과 폴더 다루기

🖐️ 파일 시스템 > 파일 경로 참고

  • 커맨드 : 파일과 폴더(디렉토리)를 다루는 커맨드
  • 파일 경로 : 디렉토리나 폴더의 위치를 문자열로 표기
  • 유닉스 디렉토리 구조 : 거꾸로 뿌리 구조

UNIX command 명령어

# 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)



파일/디렉토리 관련 command

생성 : mkdir, touch
내용 작성 : vim
내용 조회 : cat, less, head, tail
이동 및 이름변경 : mv
복사/붙여넣기 : cp
삭제하기 : rm

1. 디렉토리와 파일 생성

mkdir 디렉토리명 ..    # 디렉토리 생성
	mkdir ~/directory  # 절대경로
    mkdir directory    # 상대경로

touch 파일명 ..       # 경로에 해당하는 파일 생성

2. 파일 내용 작성 - CLI 텍스트 에디터 vim

vim                # vim 실행
vim path/to/file   # 파일 오픈 or 파일 생성

vim의 4가지 사용 모드

  1. 일반 모드 Nomal esc : 커서 이동, 텍스트 붙여넣기, 작업 취소 (defalt)
  • 텍스트 한 줄 복사 : yy, 텍스트 한 줄 잘라내기 : dd, 붙여넣기 : p
  1. 입력 모드 Insert i : 텍스트 입력
  2. 비주얼 모드 Visual v, V : 텍스트 블록 지정, 텍스트 복사/잘라내기/붙여넣기
  • v는 글자 단위, V는 줄 단위
  • 특정 영역 복사 : y, 특정 영역 잘라내기 : d, 특정 영역 붙여넣기 : p
  1. 명령 모드 Command : : 내용 저장(q), Vim 종료
  • 파일 저장 : w + enter
  • vim 종료 (내용 저장 x) : q! + enter
  • 파일 저장 후 vim 종료 : wq + enter

3. 파일 내용 살펴보기

  • 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줄 조회

4. 파일/디렉토리 이동 & 이름 변경 - mv

  • mv [-i] source_path dest_path
mv [-i] path1 path2
# path1 = 작업할 대상의 경로
# path2 = 이동할 목적지 or 변경할 이름
# mv는 기존 파일이 있어도 내용을 덮어쓰므로 주의해야 하는데, 
# -i 옵션으로 덮어쓸지 말지 결정 가능하다. (y/n 입력)

5. 파일/디렉토리 복사/붙여넣기 - cp

  • 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로 저장하라

6. 파일/디렉토리 삭제하기

  • rm path
rm [-rif] path ..
# path = 삭제할 파일 또는 디렉토리 경로 (여러 개 가능)

rm -r directory_name
# 디렉토리 삭제 시 -r 옵션 필요

# i옵션 : 어떤 파일을 지우기 전에 항상 물어보고
# f옵션 : 절대 물어보지 않음 (읽기 전용 파일도 마찬가지)




3️⃣ 프로그램 설치

임시로 관리자 권한 받기 - sudo

sudo command

우분투에서 외부 프로그램 설치/관리 - apt

sudo apt update         # 1) 오류 방지를 위해 업데이트 진행
sudo apt install path   # 2) path 프로그램 설치 (y/n)
sudo apt remove path    # 3) path 프로그램 삭제 (y/n)

# 실행기의 터미널에서는 sudo를 사용하지 않아도 된다.

macOS에서 외부 프로그램 설치/관리 - homebrew

# 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 입력 시 경로 나타남)
profile
planning design development with data

0개의 댓글