핵심 요약
Linux 서버 관리에서는 현재 위치와 대상을 확인하고, 한 번에 하나의 명령을 실행한 뒤 결과를 검증하는 습관이 중요합니다. 처음에는 pwd, ls, cd, mkdir, touch, cat, cp, mv, rm처럼 파일과 폴더를 다루는 명령부터 익히면 됩니다.
명령은 일반적으로 명령어 옵션 대상 형식으로 사용합니다. 삭제·이동·재귀 옵션과 sudo는 시스템에 직접 영향을 줄 수 있으므로 실행 전에 현재 위치, 대상 경로와 예상 범위를 다시 확인합니다. Linux 서버는 일반적으로 마우스보다 터미널에 명령어를 입력해서 관리합니다.
처음에는 검은 화면에 명령어를 입력하는 방식이 어렵게 느껴질 수 있습니다. 하지만 실제 서버 관리에서 반복해서 사용하는 명령어는 많지 않습니다.
먼저 다음 작업에 필요한 명령어부터 익히면 됩니다.
- 현재 위치 확인하기
- 폴더와 파일 목록 보기
- 폴더 이동하기
- 폴더와 파일 만들기
- 파일 복사하기
- 파일과 폴더 이동하기
- 파일과 폴더 삭제하기
- 파일 내용 확인하기
- 명령어 도움말 보기
- 서버 종료 및 재부팅하기
이 글에서는 Ubuntu 서버를 기준으로 Linux 기본 명령어를 설명합니다.
터미널과 명령어 구조
Linux 터미널의 기본 구조
Linux 서버에 로그인하면 다음과 비슷한 입력 줄이 나타납니다.
apple2ne1@project-dev-server:~$
각 부분의 의미는 다음과 같습니다.
apple2ne1 @ project-dev-server : ~ $
사용자명 서버 이름 현재 위치
apple2ne1: 현재 로그인한 사용자
project-dev-server: 접속한 서버의 이름
~: 현재 사용자의 홈 폴더
$: 일반 사용자 권한으로 로그인한 상태
관리자 계정인 root로 로그인하면 $ 대신 #가 표시될 수 있습니다.
root@project-dev-server:~#
일반적으로는 root 계정으로 직접 작업하기보다 일반 사용자로 로그인한 후 필요한 명령에만 sudo를 붙이는 것이 안전합니다.

명령어의 기본 형식
Linux 명령어는 일반적으로 다음 형식으로 사용합니다.
명령어 옵션 대상
예를 들어 다음 명령을 살펴보겠습니다.
ls -la /home
각 부분의 의미는 다음과 같습니다.
ls -la /home
명령어 옵션 대상 경로
ls: 파일과 폴더 목록 확인
-la: 자세한 정보와 숨김 파일 표시
/home: 확인할 폴더
모든 명령어에 옵션과 대상이 필요한 것은 아닙니다.
pwd
pwd처럼 명령어만 입력해 사용하는 경우도 있습니다.
현재 위치와 경로 확인하기
pwd: 현재 위치 확인
현재 어느 폴더에서 작업하고 있는지 확인하려면 pwd 명령을 사용합니다.
pwd
pwd는 print working directory의 줄임말입니다.
실행 결과:
/home/apple2ne1
현재 작업 위치가 /home/apple2ne1이라는 뜻입니다.
서버에서 파일을 복사하거나 삭제하기 전에는 pwd로 현재 위치를 확인하는 습관을 들이는 것이 좋습니다.
절대 경로와 상대 경로
Linux에서 파일이나 폴더의 위치를 나타내는 방법에는 절대 경로와 상대 경로가 있습니다.
절대 경로
최상위 폴더인 /부터 시작하는 전체 경로입니다.
/home/apple2ne1/project
절대 경로는 현재 위치와 관계없이 항상 같은 위치를 가리킵니다.
예:
cd /home/apple2ne1/project
상대 경로
현재 위치를 기준으로 표현하는 경로입니다.
현재 위치가 /home/apple2ne1이라면 다음 명령은 그 아래의 project 폴더로 이동합니다.
cd project
상대 경로는 현재 위치에 따라 가리키는 대상이 달라질 수 있습니다.
경로에서 자주 사용하는 기호
Linux 경로에는 몇 가지 특별한 기호가 사용됩니다.
| 기호 | 의미 |
|---|---|
/ |
Linux 전체 폴더 구조의 시작점 |
~ |
현재 사용자의 홈 폴더 |
. |
현재 폴더 |
.. |
바로 위의 상위 폴더 |
- |
직전에 있던 폴더 |
예를 들어 다음 명령은 현재 사용자의 홈 폴더로 이동합니다.
cd ~
다음 명령도 같은 결과를 냅니다.
cd
상위 폴더로 이동하려면 다음과 같이 입력합니다.
cd ..
바로 전에 있던 폴더로 돌아가려면 다음 명령을 사용합니다.
cd -
파일과 폴더 목록 확인하기
ls: 목록 보기
현재 폴더에 있는 파일과 하위 폴더를 확인하려면 ls 명령을 사용합니다.
ls
실행 결과 예:
Documents Downloads project notes.txt
색상이 적용된 터미널에서는 폴더와 파일이 서로 다른 색으로 표시될 수 있습니다.
ls -l: 자세히 보기
파일 권한, 소유자, 크기, 수정 시간을 함께 확인하려면 -l 옵션을 사용합니다.
ls -l
실행 결과 예:
drwxr-xr-x 2 apple2ne1 apple2ne1 4096 Jul 20 10:20 project
-rw-r--r-- 1 apple2ne1 apple2ne1 520 Jul 20 10:30 notes.txt
주요 항목은 다음과 같습니다.
권한 소유자 그룹 크기 수정 날짜 이름
drwxr-xr-x apple2ne1 apple2ne1 4096 Jul 20 10:20 project
첫 번째 글자가 d이면 폴더입니다.
drwxr-xr-x
첫 번째 글자가 -이면 일반 파일입니다.
-rw-r--r--
ls -a: 숨김 파일 보기
Linux에서는 이름이 점으로 시작하는 파일이나 폴더를 숨김 항목으로 취급합니다.
예:
.ssh
.bashrc
.git
숨김 항목을 포함해 확인하려면 다음 명령을 사용합니다.
ls -a
ls -la: 자세한 정보와 숨김 파일 함께 보기
실무에서 가장 자주 사용하는 형태입니다.
ls -la
-l과 -a 옵션을 함께 사용한 것입니다.
다음 두 명령은 같은 의미입니다.
ls -la
ls -l -a

