리눅스 기본 명령어

날아올라돼지야·2024년 8월 30일
0

1. 리눅스 기본 명령어

1.1 파일 시스템 구조 이해 (/, /home, /etc, /var 등)

리눅스 파일 시스템은 트리 구조로 되어 있습니다. 이 구조에서 각 디렉토리는 특정한 목적과 역할을 가지고 있습니다. 주요 디렉토리들은 다음과 같습니다:

  • / (루트 디렉토리):
    • 모든 파일과 디렉토리의 최상위에 위치한 디렉토리입니다. 리눅스 시스템의 모든 것이 이 루트 디렉토리 아래에 존재합니다.
  • /home:
    • 사용자 계정의 홈 디렉토리가 위치한 곳입니다. 예를 들어, user1이라는 사용자의 홈 디렉토리는 /home/user1에 위치하며, 사용자의 개인 파일과 설정이 이곳에 저장됩니다.
  • /etc:
    • 시스템 설정 파일들이 저장된 디렉토리입니다. 예를 들어, 사용자 계정 정보가 담긴 passwd 파일, 네트워크 설정 파일, 서버 설정 파일 등이 여기에 위치합니다.
  • /var:
    • 시스템 로그 파일, 메일 큐, 프린트 스풀 등의 자주 변경되는 파일들이 저장됩니다. 예를 들어, 로그 파일은 /var/log에, 웹 서버의 문서 루트는 /var/www에 위치할 수 있습니다.
  • /bin:
    • 시스템이 부팅될 때와 사용자들이 기본적으로 사용하는 필수 명령어들이 위치합니다. 예를 들어, ls, cp, mv 같은 명령어들이 여기에 있습니다.
  • /sbin:
    • 시스템 관리와 관련된 명령어들이 위치합니다. 주로 루트 사용자만 사용할 수 있는 명령어들이 포함되어 있습니다.
  • /usr:
    • 시스템 사용에 필요한 유틸리티, 라이브러리, 매뉴얼 등이 포함된 디렉토리입니다. /usr/bin에는 사용자들이 자주 사용하는 명령어들이 있고, /usr/lib에는 라이브러리 파일들이 있습니다.
  • /lib:
    • 시스템의 필수적인 라이브러리 파일들이 저장된 곳입니다. 커널 모듈이나 공유 라이브러리 등이 이곳에 있습니다.
  • /dev:
    • 하드웨어 장치들이 파일 형태로 표현된 곳입니다. 예를 들어, 하드 드라이브는 /dev/sda와 같은 파일로 나타납니다.
  • /tmp:
    • 임시 파일들이 저장되는 디렉토리입니다. 시스템 재부팅 시 삭제되는 파일들이 이곳에 저장됩니다.

이러한 파일 시스템 구조를 이해하면, 리눅스 시스템을 관리하고 문제를 해결하는 데 큰 도움이 됩니다.


2. 기본 파일 및 디렉토리 명령어

2.1 ls 명령어

  • 기능: 디렉토리의 내용을 나열합니다.

  • 사용법: ls [옵션] [경로]

    • ls: 현재 디렉토리의 파일과 폴더를 나열합니다.
    • ls -l: 파일과 디렉토리의 상세 정보를 보여줍니다 (권한, 소유자, 크기, 수정 날짜).
    • ls -a: 숨겨진 파일(이름이 .으로 시작하는 파일)도 함께 나열합니다.
    • ls -h: 파일 크기를 사람이 읽기 쉬운 형태(예: KB, MB)로 표시합니다.
    ls -lha /home

    이 명령어는 /home 디렉토리의 모든 파일과 디렉토리를 자세히(숨겨진 파일 포함) 나열합니다.

2.2 cd 명령어

  • 기능: 디렉토리를 변경합니다.

  • 사용법: cd [경로]

    • cd /home/user1: /home/user1 디렉토리로 이동합니다.
    • cd ..: 현재 디렉토리의 상위 디렉토리로 이동합니다.
    • cd ~: 현재 사용자의 홈 디렉토리로 이동합니다.
    cd /etc

    이 명령어는 /etc 디렉토리로 이동합니다.

