
파일 관리 명령은 빈번히 사용되므로 충분한 연습이 필요하다. 파일 관리 명령을 통해 복잡한 작업도 빠르고 효율적으로 처리할 수 있다.
| 명령 | 설명 |
|---|---|
| ls | 파일 목록 조회 |
| chown | 파일 소유권 변경 |
| chmod | 파일 접근 권한 변경 |
| pwd | 현재 작업 중인 디렉터리 위치 표시 |
| cd | 작업 디렉터리 위치 변경 |
| mkdir, rmdir | 디렉터리 생성/삭제 |
| touch | 빈 파일 생성 |
| cp, mv, rm | 파일 복사, 이동, 삭제 |
| cat | 파일 내용 화면에 표시 |
| more, less | 파일 내용 스크롤 |
| head, tail | 파일 내용 중 일부를 표시 |
| find, which, whereis, grep | 파일 검색 |
리눅스에서는 모든 것이 파일이다. 텍스트, 이미지, 영상 뿐 아니라 파일을 묶는 디렉터리, 네트워크 소켓 등 자료 흐름과 시스템 장치까지 파일로 처리한다.
리눅스에서는 파일의 대·소문자를 엄격하게 구분하여 서로 다른 파일로 간주한다. 파일 이름은 최대 256자까지 가능하며, 공백을 포함한 특수문자를 사용할 수 는 있으나 되도록 사용하지 않는 편이 좋다.
ls : 파일 목록 화면에 표시하기ls [옵션] [파일] : 파일 목록을 화면에 표시한다. 아무 옵션 없이 명령을 실행하면 파일과 디렉터리 명만 출력한다.
ls만 호출 : 현재 작업중인 디렉터리 표시

그 외 자주 사용되는 옵션 별 기능과 예시 화면이다.
| 옵션 | 설명 | 예시 |
|---|---|---|
-l | 파일 세부 정보 표시 | ![]() |
-lh | -h : 파일 용량 단위를 MB, GB로 변환하여 표기. -l 옵션과 붙여 -lh 형식으로 사용 가능 | ![]() |
-a | 숨은 파일 까지 표기. 모든 디렉터리에는 현재 디렉터리를 의미하는 .와 상위 디렉터리를 의미하는 ..이 포함되어있다. 이 외에 .으로 시작하는 파일들은 모두 숨긴 파일임을 의미한다. | ![]() |
-al | 현재 디렉터리에 있는 모든 파일의 세부 정보 표기. -a와 -l 옵션을 붙여 사용하는 형태 | ![]() |
파일 정보를 조회할 때 다음과 같이 표시된다.

이 중 접근권한은 다음과 같은 기준으로 표기된다.
첫번째 자리를 제외한 각 권한은 r, w, x 순으로 표기되며, 해당 권한이 없을 경우 -로 표기된다.
위 이미지에서의 권한 부여 상태를 분석하면, 현재 조회된 음악 파일은 디렉토리 이며, 소유자는 읽기, 쓰기, 실행을 모두 할 수 있고, 소유그룹과 다른 모든 사용자는 읽기, 실행을 할 수 있다.
chown, chmod : 파일 소유권 및 접근 권한 설정touch : 파일의 날짜와 시간 정보를 '건드려 바꾸기'touch [옵션] [파일명] 형태로 사용하며, 파일의 날짜/시간정보를 바꿀 수 있다. 아무 옵션 없이 새로운 파일 이름을 지정하면 비어있는 파일을 생성할 수 있다.
chown : 파일 소유권 설정기본적으로 파일 소유권은 파일을 생성한 사용자와 사용자가 속해있는 그룹에 있다. 파일의 소유권을 변경하려면 반드시 시스템관리자 권한으로 실행해야하므로 sudo 명령을 붙여야 한다.
touch 로 빈 파일을 하나 생성하여 정보를 조회하면 해당 파일의 권한을 확인할 수 있다.

