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] 이 다음에는 어떤 걸 공부해야 하나요?
← 블로그 목록으로 돌아가기

[참고] 쉘 스크립트 공부 지침

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

✅ 쉘 스크립트 공부 지침

#!/bin/bash echo "----git pull 받아오기----" cd /home/ubuntu/linux-springboot git pull origin main echo "----빌드하기----" ./gradlew clean build echo "----빌드된 jar 파일을 백그라운드로 실행시키기----" cd build/libs nohup java -jar linux-springboot-0.0.1-SNAPSHOT.jar >> app.log 2>&1 & echo "----Spring Boot 서버 실행 완료----"
이전 강의에서 Spring Boot 서버를 실행시키는 쉘 스크립트 파일을 위와 같이 작성했다. 사실 위와 같이 작성한 쉘 스크립트 파일은 예외 상황을 고려하지 않고 정말 심플하게만 코드를 작성한 형태다. 각 명령어마다 예외 또는 에러가 발생할 상황을 고려해서 코드를 짜다보면 더 복잡해진다.
이런 복잡한 Case에 대해 나눠서 코드를 작성할 수 있게 쉘 스크립트 문법에는 if문, for문, 명령어의 결과값을 활용할 수 있는 변수 등 여러가지 기능들이 많이 있다.
하지만 초반 리눅스를 입문하는 단계에서는 쉘 스크립트를 직접 작성할 일이 많지 않기 때문에, 이번 강의에서는 일부러 쉘 스크립트를 깊이 있게 다루지 않았다. 나중에 쉘 스크립트를 본격적으로 쓸 일이 있을 때 그 때 이 부분을 깊이 파헤쳐도 늦지 않다. 리눅스를 입문할 때 한 번에 많은 걸 익히려고 욕심내다보면, 아무 것도 못 익히는 상황이 발생한다. 그러니 초반에 많이 사용할법한 명령어에 초점을 맞춰서 먼저 학습하자.
 
 

✅ 쉘 스크립트를 학습해야 하는 타이밍

‘쉘 스크립트를 이 때 익히면 가장 좋다’라는 시기는 사람마다 다를 수 있고 정답이 있지도 않다. 하지만 쉘 스크립트를 언제 공부하면 좋은 지 막막하다고 느끼는 사람들을 위해 학습하면 좋은 시기를 추천해주겠다.
[2025년] 백엔드 개발자로 취업하기 위한 추천 커리큘럼 (IT 서비스 기업) 로드맵 - 인프런
infrastructure, AWS 스킬을 학습할 수 있는 로드맵을 인프런에서 만나보세요.
[2025년] 백엔드 개발자로 취업하기 위한 추천 커리큘럼 (IT 서비스 기업) 로드맵 - 인프런
https://www.inflearn.com/roadmaps/3692
[2025년] 백엔드 개발자로 취업하기 위한 추천 커리큘럼 (IT 서비스 기업) 로드맵 - 인프런
notion image
위 로드맵의 순서 중에서 CI/CD를 학습하면서 쉘 스크립트를 학습하는 걸 추천한다. CI/CD 자체가 무언가를 자동화하기 위한 개념이다. 그리고 CI/CD 과정 중에 쉘 스크립트를 활용한다. 따라서 CI/CD를 학습할 때 쉘 스크립트를 같이 학습하면 효율이 좋다고 생각한다😊
참고) 쉘 스크립트를 어려워하는 수강생이 많다고 느껴지면, ‘리눅스의 쉘 스크립트’를 집중적으로 다루는 강의도 만들 예정이다.
📎
이 글은 비전공자도 이해할 수 있는 리눅스 입문/실전 강의의 수업 자료 중 일부입니다.