2.3 cp 명령어

  • 기능: 파일이나 디렉토리를 복사합니다.

  • 사용법: cp [옵션] 원본 대상

    • cp file1.txt /home/user1/: file1.txt 파일을 /home/user1/ 디렉토리로 복사합니다.
    • cp -r /source_dir /target_dir: /source_dir 디렉토리를 /target_dir로 복사합니다(디렉토리 복사 시 -r 옵션 사용).
    cp -r /var/log /home/user1/

    이 명령어는 /var/log 디렉토리를 /home/user1/로 복사합니다.

2.4 mv 명령어

  • 기능: 파일이나 디렉토리를 이동하거나 이름을 변경합니다.

  • 사용법: mv 원본 대상

    • mv file1.txt /home/user1/: file1.txt 파일을 /home/user1/로 이동합니다.
    • mv oldname.txt newname.txt: oldname.txt 파일의 이름을 newname.txt로 변경합니다.
    mv /home/user1/oldname.txt /home/user1/newname.txt

    이 명령어는 /home/user1/ 디렉토리에 있는 oldname.txt 파일의 이름을 newname.txt로 변경합니다.

2.5 rm 명령어

  • 기능: 파일이나 디렉토리를 삭제합니다.

  • 사용법: rm [옵션] 파일

    • rm file1.txt: file1.txt 파일을 삭제합니다.
    • rm -r /home/user1/testdir: /home/user1/testdir 디렉토리를 삭제합니다(-r 옵션 사용).
    • rm -rf /home/user1/testdir: 디렉토리를 강제로 삭제합니다(-f 옵션 추가).
    rm -rf /home/user1/testdir

    이 명령어는 /home/user1/testdir 디렉토리를 강제로 삭제합니다.

2.6 mkdir 명령어

  • 기능: 새로운 디렉토리를 생성합니다.

  • 사용법: mkdir [옵션] 디렉토리명

    • mkdir newdir: 현재 디렉토리에 newdir이라는 이름의 디렉토리를 생성합니다.
    • mkdir -p /home/user1/newdir/subdir: -p 옵션을 사용하면 중간에 존재하지 않는 디렉토리들도 함께 생성됩니다.
    mkdir -p /home/user1/newdir/subdir

    이 명령어는 /home/user1/ 디렉토리 아래에 newdir/subdir 디렉토리를 생성합니다.

2.7 rmdir 명령어

  • 기능: 빈 디렉토리를 삭제합니다.

  • 사용법: rmdir 디렉토리명

    • rmdir emptydir: 빈 디렉토리 emptydir을 삭제합니다.
    • 주의: 디렉토리가 비어 있지 않으면 삭제되지 않습니다.
    rmdir /home/user1/emptydir

    이 명령어는 /home/user1/emptydir 빈 디렉토리를 삭제합니다.


3. 파일 보기 및 편집

3.1 cat 명령어

  • 기능: 파일의 내용을 화면에 출력합니다.

  • 사용법: cat 파일명

    • cat file1.txt: file1.txt 파일의 내용을 화면에 출력합니다.
    cat /etc/hostname

    이 명령어는 시스템의 호스트네임을 표시하는 파일의 내용을 출력합니다.

3.2 more 명령어

  • 기능: 긴 파일을 페이지 단위로 출력합니다.

  • 사용법: more 파일명

    • more file1.txt: file1.txt 파일의 내용을 한 화면씩 출력합니다.
    • 다음 페이지로 넘어가려면 스페이스바를, 이전 페이지로 돌아가려면 b를 누릅니다.
    more /var/log/syslog

    이 명령어는 시스템 로그 파일을 페이지 단위로 확인할 수 있게 해줍니다.

3.3 less 명령어

  • 기능: more 명령어와 유사하지만, 파일의 내용을 위아래로 스크롤할 수 있습니다.
  • 사용법: less 파일명
    • less file1.txt: file1.txt 파일의 내용을 상하 스크롤

하면서 볼 수 있습니다.

less /var/log/syslog

이 명령어는 시스템 로그 파일을 스크롤하면서 볼 수 있게 해줍니다.

3.4 nano 텍스트 편집기

  • 기능: 터미널 기반의 텍스트 편집기로, 사용이 간편합니다.

  • 사용법: nano 파일명

    • nano file1.txt: file1.txt 파일을 열어 편집합니다.
    • 편집 후, Ctrl + O를 눌러 저장하고, Ctrl + X를 눌러 종료합니다.
    nano /etc/hosts

    이 명령어는 /etc/hosts 파일을 열어 편집할 수 있게 해줍니다.