특정 폴더의 목록 확인
현재 위치를 이동하지 않고 다른 폴더의 내용을 확인할 수도 있습니다.
ls /home
홈 폴더의 내용을 자세히 확인하려면 다음과 같이 입력합니다.
ls -la /home/apple2ne1
폴더 이동하기
cd: 폴더 이동
다른 폴더로 이동할 때 cd 명령을 사용합니다.
cd는 change directory의 줄임말입니다.
cd project
현재 위치 아래의 project 폴더로 이동합니다.
이동 후 현재 위치를 확인합니다.
pwd
홈 폴더로 이동
다음 명령은 현재 사용자의 홈 폴더로 이동합니다.
cd
또는 다음과 같이 입력할 수 있습니다.
cd ~
홈 폴더는 일반적으로 다음과 같은 위치입니다.
/home/사용자명
예:
/home/apple2ne1

상위 폴더로 이동
현재 폴더 바로 위로 이동하려면 다음 명령을 사용합니다.
cd ..
예를 들어 현재 위치가 다음과 같다면,
/home/apple2ne1/project
cd ..를 실행한 후 위치는 다음과 같습니다.
/home/apple2ne1
두 단계 위로 이동하려면 다음과 같이 입력합니다.
cd ../..
최상위 폴더로 이동
Linux 전체 폴더 구조의 시작점으로 이동하려면 다음 명령을 사용합니다.
cd /
/는 root directory라고 부릅니다.
다음과 같은 주요 폴더를 볼 수 있습니다.
ls
실행 결과 예:
bin boot dev etc home opt root tmp usr var

이전 폴더로 돌아가기
직전에 있던 폴더로 이동하려면 다음 명령을 사용합니다.
cd -
예:
cd /etc
cd /var
cd -
마지막 명령을 실행하면 다시 /etc로 돌아갑니다.
폴더 만들기
mkdir: 폴더 만들기
새 폴더를 만들려면 mkdir 명령을 사용합니다.
mkdir는 make directory의 줄임말입니다.
mkdir project
현재 위치에 project 폴더가 생성됩니다.
확인:
ls -l
여러 폴더 한 번에 만들기
여러 개의 폴더를 한 번에 만들 수 있습니다.
mkdir images documents backup
다음 세 개의 폴더가 생성됩니다.
images
documents
backup

mkdir -p: 하위 폴더까지 함께 만들기
다음과 같은 여러 단계의 폴더를 한 번에 만들고 싶다고 가정하겠습니다.
project/config/nginx
일반 mkdir 명령으로 실행하면 하위 폴더가 없어서 오류가 발생할 수 있습니다.
mkdir project/config/nginx
오류 예:
mkdir: cannot create directory ‘project/config/nginx’: No such file or directory
이때 -p 옵션을 사용합니다.
mkdir -p project/config/nginx
필요한 하위 폴더까지 모두 생성됩니다.
project
└── config
└── nginx
-p는 parent directories를 함께 만든다는 의미로 이해하면 쉽습니다.
이미 해당 폴더가 있어도 일반적으로 오류 없이 넘어갑니다.

