'bash'에 해당되는 글 2건

  1. 2008.09.22 [펀글][Bash] 리다이렉션 by 당신은 천하보다 귀중합니다. av930 (212)
  2. 2008.09.22 [Bash] 학습자료 by 당신은 천하보다 귀중합니다. av930

ls 2>&1ls 명령어의 표준에러를 임시로 쉘의 표준출력과 동일한 "리소스"로 연결시켜 줍니다.

---------------------------------------------------------------------------------------------------

명령 리디렉션 연산자 사용

업데이트 날짜: 01/21/2005

명령 리디렉션 연산자 사용

리디렉션 연산자를 사용하여 명령 입력 및 출력 스트림을 기본 위치에서 다른 위치로 리디렉션할 수 있습니다. 입력 또는 출력 스트림 위치는 핸들로 참조됩니다.

다음 표는 사용할 수 있는 핸들을 표시합니다.

핸들 핸들에 해당하는 숫자 설명

STDIN

0

키보드 입력

STDOUT

1

명령 프롬프트 창에 출력

STDERR

2

명령 프롬프트 창에 오류 출력

UNDEFINED

3-9

핸들은 각각의 응용 프로그램에서 정의하거나 각각의 도구에 맞게 되어 있습니다.

0에서 9까지 수는 처음 10개의 핸들을 나타냅니다. Cmd.exe를 사용하여 프로그램을 실행하고 프로그램의 처음 10개의 핸들 중에서 하나를 리디렉션합니다. 사용하려는 핸들을 지정하려면 리디렉션 연산자 앞에 핸들의 숫자를 입력합니다. 핸들을 정의하지 않으면 기본 < 리디렉션 입력 연산자는 0이고 기본 > 리디렉션 출력 연산자는 1입니다. < 또는 > 연산자를 입력한 다음 데이터를 읽거나 쓰려는 위치를 지정해야 합니다. 파일 이름이나 다른 기존 핸들을 지정할 수 있습니다.