3.5 vim 텍스트 편집기

  • 기능: 강력한 기능을 제공하는 텍스트 편집기로, 다양한 모드(입력 모드, 명령 모드)를 지원합니다.

  • 사용법: vim 파일명

    • vim file1.txt: file1.txt 파일을 열어 편집합니다.
    • i를 눌러 입력 모드로 전환하고, 편집을 마친 후 Esc를 눌러 명령 모드로 돌아옵니다. :w로 저장하고, :q로 종료합니다.
    vim /etc/hostname

    이 명령어는 /etc/hostname 파일을 vim을 사용해 편집할 수 있게 해줍니다.


4. 시스템 정보 확인

4.1 uname 명령어

  • 기능: 시스템 정보를 출력합니다.

  • 사용법: uname [옵션]

    • uname: 시스템의 커널 이름을 출력합니다.
    • uname -a: 시스템의 전체 정보를 출력합니다.
    uname -a

    이 명령어는 커널 버전, 시스템 아키텍처 등 모든 시스템 정보를 출력합니다.

4.2 df 명령어

  • 기능: 디스크 공간 사용량을 확인합니다.

  • 사용법: df [옵션]

    • df: 모든 파일 시스템의 디스크 사용량을 확인합니다.
    • df -h: 디스크 사용량을 사람이 읽기 쉬운 형식으로(KB, MB, GB 등) 출력합니다.
    df -h

    이 명령어는 각 파일 시스템의 사용 가능한 디스크 공간을 출력합니다.

4.3 du 명령어

  • 기능: 특정 디렉토리 또는 파일의 디스크 사용량을 확인합니다.

  • 사용법: du [옵션] [경로]

    • du: 현재 디렉토리의 디스크 사용량을 표시합니다.
    • du -h: 사람이 읽기 쉬운 형식으로 출력합니다.
    • du -sh: 요약된 형태로 전체 사용량을 표시합니다.
    du -sh /var/log

    이 명령어는 /var/log 디렉토리의 전체 디스크 사용량을 요약하여 출력합니다.

4.4 top 명령어

  • 기능: 시스템의 실시간 프로세스 정보를 표시합니다.

  • 사용법: top

    • CPU, 메모리 사용량, 프로세스 목록을 실시간으로 표시하며, q를 눌러 종료할 수 있습니다.
    top

    이 명령어는 시스템의 CPU, 메모리 사용량과 실행 중인 프로세스 정보를 실시간으로 보여줍니다.

4.5 htop 명령어

  • 기능: top 명령어의 대체 도구로, 더 직관적이고 사용하기 쉽습니다.

  • 사용법: htop

    • 컬러 인터페이스와 마우스 지원을 제공하며, q를 눌러 종료할 수 있습니다.
    htop

이 명령어는 시스템의 리소스 사용량과 프로세스를 보다 직관적으로 보여줍니다.

리눅스에서 자주 사용되는 주요 명령어들과 그 옵션을 설명하겠습니다. 또한, 명령어를 잘 배우고 사용하는 데 도움이 되는 팁도 제공하겠습니다.

1. ls (List Directory Contents)

  • 기능: 디렉토리의 내용을 나열합니다.

주요 옵션:

  • -a : 숨김 파일을 포함하여 모든 파일을 표시합니다. (.으로 시작하는 파일)
  • -l : 파일의 상세 정보를 표시합니다. (권한, 소유자, 크기, 수정 날짜 등)
  • -h : 파일 크기를 사람이 읽기 쉬운 형식(KB, MB 등)으로 표시합니다. (보통 -l과 함께 사용됨)
  • -r : 파일 목록을 역순으로 정렬합니다.
  • -t : 파일을 수정 시간 순서로 정렬합니다.
  • -R : 하위 디렉토리의 내용도 재귀적으로 나열합니다.
ls -lha /home/user

이 명령어는 /home/user 디렉토리의 모든 파일(숨김 파일 포함)을 상세 정보와 함께 표시합니다.

2. cd (Change Directory)

  • 기능: 디렉토리를 변경합니다.

주요 옵션:

  • 옵션이 없습니다. 단순히 디렉토리 경로를 인수로 사용합니다.
cd /etc

이 명령어는 /etc 디렉토리로 이동합니다.

팁:

  • cd .. : 상위 디렉토리로 이동합니다.
  • cd ~ : 홈 디렉토리로 이동합니다.
  • cd - : 이전 디렉토리로 이동합니다.

