Linux Shell 리 셋 상세 설명

3630 단어 Linux
Linux 셸 리 셋 명령
1. 표준 입력, 표준 출력 과 표준 오류 출력
Linux 에서 시스템 에서 3 개의 파일, 표준 입력, 표준 출력, 표준 오류 출력 을 엽 니 다.
표준 입력: 키보드 에서 데 이 터 를 입력 하면 키보드 에서 데 이 터 를 읽 습 니 다.
표준 출력: 데 이 터 를 터미널 에 출력 합 니 다.
표준 오류 출력: 표준 오 류 를 터미널 에 출력 합 니 다.
기본 표준 입력 은 키 보드 를 말 합 니 다. 기본 표준 출력 과 표준 오류 출력 은 화면 이나 터미널 을 말 합 니 다.시스템 은 이 세 파일 에 파일 식별 자 fd (file descripter) 를 할당 합 니 다. Linux 시스템 에 서 는 모든 것 이 파일 입 니 다. 파일 에 대한 작업 은 보통 파일 식별 자 를 사용 합 니 다.그들의 파일 식별 자 는 각각 0, 1, 2 이다.
2. 방향 을 바꾼다
리 셋 방향 은 입력 리 셋 방향 과 출력 리 셋 방향 으로 나 뉜 다.
입력 재 설정 이란 키보드 에서 읽 지 않 고 파일 에서 입력 하거나 다른 것 을 입력 하 는 것 이다.
출력 재 설정 이란 터미널 에 출력 하지 않 고 파일 이나 다른 곳 으로 출력 하 는 것 입 니 다.
"""출력 재 설정 연산 자 를 표시 합 니 다.
"<
">", ">"출력 할 때 파일 이 존재 하지 않 으 면 자동 으로 파일 을 만 듭 니 다. 두 번 째 입력 할 때 이전 입력 내용 을 덮어 씁 니 다. ">"는 두 번 째 출력 내용 을 덮어 쓰 는 것 이 아니 라 파일 에 추가 합 니 다.
3. 예
(1) 입력 방향 변경
 [root@localhost ~]# wc 

wc 통계 줄 수, 단어 수, 문자 수
그 중 wc 의 입력 은/etc/inittab 에서
[root@localhost ~]# wc < 1
> 11
> 111
> aa
3 3 9

wc 통계 구분자 aa 간 의 내용.
(2) 출력 방향 변경
프로 세 스 의 정보 출력 을 a. txt 파일 로 다시 설정 합 니 다. [root@localhost ~]# ps -ef >a.txt
프로 세 스 정 보 를 a. txt 파일 에 추가 합 니 다 [root@localhost ~]# ps -ef>>a.txt
입력 과 출력 의 방향 을 바 꾸 는 것 은 키보드 에서 입력 하고 화면 에서 출력 하지 않 는 것 이다.
4. Linux 에서 출력 방향 을 바 꾸 는 전형 적 인 분석
(1) a.out > outfile 2>&1 (2) a.out 2> &1 >outfile
분석:
0 은 표준 입력 을 대표 하고, 1 은 표준 출력 을 대표 하 며, 2 는 표준 오류 출력 을 대표 한다.그 중 1 (즉 > 은 1 > 에 해당 함) 은 생략 할 수 있 으 며, 기본 값 은 표준 출력 입 니 다.
(1) 우선 a. out 을 outfile 파일 로 다시 설정 합 니 다.그리고 2 > & 1 표준 오류 출력 을 표준 출력 으로 재 설정 합 니 다.이 때 표준 출력 은 이미 방향 을 바 꾸 었 습 니 다. 표준 출력 과 표준 오류 출력 을 모두 outfile 로 바 꾸 는 것 과 같 습 니 다.1. 표준 출력 파일 설명자 입 니 다.1. 보통 왼쪽 에 놓 으 면 표준 출력 이 어느 위치 로 바 뀌 었 는 지 나타 내 고 1 은 오른쪽 에 놓 으 면 표준 출력 으로 바 뀌 었 기 때문에 표준 출력 을 나타 내 는 파일 설명 자 를 & 로 구분 합 니 다.2 > 1 은 표준 오 류 를 파일 1 로 재 설정 하고 2 > & 1 은 표준 오 류 를 표준 출력 으로 재 설정 하 는 것 을 나타 낸다.
(2) 먼저 표준 오류 출력 을 표준 출력 으로 재 설정 합 니 다. 이때 표준 출력 은 터미널 에 있 습 니 다.따라서 표준 오류 도 단말기 에 있다.그리고 표준 출력 은 outfile 에 있 습 니 다.표준 오 류 는 터미널 에 있 습 니 다.따라서 (1) 표준 출력 과 표준 오류 가 모두 outfile 에 들 어 갔다 는 뜻 이다.
(2) 표준 출력 을 outfile 로 표시 하지만 표준 오류 출력 은 터미널 에 있 습 니 다.
ls 1>/dev/null 2>/dev/null
ls >/dev/null  2>&1

/dev/null 은 쓰레기통 으로 밑 빠 진 구멍 으로 표시 되 지 않 는 다 는 뜻 입 니 다.
표준 출력 과 표준 오류 출력 이 표시 되 지 않 습 니 다.
상기 두 명령 이 나타 내 는 의 미 는 같다.
5. exec 바 인 딩 재 설정
형식: exec 파일 설명자 [n] file 또는 파일 설명자 또는 장치
위 에서 말 한 입력 은 출력 을 바 인 딩 파일 이나 장 치 를 입력 하고 출력 한 후에 현재 명령 만 유효 합 니 다.바 인 딩 후 다음 명령 을 모두 지원 하려 면 exec 명령 을 사용 해 야 합 니 다!
실례:
[chengmo@centos5 shell]$ exec6 >&1

\# 표준 출력 을 fd 6 와 연결 합 니 다.
[chengmo@centos5 shell]$ ls /proc/self/fd/
0  1  2  3  6

\# 파일 설명자 나타 나 기 6
[chengmo@centos5 shell]$ exec 1>suc.txt

\# 다음 모든 명령 표준 출력 을 suc. txt 파일 에 연결 합 니 다 (이 파일 로 출력)
[chengmo@centos5 shell]$ ls -al

\# 명령 을 실행 하 니 아무것도 되 돌아 오지 않 습 니 다. 표준 출력 이 suc. txt 파일 로 출력 되 었 기 때 문 입 니 다.
[chengmo@centos5 shell]$ exec 1>&6

\# 표준 출력 복구
[chengmo@centos5 shell]$ exec 6>&-

\# fd 6 설명자 닫 기
[chengmo@centos5 ~]$ ls /proc/self/fd/
0  1  2  3

설명: 사용 하기 전에 표준 입력 을 파일 설명자 6 에 저장 합 니 다. 이 설명 에서 파일 설명 자 는 기본적으로 0, 1, 2 를 열 고 사용자 정의 설명 자 를 사용 할 수 있 습 니 다.그리고 표준 출력 을 파일 에 연결 하면 모든 출력 이 파일 에 발생 합 니 다.사용 후 표준 출력 을 복원 하고 파일 설명자 6 을 닫 습 니 다.
참고 블 로그:https://www.cnblogs.com/wangyongbin/p/4432232.html

좋은 웹페이지 즐겨찾기