System/OS - Linux

리눅스 기초 명령어-파일, 디렉터리

파일의 종류

리눅스는 "/"(root)를 기준으로 그 하위 디렉터리에 usr, var, bin 등의 디렉터리가 있고, 또 그 아래에 다양한 디렉터리들과 파일들이 존재하는 트리 형태의 계층 구조를 가진다.

일반 파일
(ordinary file)
데이터를 가지며 디스크에 저장되는 파일이다.
▷ 텍스트파일, 이진 파일(binary file)
디렉터리
(directory file)
파일들을 계층적으로 조직화하여 사용하는 일종의 특수 파일로, 윈도우에서의 폴더 개념으로 생각하면 된다.
디렉터리 내에 여러 파일이과 서브(하위) 디렉터리들이 존재한다. 
~(홈디렉터리), .(현재 디렉터리), ..(상위 디렉터리)
장치 파일
(device special file)
시스템에 설치된 여러 하드웨어 장치를 파일화 한 것이다.
▷ 하드디스크, 키보드(stdin), 모니터(stdout), 프린터 등을 모두 파일처럼 사용
심볼릭 링크 파일
(symbolic link file)
어떤 파일을 가리키는 또 하나의 경로명을 저장하는 파일로, 윈도우에서의 바로가기 개념으로 생각하면 된다.

디렉터리 생성 - mkdir

mkdir [-p] 디렉터리+  (+: 한 개 이상 필수)

디렉터리(들)을 새로 만든다. 여러 개의 디렉터리를 동시에 생성할 수 있다.

여러 개의 디렉터리를 동시에 생성할 수 있다.

[옵션]

-p 중간 디렉터리가 없는 경우 자동으로 중간디렉터리까지 생성

p 옵션을 따로 지정하지 않으면 중간 디렉터리 tmp가 없는 상태에서 temp/tmp/no_p 디렉터리를 생성할 수 없다. p 옵션을 붙이면 중간 디렉터리인 tmp 디렉터리가 없더라도 temp/tmp/option_p 디렉터리를 생성할 수 있다.

디렉터리 삭제 - rmdir / rm -r

rmdir 디렉터리+

한 개 이상의 디렉터리를 삭제한다. 하지만 지정한 디렉터리는 빈 디렉터리인 경우에만 가능하다.

하위 디렉터리가 있는 temp는 삭제되지 않는다.

rm -r 디렉터리

파일이 들어있는 디렉터리를 삭제할 수 있다.

비어있지 않은 디렉터리 temp를 삭제한다.


디렉터리 이동 - cd

cd 디렉터리(경로명)*

원하는 디렉터리로 이동한다. 따로 디렉터리를 지정해주지 않으면 홈 디렉터리로 이동한다. 

명령어를 입력할 수 있는 $ 앞에 현재 위치를 표시해준다.


디렉터리 리스트 - ls

ls [옵션] 디렉터리* 파일*  (*: 필수 아님)

지정된 디렉터리에 저장되어 있는 파일과 그 하위 디렉터리들을 보여준다. 따로 디렉터리를 지정하지 않으면 현재 디렉터리의 내용을 리스트한다.

특정 디렉터리를 지정할 때와 지정하지 않을 때

[옵션]

-a 숨겨진 파일을 포함한 모든 파일을 리스트
(.와 ..디렉터리도 포함한다)
-l 파일의 상세 정보(속성)를 출력
(파일의 종류, 사용자 권한 등)
-s 파일의 크기를 KB 단위로 출력 -F 파일의 종류를 표시하여 출력
(*: 실행파일, /:디렉터리, @:심볼릭링크)
-R 모든 하위 디렉터리들을 리스트    

각 옵션들을 하나씩 사용했을 때
이런 식으로 여러 개의 옵션을 함께 사용할 수도 있다

[출력 결과(파일 속성)]

파일유형(1)파일허가권(2) 링크수(3) 파일소유자(4) 파일소유그룹(5) 파일크기(6) 최종변경시간(7) 파일이름(8)

(1) 파일유형

- 일반 파일; 텍스트 파일이나 이진 파일 d 디렉터리 파일
c 문자 장치 파일 b 블록 장치 파일
p FIFO 파일 s 소켓
l 심볼릭 링크    

(2) 파일허가권 ▷ 사용자 권한에서 다룰 예정

(3) 링크 수

현재 파일을 가리키는 링크의 개수로, 다시 말하자면 directory entry의 개수이다. (해당 파일에 접근할 수 있는 entry가 몇개인지)

(4) 파일 소유자 ▷ 사용자 권한에서 다룰 예정

(5) 파일 소유그룹 ▷ 사용자 권한에서 다룰 예정

(6) 파일 크기

파일의 크기를 Byte 단위로 표시한다.

(7) 파일 최종 변경 시간

마지막으로 해당 파일을 변경/편집한 날짜와 시간을 표시한다.

(8) 파일 이름


파일 생성(편집) - gedit / vi / cat > / touch