3. cp (Copy Files and Directories)

  • 기능: 파일이나 디렉토리를 복사합니다.

주요 옵션:

  • -r : 디렉토리를 복사할 때 사용합니다. 하위 디렉토리 및 파일을 재귀적으로 복사합니다.
  • -i : 덮어쓰기 전에 확인 메시지를 표시합니다.
  • -v : 복사 중인 파일을 상세히 표시합니다.
  • -p : 원본 파일의 속성(권한, 타임스탬프)을 유지합니다.
cp -r /source_dir /target_dir

이 명령어는 /source_dir 디렉토리를 /target_dir로 복사합니다.

4. mv (Move Files and Directories)

  • 기능: 파일이나 디렉토리를 이동하거나 이름을 변경합니다.

주요 옵션:

  • -i : 덮어쓰기 전에 확인 메시지를 표시합니다.
  • -v : 이동 중인 파일을 상세히 표시합니다.
mv oldname.txt newname.txt

이 명령어는 oldname.txt 파일의 이름을 newname.txt로 변경합니다.

5. rm (Remove Files and Directories)

  • 기능: 파일이나 디렉토리를 삭제합니다.

주요 옵션:

  • -r : 디렉토리를 재귀적으로 삭제합니다.
  • -f : 강제로 삭제합니다. (확인 메시지 없이 삭제)
  • -i : 삭제 전에 확인 메시지를 표시합니다.
rm -rf /home/user/dir

이 명령어는 /home/user/dir 디렉토리를 강제로 삭제합니다.

주의: rm -rf 명령어를 사용할 때는 매우 주의해야 합니다. 실수로 중요한 파일을 삭제할 수 있습니다.

6. mkdir (Make Directory)

  • 기능: 새로운 디렉토리를 생성합니다.

주요 옵션:

  • -p : 중간 디렉토리도 함께 생성합니다.
mkdir -p /home/user/newdir/subdir

이 명령어는 /home/user/newdir/subdir 디렉토리를 생성합니다. 중간 디렉토리가 존재하지 않으면 자동으로 생성됩니다.

7. rmdir (Remove Directory)

  • 기능: 빈 디렉토리를 삭제합니다.

주요 옵션:

  • -p : 상위 빈 디렉토리도 함께 삭제합니다.
rmdir /home/user/emptydir

이 명령어는 /home/user/emptydir 빈 디렉토리를 삭제합니다.

8. cat (Concatenate and Display Files)

  • 기능: 파일의 내용을 출력하거나, 파일을 연결합니다.

주요 옵션:

  • -n : 각 줄에 번호를 붙여 출력합니다.
  • -b : 빈 줄을 제외하고 줄 번호를 붙입니다.
  • -s : 연속된 빈 줄을 하나로 합칩니다.
cat -n /etc/hosts

이 명령어는 /etc/hosts 파일의 각 줄에 번호를 붙여 출력합니다.

9. more (View File Contents Page by Page)

  • 기능: 긴 파일을 페이지 단위로 출력합니다.

주요 옵션:

  • 명령어 옵션보다는 실행 중 키보드 단축키가 중요합니다:
    • Space: 다음 페이지로 이동
    • b: 이전 페이지로 이동
    • q: 종료
more /var/log/syslog

이 명령어는 시스템 로그 파일을 페이지 단위로 출력합니다.

10. less (View File Contents with Scrolling)

  • 기능: more 명령어와 유사하지만, 상하 스크롤이 가능합니다.

주요 옵션:

  • -N : 줄 번호를 표시합니다.
  • -S : 긴 줄을 줄 바꿈하지 않고 한 줄로 표시합니다.
less /var/log/syslog

이 명령어는 시스템 로그 파일을 상하 스크롤하며 볼 수 있습니다.

11. nano (Simple Text Editor)

  • 기능: 간단한 텍스트 편집기로, 사용이 쉽습니다.

주요 키보드 단축키:

  • Ctrl + O: 파일 저장
  • Ctrl + X: 편집기 종료
  • Ctrl + K: 줄 잘라내기
  • Ctrl + U: 줄 붙여넣기
  • Ctrl + W: 검색
nano /etc/hosts

이 명령어는 /etc/hosts 파일을 편집합니다.

12. vim (Vi Improved, Advanced Text Editor)

  • 기능: 강력한 기능을 제공하는 텍스트 편집기입니다.

