JSCODE Logo
JSCODE 박재성JSCODE 제이온JSCODE 시니
과외유튜브블로그후기
완강 후기 이벤트블로그 리뷰 이벤트AWS SAA 합격 후기 이벤트
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2026 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침

비전공자도 이해할 수 있는 리눅스 입문/실전

리눅스 기본 개념 / 리눅스 실습 환경 구축

리눅스(Linux)란?
다양한 리눅스의 종류 / 리눅스 배포판
리눅스 환경 구축하는 방법 (feat. AWS EC2)
[실습] AWS로 리눅스(Ubuntu) 환경 구축하기
터미널(Terminal)이란 ?
리눅스를 실행시키자마자 뜨는 첫 화면 해석하기 / 기본 조작법 익히기

필수로 꼭 알아야 하는 기본 명령어

리눅스에서의 파일(file), 디렉터리(directory)의 의미
폴더 이동하면서 파일 둘러보기 / 리눅스의 기본 폴더 구조 (pwd, cd, ls)
파일 종류 확인 / 숨김 파일 조회 (ls -l, ls -a)
리눅스 명령어들의 공통적인 패턴 - 옵션(Option)
상대 경로, 절대 경로란? / 구분 방법
경로에 물결 표시(~)는 무슨 의미일까?
파일 및 디렉터리 생성 / 삭제 (touch, mkdir, rm)
파일 및 디렉터리 복사 / 이동 / 이름 변경 (cp, mv)
명령어를 일일이 다 칠 필요 없는 자동완성 기능 / 이전에 썼던 명령어 불러오기
[연습문제] 지금까지 배운 명령어 실전처럼 써먹어보기

파일을 작성/조회할 때 자주 사용하는 명령어

