리눅스에서 Root계정은 최상위 최고 관리자 계정으로 모든 권한을 가지고 있다.
이렇게 다양한 기능을 자유자제로 사용할 수 있기 때문에 무분별한 사용을 자제해야 한다. 일반적인 작업을 수행할 때는 일반 계정으로 접속하여 작업을 수행하고, 필요한 경우에는 sudo 키워드를 사용하는 방법이 안전하다.
일반 계정으로 처음 접속할 때는 /홈(Home Directory)/사용자(User) 디렉토리가 기본이지만, 루트 계정으로 접속하는 경우 최상위 디렉토리( / )가 기본이다.
리눅스에서 파일 또는 디렉토리의 경로를 표현할 때, 절대경로와 상대경로 두 가지 방식을 사용한다.
절대경로는 파일이나 디렉토리의 위치를 루트 디렉토리(/)를 기준으로 명확하게 지정한 경로로, 어떤 위치에서든 해당 경로로 바로 접근할 수 있다.
예시: /home/user/documents/file.txt
여기서 /는 루트 디렉토리를 의미하고, 그 아래의 모든 디렉토리 구조를 포함한다.
상대경로는 현재 작업 중인 디렉토리(현재 경로)를 기준으로 파일이나 디렉토리의 위치를 지정한 경로이다. 때문에 현재 위치에 따라 다르게 작용된다.
예시: 만약 현재 디렉토리가 /home/user라 가정
file.txt이 남겨있는 documents로 접근하기 위해서는 '.'을 사용하여 접근한다.
현재 디렉토리의 상위 디렉토리인 /home으로 점근하려면 '..'을 사용하여 접근한다.
리눅스에서 각 디렉토리 구조는 특정 용도에 맞게 관리 및 사용되고 있다.
다양한 디렉토리 구조와 파일이 존제하지만, 주요 디렉토리/파일은 아래와 같다.
/bin 폴더는 기본적인 명령어들이 들어 있는 곳이다. (ls,cd 등의 명령어 포함)
일반 사용자와 시스템 관리자가 모두 사용할 수 있는 실행 파일들이 저장된다.
/sbin 폴더는 시스템 관리자가 사용하는 명령어들이 들어 있는 곳이다. (shutdown, reboot 등의 명령어 포함)
이곳에 있는 명령어들은 주로 시스템의 관리와 관련된 작업을 수행하는 데 사용
/etc 폴더는 시스템의 설정 파일들이 저장되는 곳이다.
각종 소프트웨어와 시스템의 설정을 조정할 수 있는 파일들이 존재한다.
ex: 네트워크 설정 파일 및 사용자 계정 정보가 포함
/var 폴더는 변동성이 있는 파일들이 저장되는 곳이다.
로그 파일, 이메일, 데이터베이스 파일, 웹 서버에서 사용하는 데이터 등 자주 변경되는 파일들이 존재한다.
ex: 시스템 로그 파일은 /var/log 폴더에 존재
/opt 폴더는 추가 소프트웨어 패키지를 설치하는 데 사용된다.
보통 기본적인 리눅스 배포판에 포함되지 않은 소프트웨어들이 들어 있다.
ex: 특정한 애플리케이션이나 라이브러리를 이곳에 설치할 수 있다.
/home 폴더는 사용자 개인 파일들이 저장되는 곳이다.
각 사용자는 자신의 홈 디렉토리(/home/username)를 가지며, 이곳에 문서, 사진, 음악 등의 개인 데이터를 저장한다.
사용자별로 개별적인 파일을 관리할 수 있는 공간
// root 계정으로 전환 sudo cd // 계정 나가기 exit // 지정된 디렉토리로 이동 (단독으로 사용시 home으로 이동) cd [경로] // 현재 디렉토리의 절대 경로 표시 pwd // 현재 디렉토리 내용 표시 ls // 현재 디렉토리에 파일 생성(이미 파일이 있는 경우 수정 시간만 업데이트) touch [생성할 파일명] // 파일 및 디렉토리를 복제할 때 사용(복제 대상의 데이터까지 복제) cp [복제 대상 파일명] [신규 파일명] // 디렉토리를 복제할 때는 -r옵션을 사용, 데이터의 속성(소유권, 권한 등)까지 복제하고 싶은 경우 -rp옵션 사용 cp -r [복제할 대상 디렉토리] [신규 디렉토리명] cp -rp // 파일을 열어 데이터 수정 및 확인 - 파일 데이터 수정은 키보드에서 i(Insert)버튼 클릭과 동시에 수정 시작 - :w 저장 - :q 나가기 - :! 강제 vi(vim) [파일명] // 디렉토리 생성 mkdir [신규 디렉토리명] // -p 명령어를 사용하여 연쇄적인 경로를 만들 수 있다. mkdir -p parent/child/grandchild // 파일 삭제 rm [파일명] // 디렉토리 삭제 rm -r [디렉토리명] // 렉토리 내 파일을 삭제할 때 각 파일마다 삭제할지 확인을 요청 rm -rf [디렉토리명] // 삭제 확인 요청없이 그냥 삭제 // 찾기 find [찾을 파일명/디렉토리명] // 현재 경로내 파일 및 디렉토리 찾기 find [경로] [찾을 파일명/디렉토리명] // 특정 경로에 파일 및 디렉토리 찾기 find -name // 파일 및 디렉토리 이름을 기준으로 찾기 find -type // 타입을 기준으로 찾기 find -type f // 파일 찾기 find -type d // 디렉토리 찾기 // 위치 찾기 locate [경로를 찾고 싶은 문자열] // 디렉토리에 특정 문자열이 포함된 모든 경로 나열 locate [경로를 찾고 싶은 확장자] // 디렉토리에 특정 확장자를 포함된 모든 경로 나열 locate -i [경로를 찾고 싶은 확장자] // 대소문자 구별X locate "example.txt" // "example.txt"라는 파일의 경로 나열