파일 만들기
touch: 빈 파일 만들기
내용이 없는 빈 파일을 만들려면 touch 명령을 사용합니다.
touch notes.txt
확인:
ls -l
실행 결과 예:
-rw-r--r-- 1 apple2ne1 apple2ne1 0 Jul 20 11:10 notes.txt
파일 크기가 0이므로 아직 내용이 없는 파일입니다.
여러 파일 한 번에 만들기
다음과 같이 여러 개의 빈 파일을 한 번에 만들 수 있습니다.
touch file1.txt file2.txt file3.txt
touch의 또 다른 기능
이미 존재하는 파일에 touch를 실행하면 파일 내용은 바뀌지 않고 수정 시간이 현재 시간으로 갱신됩니다.
touch notes.txt
따라서 touch는 단순히 파일 생성 명령이라기보다 파일의 시간 정보를 갱신하는 명령이기도 합니다.
파일 내용 확인하기
cat: 파일 전체 내용 보기
텍스트 파일의 내용을 한 번에 확인하려면 cat 명령을 사용합니다.
cat notes.txt
내용 예:
Linux server setup notes
SSH port: 22
짧은 파일을 확인할 때 편리합니다.
파일이 매우 길면 내용이 빠르게 지나가므로 다른 명령을 사용하는 것이 좋습니다.
less: 긴 파일 내용 보기
긴 파일을 한 화면씩 확인하려면 less 명령을 사용합니다.
less notes.txt
주요 조작키:
| 키 | 기능 |
|---|---|
Space |
다음 화면 |
b |
이전 화면 |
| 방향키 | 한 줄씩 이동 |
/단어 |
단어 검색 |
n |
다음 검색 결과 |
q |
종료 |
서버 로그나 긴 설정 파일을 확인할 때 자주 사용합니다.
예:
less /var/log/auth.log
권한이 필요한 경우 다음과 같이 실행할 수 있습니다.
sudo less /var/log/auth.log
head: 파일 앞부분 보기
파일의 처음 10줄을 확인하려면 다음 명령을 사용합니다.
head notes.txt
처음 20줄을 보려면 -n 옵션을 사용합니다.
head -n 20 notes.txt
tail: 파일 마지막 부분 보기
파일의 마지막 10줄을 확인하려면 다음 명령을 사용합니다.
tail notes.txt
마지막 20줄:
tail -n 20 notes.txt
tail -f: 실시간 로그 보기
로그 파일에 새 내용이 추가되는 것을 실시간으로 확인하려면 다음 명령을 사용합니다.
tail -f /var/log/auth.log
SSH 접속 기록처럼 계속 갱신되는 로그를 확인할 때 유용합니다.
종료하려면 다음 키를 누릅니다.
Ctrl + C
파일 편집하기
nano: 간단한 텍스트 편집기
터미널에서 파일을 수정할 때 초보자가 사용하기 쉬운 편집기는 nano입니다.
nano notes.txt
파일이 없으면 새 파일이 만들어지고, 파일이 있으면 기존 내용을 편집합니다.
화면 아래쪽에 다음과 같은 단축키가 표시됩니다.
^O Write Out
^X Exit
여기서 ^는 Ctrl 키를 뜻합니다.
저장하기
Ctrl + O
파일 이름을 확인한 후 Enter를 누릅니다.
종료하기
Ctrl + X
저장하고 종료하기
Ctrl + O
Enter
Ctrl + X
수정한 후 바로 종료하려고 Ctrl + X를 누르면 저장할지 묻는 화면이 나타날 수 있습니다.
Save modified buffer?
Y: 저장
N: 저장하지 않고 종료
Ctrl + C: 종료 취소