기본 사용법:

  • i: 입력 모드로 전환
  • Esc: 명령 모드로 전환
  • :w: 파일 저장
  • :q: 편집기 종료
  • :wq: 저장 후 종료
  • :q!: 저장하지 않고 종료
vim /etc/hostname

이 명령어는 /etc/hostname 파일을 편집합니다.

13. uname (Print System Information)

  • 기능: 시스템 정보를 출력합니다.

주요 옵션:

  • -a : 모든 시스템 정보를 출력합니다.
  • -r : 커널 버전을 출력합니다.
  • -n : 네트워크 호스트 이름을 출력합니다.
  • -m : 시스템의 하드웨어 이름을 출력합니다.
uname -a

이 명령어는 시스템의 전체 정보를 출력합니다.

14. df (Disk Free)

  • 기능: 파일 시스템의 디스크 공간 사용량을 확인합니다.

주요 옵션:

  • -h : 사람이 읽기 쉬운 형식으로 출력합니다.
  • -T : 파일 시스템의 타입을 표시합니다.
  • -i : inode 사용량을 표시합니다.
df -h

이 명령어는 디스크 공간 사용량을 사람이 읽기 쉬운 형식으로 출력합니다.

15. du (Disk Usage)

  • 기능: 특정 디렉토리 또는 파일의 디스크 사용량을 확인합니다.

주요 옵션:

  • -h : 사람이 읽기 쉬운 형식으로 출력합니다.
  • -s : 요약된 형태로 디스크 사용량을 표시합니다.
  • -c : 하위 디렉토리의 총합을 표시합니다.
du -sh /var/log

이 명령어는 /var/log 디렉토리의 전체 디스크 사용량을 요약하여 표시합니다.

16. top (Task Manager)

  • 기능: 시스템의 실시간 프로세스와 자원 사용 상태를 보여줍니다.

주요 옵션 및 단축키:

  • -u [사용자명] : 특정 사용자의 프로세스만 표시합니다.

  • q : 종료

  • P : CPU 사용량 순으로 정렬

  • M : 메모리 사용량 순으로 정렬

  • k : 프로세스 종료 (PID 입력 필요)

top

이 명령어는 실시간으로 시스템의 프로세스 상태를 보여줍니다.

17. htop (Enhanced Top)

  • 기능: top 명령어의 대체 도구로, 보다 직관적인 인터페이스를 제공합니다.

주요 옵션:

  • F6 : 정렬 기준 선택
  • F9 : 프로세스 종료
  • F10 : 종료
htop

이 명령어는 실시간 시스템 리소스와 프로세스 정보를 보여줍니다.


명령어를 잘 배우고 사용하는 팁:

  1. 연습을 통해 익히기:

    • 명령어는 사용해보는 것이 가장 중요합니다. 실습을 통해 다양한 옵션을 시도해보고, 익숙해지세요.
  2. man 페이지 활용하기:

    • 각 명령어의 상세한 설명과 옵션을 알고 싶다면 man 명령어를 사용하세요. 예를 들어, man ls를 입력하면 ls 명령어의 모든 옵션과 설명을 볼 수 있습니다.
  3. 구글 검색과 문서 참조:

    • 리눅스 관련 커뮤니티, 포럼, 블로그를 통해 다양한 명령어 사용법과 팁을 얻을 수 있습니다. 문제에 직면했을 때, 구글 검색은 매우 유용합니다.
  4. 스크립트 작성 연습:

    • 셸 스크립트를 작성하면서 명령어를 조합해보세요. 스크립트 작성은 명령어를 체계적으로 사용하는 데 큰 도움이 됩니다.
  5. 실수를 두려워하지 않기:

    • 특히 테스트 환경에서 실수를 두려워하지 마세요. rm -rf / 같은 파괴적인 명령어만 주의하면, 대부분의 실수는 되돌릴 수 있습니다.
  6. 단축키 익히기:

    • 편집기나 top, htop 같은 도구에서 사용할 수 있는 단축키를 익히면 작업 효율이 크게 향상됩니다.

이러한 명령어와 팁을 통해 리눅스 환경에서 효율적으로 작업할 수 있을 것입니다. 추가적인 질문이나 더 깊이 있는 설명이 필요하면 언제든지 알려주세요!

profile
무슨 생각하며 사니

0개의 댓글

관련 채용 정보