Linux는 오픈 소스 기반의 유닉스(UNIX) 계열 운영체제입니다. 안정성, 보안성, 유연성 덕분에 서버, 개발 환경, 임베디드 시스템 등 다양한 분야에서 널리 사용되고 있습니다. 특히 커널이 오픈 소스로 제공되기 때문에 다양한 배포판(Distro)이 존재하며, 사용 목적에 따라 맞춤형 운영체제를 구성할 수 있습니다.
| 명령어 | 설명 | 예시 |
|---|---|---|
ls | 현재 디렉토리의 파일 목록 출력 · ls -a : 숨김 파일 포함 출력 · ls -l : 상세 정보 출력 | ls -al |
cd | 디렉토리 이동 · cd .. : 상위 디렉토리로 이동 · cd ~ : 홈 디렉토리로 이동 | cd /home/user |
pwd | 현재 디렉토리 경로 확인 | pwd |
mkdir | 디렉토리 생성 · mkdir -p a/b/c : 중첩 디렉토리 생성 | mkdir newfolder |
rmdir | 빈 디렉토리 삭제 | rmdir oldfolder |
rm | 파일 또는 디렉토리 삭제 | rm -rf folder/ |
cp | 파일 또는 디렉토리 복사 | cp file1.txt backup/file1.txt |
mv | 파일 이동 또는 이름 변경 | mv old.txt new.txt |
touch | 빈 파일 생성 | touch test.txt |
find | 파일 또는 디렉토리 검색 | find / -name "*.conf" |
| 디렉토리 | 설명 |
|---|---|
/bin | 기본 명령어(ls, cp 등) 위치 |
/sbin | 시스템 관리자용 명령어 |
/etc | 설정 파일 저장 경로 |
/var | 로그, 임시파일 등 |
/home | 사용자별 홈 디렉토리 |
/usr | 프로그램 및 라이브러리 저장소 |
| 명령어 | 설명 | 예시 |
|---|---|---|
locate 파일명 | 빠른 파일 검색(사전 DB 기반) | locate config.json |
find /경로 -name '파일명' | 특정 경로 내 조건 기반 탐색 | find / -name "*.log" |
whereis 명령어 | 명령어 경로 및 관련 파일 확인 | whereis ls |
| 명령어 | 설명 | 예시 |
|---|---|---|
man | 매뉴얼 페이지 확인 | man cp |
--help | 간단한 도움말 출력 | mkdir --help |
| 명령어 | 설명 | 사용법 |
|---|---|---|
nano | 초보자용 텍스트 편집기 | 저장: Ctrl + O, 종료: Ctrl + X |
vim | 고급 편집기 | 입력: i, 저장 종료: :wq, 종료: :q! |
| 명령어 | 설명 |
|---|---|
sudo apt-get update | 패키지 목록 최신화 |
sudo apt-get install [pkg] | 패키지 설치 |
sudo apt-get upgrade | 설치된 패키지 업그레이드 |
sudo apt-get remove [pkg] | 패키지 제거 |
apt-cache search [keyword] | 관련 패키지 검색 |
| 명령어 | 설명 | 예시 |
|---|---|---|
wget [URL] | 웹에서 파일 다운로드 | wget https://example.com/file.zip |
wget -O [파일명] [URL] | 다른 이름으로 저장 | wget -O myfile.zip https://example.com/file.zip |
git clone [URL] | Git 저장소 복제 | git clone https://github.com/user/repo.git |
| 기호 | 설명 | 예시 |
|---|---|---|
> | 표준 출력 → 파일 저장 | ls -al > result.txt |
2> | 에러 출력 → 파일 저장 | rm missing.txt 2> error.txt |
< | 파일을 입력으로 사용 | head -n1 < input.txt > output.txt |
>> | 기존 파일에 덧붙임 저장 | echo Hello >> log.txt |
echo $0#!/bin/bash
if ! [ -d bak ]; then
mkdir bak
fi
cp *.log bak
chmod +x script.sh 후 실행 가능| 명령어 | 설명 |
|---|---|
Ctrl + Z | 실행 중인 작업 백그라운드로 중단 |
bg | 중단된 작업 백그라운드로 실행 |
fg | 백그라운드 작업을 전면으로 실행 |
jobs | 백그라운드 작업 목록 확인 |
nohup 명령 & | 세션 종료 후에도 명령 지속 실행 |
~/.bashrc: 셸 초기화 시 실행되는 설정 파일echo 'alias ll="ls -al"' >> ~/.bashrc| 명령어 | 설명 | 예시 |
|---|---|---|
crontab -e | 사용자별 크론탭 설정 편집 | * * * * * date >> ~/date.log 2>&1 |
crontab -l | 현재 등록된 크론 작업 보기 | crontab -l |
| 항목 | 명령어 예시 |
|---|---|
| 현재 사용자/그룹 확인 | id, who |
| 루트 전환 | su - root, sudo passwd root |
| 사용자 추가 | sudo useradd -m newuser |
| 비밀번호 설정 | sudo passwd newuser |
| sudo 권한 부여 | sudo usermod -aG sudo newuser |
| 권한 변경 | chmod 755 파일, chmod u+x script.sh |
| 그룹 관리 | groupadd dev, usermod -a -G dev user |
| 소유 변경 | chown root:dev 디렉토리명 |
| 항목 | 명령어 예시 |
|---|---|
| IP 확인 | ip addr, curl ipinfo.io/ip |
| 도메인 연결 확인 | ping google.com |
| 웹서버 설치 | sudo apt install apache2 |
| SSH 서버 설치 | sudo apt install openssh-server |
| SSH 접속 | ssh user@IP |
| SSH 설정 파일 | /etc/ssh/sshd_config |
| 포트 번호 | 웹서버: 80, SSH: 22 (변경 시 포트포워딩 필요) |
| 도메인 매핑 | /etc/hosts 수동 매핑, /etc/resolv.conf 확인 |
| 명령어 예시 | 설명 |
|---|---|
rsync -av src/ dest/ | 로컬 디렉토리 간 동기화 |
rsync -azP src/ user@IP:~/dest/ | 원격 서버로 동기화 (압축, 진행률 표시) |
| 명령어 예시 | 설명 |
|---|---|
ssh-keygen | 개인/공개 키 생성 |
ssh-copy-id user@IP | 공개 키를 서버로 전송 |
| 이후 접속 | 비밀번호 입력 없이 ssh user@IP 가능 |
SSH(Secure Shell)는 네트워크를 통해 원격 컴퓨터에 안전하게 접속하기 위한 프로토콜입니다. CLI 기반으로 서버를 원격 제어할 때 가장 널리 사용되며, 비밀번호 또는 SSH 키 인증 방식을 통해 안전하게 통신합니다.
암호화된 통신: ID/PW 또는 공개키 기반 인증을 통해 안전한 연결 수행
CLI 원격 제어: GUI 없이도 텍스트 기반 명령어로 시스템 제어 가능
기본 포트: 22번 사용
패킷 가로채기 방지: 데이터 전송 시 모두 암호화되어 전송됨
원격 서버에 접속하여 관리할 때 (ex: 클라우드 서버 운영)
로컬 PC에서 원격 컴퓨터의 터미널 환경 제어할 때
GitHub, GitLab 등의 SSH 키 인증 연동 시
SCP, SFTP 등을 통한 파일 전송 시
ssh 사용자명@IP주소
- ex)
ssh ubuntu@192.168.0.10