파일과 폴더 복사하기
cp: 파일 복사
파일을 복사하려면 cp 명령을 사용합니다.
cp는 copy의 줄임말입니다.
cp notes.txt notes-backup.txt
notes.txt를 복사해서 notes-backup.txt라는 새 파일을 만듭니다.
확인:
ls -l
다른 폴더로 파일 복사
현재 위치의 파일을 다른 폴더로 복사할 수 있습니다.
cp notes.txt backup/
파일 이름을 변경하면서 복사할 수도 있습니다.
cp notes.txt backup/server-notes.txt
cp -r: 폴더 복사
폴더를 내부 파일과 함께 복사하려면 -r 옵션을 사용합니다.
cp -r project project-backup
-r은 recursive의 줄임말입니다.
하위 폴더와 파일까지 반복해서 복사한다는 의미입니다.
cp -i: 덮어쓰기 전 확인
같은 이름의 파일이 이미 있을 경우 덮어쓰기 전에 확인하려면 -i 옵션을 사용합니다.
cp -i notes.txt backup/notes.txt
다음과 같은 질문이 나타날 수 있습니다.
cp: overwrite 'backup/notes.txt'?
덮어쓰려면 y, 취소하려면 n을 입력합니다.
cp -a: 속성을 유지하며 복사
권한, 소유권, 시간 정보 등을 최대한 유지하면서 복사하려면 -a 옵션을 사용할 수 있습니다.
cp -a project project-backup
백업 작업에서 자주 사용됩니다.
파일과 폴더 이동하기
mv: 파일 이동
파일을 다른 폴더로 이동하려면 mv 명령을 사용합니다.
mv는 move의 줄임말입니다.
mv notes.txt documents/
현재 위치의 notes.txt가 documents 폴더 안으로 이동합니다.
mv: 파일 이름 변경
Linux에서는 파일 이름을 바꾸는 작업도 mv 명령으로 처리합니다.
mv notes.txt server-notes.txt
notes.txt의 이름이 server-notes.txt로 변경됩니다.
폴더 이름 변경
폴더 이름도 같은 방식으로 변경할 수 있습니다.
mv old-project new-project
여러 파일을 현재 폴더로 이동
여러 파일을 이동할 때는 글롭으로 상위 폴더 전체를 선택하지 말고, 먼저 대상을 확인한 뒤 파일명을 명시하는 편이 안전합니다.
ls -la ..
mv ../notes.txt ../config.yaml .
마지막의 .은 현재 폴더를 뜻합니다. 이 예시는 상위 폴더의 notes.txt와 config.yaml만 현재 폴더로 이동합니다.
상위 폴더 전체를 선택하는 넓은 글롭을 사용하면 현재 폴더의 형제 항목까지 예상하지 않게 이동할 수 있고, 점으로 시작하는 숨김 파일은 선택되지 않습니다. 초보 실습에서는 사용하지 않습니다.
파일과 폴더 삭제하기
rm: 파일 삭제
파일을 삭제하려면 rm 명령을 사용합니다.
rm notes.txt
Linux 터미널에서 삭제한 파일은 일반적으로 휴지통으로 이동하지 않습니다.
명령을 실행하면 즉시 삭제되므로 주의해야 합니다.
여러 파일 삭제
여러 파일을 한 번에 삭제할 수 있습니다.
rm file1.txt file2.txt file3.txt
rm -i: 삭제 전 확인
삭제하기 전에 확인 질문을 표시하려면 -i 옵션을 사용합니다.
rm -i notes.txt
실행 결과 예:
rm: remove regular file 'notes.txt'?
삭제하려면 y, 취소하려면 n을 입력합니다.
처음 Linux를 배울 때는 rm -i를 사용하는 것이 안전합니다.
rmdir: 빈 폴더 삭제
내용이 없는 빈 폴더를 삭제하려면 rmdir 명령을 사용합니다.
rmdir empty-folder
폴더 안에 파일이나 다른 폴더가 있으면 삭제되지 않습니다.
오류 예:
rmdir: failed to remove 'project': Directory not empty
rm -r: 내용이 있는 폴더 삭제
폴더와 그 안의 모든 파일을 함께 삭제하려면 -r 옵션을 사용합니다.
rm -r project
이 명령은 project 폴더와 내부 내용을 모두 삭제합니다.
삭제 전에 하나씩 확인하려면 다음과 같이 입력합니다.
rm -ri project
rm -rf: 강제 삭제
다음 명령은 확인 없이 폴더와 모든 내용을 강제로 삭제합니다.
rm -rf project
옵션 의미:
-r = 하위 항목까지 반복 삭제
-f = 존재하지 않는 파일과 인수를 무시하고 확인 질문을 표시하지 않음
rm -rf는 매우 강력하고 위험한 명령입니다.
특히 다음과 같은 명령은 실행하면 안 됩니다.
sudo rm -rf /
이 명령은 시스템 전체를 삭제 대상으로 지정하는 매우 위험한 명령입니다. 현대 GNU rm은 기본적으로 / 직접 삭제를 거부하지만, 보호 장치를 우회하거나 다른 경로를 잘못 지정한 재귀 삭제는 시스템을 심각하게 손상시킬 수 있습니다.
다음과 같이 경로 변수가 비어 있는 경우도 위험할 수 있습니다.
rm -rf "$TARGET"/*
$TARGET 값이 예상과 다르거나 비어 있으면 잘못된 위치를 삭제할 수 있습니다.
삭제 전에는 반드시 다음 명령으로 확인합니다.
pwd
ls -la
그리고 삭제할 대상을 먼저 출력해 보는 것이 좋습니다.
ls -la project
파일 검색하기
find: 파일과 폴더 찾기
현재 폴더 아래에서 특정 이름의 파일을 찾으려면 다음과 같이 입력합니다.
find . -name "notes.txt"
각 부분의 의미:
find . -name "notes.txt"
검색 현재 위치 이름으로 검색할 이름
대소문자를 구분하지 않고 찾기
-iname을 사용하면 대소문자를 구분하지 않습니다.
find . -iname "notes.txt"
다음 파일들이 모두 검색될 수 있습니다.
notes.txt
Notes.txt
NOTES.TXT
폴더만 찾기
폴더만 검색하려면 -type d를 사용합니다.
find . -type d -name "backup"
파일만 찾기
일반 파일만 검색하려면 -type f를 사용합니다.
find . -type f -name "*.txt"
*.txt는 이름이 .txt로 끝나는 모든 파일을 뜻합니다.
파일 내용 검색하기
grep: 파일 안의 문자열 찾기
파일 내용에서 특정 단어나 문장을 찾으려면 grep 명령을 사용합니다.
grep "SSH" notes.txt
notes.txt에서 SSH가 들어간 줄을 출력합니다.
대소문자를 구분하지 않고 검색
grep -i "ssh" notes.txt
다음 표현을 모두 검색할 수 있습니다.
SSH
ssh
Ssh
줄 번호와 함께 표시
grep -n "SSH" notes.txt
실행 결과 예:
12:SSH port is 22.
12는 해당 문장이 파일의 12번째 줄에 있다는 뜻입니다.
여러 파일과 하위 폴더에서 검색
현재 폴더와 하위 폴더의 모든 파일에서 검색하려면 -r 옵션을 사용합니다.
grep -r "project-dev-server" .
대소문자를 구분하지 않고 줄 번호까지 표시하려면 다음과 같이 입력합니다.
grep -rin "project-dev-server" .
파일 크기와 저장 공간 확인하기
du: 파일과 폴더 사용량 확인
현재 폴더의 전체 사용량을 보기 쉽게 확인하려면 다음 명령을 사용합니다.
du -sh .
옵션 의미:
-s = 합계만 표시
-h = 사람이 읽기 쉬운 단위로 표시
결과 예:
1.2G .
현재 폴더가 약 1.2GB를 사용하고 있다는 뜻입니다.
특정 폴더 크기 확인
du -sh project
현재 위치의 각 항목 크기를 확인하려면 다음 명령을 사용할 수 있습니다.
du -sh *
숨김 항목은 포함되지 않을 수 있습니다.
df: 디스크 전체 사용량 확인
디스크의 전체 용량과 남은 공간을 확인하려면 다음 명령을 사용합니다.
df -h
결과 예:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 916G 42G 828G 5% /
주요 항목:
Size: 전체 크기
Used: 사용 중인 공간
Avail: 남은 공간
Use%: 사용률
Mounted on: 연결된 위치
서버 저장 공간이 부족할 때 가장 먼저 확인하는 명령입니다.
시스템과 사용자 정보 확인하기
whoami: 현재 사용자 확인
현재 로그인한 사용자 이름을 확인합니다.
whoami
결과 예:
apple2ne1
id: 사용자와 그룹 정보 확인
현재 사용자의 ID와 소속 그룹을 확인하려면 다음 명령을 사용합니다.
id
실행 결과 예:
uid=1000(apple2ne1) gid=1000(apple2ne1) groups=1000(apple2ne1),27(sudo)
현재 사용자가 sudo 그룹에 포함되어 있다면 관리자 권한이 필요한 명령을 sudo로 실행할 수 있습니다.
groups: 소속 그룹 확인
현재 사용자가 속한 그룹만 간단히 확인하려면 다음 명령을 사용합니다.
groups
결과 예:
apple2ne1 sudo
hostname: 서버 이름 확인
현재 서버의 이름을 확인합니다.
hostname
결과 예:
project-dev-server
더 자세한 시스템 정보를 확인하려면 다음 명령을 사용할 수 있습니다.
hostnamectl
uname: Linux 커널 정보 확인
기본 커널 이름 확인:
uname
전체 정보 확인:
uname -a
Ubuntu 버전 확인
Ubuntu 버전을 확인하려면 다음 명령을 사용합니다.
lsb_release -a
또는 다음 파일을 확인할 수 있습니다.
cat /etc/os-release
결과 예:
NAME="Ubuntu"
VERSION="26.04 LTS"
날짜와 시간 확인
현재 서버 날짜와 시간을 확인합니다.
date
결과 예:
Mon Jul 20 13:30:15 PDT 2026
시간대 설정까지 확인하려면 다음 명령을 사용합니다.
timedatectl
네트워크 기본 명령어
ip addr: IP 주소 확인
서버의 네트워크 주소를 확인하려면 다음 명령을 사용합니다.
ip addr
간단히 다음과 같이 입력할 수도 있습니다.
ip a
출력 내용 중 다음과 같은 부분을 찾습니다.
inet 192.168.1.231/24
여기서 서버 IP 주소는 다음과 같습니다.
192.168.1.231
127.0.0.1은 서버 내부에서만 사용하는 loopback 주소이므로 외부 PC에서 접속할 때 사용하는 주소가 아닙니다.
간단하게 IP 주소만 확인
다음 명령은 서버에 할당된 IP 주소를 간단하게 보여줍니다.
hostname -I
결과 예:
192.168.1.231
여러 네트워크 장치가 있으면 IP 주소가 여러 개 표시될 수 있습니다.
ping: 네트워크 연결 확인
다른 장치와 통신이 되는지 확인하려면 ping 명령을 사용합니다.
ping 192.168.1.240
인터넷 연결 확인:
ping google.com
Linux의 ping은 계속 실행될 수 있습니다.
종료하려면 다음 키를 누릅니다.
Ctrl + C
횟수를 4회로 제한하려면 다음과 같이 입력합니다.
ping -c 4 google.com
ss: 사용 중인 포트 확인
현재 서버에서 열려 있거나 대기 중인 포트를 확인하려면 다음 명령을 사용할 수 있습니다.
ss -tuln
옵션 의미:
t: TCP
u: UDP
l: listening 상태
n: 포트 번호를 숫자로 표시
SSH 기본 포트인 22번을 확인하려면 다음과 같이 사용할 수 있습니다.
ss -tuln | grep ":22"

관리자 권한 사용하기
sudo: 관리자 권한으로 실행
일반 사용자가 시스템 설정을 변경하려면 관리자 권한이 필요할 수 있습니다.
이때 명령 앞에 sudo를 붙입니다.
sudo apt update
sudo는 명령을 다른 사용자 권한으로 실행합니다. 별도로 사용자를 지정하지 않으면 일반적으로 root 권한으로 실행합니다.
처음 실행하면 현재 사용자 비밀번호를 요구할 수 있습니다.
[sudo] password for apple2ne1:
비밀번호를 입력할 때 화면에는 글자나 별표가 표시되지 않습니다.
입력되지 않는 것이 아니라 보안을 위해 화면에 표시하지 않는 것입니다.
비밀번호를 입력한 후 Enter를 누릅니다.
모든 명령에 sudo를 붙이면 안 되는 이유
sudo는 시스템 전체에 영향을 줄 수 있는 강한 권한입니다.
잘못된 명령을 실행하면 다음과 같은 문제가 생길 수 있습니다.
- 시스템 파일 삭제
- 권한과 소유자 변경
- 서비스 중단
- 부팅 오류
- 네트워크 연결 끊김
개인 홈 폴더에서 일반 파일을 만들거나 수정할 때는 보통 sudo가 필요하지 않습니다.
예를 들어 다음 명령은 일반 사용자로 실행하는 것이 좋습니다.
mkdir ~/project
touch ~/notes.txt
nano ~/notes.txt
sudo를 사용해 개인 파일을 만들면 소유자가 root가 되어 나중에 일반 사용자가 수정하지 못할 수 있습니다.
프로그램 설치와 업데이트
apt update: 패키지 목록 갱신
Ubuntu에서 프로그램 설치 정보를 갱신하려면 다음 명령을 사용합니다.
sudo apt update
이 명령은 프로그램 자체를 업데이트하는 것이 아니라 설치 가능한 패키지 목록을 최신 상태로 갱신합니다.
apt upgrade: 설치된 프로그램 업데이트
설치된 패키지를 최신 버전으로 업데이트하려면 다음 명령을 사용합니다.
sudo apt upgrade
확인 질문이 나타나면 내용을 확인한 후 진행합니다.
자동으로 yes를 선택하려면 -y 옵션을 사용할 수 있습니다.
sudo apt upgrade -y
하지만 서버에서는 변경 내용을 확인한 후 진행하는 것이 더 안전합니다.
프로그램 설치
예를 들어 tree 프로그램을 설치하려면 다음과 같이 입력합니다.
sudo apt install tree
설치 여부를 묻는 질문이 나타날 수 있습니다.
Do you want to continue? [Y/n]
계속하려면 Y 또는 Enter를 누릅니다.
프로그램 삭제
설치한 프로그램을 삭제하려면 다음 명령을 사용합니다.
sudo apt remove tree
설정 파일까지 함께 삭제하려면 다음 명령을 사용할 수 있습니다.
sudo apt purge tree
사용하지 않는 의존 패키지를 정리하려면 다음 명령을 사용합니다.
sudo apt autoremove
서비스 관리하기
systemctl status: 서비스 상태 확인
SSH 서비스 상태를 확인하려면 다음 명령을 사용합니다.
sudo systemctl status ssh
주요 상태:
active (running)
서비스가 정상적으로 실행 중이라는 뜻입니다.
상태 화면에서 빠져나오려면 다음 키를 누릅니다.
q
서비스 시작
sudo systemctl start ssh
서비스 중지
sudo systemctl stop ssh
원격 SSH로 접속한 상태에서 SSH 서비스를 중지하면 현재 또는 이후 연결에 문제가 생길 수 있으므로 주의해야 합니다.
서비스 재시작
설정 파일을 변경한 후에는 먼저 구문을 검사합니다.
sudo sshd -t
오류가 없을 때 다음 명령으로 설정을 적용합니다.
sudo systemctl restart ssh
원격 SSH 연결에서 재시작하면 접속이 끊길 수 있으므로 별도의 서버 콘솔이나 복구 수단을 준비합니다.
부팅 시 자동 실행 설정
다음 명령은 ssh.service를 직접 실행하는 구성에서 사용합니다. Ubuntu 22.10 이후의 소켓 활성화 구성은 이어지는 ssh.socket 설명을 함께 확인합니다.
sudo systemctl enable ssh
자동 실행 해제:
sudo systemctl disable ssh
자동 실행 여부 확인:
sudo systemctl is-enabled ssh
Ubuntu 설치 과정에서 OpenSSH 서버 선택 후 disabled 표시
Ubuntu 22.10 이후, 특히 Ubuntu 24.04 LTS에서 설치 과정 중 OpenSSH Server를 선택했는데 ssh.service가 disabled로 표시되는 경우, SSH가 ssh.service가 아니라 ssh.socket 방식으로 활성화되어 있기 때문일 수 있습니다. 배포판 버전과 설치 후 변경 사항에 따라 구성은 달라질 수 있습니다.
따라서 ssh.service의 disabled만으로 부팅 후 SSH를 사용할 수 없다고 판단하면 안 됩니다. ssh.socket과 실제 포트의 수신 대기 상태를 함께 확인합니다.
다음 명령으로 확인해 보세요.
systemctl is-enabled ssh.socket
systemctl is-active ssh.socket
정상적인 예:
enabled
active
이 상태에서는 컴퓨터가 부팅될 때 ssh.socket이 먼저 대기하고 있다가, 외부에서 SSH 접속 요청이 들어오면 ssh.service를 실행합니다. 이를 소켓 활성화(socket activation)라고 합니다.
상태를 자세히 확인하려면:
systemctl status ssh.socket
systemctl status ssh.service
또는 SSH 포트가 실제로 열려 있는지 확인합니다.
sudo ss -tlnp | grep ':22'
결과 예:
LISTEN 0 4096 0.0.0.0:22
이 결과가 나오면 SSH 접속 요청을 받을 준비가 된 것입니다.


명령 실행 중지와 화면 정리
Ctrl + C: 실행 중인 명령 중지
계속 실행되는 명령을 중지할 때 사용합니다.
예:
ping google.com
중지:
Ctrl + C
tail -f, 일부 설치 명령, 실행 중인 프로그램을 중단할 때도 사용할 수 있습니다.
clear: 터미널 화면 정리
터미널 화면을 깨끗하게 정리하려면 다음 명령을 사용합니다.
clear
단축키로도 실행할 수 있습니다.
Ctrl + L
화면에 표시된 내용만 정리될 뿐 이전 명령 기록이 삭제되는 것은 아닙니다.
history: 이전 명령 확인
지금까지 입력한 명령을 확인하려면 다음 명령을 사용합니다.
history
실행 결과 예:
101 pwd
102 ls -la
103 cd project
104 nano notes.txt
특정 단어가 포함된 명령만 찾을 수도 있습니다.
history | grep ssh
이전 명령 다시 사용
키보드의 위쪽 방향키를 누르면 이전에 입력한 명령을 다시 불러올 수 있습니다.
↑
아래쪽 방향키를 누르면 다음 기록으로 이동합니다.
↓
이전 명령을 다시 입력할 필요 없이 일부만 수정해서 실행할 수 있습니다.
Tab: 자동 완성
파일명이나 폴더 이름을 일부만 입력한 후 Tab을 누르면 자동으로 완성됩니다.
예를 들어 다음 폴더가 있다고 가정하겠습니다.
project-development
다음과 같이 일부만 입력합니다.
cd pro
그 후 Tab을 누르면 자동으로 완성될 수 있습니다.
cd project-development
비슷한 이름이 여러 개이면 Tab을 두 번 눌러 가능한 목록을 확인할 수 있습니다.
자동 완성은 오타를 줄이고 긴 경로를 빠르게 입력하는 데 매우 유용합니다.
명령어 도움말 보기
--help: 간단한 도움말
대부분의 명령어는 --help 옵션을 제공합니다.
ls --help
cp --help
rm --help
지원하는 옵션과 사용 방법을 확인할 수 있습니다.
man: 명령어 설명서
더 자세한 설명을 보려면 man 명령을 사용합니다.
man ls
man은 manual의 줄임말입니다.
주요 조작:
| 키 | 기능 |
|---|---|
Space |
다음 화면 |
b |
이전 화면 |
/단어 |
검색 |
q |
종료 |
예:
man chmod
which: 명령어 위치 확인
특정 명령어가 어느 경로에 설치되어 있는지 확인합니다.
which ssh
결과 예:
/usr/bin/ssh
명령어가 설치되어 있지 않으면 아무 결과가 나오지 않을 수 있습니다.
명령어 연결하기
파이프 |
한 명령의 결과를 다른 명령으로 전달할 때 파이프를 사용합니다.
history | grep ssh
동작 순서:
history가 이전 명령을 출력
grep ssh가 그중ssh가 포함된 줄만 표시
다른 예:
ls -la | less
파일 목록이 길 때 한 화면씩 확인할 수 있습니다.
>: 결과를 파일에 저장
명령의 출력 결과를 파일에 저장하려면 >를 사용합니다.
ls -la > file-list.txt
화면에 출력하는 대신 file-list.txt에 저장합니다.
파일이 이미 있으면 기존 내용이 덮어써집니다.
>>: 기존 파일 뒤에 추가
기존 내용을 유지하면서 새로운 결과를 뒤에 추가하려면 >>를 사용합니다.
date >> server-log.txt
명령을 실행할 때마다 날짜 정보가 파일 뒤에 추가됩니다.
&&: 앞 명령이 성공하면 다음 명령 실행
mkdir project && cd project
동작 순서:
project폴더 생성
- 생성에 성공하면
project로 이동
프로그램 목록을 갱신한 후 업데이트하려면 다음과 같이 사용할 수 있습니다.
sudo apt update && sudo apt upgrade
앞 명령이 실패하면 뒤의 명령은 실행되지 않습니다.
;: 성공 여부와 관계없이 다음 명령 실행
pwd; ls -la
pwd가 끝나면 성공 여부와 관계없이 ls -la가 실행됩니다.
처음 Linux를 사용할 때는 여러 명령을 한 줄에 연결하기보다 하나씩 실행하면서 결과를 확인하는 것이 좋습니다.
서버 종료와 재부팅
서버 종료
Linux 서버를 안전하게 종료하려면 다음 명령을 사용합니다.
sudo shutdown now
또는 다음 명령을 사용할 수 있습니다.
sudo poweroff
서버 전원이 꺼지면 SSH 연결도 종료됩니다.
물리적인 서버를 다시 사용하려면 전원 버튼을 누르거나 WOL 같은 원격 전원 기능이 필요할 수 있습니다.
일정 시간 후 종료
10분 후 종료:
sudo shutdown +10
종료 예약 취소:
sudo shutdown -c
서버 재부팅
서버를 재부팅하려면 다음 명령을 사용합니다.
sudo reboot
재부팅을 시작하면 SSH 연결이 끊어집니다.
서버가 다시 시작될 때까지 잠시 후 재접속해야 합니다.
네트워크 설정이나 SSH 설정을 변경한 직후에는 바로 재부팅하기 전에 설정이 올바른지 먼저 확인하는 것이 좋습니다.
자주 사용하는 기본 명령어 요약
| 명령어 | 기능 |
|---|---|
pwd |
현재 위치 확인 |
ls |
파일과 폴더 목록 확인 |
ls -la |
숨김 항목을 포함한 자세한 목록 확인 |
cd |
폴더 이동 |
mkdir |
폴더 생성 |
mkdir -p |
상위 폴더를 포함해 생성 |
touch |
빈 파일 생성 또는 수정 시간 갱신 |
cat |
파일 전체 내용 출력 |
less |
긴 파일을 한 화면씩 확인 |
head |
파일 앞부분 확인 |
tail |
파일 마지막 부분 확인 |
tail -f |
로그 실시간 확인 |
nano |
텍스트 파일 편집 |
cp |
파일 복사 |
cp -r |
폴더 복사 |
mv |
파일 이동 또는 이름 변경 |
rm |
파일 삭제 |
rmdir |
빈 폴더 삭제 |
rm -r |
폴더와 내부 내용 삭제 |
find |
파일과 폴더 검색 |
grep |
파일 내용 검색 |
du -sh |
폴더 사용량 확인 |
df -h |
디스크 전체 사용량 확인 |
whoami |
현재 사용자 확인 |
id |
사용자와 그룹 정보 확인 |
hostname |
서버 이름 확인 |
ip addr |
네트워크와 IP 주소 확인 |
ping |
네트워크 연결 확인 |
sudo |
관리자 권한으로 명령 실행 |
systemctl |
서비스 상태 확인 및 관리 |
history |
이전 명령 확인 |
clear |
터미널 화면 정리 |
man |
명령어 설명서 확인 |
shutdown |
서버 종료 |
reboot |
서버 재부팅 |
초보자가 꼭 기억해야 할 주의사항
삭제 전 현재 위치를 확인한다
pwd
ls -la
특히 rm, rm -r, rm -rf를 사용하기 전에는 현재 위치와 삭제 대상을 반드시 확인해야 합니다.
경로에 공백이 있으면 따옴표를 사용한다
다음과 같은 폴더 이름이 있다고 가정하겠습니다.
My Project
공백이 있는 경로는 따옴표로 묶습니다.
cd "My Project"
또는 공백 앞에 역슬래시를 사용할 수 있습니다.
cd My\ Project
Linux에서는 공백이 명령어와 대상을 구분하는 역할을 하기 때문입니다.
대문자와 소문자를 구분한다
Linux는 파일명과 명령어에서 대문자와 소문자를 구분합니다.
다음 파일들은 서로 다른 파일입니다.
notes.txt
Notes.txt
NOTES.txt
다음 명령도 서로 다릅니다.
ls
LS
ls는 정상 명령이지만 LS는 일반적으로 존재하지 않는 명령입니다.
명령어의 철자를 정확히 입력한다
다음은 올바른 명령입니다.
mkdir project
다음은 잘못된 명령입니다.
mkidr project
오류 예:
mkidr: command not found
command not found가 표시되면 먼저 명령어 철자를 확인합니다.
개인 파일 작업에는 불필요한 sudo를 사용하지 않는다
홈 폴더에서 파일이나 폴더를 만드는 데는 일반적으로 sudo가 필요하지 않습니다.
mkdir ~/project
touch ~/project/notes.txt
불필요하게 sudo를 사용하면 파일 소유자가 root가 되어 일반 사용자가 수정하지 못할 수 있습니다.
명령 실행 후 결과를 확인한다
명령어를 여러 개 한꺼번에 실행하기보다 하나씩 실행하고 결과를 확인하는 습관이 좋습니다.
예:
mkdir project
확인:
ls -ld project
이동:
cd project
현재 위치 확인:
pwd
이러한 방식은 실수를 줄이고 Linux 명령어의 동작을 이해하는 데 도움이 됩니다.
기본 실습
다음 실습을 순서대로 진행하면 주요 기본 명령을 익힐 수 있습니다.
1단계: 홈 폴더로 이동
cd
현재 위치 확인:
pwd
2단계: 연습 폴더 만들기
mkdir linux-practice
확인:
ls -l
3단계: 연습 폴더로 이동
cd linux-practice
현재 위치 확인:
pwd
4단계: 하위 폴더 만들기
mkdir documents backup
확인:
ls -l
5단계: 파일 만들기
touch notes.txt
6단계: 파일 편집하기
nano notes.txt
다음 내용을 입력합니다.
Linux command practice
서버 이름: project-dev-server
저장:
Ctrl + O
Enter
종료:
Ctrl + X
7단계: 파일 내용 확인
cat notes.txt
8단계: 파일 복사
cp notes.txt backup/notes-backup.txt
확인:
ls -l backup
9단계: 파일 이동
mv notes.txt documents/
확인:
ls -l documents
10단계: 파일 이름 변경
mv documents/notes.txt documents/linux-notes.txt
11단계: 전체 구조 확인
tree가 설치되어 있다면 다음 명령을 사용할 수 있습니다.
tree
예상 결과:
.
├── backup
│ └── notes-backup.txt
└── documents
└── linux-notes.txt
tree가 설치되어 있지 않으면 다음 명령으로 설치할 수 있습니다.
sudo apt install tree
12단계: 연습 폴더 삭제
먼저 홈 폴더로 이동합니다.
cd
삭제할 폴더를 확인합니다.
ls -la linux-practice
확인하면서 삭제합니다.
rm -ri linux-practice
핵심 정리
Linux 기본 명령어를 익힐 때 모든 명령을 한 번에 암기할 필요는 없습니다.
먼저 다음 명령을 반복해서 사용하는 것이 좋습니다.
pwd
ls -la
cd
mkdir
touch
nano
cat
cp
mv
rm
서버 작업 전에는 현재 위치를 확인합니다.
pwd
파일과 폴더 상태를 확인합니다.
ls -la
삭제나 이동 명령을 실행하기 전에는 대상 경로를 다시 확인합니다.
ls -la 대상경로
Linux 명령어는 짧지만 시스템에 직접 영향을 줍니다. 하나의 명령을 실행하고 그 결과를 확인하는 습관을 들이면 서버 작업을 훨씬 안전하게 진행할 수 있습니다.
주의 사항과 한계
rm,mv,cp의 덮어쓰기와 삭제 동작은 명령 옵션, 별칭과 배포판 환경에 따라 달라질 수 있으므로--help또는man으로 현재 환경을 확인합니다.rm -rf는 확인 없이 파일과 폴더를 재귀적으로 제거하므로 학습 목적의 일반적인 해결 명령으로 사용하지 않습니다.sudo는 필요한 명령에만 사용하고, 실행 전에 대상 경로와 명령의 영향을 확인합니다.apt upgrade와 서비스 재시작은 운영 중인 서비스에 영향을 줄 수 있으므로 변경 내용과 점검 시간을 먼저 확인합니다.ping응답이 없다고 네트워크 연결이 반드시 끊긴 것은 아닙니다. 방화벽이나 대상 장치가 ICMP 응답을 차단할 수 있습니다.- 이 문서는 기본 명령의 입문 범위를 다루며 셸 확장, 권한, 프로세스, 로그 분석과 네트워크 진단의 전체 내용을 대신하지 않습니다.
작성 및 검증 정보
- 작성자: apple2ne1
- 검토자: apple2ne1
- 직접 수행 여부: Ubuntu 서버를 기준으로 작성된 기존 예시를 보존했으며 이번 정리 과정에서는 별도 Linux 환경에서 직접 실행하지 않음
- 마지막 문서 검토일: 2026-08-02
- 검증 방법: GNU Coreutils, Ubuntu Manpages, Ubuntu 24.04 LTS 릴리스 노트와 systemd 공식 문서에서 기본 명령, 옵션과 OpenSSH 소켓 활성화 동작을 대조
참고 자료 및 출처
- GNU Coreutils Manual — 파일·폴더·내용·저장 공간 관련 기본 명령 확인 — 2026-08-02
- Ubuntu Manpages — Ubuntu의
apt, 네트워크와 시스템 명령 확인 — 2026-08-02 - Ubuntu 24.04 LTS @@INLINE_0@@ Manpage —
rm -f, 재귀 삭제와--preserve-root동작 확인 — 2026-08-02 - Ubuntu 24.04 LTS Release Notes — OpenSSH의 systemd 소켓 활성화 적용 범위 확인 — 2026-08-02
- systemd @@INLINE_0@@ — 서비스 상태 확인과 시작·중지·재시작 명령 확인 — 2026-08-02
관련 문서
- Linux MOC
- Linux Directory 권한
- 같은 Network에서 project-dev-server 사용 준비

