본문 바로가기
DevOps/LINUX

[LINUX] 리눅스 터미널과 쉘 – 기본 개념 및 명령어 총정리

by 개발이 체질인 나그네 2025. 3. 11.
반응형

1. 터미널과 쉘의 이해

터미널(Terminal)이란?

터미널은 사용자와 운영체제 사이에서 명령어를 입력받고 결과를 출력해주는 응용 프로그램입니다.
과거에는 하드웨어 형태로 존재했지만, 오늘날에는 주로 응용 프로그램 형태로 동작합니다.

쉘(Shell)이란?

쉘은 사용자가 입력한 명령어를 해석해 운영체제에 전달하는 프로그램입니다. 터미널은 이러한 쉘을 실행하는 환경 역할을 합니다.

주요 역할은 다음과 같습니다.

  • 명령어 해석: 입력된 명령어를 해석하여 하드웨어나 운영체제에 전달
  • 스크립트 작성 및 자동화: 프로그래밍 언어처럼 활용하여 다양한 작업을 자동화

2. 기본 명령어 구조

리눅스 명령어는 기본적으로 명령어(Command), 옵션(Option), 인자(Argument) 로 구성됩니다.

예를 들어,
ls -l /home 명령어는

  • 명령어: ls (목록을 출력)
  • 옵션: -l (상세 정보 출력)
  • 인자: /home (대상 디렉터리)
    를 의미합니다.

이러한 기본 구조를 이해하면 다양한 명령어를 효율적으로 활용할 수 있습니다.

3. 주요 리눅스 명령어

아래는 리눅스 환경에서 자주 사용하는 명령어들을 카테고리별로 정리한 표입니다.

파일 및 디렉터리 탐색

명령어설명예시

pwd 현재 작업 디렉터리의 전체 경로 출력 pwd
ls 현재 디렉터리 내 파일 및 디렉터리 목록 출력 ls, ls -l, ls -a, ls -lh, ls -R
cd 디렉터리 이동 cd /, cd ~, cd ..

파일 작업

명령어설명예시

touch 새 파일 생성 또는 파일 수정 시간 업데이트 touch new_file.txt
cp 파일 또는 디렉터리 복사 cp source.txt destination/
cp -r source_directory/ destination_directory/
mv 파일 이동 또는 이름 변경 mv old_file.txt new_location/
mv old_name.txt new_name.txt
rm 파일 또는 디렉터리 삭제 (주의 필요) rm file.txt
rm -r directory/

파일 내용 확인 및 출력

명령어설명예시

cat 파일 전체 내용 출력 cat file.txt
head 파일의 처음 몇 줄 출력 (기본 10줄) head -n 5 file.txt
tail 파일의 마지막 몇 줄 출력 (기본 10줄) tail -n 3 file.txt
less 파일 내용을 페이지 단위로 출력하여 확인 less /etc/passwd
grep 파일 내 특정 문자열이나 패턴 검색 grep "root" /etc/passwd
wc 파일의 행 수, 단어 수, 바이트 수 계산 wc file.txt
wc -l file.txt

프로세스 관리

명령어설명예시

ps 현재 실행 중인 프로세스 목록 출력 ps aux
ps -ef
top 시스템의 리소스 사용 현황과 프로세스 목록을 실시간 모니터링 top (종료 시 q 키)
kill 특정 프로세스에 시그널 전달하여 종료 kill 1234
kill -9 1234

4. Vim 편집기 간단 소개

Vim은 Unix 계열 시스템에서 널리 사용되는 텍스트 편집기로, 다양한 기능을 갖추고 있어 코드 작성이나 파일 편집 시 유용합니다.

  • 입력 모드: i 키를 눌러 텍스트 입력
  • 명령 모드: Esc 키를 눌러 명령 입력
  • 저장 및 종료: 명령 모드에서 :wq 입력

유용한 편집 커맨드

커맨드설명예시

dd 현재 행 삭제 삭제할 행에서 dd 입력
yy 현재 행 복사 복사할 행에서 yy 입력
p 복사한 내용 현재 커서 아래에 붙여넣기 복사 후 p 입력
u 마지막 작업 취소 작업 후 u 입력
Ctrl + r 취소했던 작업 다시 실행 작업 후 Ctrl + r 입력
:set number 행 번호 표시 활성화 명령 모드에서 입력
/{검색어} 파일 내에서 특정 단어나 구문 검색 (정규식 사용 가능) 예: /main 입력

리눅스의 터미널과 쉘, 그리고 여러 명령어들은 서버 관리와 개발 작업에서 핵심 도구로 활용됩니다. 기본 개념을 확실히 이해하고, 각 명령어의 사용법과 옵션을 숙지하면 효율적으로 시스템을 제어할 수 있습니다.

이 글이 리눅스 명령어에 대해 이해하는 데 도움이 되길 바랍니다.

반응형

댓글