권한이 rs-rs-r-- 로 소유자와 그룹에 속한 사용자가 읽고 쓸 수 있으며, 그 외 사용자는 읽기만 가능하도록 설정되어있음을 확인할 수 있다.
touch 명령 시 sudo -u [사용자명] 명령을 앞에 덧붙여 파일 생성부터 소유권 설정하기
위처럼 /tmp 경로에 임시 파일을 생성할 때 tester라는 계정에 소유권을 부여한 후 ls -l 명령어로 해당 파일의 상세정보를 조회해 보면 소유권이 명령을 실행한 시스템 관리자인 user가 아닌 tester로 잡혀있음을 확인할 수 있다.
chown [옵션] [사용자 계정 및 그룹] [파일]으로 이미 생성된 파일의 소유권 변경하기
. 또는 :를 넣어 소유자와 그룹을 동시에 변경할 수 있다.
mkdir)여 빈 파일 phone과 picture를 생성(touch)하였다. 이 때 권한은 tester로 설정하였으며, ls -l 명령어로 조회 시 tester 계정으로 권한이 잘 설정되어있음을 확인할 수 있다. 


chown 으로 디렉토리만 소유권 변경chown만 사용하면 디렉토리의 소유권만 변경되고, 하위 파일들의 소유권은 기존과 동일하게 tester로 설정되어있음을 확인할 수 있다.

chown -R 으로 해당 디렉토리 + 하위 디렉토리 및 파일까지 모두 소유권 변경-R 옵션을 추가하면 해당 디렉토리와 디렉토리 하위에 있는 파일 및 디렉토리들의 소유권까지 모두 한번에 변경할 수 있다.
chmod : 파일의 접근권한 변경하기chown과 달리 파일 소유자도 명령을 내릴 수 있다.
chmod [레퍼런스][연산자][접근권한] [파일] 형식u,g,o로 표시한다. a는 소유자와 그룹, 다른 사용자 모두를 의미한다. +, 권한 해제 시 -를 사용한다.r,w,x로 표기한다.예제로 아까 생성한 /tmp/tempfile 의 권한을 모든 사용자와 그룹에게 rwx권한을 전부 부여한다. 이 결과로 시스템에 존재하는 모든 사용자가 이 파일을 읽고 쓰고 실행할 수 있다.

반대로 다음처럼 o-rwx를 사용하여 다른 사용자들에게서만 권한을 해제할 수도 있다.

다른 사용자들은 파일을 읽거나 쓰거나 실행할 수 없는 상태(rwxrwx---)로 변경됨을 확인할 수 있다.
chmod [8진수] [파일] 형식[레퍼런스][연산자][접근권한] 대신 8진수의 숫자 표현을 사용할 수 있다. 익숙해지면 이 방식이 훨씬 편리하다.
파일의 소유자, 그룹 사용자, 기타 사용자의 읽기, 쓰기, 실행 권한은 다음과 같이 8진수 값이 부여되어있다.
| 8진수 값 | 변경 대상 | 접근 권한 |
|---|---|---|
| 400 | 파일 소유자 | 읽기 |
| 200 | 파일 소유자 | 쓰기 |
| 100 | 파일 소유자 | 실행 |
| 40 | 소유자가 속한 그룹 | 읽기 |
| 20 | 소유자가 속한 그룹 | 쓰기 |
| 10 | 소유자가 속한 그룹 | 실행 |
| 4 | 다른 사용자 | 읽기 |
| 2 | 다른 사용자 | 쓰기 |
| 1 | 다른 사용자 | 실행 |
부여 할 접근 권한에 따라 각 값을 더한다.
모든 사용자에게 읽기 권한만 부여하고 싶다면 접근 권한을 r--r--r-- 로 변경해야 한다.
이 때, 파일 소유자 읽기권한 400 + 그룹 읽기 권한 40 + 다른 사용자 읽기 권한 4를 더하여 444로 표현할 수 있다.

접근 권한을 처음 처럼 되돌려보자. 파일 소유자 읽기(400), 쓰기(200)와 그룹 읽기(40), 쓰기(20)가 가능해야하고 다른 사용자는 읽기(4)만 가능해야 한다. 결과를 계산하면 400+200+40+20+4 = 664 이다.

이 때, 파일의 소유자가 아니라면 chmod 명령을 실행할 수 없다. chown으로 파일 소유권을 변경한 후 명령을 실행해보면 권한이 없음을 확인할 수 있다.

※ 권한번호
777은 모든 사용자에게 읽기, 쓰기, 실행 권한을 부여하는 번호이다.
반대로 권한이 없을 때, sudo 명령을 사용하여 루트 권한을 획득하면 다른 사용자 소유의 파일 접근 권한을 변경할 수 있다.
