리눅스 파일의 의미
리눅스는 폴더 또한 파일로 분류한다
디렉터리 구조
모든 폴더의 최초에는 루트폴더(/)가 존재하는 형태이다
대표적인 디렉터리의 역할
/bin
- 대부분의 명령어 실행파일이 있는 곳
시스템과 관련된 중요한 명령어들이 저장됨
/dev
- 디바이스(장치) 파일이 있는 곳
디스크, 키보드, 마우스 등의 하드웨어를 제어할 수 있도록 돕는 특수 파일들이 저장됨
/etc
- 리눅스에서 사용하는 대부분의 설정파일이 있는 곳
애플리케이션 및 리눅스 자체 설정 파일들이 저장됨
/home
- 각 사용자 계정명으로 생성되는 디렉터리
해당 사용자의 개인적 파일이 저장됨
/sbin
/tmp
/usr
/var
절대경로
모든 경로를 다 말하는 것
상대경로
현재 위치 기준으로 경로를 나타내는 것
파일의 위치가 옮겨지거나 명령을 내리는 지점이 옮겨지는 경우, 상대경로의 해석이 달라지기 때문에 같이 바꿔야 하는 단점이 있다
디렉터리 이동
$ cd 이동할 디렉토리
.
현재 위치
..
직전 경로
/home 디렉토리로 이동
$ cd
$ cd ~
와일드카드 *
$ ls ab*
: ab로 시작하는 모든 파일 조회
$ ls ab?
: ?가 임의의 1글자를 의미하므로 ab로 시작하는 3글자 파일을 조회합니다.
$ ls pp??
: pp로 시작하는 4글자 파일 조회
ls에 붙는 옵션들
$ ls -l
: 파일의 권한, 생성시각등을 같이 조회하게 도와줍니다.
$ ls -a
: 숨겨진 파일 조회
$ ls -t
: 이름 순 대신 생성 날짜 내림차순으로 조회
$ ls 경로
: 현재 조회중인 디렉토리가 아닌 타겟 경로 내부를 조회
$ ls -F
: 파일의 종류 조회
ex. 아무것도 없다면 보통 파일이고
디렉터리 용도의 파일이라면 /
실행 가능 파일이라면 *
심볼릭 링크라면 @
조회옵션에 파라미터 붙이기
$ ls -a /
: 루트폴더 내의 모든 요소 조회
$ ls --quote-name
: 파일이름에 따옴표를 붙인 상태로 조회
리눅스의 파일 조작 명령어
mkdir
$ mkdir 옵션 작성할 디렉터리명
$ mkdir -p test/a/b
: test, a, b 파일을 한번에 다 만든다touch
파일의 시간을 갱신하기 위해 사용
없는 파일을 touch로 지정하면 파일이 지정한 경로에 새로 생긴
$ touch 생성할파일1, 생성할파일2…
rm
**$ rm 파일1, 파일2…**
$ rm *.txt
: .txt인 모든 파일 다 삭제$ rm -r 디렉터리명
: 디렉터리는 -r 태그를 이용하여 삭제 가능
이 때 디렉터리 하위를 전부 삭제함$ rm -i 파일명
: 삭제 할 지 한번 더 확인$ rmdir 디렉터리명
: 디렉터리 내의 내용이 없는 경우에만 삭제cat
$ cat 옵션 파일이름
: 파일 내의 저장된 내용 출력**$ cat -n 파일
** : 파일 내의 행번호 출력cp
$ cp 옵션 복사할파일 … 복사할 위치
$ cp -r dir1 dir2
: dir2 하위에 dir1를 복사하여 집어넣음mv
$ mv 옵션 이동할파일 … 목적지
** 파일 이름을 바꾸는 용도로도 사용
ln
$ ln 옵션 링크할파일 링크이름
: 링크란, 리눅스 파일에 별명을 붙이는 것.
즉, 별명으로 호출할 수 있도록
하드 링크 vs 심볼릭 링크
링크란 한 파일에 이름을 여러 개 부여하는 것
하드링크
모두가 원래 파일의 이름이었던 것처럼 사용된다.$ cp /etc/crontab file1
크론탭을 현재 경로의 file1으로 복사해옴
$ ln file1 file2
file1에 file2라는 별명을 붙임
$ cat file2
file2를 열겠다 == file1을 열겠다
** 삭제 시, rm 명령어로 특정 별명을 지정해 삭제할 수 있다.
하지만, 해당 별명만 삭제되며 나머지 하드링크는 계속 역할을 수행한다.** 디렉터리는 하드링크로 지정할 수 없다.
** 서로 다른 디스크에 걸쳐서 만드는 게 불가능하다.
심볼릭 링크
심볼릭 링크는 하드 링크 문법에 -s 옵션을 추가로 붙여서 만든다.
$ cp /etc/crontab file1
$ ln -s file1 file2
ls의 -l(소문자L)로 조회 가능
** 심볼릭 링크는 해당 파일의 위치만 가지고 있기 때문에 원본이 삭제되면 기능하지 못한다. 링크가 깨진 심볼릭 링크는 사용할 수 없다.
⇒ 링크를 사용하는 이유
긴 절대경로를 별명으로 줄여서 사용하기 위해 사용하거나
버전이 여러 개인 파일이 한 폴더에 있을때 구분하기 위해
리눅스의 파일 검색명령어
find
$ find 검색할디렉터리 검색조건 액션
$ find . -name gittest.txt -print
.
: 경로가 현재 작업폴더라는 뜻-name gittest.txt
: gittest.txt 파일을 찾아달라는 뜻-print
: 경로를 콘솔에 찍어달라는 뜻grep
특정 문자열이 포함된 파일 찾기
$ grep 찾는문자 경로
특정 디렉터리나 경로 내부에서 파일 내부에 찾는문자가 포함된 내역만 찾아달라는 뜻
$ grep -i 찾는문자 경로
대소문자 구분 X
$ grep -v 안찾는문자 경로
해당 문자가 포함되지 않은 문장만
$ grep -r --color 찾는문자열 경로
-r
: 해당 디렉터리 하위까지--color
: 찾은 문자열을 강조⇒ 응용
$ echo hello world | grep hello
콘솔에 hello world를 찍고, 그 중 hello가 포함된 줄만 출력해라
$ echo hello world | grep -v world
콘솔에 hello world를 찍고, 그 중 world가 포함되지 않은 줄만 출력해라
파일 권한 변경하기
-rwxrwxrwx
- 첫번째 자리
-
: 일반파일d
: 디렉터리l
: 심볼릭 링크b
: 블록장치c
: 문자장치s
: 소켓p
: 이름 있는 파이프
- 나머지는 3글자씩 묶는다
r
: 읽기(4)w
: 쓰기(2)x
: 실행(1)
⇒ 첫 3비트는 소유자의 권한, 다음 3비트는 그룹의 권한, 마지막 3비트는 다른 사용자 및 다른 그룹의 권한이다.
$ chmod 숫자(3자리) 파일명
→ 숫자는 최대 7 (읽4+쓰2+실1)까지 가능하다.
$ chmod -R 숫자(3자리) 디렉터리및경로
: -R 태그를 통해 하위 목록까지 권한 변경
파일 소유권 변경하기
$ su -
: 소유권 변경이 가능한 사용자는 무조건 루트계정
# chown 유저명 파일명
: 소유주가 적힌 유저명으로 변경
# chown 유저명:그룹명 파일명
: 소유 그룹 명 변경
-R 태그를 통해 하위 목록까지 변경 가능
'Programing🤖 > Linux' 카테고리의 다른 글
[Linux] 셸 스크립트 작성하기 (0) | 2024.08.23 |
---|---|
[Linux] 프로세스 잡 관리 (0) | 2024.08.23 |
[Linux] 텍스트 에디터 (0) | 2024.08.23 |
[Linux] 셸 (0) | 2024.08.23 |
[Linux] 개요 (0) | 2024.08.23 |