리눅스 강의를 듣고 리눅스 기본 명령어와 vi 편집기 기초 사용법에 대해 정리해본다.

sudo-rm-rf

apple의 전 최고 디자인 책임자 조너선 아이브가 ‘처음부터 다시 시작해야한다’고 말하는 이 유명한 짤에 써진 명령어가 과연 어떤 의미를 가지는지 알아보자.

리눅스 명령어

쉘 프롬프트 상에서 입력 토큰의 종류

  • 명령어
  • 옵션: -기호로 시작되는 토큰
  • 인자: -기호로 시작되지 않는 토큰

기본 명령어

sudo : super user(root)인 관리자 권한(root 계정)으로 실행

pwd : 현재 자신이 위치한 디렉토리 출력

cd : 디렉토리 이동

ls : 현재 자신이 속해있는 디렉토리 내용 확인(-a 모든 파일 보기, -l 더 자세한 정보 출력, -t 시간 순 정렬, -S 크기 순 정렬)

mkdir : 디렉토리 생성

rmdir : 디렉토리 삭제

help : 내장 명령어에 대한 도움말 출력 (명령어 뒤에 --help 붙이는 것과 동일)

echo : 화면에 문자열 출력

touch : 파일 생성 (크기 0)

cp : 파일 및 디렉토리 복사 (-r 디렉토리 안의 모든 내용을 재귀적으로 복사)

mv : 파일 이동

rm : 파일 및 디렉토리 삭제 (-r 디렉토리 안의 모든 파일을 재귀적으로 삭제하는 옵션, -f 존재하지 않는 파일이나 엑세스 권한이 없는 파일에 대하여 확인 메시지를 무시하라는 옵션)

rmdir : 비어있는 디렉토리 삭제

cat : 파일의 내용을 화면에 출력

more : 텍스트 파일을 화면 단위로 출력(space/f 다음 페이지로 이동, b 이전 페이지로 이동, enter 라인 단위 이동, q: 종료)

less : more보다 조금 더 보기 편함

find : 특정한 파일을 찾는 명령어

grep : 특정 패턴으로 파일을 찾는 명령어

>> : 리다이렉션 (파일 끼워넣기 등)

file : 파일 종류 확인

ping : 네트워크 상태 점검 및 도메인 IP 확인

ifconfig : 리눅스 IP 확인 및 설정

netstat : 네트워크의 상태 정보 출력

wget : 비대화식 네트워크 다운로더로 뒤에 다운로드할 주소를 인자로 적음

vi 편집기

visual editor의 줄임말인 vi는 리눅스에 기본 편집기이다. vi가 오래됐기 때문에 vi를 보완한 vim(visual editor improved)이 있는데 이 편집기는 apt-get install vim의 명령어를 통해 설치하여 사용할 수 있다.

vi를 통해 편집기를 실행하거나 vi 파일명로 파일과 함께 편집기를 실행한다.

vi는 모드가 3개 존재한다.

  1. 명령모드: 문서 복사, 이동 등의 작업(명령모드 집입은 ESC)
  2. 편집모드: 문서 작성 및 편집(편집모드 진입은 i, a, o)
  3. 실행모드: 파일 저장, 종료 등 수행(실행모드 진입은 명령모드에서 가능하며 :를 누름)

명령모드

h j k l : ← ↓ ↑ → 커서 이동

x : 커서 뒤 위치한 문자 1개 삭제

yy : 현재 행을 복사

p : 현재 행에 붙여넣기

dd, :d : 현재 행 잘라내기

u : 바로 이전 명령 취소

:set nu : 행 번호 표시

:set nonu : 행 번호 표시 제거

편집모드

i : 현재 커서 앞쪽에 입력

I : 현재 라인 처음에 입력

a : 현재 커서 뒤쪽에 입력

A : 현재 라인 마지막에 입력

o : 현재 라인 아랫줄에 입력

O : 현재 라인 윗줄에 입력

실행모드

:w : 저장

:w FILENAME : FILENAME에 저장

:q : 종료

:wq : 저장하고 종료

:q! : 저장하지 않고 종료

:! : 외부 명령어 실행


따라서 아래 명령어를 이해해보자.

sudo rm -rf /

sudo는 관리자의 권한으로 명령어를 실행한다는 의미이고, rm은 파일을 삭제하는 명령어인데 -r는 재귀적으로 디렉토리와 그 안의 모든 것을 삭제하는 옵션이고,-f는 존재하지 않거나 액세스 권한이 없는 파일도 확인 메세지 없이 강제로 삭제하는 옵션이다. 그리고 /는 리눅스의 최상위 디렉토리인 root이다.

‘진정 새로운 무언가를 창조하려 한다면 처음부터 다시 시작해야 합니다..’

즉, 최상위 디렉토리와 그 밑에 있는 모든 파일과 디렉토리를 한꺼번에 포맷하는 무시무시한 명령어이다..

따라서 디렉토리를 안전하게 삭제하는 방법으로 아래 방법을 추천한다.

  1. rmdir 명령어를 사용하여 빈 디렉토리를 삭제하기
  2. ls 명령어를 사용하여 디렉토리 내용 확인하며 테스트하기