gedit 파일

GNOME에서 제공하는 GUI 기반의 문서 편집기

windows에서의 메모처럼 편하게 사용할 수 있다.

vi 파일

기본 텍스트 에디터

vim 에디터를 이용하여 입력모드/명령모드

vi 에디터 사용방법 ▷▶ doongdangdoongdangdong.tistory.com/89

vi 에디터보다 vim 에디터가 훨씬 사용하기 편하다.. vim 설치방법은 구글링하면 친절히 나온다,, 꼭 설치하시길,,

cat > 파일

표준입력 내용을 모두 파일에 저장하는 명령어

표준 입력을 통해 파일의 내용을 적고 [Ctrl]+[D] 를 눌러 종료할 수 있다.

touch 파일

파일의 크기가 0인 비어있는 파일을 생성하는 명령어

파일의 내용을 적을 수는 없다. 다른 편집기, 명령어를 통해 내용을 편집할 수는 있다. 이미 생성되어 있는 파일을 지정하면 최종 편집 시간을 변경할 수 있다.

파일의 크기가 0인 touchfile


파일 출력 - cat / more / head / tail

cat [옵션] 파일*

하나 이상의 파일의 내요을 그대로 화면에 출력한다. 파일을 지정하지 않으면 표준입력 내용을 그대로 화면에 출력한다.

[옵션]

-n 공백의 줄을 포함하여 파일 내의 모든 줄에 번호를 매겨 표시한다. -b 줄 번호를 매기는데, 공백인 줄을  포함하지 않는다.
-s 연속되는 두 줄 이상의 공백 줄은 하나의 공백 줄로 표현한다. -e 제어문자를 ^로 표시하고, 각 행의 끝에 $를 붙인다.

-n 옵션
-b 옵션
-s 옵션(n 옵션을 붙여서 줄번호로 확인했다)
-e 옵션

more 파일

파일을 페이지 단위로 출력한다.

head [-N] 파일

파일의 앞 10줄만 출력한다. -N으로 출력할 줄의 수를 정할 수 있다.

tail [-N] 파일

파일의 마지막 10줄만 출력한다. -N으로 출력할 줄의 수를 정할 수 있다.


파일 이동 - mv

mv [옵션] 파일1 파일2

파일1의 이름을 파일2로 변경한다. 이 때 "파일2"라는 이름의 파일이 이미 존재하면 "파일1"의 내용으로 덮어쓴다.

mv [옵션] 파일+ 디렉터리

하나 이상의 파일들을 지정한 디렉터리로 모두 이동한다.

mv 디렉터리1 디렉터리2

디렉터리1의 이름을 디렉터리2로 변경한다.

catfile의 이름을 dogfile로 변경한다.
dogfile과 touchfile을 sub 디렉터리로 이동한다.
sub 디렉터리의 이름이 tmp 디렉터리로 바뀌었다.

파일 복사 - cp

cp [옵션] 파일1 파일2

파일1의 내용을 파일2에 복사한다.

cp 파일+ 디렉터리

하나 이상의 파일을 지정된 디렉터리에 모두 복사한다.

cp -r 디렉터리1 디렉터리2

디렉터리1에 있는 전체를 디렉터리2에 복사한다.

dogfile을 copy파일에 복사한다. (copy 파일을 미리 생성할 필요는 없다,)
dogfile과 touchfile을 상위디렉터리(..)로 복사한다.
경로명으로 복사받는 파일을 지정할 수 있다.(이름은 같아도 되고, 달라도 된다)
디렉터리를 복사하면 복사하는 디렉터리가 복사받는 디렉터리(temp)의 하위디렉터리로 들어가게 된다.


파일 삭제 - rm

rm [옵션] 파일+

한 개 이상의 파일을 삭제한다.

[옵션]

-r 디렉터리를 삭제한다. -i 대화형 옵션, 해당 파일을 정말로 삭제할 것인지 한 번 더 확인하는 메시지가 출력된다.
-f 삭제할 때 확인하지 않고 바로 삭제한다.    

아무 옵션도 주지 않으면 따로 확인하는 메시지가 뜨지는 않는다.
-i 옵션을 붙이면 파일을 삭제할 것인지 한 번 더 묻는다. 이 때 n을 입력하는 명령이 취소되고, y를 입력하면 그대로 명령이 실행되어 파일을 삭제한다.
여러 개의 파일을 한 번에 삭제한다.


파일 종류 - file

file 파일

해당 파일에 대한 자세한 정보를 출력한다.

실행 파일에 대해 file명령어를 했을 때

SMALL

'System > OS - Linux' 카테고리의 다른 글

리눅스 기초 명령어-사용자 권한  (0) 2021.02.07
리눅스 기초 명령어  (0) 2021.02.06
리눅스 디렉터리(Directory)  (0) 2021.01.22
부트 매니저 - LILO, GRUB  (0) 2021.01.22
LVM  (0) 2021.01.21