본문 바로가기

Etc

Unix Command

용어

unix

  • 1970년대 개발된 운영체제.
  • 소프트웨어를 개발하고 실행할 수 있는 편리한 플랫폼.
  • 쉽게 수정해서 다른 컴퓨터에 적용할 수 있었음.
  • 유닉스를 기반으로 하는 다양한 운영체제들이 탄생.
  • windows를 제외하고 모든 운영체제들이 unix를 기반으로 한다.

 

shell

  • 커맨드를 해석해주는 프로그램.
  • 터미널에서 입력한 커맨드는 shell이 컴퓨터가 이해할 수 있도록 번역 후 컴퓨터에게 전달하고, 받아온 값 또한 번역해서 출력해준다.
  • 커맨드를 입력하는 검은 화면을 shell이라고 부르는 경우도 많다.

 

bash

  • shell의 종류중 하나로, Bourne agin shell.
  • 가장 보편적이고, 많은 유닉스 운영체제에서 shell을 기본으로 사용한다.
  • ubuntu의 기본 shell이기도 하다. (mac은 bash -> zsh로 변경)

 

터미널

  • 인풋을 받고, 아웃풋을 출력해주는 프로그램.

 

rooy directory

  • 최상위 디렉토리.
  • '/' 로 표기된다.

 

working directory

  • 현재 위치하고 있는 디렉토리

 

home directory

  • 사용자의 홈 폴더
  • 홈디렉토리는 각종 문서, 바탕화면 파일, 다운로드 파일 등이 들어있다.
  • 보통 "root/home/[사용자이름]" 경로가 홈디렉토리이다.
  • '~'로 표기된다.

터미널 실행하기

터미널의 앞부분 의미 알기

  • "localkang@HeyonJiui-MacBookPro~$" 부분을 프롬프트라고 부른다.
  • 사용자 localKang 이 현재 HeyonJiui-MacBookPro 에 로그인 되어 있으며 ~에 위치해 있다.(여기서 ~ 은 홈폴더를 의미함)
  • '$' 또는 '%' 는 프롬프트의 끝을 알리는 기호이다.

argument와 option

  • argument : 어떤 대상에 대해 커맨드를 실행할지 알려주는 것. (대상을 알려준다.)
  • option : 커맨드를 실행하는 방식을 바꿀 수 있는 것.(방식을 알려준다.)

ex)

cal -j 09 2023

  • -j 옵션은 1월 1일기준으로 몇번째 날인지 달력으로 보여준다.
  • 여기서 "-j" 는 옵션, "09 2023" 는 argument.

조작하기(단축키)

  • 방향키 : 위아래로 움직일 수 있음.
  • space + f : 페이지단위로 움직일 수 있음.
  • q : 나가기
  • ctrl + c : 작업 중지

커맨드라인에서 단축키

  • 방향키 : 과거 사용했던 커맨드를 골라 입력할 수 있음.
  • ctrl + a : 커서 맨 앞으로 이동.
  • ctrl + e : 커서 맨 뒤로 이동.
  • ctrl + c : 작성되어있는 커맨드 지움.
  • tab : 작성중인 커맨드 또는 argument 자동완성.

커맨드 리스트

clear

화면 정리.

 

man [커맨드]

커맨드의 매뉴얼을 보여준다.

 

pwd

print working directory.

워킹디렉토리 경로 보기.

 

cd [경로]

change directory.

다른 디렉토리로 이동.

경로를 주지 않으면 홈디렉토리로 이동한다.

경로대신 '-' 를 입력하면 이전 디렉토리로 이동한다.

 

ls [경로]

경로의 내용물을 리스트로 보여준다.

경로를 입력하지 않으면 현재 디렉토리의 리스트를 보여준다.

  • -a : 숨겨진 파일까지 모두 조회.
  • -l : (소문자 엘) long format. 이름외에 더 많은 정보를 보여준다.
    • 가장 앞부분이 d(directory, 폴더), -(일반 파일) 을 의미함.
    • 나머지는 권한관련된 부분.
    • 두번째 컬럼은 이 파일과 관련된 링크의 개수.
    • 세번째 컬럼은 소유자
    • 네번째 컬럼은 소유자의 그룹
    • 다섯번재 컬럼은 크기(byte) - 디렉토리의 경우 폴더의 바이트가 아니라 유닉스 파일시스템과 관련된 숫자를 보여준다.
  •    -al : 숨김된 파일까지 모두 + 모든 정보 조회.

디렉토리와 파일 관련

mkdir [경로]

디렉토리 생성.

경로를 argument로 줘야한다.

경로를 공백을 구분자로 여러개주면 여러 디렉토리가 생성된다.

 

