리다이렉션 & 파이프
하드디스크를 복구하는 것은 끊어져있는 파일과 데이터를 연결시켜주는것이다.
즉, 삭제는 데이터를 없애는게 아니라 관련 링크를 끊어주는 것이다,
모든파일은 하나의 하드링크를 가지고 있다.
Redirection & Pipe
파일 디스크립터 / 파일 기술자(File Discriptior, FD)
- 리눅스의 모든 파일을 커널이 관리하는 방식
(1) 명령어를 사용한다 == 프로그램을 실행한다
(2) 프로그램을 실행한다 == 실행파일을 실행한다
(3) 파일을 실행한다 == 파일을 열여야한다(Open)
프로그램이 실행되면 프로세스 단위로 처리가 되어야 하는데 이 때 해당 프로세스를
처리하기 위한 입력과 출력의 통로 역할을 하는 것이 파일 디스크립터이다.
Redirection
- 표준 출력의 방향을 재지정한다.
- 출력 리다이렉션
#명령어 1>[파일명]
ex) ls 1(모니터 표준입력) >ls_test (파일로 바꾼다)
파일은 inode 라고 하는 파일명을 제외한 모든 정보를 가지고 있는 구조체와 연결되어 있으며 외부적으로는 번호로 표시된다.
date의 정보가 date_test 안으로 들어간 것을 사진을 통하여 확인할 수 있다.
명령어 1>[파일명] : 명령어가 파일명안에 들어간다.
ls -l의 정보가 ls_test1 으로 들어간것을 #cat ls_test1 을 통해 알수있다.
#date는 날짜와 시간을 나타낸다.
file-1 안에 들어간 것을 #cat file-1을 통해 확인 가능.
> 는 덮어쓰기 기능을 가지고 있다.
여기서 ls 1> file-1 을 입력하여 덮어쓰여진 file-1에 한번 더 덮어써봤다.
그랬더니 전에 덮어썼던 date는 사라졌고 ls 에 관한 정보만 file-1에 들어가있다.
위 사진을 통해 date의 정보가 사라진 것을 확인할 수 있다.
즉 date의 정보가 없어지고 ls 의 정보가 들어온 것이다
추가 리다이렉션
# 명령어 >>[파일]
기존에 파일의 내용은 유지가 되고 새로운 내용이 하단에 추가되는 형태.
위에 입력한 것부터 순서대로 추가된다.
> : 덮어쓰기 기능
>>: 추가 기능
file-2 에는 date , ls , date의 정보가 차례대로 들어가 있다.
#cat file-2 를 통해 확인.
입력 리다이렉션
#명령어 < [파일]
표준 입력을 의미하는 0은 생략이 가능하다.
cat이라는 프로그램에게 입력 값으로 파일을 전달한다.
#명령어 2>[파일] : 오류난 것을 파일에 집어넣는다.
표준 오류 fd/2
/dev/null
- null (아무 내용이 없다)
- /dev/null 항상 아무 내용이 없는 null 상태를 유지하고 있는 파일
- 해당 파이로 들어간 데이터는 모두 사라진다
- 블랙홀같은 개념이다. windows로 따지자면 쓰레기통 개념이다.
파이프(Pipe) 기호 : (\+shift )
프로세스의 입/출력을 다음 프로세스에게 전달하는 방법
ex) #cat /etc/services //화면에 전달하는 방법
#cat /etc/services // 프로그램이 동작했을 때 나오는 명령어의 출력결과를
// 파이프를 통해 들어가고 다음 명령어에 입력으로 들어간다.
전체 ls -l의 출력 내용
$ls -l | grep "^d-" : 디렉토리 파일들만 나타내라 라는 의미이다.
즉 전체 ls -l의 내용들 중에 디렉토리 파일만 출력한다.
$ls -l | grep "d-" | wc -l : 디렉토리의 개수
wc -l : 행의 개수를 알려준다. 총 디렉토리가 27개임을 알 수 있다.
디렉토리와 마찬가지로 링크파일민 나타낸다.
#ls -l | grep "^-" | wc -l : 파일의 개수를 나타낸다 총 15개임을 알 수 있다,
/etc/services 파일의 udp가 들어간내용의 마지막 3줄만 출력
'Linux' 카테고리의 다른 글
Linux 사용자 계정 관리 (0) | 2018.01.25 |
---|---|
Linux vi 모드 (0) | 2018.01.24 |
Linux grep 명령어 (0) | 2018.01.17 |
Linux 기본 명령어 (0) | 2018.01.16 |
Linux Xshell의 기능 (1) | 2018.01.15 |