Unix / Linux-파일 관리
이 장에서는 Unix의 파일 관리에 대해 자세히 설명합니다. Unix의 모든 데이터는 파일로 구성됩니다. 모든 파일은 디렉토리로 구성됩니다. 이러한 디렉토리는 파일 시스템이라고하는 트리와 같은 구조로 구성됩니다.
어떤 식 으로든 Unix로 작업 할 때 대부분의 시간을 파일 작업에 사용합니다. 이 튜토리얼은 파일 생성 및 제거, 복사 및 이름 변경, 링크 생성 등의 방법을 이해하는 데 도움이됩니다.
Unix에는 세 가지 기본 유형의 파일이 있습니다.
Ordinary Files− 일반 파일은 데이터, 텍스트 또는 프로그램 명령을 포함하는 시스템의 파일입니다. 이 튜토리얼에서는 일반 파일 작업을 살펴 봅니다.
Directories− 디렉토리는 특수 파일과 일반 파일을 모두 저장합니다. Windows 또는 Mac OS에 익숙한 사용자의 경우 Unix 디렉토리는 폴더와 동일합니다.
Special Files− 일부 특수 파일은 하드 드라이브, CD-ROM 드라이브, 모뎀 및 이더넷 어댑터와 같은 하드웨어에 대한 액세스를 제공합니다. 다른 특수 파일은 별칭 또는 바로 가기와 유사하며 다른 이름을 사용하여 단일 파일에 액세스 할 수 있습니다.
파일 나열
현재 디렉토리에 저장된 파일과 디렉토리를 나열하려면 다음 명령을 사용하십시오.
$ls
다음은 위 명령의 샘플 출력입니다.
$ls
bin hosts lib res.03
ch07 hw1 pub test_results
ch07.bak hw2 res.01 users
docs hw3 res.02 work
명령 ls 지원합니다 -l 나열된 파일에 대한 추가 정보를 얻는 데 도움이되는 옵션-
$ls -l
total 1962188
drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml
-rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpg
drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ
drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia
-rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar
drwxr-xr-x 8 root root 4096 Nov 25 2007 usr
drwxr-xr-x 2 200 300 4096 Nov 25 2007 webthumb-1.01
-rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php
-rw-rw-r-- 1 amrood amrood 20480 Nov 25 2007 webthumb.tar
-rw-rw-r-- 1 amrood amrood 5654 Aug 9 2007 yourfile.mid
-rw-rw-r-- 1 amrood amrood 166255 Aug 9 2007 yourfile.swf
drwxr-xr-x 11 amrood amrood 4096 May 29 2007 zlib-1.2.3
$
여기에 나열된 모든 열에 대한 정보가 있습니다-
First Column− 파일 유형과 파일에 부여 된 권한을 나타냅니다. 다음은 모든 유형의 파일에 대한 설명입니다.
Second Column − 파일 또는 디렉토리가 사용하는 메모리 블록의 수를 나타냅니다.
Third Column− 파일의 소유자를 나타냅니다. 이 파일을 만든 Unix 사용자입니다.
Fourth Column− 소유자 그룹을 나타냅니다. 모든 Unix 사용자는 관련 그룹을 갖게됩니다.
Fifth Column − 파일 크기를 바이트 단위로 나타냅니다.
Sixth Column −이 파일이 마지막으로 생성 또는 수정 된 날짜와 시간을 나타냅니다.
Seventh Column − 파일 또는 디렉토리 이름을 나타냅니다.
에서 ls -l 목록 예에서 모든 파일 행은 d, -, 또는 l. 이러한 문자는 나열된 파일의 유형을 나타냅니다.
Sr. 아니. | 접두사 및 설명 |
---|---|
1 | - ASCII 텍스트 파일, 바이너리 실행 파일 또는 하드 링크와 같은 일반 파일. |
2 | b 특수 파일 차단. 물리적 하드 드라이브와 같은 입력 / 출력 장치 파일을 차단합니다. |
삼 | c 캐릭터 특수 파일. 물리적 하드 드라이브와 같은 원시 입 / 출력 장치 파일. |
4 | d 다른 파일 및 디렉토리 목록이 포함 된 디렉토리 파일입니다. |
5 | l 심볼릭 링크 파일. 일반 파일에 대한 링크. |
6 | p 명명 된 파이프. 프로세스 간 통신을위한 메커니즘입니다. |
7 | s 프로세스 간 통신에 사용되는 소켓입니다. |
메타 문자
메타 문자는 Unix에서 특별한 의미를 갖습니다. 예를 들면* 과 ?메타 문자입니다. 우리는 사용* 0 개 이상의 문자와 일치하려면 물음표 (?)는 단일 문자와 일치합니다.
예를 들어-
$ls ch*.doc
이름이 다음으로 시작하는 모든 파일을 표시합니다. ch 그리고 끝 .doc −
ch01-1.doc ch010.doc ch02.doc ch03-2.doc
ch04-1.doc ch040.doc ch05.doc ch06-2.doc
ch01-2.doc ch02-1.doc c
여기, *모든 문자와 일치하는 메타 문자로 작동합니다. 다음으로 끝나는 모든 파일을 표시하려면.doc, 다음 명령을 사용할 수 있습니다-
$ls *.doc
숨겨진 파일
보이지 않는 파일은 첫 번째 문자가 점 또는 마침표 (.) 인 파일입니다. Unix 프로그램 (셸 포함)은 이러한 파일 대부분을 사용하여 구성 정보를 저장합니다.
숨겨진 파일의 몇 가지 일반적인 예는 다음과 같습니다.
.profile − Bourne 쉘 (sh) 초기화 스크립트
.kshrc − Korn 쉘 (ksh) 초기화 스크립트
.cshrc − C 쉘 (csh) 초기화 스크립트
.rhosts − 원격 셸 구성 파일
보이지 않는 파일을 나열하려면 -a 옵션 ls −
$ ls -a
. .profile docs lib test_results
.. .rhosts hosts pub users
.emacs bin hw1 res.01 work
.exrc ch07 hw2 res.02
.kshrc ch07.bak hw3 res.03
$
Single dot (.) − 현재 디렉토리를 나타냅니다.
Double dot (..) − 이것은 상위 디렉토리를 나타냅니다.
파일 생성
당신은 사용할 수 있습니다 vi모든 Unix 시스템에서 일반 파일을 생성하는 편집기. 다음 명령을 내리기 만하면됩니다.
$ vi filename
위의 명령은 주어진 파일 이름으로 파일을 엽니 다. 이제 키를 눌러i편집 모드로 들어갑니다. 편집 모드에 있으면 다음 프로그램에서와 같이 파일에 콘텐츠 쓰기를 시작할 수 있습니다.
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
프로그램이 끝나면 다음 단계를 따르십시오.
키 누르기 esc 편집 모드에서 나옵니다.
두 개의 키 누르기 Shift + ZZ 함께 파일에서 완전히 나오도록합니다.
이제 다음으로 만든 파일이 있습니다. filename 현재 디렉토리에서.
$ vi filename
$
파일 편집
다음을 사용하여 기존 파일을 편집 할 수 있습니다. vi편집자. 기존 파일을 여는 방법에 대해 간단히 설명하겠습니다.
$ vi filename
파일이 열리면 키를 눌러 편집 모드로 들어갈 수 있습니다. i그런 다음 파일을 편집하여 계속할 수 있습니다. 파일 내에서 여기 저기 이동하려면 먼저 키를 눌러 편집 모드에서 나와야합니다.Esc. 그 후, 다음 키를 사용하여 파일 내부로 이동할 수 있습니다.
l 키를 눌러 오른쪽으로 이동합니다.
h 키를 눌러 왼쪽으로 이동합니다.
k 키를 눌러 파일에서 위쪽으로 이동합니다.
j 키를 눌러 파일에서 아래쪽으로 이동합니다.
따라서 위의 키를 사용하여 편집하려는 위치에 커서를 놓을 수 있습니다. 포지셔닝되면 다음을 사용할 수 있습니다.i키를 눌러 편집 모드로 들어갑니다. 파일 편집이 완료되면Esc 마지막으로 두 개의 키 Shift + ZZ 함께 파일에서 완전히 나오도록합니다.
파일 내용 표시
당신은 사용할 수 있습니다 cat명령을 사용하여 파일 내용을 확인합니다. 다음은 위에서 생성 된 파일의 내용을 볼 수있는 간단한 예입니다.
$ cat filename
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
$
다음을 사용하여 줄 번호를 표시 할 수 있습니다. -b 옵션과 함께 cat 다음과 같이 명령-
$ cat -b filename
1 This is unix file....I created it for the first time.....
2 I'm going to save this content in this file.
$
파일에서 단어 세기
당신은 사용할 수 있습니다 wc명령을 사용하여 파일에 포함 된 총 줄, 단어 및 문자 수를 가져옵니다. 다음은 위에서 만든 파일에 대한 정보를 보는 간단한 예입니다.
$ wc filename
2 19 103 filename
$
다음은 네 개의 모든 열에 대한 세부 정보입니다.
First Column − 파일의 총 줄 수를 나타냅니다.
Second Column − 파일의 총 단어 수를 나타냅니다.
Third Column− 파일의 총 바이트 수를 나타냅니다. 이것은 파일의 실제 크기입니다.
Fourth Column − 파일 이름을 나타냅니다.
여러 파일을 제공하고 한 번에 해당 파일에 대한 정보를 얻을 수 있습니다. 다음은 간단한 구문입니다-
$ wc filename1 filename2 filename3
파일 복사
파일의 사본을 만들려면 cp명령. 명령의 기본 구문은 다음과 같습니다.
$ cp source_file destination_file
다음은 기존 파일의 복사본을 만드는 예입니다. filename.
$ cp filename copyfile
$
이제 하나 이상의 파일을 찾을 수 있습니다. copyfile현재 디렉토리에서. 이 파일은 원본 파일과 정확히 동일합니다.filename.
파일 이름 바꾸기
파일 이름을 변경하려면 mv명령. 다음은 기본 구문입니다-
$ mv old_file new_file
다음 프로그램은 기존 파일의 이름을 바꿉니다. filename ...에 newfile.
$ mv filename newfile
$
그만큼 mv명령은 기존 파일을 새 파일로 완전히 이동합니다. 이 경우에는newfile 현재 디렉토리에서.
파일 삭제
기존 파일을 삭제하려면 rm명령. 다음은 기본 구문입니다-
$ rm filename
Caution− 파일에는 유용한 정보가 포함될 수 있습니다. 이것을 사용하는 동안 항상 조심하는 것이 좋습니다Delete명령. 사용하는 것이 좋습니다-i 옵션과 함께 rm 명령.
다음은 기존 파일을 완전히 제거하는 방법을 보여주는 예입니다. filename.
$ rm filename
$
아래에 주어진 명령으로 한 번에 여러 파일을 제거 할 수 있습니다.
$ rm filename1 filename2 filename3
$
표준 Unix 스트림
정상적인 상황에서 모든 유닉스 프로그램은 시작할 때 세 개의 스트림 (파일)이 열려 있습니다.
stdin−이를 표준 입력 이라고 하며 관련 파일 설명자는 0입니다. 이는 STDIN으로도 표시됩니다. Unix 프로그램은 STDIN에서 기본 입력을 읽습니다.
stdout−이를 표준 출력 이라고 하며 관련 파일 설명자는 1입니다. 이는 STDOUT으로도 표시됩니다. Unix 프로그램은 STDOUT에 기본 출력을 작성합니다.
stderr−이를 표준 오류 라고 하며 관련 파일 설명자는 2입니다. 이는 STDERR로도 표시됩니다. Unix 프로그램은 STDERR에 모든 오류 메시지를 기록합니다.