touch [경로]

빈 파일 생성.

경로를 공백을 구분자로 여러개주면 여러 파일이 생성된다.

경로가 이미 존재하는 파일일 경우, 마지막 접근시간을 업데이트한다.

 

mv [경로1] [경로2]

파일과 디렉토리 옮기기 & 이름 변경하기

경로1 : 작업할 대상의 경로

경로2 : 이동할 목적지 또는 변경할 이름.

만약 경로2가 존재하는 디렉토리라면, 경로2의 자식으로 들어간다.

같은 이름의 파일이 있을 경우, 덮어쓴다.

-i 옵션 : 같은 이름의 파일이 있다면 덮어쓸것인지 작업을 취소할것인지 확인해준다. (i는 interactive 앞글자)

옵션 사용 방법 : mv -i test1.txt test2.txt

 

mv [경로1] .

'.' 이 워킹디렉토리를 지칭하기때문에, 경로1을 현재폴더로 이동시킨다.

 

cp [경로1] [경로2]

경로1을 경로2로 복사.

경로2가 디렉토리일 경우, 그 디렉토리의 자식으로 들어간다.

같은 이름의 파일이 있으면 덮어쓴다.

mv와 마찬가지로 -i 옵션을 줄 수 있다.

디렉토리를 복사할 때에는 -r옵션을 꼭 줘야한다.(r은 recursive)

 

rm [경로]

remove.

경로를 삭제한다. 

경로를 여러개 줄 수도 있다.

디렉토리를 삭제할 경우, -r옵션을 줘야한다.

휴지통으로 보내는것이 아니라 완전히 삭제시킨다.

-i옵션 : 정말 삭제할 것인지 한 번 더 확인해준다.

-f 옵션 : 어떤 상황에서도 확인하지 않고 삭제시킨다.


파일 조회 관련

cat [경로]

concatenate 약자.

경로의 파일내용을 보여준다.

경로를 여러개 줘도 되는데, 2개이상일 경우 파일들이 이어져서 조회된다.

 

less

파일을 페이지단위로 나누어서 볼 수 있다.

G : 마지막페이지로 이동.

g : 처음 페이지로 이동.

q : 종료.

 

head, tail

파일의 맨 처음 혹은 마지막 10줄만 조회한다.

보고싶은 줄 수는 -n옵션으로 설정가능하다.

ex) head -n 5 test.txt


vim 관련

vim [경로]

경로의 파일을 vim으로 연다.

경로가 없는경우 파일을 새로 만든다.

 

* vim의 4가지 사용 모드 : 가능한 작업 (전환 키)

  1. 일반모드 : 커서 이동, 텍스트 붙여넣기, 작업 취소 (esc)
  2. 입력모드 : 텍스트 입력 (i)
  3. 비주얼모드 : 텍스트 블록지정, 텍스트 복사(v, V)
  4. 명령모드 : 내용저장, vim 종료(:)

일반모드를 제외한 나머지 모드들로 변경할 때에는 꼭 일반모드를 거쳐야한다.

 

*  복사방법

방법 ①

  1. 일반모드에서 복사를 원하는 줄로 방향키를 이용해 이동
  2. v(한글자씩 복사를 원할경우) 또는 V(한 줄씩 복사를 원할경우)로 비쥬얼모드로 이동
  3. 방향키로 복사범위 설정
  4. y로 복사.
  5. p로 붙여넣기.
  6. d로 잘라내기.

방법 ②

  1. 한 줄씩 복사 또는 잘라내기를 할 경우, 비쥬얼모드에 가지 않고, yy 또는 dd를 누르면 된다.

 

*  파일 저장 및 종료 방법

  • :w 파일 저장
  • :q vim종료
  • :wq 파일 저장 후 vim 종료
  • :q! 변경된 내용을 저장하지 않고 vim종료

매뉴얼 보기

예시 : man cal

터미널에 man cal을 입력 후 나온 결과 일부분

synopsis 부분

  • 대괄호로 감싸진 것들은 optional 하다는 의미.
  • '-'가 붙은 것들은 option, 붙지 않은 것들은 argument.
  • [-A number] 는 -A는 숫자형태의 argument를 받는 옵션이라는 의미.
  • [[month], year] 와 같이 대괄호가 두번 쓰인 것의 의미는 만약 argument를 하나만 넘길 경우, year로 판단하겠다는 뜻이다.

description 부분

  • 간단한 설명과 옵션에 대한 설명을 볼 수 있다.

 

 

 

'Etc' 카테고리의 다른 글

HTML - 시맨틱 태그(Semantics)  (0) 2023.09.11