Linux Directory 구조
/(root)
리눅스 상에 존재하는 모든 파일과 디렉터리를 담고 있는 최상위 디렉터리
/bin
리눅스의 기본 명령어가 들어있는 디렉터리(명령어는 "실행파일")
/boot
리눅스 커널의 메모리 이미지와 부팅 과정에 필요한 파일이 저장된 디렉터리
/dev
장치 파일이 들어있는 디렉터리 (키보드, 마우스 등...)
/etc
시스템이나 사용자 관리를 위한 자료 파일이나 관리자용 명령들이 있는 디렉터리
(설정과 관련된 내용들)
/home
관리자(root) 이외의 사용자의 홈 Directory가 생성된느 위치의 디렉터리(=Window Users)
lib
각종 언어를 위한 라이브러리를 가지는 디렉터리
(lib64는 64bit 라이브러리들이 존재하는 디렉터리)
/opt
동작과 관련된 추가 옵션 설정에 대한 내용이 저장되는 디렉터리
/proc
커널과 프로세스 정보를 담고 있는 파일이 저장되는 디렉터리
/root
관리자 홈 디렉터리
/run
운영체제 내에 구동중인 내용들이 담기는 디렉터리
/sbin
관리자용 명령어가 저장되는 디렉터리
/sys
시스템 관련 파일이 담겨지는 디렉터리
/tmp
임시파일이 저장되는 공간 (저장 기간은 최대 한 달을 넘기지 못함)
/usr
용량이 크고 자주 사용되지 않는 파일들이 들어있는 디렉터리
/var
Log와 같이 잦은 변경이 일어나는 파일이 저장되는 디렉터리
하드웨어 관련
/media
Local Device를 이용하기 위한 디렉터리 (CD / DVD)
/mnt
Remote Device를 이용하기 위한 디렉터리 (Bluetooth)
/local
Linux Command
명령어 형식
경로 결정 방법 2가지
1. 절대 경로
리눅스 파일 시스템의 최상위의 "/(root)"를 기준으로 모든 경로 정보를 입력하여 사용하는 것
ex) cd, /etc/, cd/etc/sysconfig, cd /
2. 상대 경로
리눅스 파일 시스템의 상대 경로는 현재 작업 중인 디렉터리를 기준으로 파일이나 디렉터리에
대한 상대적인 위치 정보를 사용하는 것
"." : 현재 디렉터리를 의미
".." : 이전(상위) 디렉터리를 의미 (현재 디렉터리의 접근 전 디렉터리)
"~(사용자계정)" : 사용자 계정의 홈 디렉터리로 이동
cd ~root 명령어 입력 시 일반 사용자 계정은 접근 불가
sudo cd ~root를 사용하면 관리자 권한을 받아서 접근이 가능하다.
" - " : 이전 디렉터리로 이동
리눅스 기본 명령어
1. ls (list)
ls
현재 디렉터리의 모든 파일 및 폴더를 기본 형식으로 보여준다.
ls -l
파일 및 폴더에 대한 자세한 정보와 함께 리스트업 한다.
ls -a
숨겨진 파일을 포함하여 모든 파일을 보여준다.
2. cd (change directory)
cd
디렉터리를 변경
cd Documents
현재 디렉터리에서 'Documents' 라는 이름의 폴더로 이동한다.
cd ..
현재 디렉터리의 상위 폴더로 이동한다.
3. pwd (print working directory)
4. mkdir (make directory)
mkdir
새로운 디렉터리(폴더)를 생성한다.
mkdir new_folder
현재 디렉터리에 'new_folder' 라는 이름의 새 디렉터리를 만든다.
mkdir -p test1/test2
'test1' 내에 'test2' 를 생성한다.
-p는 상위 디렉터리가 없는 경우, 그 상위 디렉터리를 생성하는 옵션이다.
5. rmdir (remove directory)
rmdir
디렉터리를 삭제한다.
rmdir old_folder
'old-folder' 라는 이름의 디렉터리 삭제
rmdir은 디렉터리가 비어있을 때만 작동한다.
내부에 파일이나 다른 디렉터리가 존재하면 에러 발생
디렉터리 안의 파일과 함께 삭제하려면 rm -r 명령어를 사용
6. rm(remove)
rm은 파일이나 디렉터리를 삭제
rm file.txt
'file.txt' 라는 파일을 삭제한다
rm -r folder
'folder' 라는 디렉터리와 그 안의 모든 내용을 삭제
삭제된 파일은 복구가 어렵기 때문에 중요한 파일을 삭제하기 전에 항상 확인
7. touch
touch는 새로운 빈 파일을 생성하거나 기존 파일의 타임스탬프(날짜 및 시간 정보)를
현재 시간으로 갱신
touch new_file.txt
'new_file.txt' 라는 새 파일을 생성한다
파일이 이미 존재하는 경우 타임스탬프가 갱신된다
간단하고 빠르게 파일을 생성할 수 있으며, 스크립트나 로그 파일을 초기화 할 때
유용하다
8. cp (copy)
cp는 파일이나 디렉터리를 복사
cp source.txt destination.txt
'source.txt'를 'destination.txt'로 복사한다
cp -r source_dir destination_dir
'source_dir' 디렉터리와 그 내용을 'destination_dir'로 복사한다
9. mv (move)
mv는 파일이나 디렉터리의 위치를 이동시키거나 이름을 변경한다
mv old_name.txt new_name.txt
'old_name.txt'의 이름을 'new_name.txt'로 변경한다
mv file.txt /path/to/directory/
'file.txt'를 지정된 디렉터리로 이동한다
mv 명령어는 파일을 이동시킬 때 복사 후 삭제하는 것이 아니라
파일의 위치 정보만 변경하기 때문에 처리 속도가 빠르다
이동하려는 대상 경로에 같은 이름의 파일이 이미 존재할 경우,
기존 파일은 덮여쓰여진다
10. cat (concatenate)
cat은 텍스트 파일의 내용을 화면에 출력하거나, 여러 파일의 내용을
연결하여 출력한다
cat file.txt
'file.txt' 파일의 내용을 화면에 표시한다
cat file1.txt file2.txt > combined.txt
'file1.txt'와 'file2.txt'의 내용을 합쳐 'conbined.txt'에 저장한다
11. chmod (Change Mode)
chmod는 파일이나 디렉터리의 권한을 변경한다
chmod 755 file.sh
'file.sh' 파일에 대해 소유자에게는 읽기, 쓰기, 실행 권한을 부여하고
그룹과 기타 사용자에게는 읽기와 실행 권한만 부여한다
chmod u+x file.sh
'file.sh' 파일에 대해 현재 사용자에게 실행 권한을 추가한다
권한 변경은 보안에 영향을 줄 수 있으므로 신중히 사용해야 한다
12. grep (Global Regular Expression Print)
파일 내용 중에서 지정된 패턴이나 문자열을 검색하여 그 결과를 출력한다
grep "text" file.txt
'file.txt'에서 "text" 라는 문자열이 포함된 모든 줄을 표시한다
grep -r "text" .
현재 디렉터리와 하위 디렉터리에서 "text" 문자열을 재귀적으로 검색한다
정규 표현식을 사용하여 복잡한 검색 패턴을 지정할 수 있으며,
로그 파일 분석이나 특정 데이터 추출에 유용하다
13. echo
주어진 문자열을 터미널에 출력한다.
환경 변수의 값을 표시하거나, 파일에 텍스트를 쓰는 데에도 사용된다
echo "Hello World"
터미널에 "Hello World" 라는 문구를 출력한다
echo $HOME
'HOME' 환경 변수의 값을 출력한다
echo "some text " > file.txt
"Some text" 라는 문구를 'file.txt' 파일에 저장한다
스크립트 작성 시 변수의 값을 확인하거나 파일에 내용을 빠르게 추가할 때
유용하다
14. man (manual)
리눅스 명령어의 사용법, 옵션, 기능 등을 설명하는 매뉴얼 페이지를 제공한다
man ls
'ls' 명령어에 대한 매뉴얼 페이지를 보여준다
15. sudo (SuperUser DO)
일반 사용자가 관리자(superuser) 권한을 가지고 명령어를 실행할 수 있게 한다
시스템 설정 변경, 중요한 파일 수정, 관리자 권한을 필요로 하는 소프트웨어 설치 시
사용된다
sudo apt-get update
패키지 리스트를 업데이트 한다
16. find
파일이나 디렉터리를 검색한다
find . -name "file.txt"
현재 디렉터리에서 'file.txt' 파일을 찾는다
find / -type d -name "config"
루트 디렉터리에서 'config' 라는 이름의 디렉터리를 찾는다