리눅스에서 가장 많이 사용하는 텍스트 에디터 (vim) (
vim 에디터 기본 사용법 - 1
vim 에디터 기본 사용법 - 2
파일에 작성된 내용 보기 (vim, cat)
[연습문제] 지금까지 배운 명령어 실전처럼 써먹어보기

리눅스에서 빈번하게 마주치는 권한 문제(Permission Denied)

Permission Denied 에러 마주치는 경우
사용자(user), 슈퍼 사용자(super user)란?
그룹(group)이란?
권한(Permission)이란?
[실습] 왜 Permission Denied 에러가 발생하는 지 원인 분석해보기
권한 변경하는 방법 (chmod)
[실습] 보안을 위해 파일 접근 권한 제한하기
어떠한 제약도 없이 모든 기능을 사용할 수 있는 관리자 권한 (sudo)

외부 프로그램을 설치할 때 사용하는 패키지 매니저 (apt)

패키지 매니저(Package Manager)란?
자주 사용하는 apt 명령어 4가지
[실습] apt를 활용해 Nginx 설치해보기
[보충 자료] apt 명령어를 쓸 때 sudo를 써야 하는 이유

로그 남길 때 많이 사용하는 표준 출력(stdout), 표준 에러 출력(stderr)

표준 출력(stdout)이란?
[실습] 표준 출력(stdout) 활용해보기
표준 에러 출력(stderr)이란?
표준 출력(stdout)과 표준 에러 출력(stderr)의 추가 기능
[실습] Spring Boot 서버가 출력하는 로그를 파일로 남기기

실무에서 백엔드 서버를 운영할 때 자주 사용하는 명령어

특정 키워드가 들어간 문장만 찾고 싶을 때 (grep)
리눅스에서 실행 중인 프로세스 조회하기 / 종료하기 (ps, kill)
[실습] 실행시킨 Spring Boot 프로세스를 조회하고 종료해보기
터미널 창을 끄더라도 프로그램이 계속 실행되도록 만들기 (nohup, &)
백그라운드에서 실행되고 있는 프로세스의 로그 확인하는 법 (nohup)
특정 포트 번호에 실행되고 있는 프로세스 조회하기 / 포트 충돌 해결하기 (lsof) (
서버가 잘 작동하는 지 API 요청 보내보기 (curl)
내 IP 주소 확인하기 (ip)
컴퓨터가 느려질 때 CPU, Memory 성능 체크해서 원인 파악하기 (top)
로그 실시간으로 확인하는 법 (tail -f)

명령어들을 자동화시킬 수 있는 쉘 스크립트

문자열을 터미널 화면에 출력하는 명령어 (echo)
쉘 스크립트 파일 작성/실행 하는 법
[실습] ‘git pull 받아오기 → Spring Boot 빌드 → 빌드된 jar 파일 실행’의 과정을 자동화하기
[참고] 쉘 스크립트 공부 지침

Q&A / 마무리

[Q&A] 왜 윈도우에서는 배운 리눅스 명령어가 작동하지 않는 거죠?
[Q&A] 강의에서 안 배운 리눅스 명령어는 어떻게 공부해야 하나요?
[Q&A] 이 다음에는 어떤 걸 공부해야 하나요?
← 블로그 목록으로 돌아가기

vim 에디터 기본 사용법 - 2

JSCODE 박재성
JSCODE 박재성
2026. 03. 27.
author
JSCODE 박재성
category
Linux
createdAt
Dec 6, 2025 05:13 AM
isPublic
isPublic
series
비전공자도 이해할 수 있는 리눅스 입문/실전
slug
vim-basics-2
type
post
updatedAt
Mar 27, 2026 09:00

✅ 강제 종료

기존 app.txt 파일을 열어서 텍스트를 일부 수정해보자.
$ vi app.txt
notion image
그런데 갑자기 수정한 내용을 저장하고 싶지 않다는 생각이 들었다. 수정한 텍스트를 저장하지 않고 vim을 종료하기 위해 COMMAND 모드에서 :q를 입력하고 Enter를 눌렀다.
 
notion image
그랬더니 하단에 빨간색으로 No write sice last change (add ! to override)라는 에러 메시지가 떴다. 이 에러 메시지를 해석하자면 다음과 같다.
 
파일을 수정했는데 저장을 하지 않은 상태입니다. 저장하지 않고 종료하려면 !를 붙여서 강제 종료하세요.
 
이 에러 메시지에 따라 저장하지 않고 강제 종료를 하려면 아래와 같이 명령어를 입력해야 한다.
:q!
notion image
위 명령어를 입력해보면 정상적으로 vim이 잘 종료되는 거 확인할 수 있다. 이 기능이 바로 강제 종료 기능이다.
 
 

✅ 파일을 수정하다 vim이 비정상적으로 종료 됐을 때

기존 app.txt 파일을 열어서 텍스트를 일부 수정해보자.
$ vi app.txt
notion image
 
그런 뒤에 터미널 창을 새로고침해서 다시 접속한 뒤 vim으로 app.txt를 열어보자. 아래와 같은 화면이 뜰 것이다.
notion image
가장 맨 마지막 줄에 이런 문장이 있다. 필수로 알아야 하는 옵션에 대해서만 설명하겠다.
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort
  • (R)ecover : r 버튼을 누르고 Enter를 누르면 이전에 편집한 내용을 복구한 뒤, 이어서 파일을 수정할 수 있게 된다.
  • (D)elete it : d 버튼을 누르면 이전에 편집한 내용을 복구하지 않고, 기존 파일에서 수정할 수 있게 된다.
  • (Q)uit : q 버튼을 누르면 아무 작업도 하지 않고 그냥 vim을 종료한다.
 
[실습]
  1. 아무 작업도 하고 싶지 않을 때는 q 버튼을 눌러 vim을 종료하면 된다.
  1. 이전에 편집한 내용을 복구하지 않고, 기존 파일에서 수정을 하고 싶을 때는 d 버튼을 누르면 된다. 그리고 :wq로 수정한 내용을 저장하면 된다.
  1. 이전에 편집한 내용을 복구한 뒤, 이어서 파일을 수정하고 싶을 때는 r 버튼을 누르면 된다. 그리고 :wq로 수정한 내용을 저장하고 .app.txt.swp 파일을 삭제하면 된다.
 
 
[작동 원리]
에러 메시지를 다시 한 번 살펴보면 .app.txt.swp라는 파일을 발견했다고 한다. 이 파일은 도대체 뭘까?
notion image
.swp라는 확장자를 가진 파일은 vim에서 편집 중이던 작업 내용을 임시 저장해서 비정상 종료 시 복구할 수 있도록 하는 파일이다. 이 파일은 vim에서 INSERT 모드로 파일을 수정하는 순간 생성된다.
 
실제 그런지 vim으로 파일을 수정하고나서 새로고침으로 강제 종료해보자. 그러고 ls -a(숨김파일까지 포함해서 디렉터리 내부 파일 조회) 명령어를 통해 확인해보자.
notion image
이 .swp 파일 덕분에 비정상적으로 vim이 종료됐더라도 복구할 수 있었던 것이다.
 
 
👨🏻‍🏫
이 외에도 수많은 vim 명령어(https://vim.rtorr.com/lang/ko)가 있다. 근데 처음부터 다 알 필요 없다. 딱 필요한 명령어 위주로 처음에만 익혀두면 된다. 그러고 불편하다고 느끼거나 그때그때 필요한 기능에 대해서만 추가로 공부하면서 써먹으면 된다.
 
 
📎
이 글은 비전공자도 이해할 수 있는 리눅스 입문/실전 강의의 수업 자료 중 일부입니다.