리눅스 파일 시스템은 트리 구조로 되어 있습니다. 이 구조에서 각 디렉토리는 특정한 목적과 역할을 가지고 있습니다. 주요 디렉토리들은 다음과 같습니다:
/
(루트 디렉토리): /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
:이러한 파일 시스템 구조를 이해하면, 리눅스 시스템을 관리하고 문제를 해결하는 데 큰 도움이 됩니다.
ls
명령어기능: 디렉토리의 내용을 나열합니다.
사용법: ls [옵션] [경로]
ls
: 현재 디렉토리의 파일과 폴더를 나열합니다.ls -l
: 파일과 디렉토리의 상세 정보를 보여줍니다 (권한, 소유자, 크기, 수정 날짜).ls -a
: 숨겨진 파일(이름이 .
으로 시작하는 파일)도 함께 나열합니다.ls -h
: 파일 크기를 사람이 읽기 쉬운 형태(예: KB, MB)로 표시합니다.ls -lha /home
이 명령어는 /home
디렉토리의 모든 파일과 디렉토리를 자세히(숨겨진 파일 포함) 나열합니다.
cd
명령어기능: 디렉토리를 변경합니다.
사용법: cd [경로]
cd /home/user1
: /home/user1
디렉토리로 이동합니다.cd ..
: 현재 디렉토리의 상위 디렉토리로 이동합니다.cd ~
: 현재 사용자의 홈 디렉토리로 이동합니다.cd /etc
이 명령어는 /etc
디렉토리로 이동합니다.
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/
로 복사합니다.
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
로 변경합니다.
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
디렉토리를 강제로 삭제합니다.
mkdir
명령어기능: 새로운 디렉토리를 생성합니다.
사용법: mkdir [옵션] 디렉토리명
mkdir newdir
: 현재 디렉토리에 newdir
이라는 이름의 디렉토리를 생성합니다.mkdir -p /home/user1/newdir/subdir
: -p
옵션을 사용하면 중간에 존재하지 않는 디렉토리들도 함께 생성됩니다.mkdir -p /home/user1/newdir/subdir
이 명령어는 /home/user1/
디렉토리 아래에 newdir/subdir
디렉토리를 생성합니다.
rmdir
명령어기능: 빈 디렉토리를 삭제합니다.
사용법: rmdir 디렉토리명
rmdir emptydir
: 빈 디렉토리 emptydir
을 삭제합니다.rmdir /home/user1/emptydir
이 명령어는 /home/user1/emptydir
빈 디렉토리를 삭제합니다.
cat
명령어기능: 파일의 내용을 화면에 출력합니다.
사용법: cat 파일명
cat file1.txt
: file1.txt
파일의 내용을 화면에 출력합니다.cat /etc/hostname
이 명령어는 시스템의 호스트네임을 표시하는 파일의 내용을 출력합니다.
more
명령어기능: 긴 파일을 페이지 단위로 출력합니다.
사용법: more 파일명
more file1.txt
: file1.txt
파일의 내용을 한 화면씩 출력합니다.b
를 누릅니다.more /var/log/syslog
이 명령어는 시스템 로그 파일을 페이지 단위로 확인할 수 있게 해줍니다.
less
명령어more
명령어와 유사하지만, 파일의 내용을 위아래로 스크롤할 수 있습니다.less 파일명
less file1.txt
: file1.txt
파일의 내용을 상하 스크롤하면서 볼 수 있습니다.
less /var/log/syslog
이 명령어는 시스템 로그 파일을 스크롤하면서 볼 수 있게 해줍니다.
nano
텍스트 편집기기능: 터미널 기반의 텍스트 편집기로, 사용이 간편합니다.
사용법: nano 파일명
nano file1.txt
: file1.txt
파일을 열어 편집합니다.Ctrl + O
를 눌러 저장하고, Ctrl + X
를 눌러 종료합니다.nano /etc/hosts
이 명령어는 /etc/hosts
파일을 열어 편집할 수 있게 해줍니다.
vim
텍스트 편집기기능: 강력한 기능을 제공하는 텍스트 편집기로, 다양한 모드(입력 모드, 명령 모드)를 지원합니다.
사용법: vim 파일명
vim file1.txt
: file1.txt
파일을 열어 편집합니다.i
를 눌러 입력 모드로 전환하고, 편집을 마친 후 Esc
를 눌러 명령 모드로 돌아옵니다. :w
로 저장하고, :q
로 종료합니다.vim /etc/hostname
이 명령어는 /etc/hostname
파일을 vim을 사용해 편집할 수 있게 해줍니다.
uname
명령어기능: 시스템 정보를 출력합니다.
사용법: uname [옵션]
uname
: 시스템의 커널 이름을 출력합니다.uname -a
: 시스템의 전체 정보를 출력합니다.uname -a
이 명령어는 커널 버전, 시스템 아키텍처 등 모든 시스템 정보를 출력합니다.
df
명령어기능: 디스크 공간 사용량을 확인합니다.
사용법: df [옵션]
df
: 모든 파일 시스템의 디스크 사용량을 확인합니다.df -h
: 디스크 사용량을 사람이 읽기 쉬운 형식으로(KB, MB, GB 등) 출력합니다.df -h
이 명령어는 각 파일 시스템의 사용 가능한 디스크 공간을 출력합니다.
du
명령어기능: 특정 디렉토리 또는 파일의 디스크 사용량을 확인합니다.
사용법: du [옵션] [경로]
du
: 현재 디렉토리의 디스크 사용량을 표시합니다.du -h
: 사람이 읽기 쉬운 형식으로 출력합니다.du -sh
: 요약된 형태로 전체 사용량을 표시합니다.du -sh /var/log
이 명령어는 /var/log
디렉토리의 전체 디스크 사용량을 요약하여 출력합니다.
top
명령어기능: 시스템의 실시간 프로세스 정보를 표시합니다.
사용법: top
q
를 눌러 종료할 수 있습니다.top
이 명령어는 시스템의 CPU, 메모리 사용량과 실행 중인 프로세스 정보를 실시간으로 보여줍니다.
htop
명령어기능: top
명령어의 대체 도구로, 더 직관적이고 사용하기 쉽습니다.
사용법: htop
q
를 눌러 종료할 수 있습니다.htop
이 명령어는 시스템의 리소스 사용량과 프로세스를 보다 직관적으로 보여줍니다.
리눅스에서 자주 사용되는 주요 명령어들과 그 옵션을 설명하겠습니다. 또한, 명령어를 잘 배우고 사용하는 데 도움이 되는 팁도 제공하겠습니다.
ls
(List Directory Contents)-a
: 숨김 파일을 포함하여 모든 파일을 표시합니다. (.
으로 시작하는 파일)-l
: 파일의 상세 정보를 표시합니다. (권한, 소유자, 크기, 수정 날짜 등)-h
: 파일 크기를 사람이 읽기 쉬운 형식(KB, MB 등)으로 표시합니다. (보통 -l
과 함께 사용됨)-r
: 파일 목록을 역순으로 정렬합니다.-t
: 파일을 수정 시간 순서로 정렬합니다.-R
: 하위 디렉토리의 내용도 재귀적으로 나열합니다.ls -lha /home/user
이 명령어는 /home/user
디렉토리의 모든 파일(숨김 파일 포함)을 상세 정보와 함께 표시합니다.
cd
(Change Directory)cd /etc
이 명령어는 /etc
디렉토리로 이동합니다.
팁:
cd ..
: 상위 디렉토리로 이동합니다.cd ~
: 홈 디렉토리로 이동합니다.cd -
: 이전 디렉토리로 이동합니다.cp
(Copy Files and Directories)-r
: 디렉토리를 복사할 때 사용합니다. 하위 디렉토리 및 파일을 재귀적으로 복사합니다.-i
: 덮어쓰기 전에 확인 메시지를 표시합니다.-v
: 복사 중인 파일을 상세히 표시합니다.-p
: 원본 파일의 속성(권한, 타임스탬프)을 유지합니다.cp -r /source_dir /target_dir
이 명령어는 /source_dir
디렉토리를 /target_dir
로 복사합니다.
mv
(Move Files and Directories)-i
: 덮어쓰기 전에 확인 메시지를 표시합니다.-v
: 이동 중인 파일을 상세히 표시합니다.mv oldname.txt newname.txt
이 명령어는 oldname.txt
파일의 이름을 newname.txt
로 변경합니다.
rm
(Remove Files and Directories)-r
: 디렉토리를 재귀적으로 삭제합니다.-f
: 강제로 삭제합니다. (확인 메시지 없이 삭제)-i
: 삭제 전에 확인 메시지를 표시합니다.rm -rf /home/user/dir
이 명령어는 /home/user/dir
디렉토리를 강제로 삭제합니다.
주의: rm -rf
명령어를 사용할 때는 매우 주의해야 합니다. 실수로 중요한 파일을 삭제할 수 있습니다.
mkdir
(Make Directory)-p
: 중간 디렉토리도 함께 생성합니다.mkdir -p /home/user/newdir/subdir
이 명령어는 /home/user/newdir/subdir
디렉토리를 생성합니다. 중간 디렉토리가 존재하지 않으면 자동으로 생성됩니다.
rmdir
(Remove Directory)-p
: 상위 빈 디렉토리도 함께 삭제합니다.rmdir /home/user/emptydir
이 명령어는 /home/user/emptydir
빈 디렉토리를 삭제합니다.
cat
(Concatenate and Display Files)-n
: 각 줄에 번호를 붙여 출력합니다.-b
: 빈 줄을 제외하고 줄 번호를 붙입니다.-s
: 연속된 빈 줄을 하나로 합칩니다.cat -n /etc/hosts
이 명령어는 /etc/hosts
파일의 각 줄에 번호를 붙여 출력합니다.
more
(View File Contents Page by Page)Space
: 다음 페이지로 이동b
: 이전 페이지로 이동q
: 종료more /var/log/syslog
이 명령어는 시스템 로그 파일을 페이지 단위로 출력합니다.
less
(View File Contents with Scrolling)more
명령어와 유사하지만, 상하 스크롤이 가능합니다.-N
: 줄 번호를 표시합니다.-S
: 긴 줄을 줄 바꿈하지 않고 한 줄로 표시합니다.less /var/log/syslog
이 명령어는 시스템 로그 파일을 상하 스크롤하며 볼 수 있습니다.
nano
(Simple Text Editor)Ctrl + O
: 파일 저장Ctrl + X
: 편집기 종료Ctrl + K
: 줄 잘라내기Ctrl + U
: 줄 붙여넣기Ctrl + W
: 검색nano /etc/hosts
이 명령어는 /etc/hosts
파일을 편집합니다.
vim
(Vi Improved, Advanced Text Editor)i
: 입력 모드로 전환Esc
: 명령 모드로 전환:w
: 파일 저장:q
: 편집기 종료:wq
: 저장 후 종료:q!
: 저장하지 않고 종료vim /etc/hostname
이 명령어는 /etc/hostname
파일을 편집합니다.
uname
(Print System Information)-a
: 모든 시스템 정보를 출력합니다.-r
: 커널 버전을 출력합니다.-n
: 네트워크 호스트 이름을 출력합니다.-m
: 시스템의 하드웨어 이름을 출력합니다.uname -a
이 명령어는 시스템의 전체 정보를 출력합니다.
df
(Disk Free)-h
: 사람이 읽기 쉬운 형식으로 출력합니다.-T
: 파일 시스템의 타입을 표시합니다.-i
: inode 사용량을 표시합니다.df -h
이 명령어는 디스크 공간 사용량을 사람이 읽기 쉬운 형식으로 출력합니다.
du
(Disk Usage)-h
: 사람이 읽기 쉬운 형식으로 출력합니다.-s
: 요약된 형태로 디스크 사용량을 표시합니다.-c
: 하위 디렉토리의 총합을 표시합니다.du -sh /var/log
이 명령어는 /var/log
디렉토리의 전체 디스크 사용량을 요약하여 표시합니다.
top
(Task Manager)-u [사용자명]
: 특정 사용자의 프로세스만 표시합니다.
q
: 종료
P
: CPU 사용량 순으로 정렬
M
: 메모리 사용량 순으로 정렬
k
: 프로세스 종료 (PID 입력 필요)
top
이 명령어는 실시간으로 시스템의 프로세스 상태를 보여줍니다.
htop
(Enhanced Top)top
명령어의 대체 도구로, 보다 직관적인 인터페이스를 제공합니다.F6
: 정렬 기준 선택F9
: 프로세스 종료F10
: 종료htop
이 명령어는 실시간 시스템 리소스와 프로세스 정보를 보여줍니다.
연습을 통해 익히기:
man
페이지 활용하기:
man
명령어를 사용하세요. 예를 들어, man ls
를 입력하면 ls
명령어의 모든 옵션과 설명을 볼 수 있습니다.구글 검색과 문서 참조:
스크립트 작성 연습:
실수를 두려워하지 않기:
rm -rf /
같은 파괴적인 명령어만 주의하면, 대부분의 실수는 되돌릴 수 있습니다.단축키 익히기:
top
, htop
같은 도구에서 사용할 수 있는 단축키를 익히면 작업 효율이 크게 향상됩니다.이러한 명령어와 팁을 통해 리눅스 환경에서 효율적으로 작업할 수 있을 것입니다. 추가적인 질문이나 더 깊이 있는 설명이 필요하면 언제든지 알려주세요!