Command Line

송민혁·2023년 9월 11일
1

UNIX

목록 보기
1/1
post-thumbnail

CLI (Command Line)

커맨드를 통해 컴퓨터에게 명령어를 주는 방식을 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)

디렉토리와 파일 다루기

디렉토리

유닉스 디렉토리 구조에 대해 알아보자.

  • 상위 디렉토리
  • 하위 디렉토리
  • 사용자의 홈 디렉토리

파일 경로

디렉토리나 폴더의 위치를 문자열로 표기할 줄 알아야 한다.

  • 루트 디렉토리는 (/)만 쓰면 된다.
    ex. /home/codeit/Desktop
  • 현재 사용자의 홈 디렉토리는 (~)을 사용하면 된다.
    (기본적으로 터미널을 새로 열면 홈 디렉토리에서 시작한다.)

워킹 디렉토리

현재 위치해 있는 디렉토리를 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 이렇게 파일 있다고 뜸

CLI 텍스트 에디터 (vim)

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 fin.txt fin_2.txt - fin.txt에서 fin_2.txt로 이름 변경
  • mv fin.txt Sep - fin.txt이라는 파일을 Sep이라는 폴더에 옮기기

그럼 이미 존재하는 파일명으로 변경하려고 시도하면?

다시 꺼내오려면 ?
-> mv Obj .

mv를 사용할 때 주의할 점
폴더 내에 변경하려고 하는 이름과 같은 파일이 있다면 덮어쓰기할 가능성이 있다.

해결책
-> -i 라는 옵션을 추가하면 덮어쓸지 확인하는 과정을 가질 수 있다.

파일과 디렉토리 복사 붙여넣기

cp path1 path2 - path1(대상)을 path2(위치)에 복사하고 붙여넣기
(= cp [-ri] SOURCE_PATH DEST_PATH)

ex)

  • cp -i file1.txt file2.txt

cp 주의점

해결책
-> -i 라는 옵션을 추가하면 덮어쓸지 확인하는 과정을 가질 수 있다.

디렉토리를 복붙할 때?
-> r 옵션을 붙여야 한다.
cp -r path1 path2
r: 재귀적 (recursive)

ex)

  • cp -ri dir1 dir2

파일과 디렉토리 삭제하기

rm path1

디렉토리를 삭제하려면 -r 옵션을 사용해야 한다.
파일 지울지 물어보지 않고 바로 지우기 위해서 -f 옵션을 사용한다.

기타

우분투에서 외부 프로그램 설치하기 :apt

$ apt update (관리자 권한으로 해야 오류가 안 뜸)

$ sudo apt update (sudo - 관리자 권한을 일시적으로 얻기 위해 사용) (그리고 패스워드를 누르면 된다. 별표시 안뜬다 - 유의)

$ sudo apt install + (설치할 대상)
$ sudo apt remove + (제거할 대상)

macOS에서 외부 프로그램 설치하기 :homebrew

  • 구글에 homebrew 입력하고 들어가서 터미널에 입력할 명령어 복붙하기

  • brew help (설치되었는지 확인)

  • brew install + (설치할 대상)

  • brew uninstall + (제거할 대상)

sudo

유닉스 운영 체제에서 특정 작업을 하려면 관리자 권한이 필요할 때가 있습니다. 특히 설치 관련 작업을 할 때 필요한 경우가 많습니다. 보통 컴퓨터에서 사용하는 계정은 일반 계정이기 때문에 관리자 권한이 없습니다.

그래서 관리자 권한이 필요한 커맨드를 실행하려고 하면 권한 오류가 납니다. 하지만, sudo을 사용하여 잠시 관리자 권한을 획득할 수 있습니다.

WSL

WSL을 사용하면 듀얼 부팅이나 가상 머신을 사용하는 것보다 더 가볍게 리눅스 환경을 이용할 수 있다. 그리고 바로 윈도우에 있는 파일에 쉽게 접근할 수 있다.

듀얼 부팅이나 가상 머신을 사용하면 별도의 리눅스 환경이 생성되기 때문에 리눅스를 사용할 때는 윈도우에 있는 파일에 접근하기 어렵다.

WSL은 윈도우 안에 존재하는 '하위 시스템'이기 때문에 윈도우 파일에 쉽게 접근할 수 있다.

윈도우 파일을 접근하려면?

윈도우 파일은 /mnt/c 경로에 있다. /mnt/c 가 윈도우의 C: 드라이브이다.

사용자의 홈 디렉토리로 가기

ex) /mnt/c/Users/matthewSong
C: 드라이브의 Users 디렉토리 뒤에 사용자의 이름을 붙이면 된다.

일단 윈도우 파일은 /mnt/c 안에 있다는 사실 기억하면 좋을 것 같다

Window - PowerShell

파워셀이란 윈도우 전용 커맨드라인 툴이다. 보통 시스템 관리, 자동화, 개발 등에 사용이 된다.

PowerShell vs cmd

cmd도 PowerShell과 같이 윈도우 전용 커맨드라인 툴입니다.

하지만 PowerShell에 비해 기능이 적고 cmd에서 할 수 있는 모든 건 PowerShell에서도 할 수 있다.
간단한 작업을 할 때는 cmd를 써도 되지만, PowerShell이 더 복잡한 것도 아니니까 그냥 PowerShell을 쓰는게 무방하다.


PowerShell을 사용해보자!

unix와 PowerShell의 차이점 알아보기



만약 파일을 덮어쓰고 싶다면 -Force 옵션을 사용하면 된다.

0개의 댓글

관련 채용 정보