기존 핸들로 리디렉션을 지정하려면 앰퍼샌드(&) 문자 다음에 리디렉션하려는 핸들 번호를 사용합니다(예: &handle#). 예를 들어 다음 명령은 핸들 2(STDERR)를 핸들 1(STDOUT)로 리디렉션합니다.

2>&1

다음 표는 입력 및 출력 스트림을 리디렉션하는 데 사용할 수 있는 연산자를 표시합니다.

리디렉션 연산자 설명

>

명령 프롬프트 창이나 핸들 대신 파일 또는 프린터와 같은 장치에 명령 출력을 기록합니다.

<

키보드나 핸들에서 입력을 읽지 않고 파일에서 명령 입력을 읽습니다.

>>

파일에 이미 있는 정보를 삭제하지 않고 파일 끝에 명령 출력을 추가합니다.

>&

한 핸들의 출력을 다른 핸들의 입력으로 씁니다.

<&

한 핸들의 입력을 읽어서 다른 핸들의 출력에 씁니다.

|

한 명령의 출력을 읽어서 다른 명령의 입력에 씁니다. 파이프라고도 합니다.

기본적으로 키보드에서 Cmd.exe로 STDIN 핸들과 같은 명령 입력을 보낸 다음 Cmd.exe가 명령 프롬프트 창에 STDOUT 핸들과 같은 명령 출력을 보냅니다.

입력(<) 리디렉션

키보드 입력을 파일 또는 장치로 리디렉션하려면 < 연산자를 사용합니다. 예를 들어 File.txt에서 sort 명령에 대한 입력을 가져오려면 다음과 같이 입력합니다.

sort<file.txt

File.txt의 내용은 명령 프롬프트 창에 알파벳순으로 나타납니다.

< 연산자는 지정된 파일 이름을 읽기 전용 권한으로 엽니다. 따라서 이 연산자를 사용하면 파일에 쓸 수 없습니다. 예를 들어 프로그램을 <&2로 시작하면 핸들 2가 처음에 쓰기 전용 권한으로 열렸기 때문에 핸들 0을 읽으려는 시도는 모두 실패합니다.

참고

0은 < 리디렉션 입력 연산자에 대한 기본 핸들입니다.

출력(>) 리디렉션

거의 모든 명령은 명령 프롬프트 창에 출력을 보냅니다. 출력을 드라이브 또는 프린터에 보낸 명령도 명령 프롬프트 창에 메시지나 프롬프트를 표시합니다.

명령 프롬프트 창의 출력을 파일 또는 장치로 리디렉션하려면 > 연산자를 사용합니다. 이 연산자는 대부분의 명령과 함께 사용할 수 있습니다. 예를 들어 dir 출력을 Dirlist.txt로 리디렉션하려면 다음과 같이 입력합니다.

dir>dirlist.txt

Dirlist.txt가 없으면 Cmd.exe가 새로 만듭니다. Dirlist.txt 파일이 있으면 Cmd.exe는 파일의 내용을 dir 명령 출력으로 바꿉니다.

netsh routing dump 명령을 실행한 다음 출력을 Route.cfg에 보내려면 다음과 같이 입력합니다.

netsh routing dump>c:\route.cfg

> 연산자는 지정된 파일을 쓰기 전용 권한으로 엽니다. 따라서 이 연산자를 사용하면 파일을 읽을 수 없습니다. 예를 들어 프로그램을 리디렉션 >&0으로 시작하면 핸들 0이 처음에 읽기 전용 권한으로 열렸기 때문에 핸들 1에 쓰려는 시도는 모두 실패합니다.

참고

0은 > 리디렉션 출력 연산자에 대한 기본 핸들입니다.

핸들 복사

& 리디렉션 연산자는 지정된 한 핸들에서 지정된 다른 핸들로 출력 또는 입력을 복사합니다. 예를 들어 dir 출력을 File.txt에 보내고 오류 출력을 File.txt에 보내려면 다음과 같이 입력합니다.

dir>c:\file.txt 2>&1

핸들을 복사하면 핸들의 모든 원본 항목의 특징을 복사합니다. 예를 들어 핸들이 쓰기 전용 권한을 가지고 있으면 그 핸들의 모든 복사본도 쓰기 전용 권한을 갖습니다. 읽기 전용 권한이 있는 핸들을 쓰기 전용 권한이 있는 핸들로 복사할 수는 없습니다.

& 연산자를 사용한 입력 리디렉션 및 복사

복사 연산자(&)와 함께 리디렉션 입력 연산자(<)를 사용하려면 지정한 파일이 이미 존재하는 파일이어야 합니다. 입력 파일이 있으면 Cmd.exe는 해당 파일을 읽기 전용으로 열어 파일에 포함된 문자를 키보드에서 입력한 것처럼 명령에 대한 입력으로 보냅니다. 핸들을 지정하면 Cmd.exe가 지정한 핸들을 시스템에 있는 기존 핸들로 복사합니다.

예를 들어 File.txt를 핸들 0(STDIN)에서 입력 읽기로 열려면 다음과 같이 입력합니다.

<file.txt

File.txt를 열고 내용을 정렬한 다음 출력(STDOUT)을 명령 프롬프트 창에 보내려면 다음과 같이 입력합니다.

sort<file.txt

File.txt를 찾은 다음 핸들 1(STDOUT)과 핸들 2(STDERR)를 Search.txt에 리디렉션하려면 다음과 같이 입력합니다.

findfile file.txt>search.txt 2<&1

사용자 지정 핸들 3을 핸들 0(STDIN)에 입력 읽기로 복사하려면 다음과 같이 입력합니다.

<&3

& 연산자를 사용한 출력 리디렉션 및 복사

출력을 파일로 리디렉션하고 기존 파일 이름을 지정하면 Cmd.exe는 파일을 쓰기 전용으로 열고 파일의 내용을 덮어씁니다. 핸들을 지정하면 Cmd.exe가 파일을 기존 핸들로 복사합니다.

사용자 지정 핸들 3을 핸들 1로 복사하려면 다음과 같이 입력합니다.

>&3

핸들 2(STDERR)를 포함하여 ipconfig 명령의 모든 출력을 핸들 1(STDOUT)로 리디렉션한 다음 출력을 Output.log로 리디렉션하려면 다음과 같이 입력합니다.

ipconfig.exe>>output.log 2>&1

>> 리디렉션 연산자를 사용하여 출력 추가

기존 파일 내용을 손실하지 않고 명령 출력을 파일 끝에 추가하려면 연속으로 두 개의 보다 크다 기호를 사용합니다(예: >>). 예를 들어 다음 명령은 dir 명령으로 생성된 디렉터리 목록을 Dirlist.txt 파일에 추가합니다.

dir>>dirlist.txt

netstat 명령의 출력을 Tcpinfo.txt 끝에 추가하려면 다음과 같이 입력합니다.

netstat>>tcpinfo.txt

파이프 연산자(|) 사용

파이프 연산자(|)는 기본적으로 STDOUT인 한 명령의 출력을 가져와 기본적으로 STDIN인 다른 명령의 입력에 리디렉션합니다. 예를 들어 다음 명령은 디렉터리를 정렬합니다.

dir | sort

이 예제에서 두 명령은 동시에 시작하지만 sort 명령은 dir 명령의 출력을 받을 때까지 일시 중지됩니다. sort 명령은 dir 명령의 출력을 입력으로 사용한 다음 해당 출력을 핸들 1(STDOUT)로 보냅니다.

리디렉션 연산자로 명령 조합

필터 명령과 다른 명령 및 파일 이름을 조합하여 사용자 지정 명령을 만들 수 있습니다. 예를 들어 다음 명령을 사용하여 문자열 "LOG"가 있는 파일 이름을 저장할 수 있습니다.

dir /b | find "log" loglist.txt

dir 명령의 출력은 find 필터 명령을 통해 보내집니다. 문자열 "LOG"가 있는 파일 이름은 Loglist.txt에 파일 이름 목록(예: NetshConfig.log, Logdat.svd, Mylog.bat)으로 저장됩니다.

같은 명령에 둘 이상의 필터를 사용하려면 파이프(|)를 사용하여 필터를 구분합니다. 예를 들어 다음 명령은 C 드라이브의 모든 디렉터리를 검색하여 문자열 "Log"가 있는 파일 이름을 찾은 다음 한 번에 한 화면씩 표시합니다.

dir c:\ /s /b | find "log" | more

파이프(|)를 사용하면 Cmd.exe가 find 필터 명령을 통해 dir 명령을 보내도록 지시할 수 있습니다. find 명령은 "LOG" 문자열이 있는 파일 이름만 선택합니다. more 명령은 find 명령으로 선택된 파일 이름을 한 번에 하나의 명령 프롬프트 창 만큼씩 표시합니다. 필터 명령에 대한 자세한 내용은 필터 사용을 참조하십시오.

Posted by 당신은 천하보다 귀중합니다. av930

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. ranyoqy 2014.10.07 15:23  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  3. carpinteyrobps 2014.10.07 15:45  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  4. wengpmo 2014.10.07 16:53  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  5. carpinteyrokas 2014.10.07 17:01  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  6. carpinteyrodkp 2014.10.07 17:17  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  7. makelizeb 2014.10.07 17:58  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  8. carpinteyrofze 2014.10.07 21:16  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  9. carpinteyrohxc 2014.10.07 21:57  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  10. carpinteyroeno 2014.10.08 00:06  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  11. wg1tahco 2014.10.11 21:49  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  12. licjoesx 2014.10.14 21:44  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  13. senlinrbqg 2014.10.16 12:30  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  14. hpgsoiov 2014.10.17 23:37  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  15. DomingoKag 2014.10.18 06:15  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  16. tklopgbv 2014.10.20 04:35  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

  17. vgdddiwv 2014.10.21 12:55  댓글주소  댓글쓰기 수정/삭제

    이용약관위배로 관리자 삭제된 댓글입니다.

[Bash] 학습자료

Language 2008. 9. 22. 23:28

본 문서에 첨부한 파일은 http://personal.riverusers.com/~thegrendel/ 에서 다운로드한 자료로서, Bash 쉘 스크립트 프로그래밍에 대해 많은 보기와 함께 쉽고 자세한 설명을 볼 수 있습니다.


Bash 쉘 스크립트 프로그래밍에 관심이 있는 분에게 도움이 되리라 생각하며 올립니다.



첨부 파일 설명 :


abs-guide-2.7-u2d.zip : 홈페이지에서 다운로드한 자료를 u2d 명령을 써서 DOS 포맷으로 바꾼 것으로서, HTML 디렉토리안의 index.html을 열어 보시면 됩니다.


abs-guide-pdf.zip : 위 설명서의 pdf 버전입니다.

Posted by 당신은 천하보다 귀중합니다. av930

댓글을 달아 주세요