셸 상용 리 셋 실례 설명

3444 단어
열 린 파일 마다 파일 설명자 가 분 배 됩 니 다. stdin (키보드), stdout (화면), stderr (오류 메시지 가 화면 에 출력 됨) 의 파일 설명 자 는 각각 0, 1, 2 입 니 다. 열 리 고 있 는 추가 파일 에 대해 설명 자 는 3 ~ 9 입 니 다.
파일 설명 자 는 파일 시스템 이 열 린 파일 을 추적 하기 위해 분 배 된 숫자 입 니 다.
다음은 실례 를 들 어 설명 하 겠 습 니 다.
1, > 의 용법
 
  
[zhangy@localhost ~]$ echo "11111" > 1.txt
[zhangy@localhost ~]$ cat 1.txt
11111
[zhangy@localhost ~]$ echo "11111" 1> 1.txt    //这个用法和上面的用法是一样
[zhangy@localhost ~]$ cat 1.txt
11111
[zhangy@localhost ~]$ echo "22222" >1.txt
[zhangy@localhost ~]$ cat 1.txt
22222

이런 용법 은 내 가 자주 사용 하 는 것 이기 때문에 모두 가 매우 익숙 하 다 고 생각한다.echo "11111"> 1. txt 시 > 앞 에 1 이 있 습 니 다. 기본 값 입 니 다. >파일 로 다시 설정 할 때 파일 을 비우 고 기록 합 니 다.
 
  
[zhangy@localhost ~]$ > 1.txt 
[zhangy@localhost ~]$ :> 1.txt 

위의 이 예 는 1. txt 파일 의 내용 을 비 울 수 있 습 니 다. 사실 이해 하기 쉽 습 니 다. 비 운 후에 내용 을 입력 하지 않 으 면 당연히 비어 있 습 니 다.
2, >> 의 용법
 
  
[zhangy@localhost ~]$ echo "2222" >> 2.txt
[zhangy@localhost ~]$ cat 2.txt
2222
[zhangy@localhost ~]$ echo "2222" >> 2.txt
[zhangy@localhost ~]$ cat 2.txt
2222
2222

위의 이 예 를 통 해 알 수 있 듯 이 >> 파일 로 재 설정 할 때 출력 을 파일 의 끝 에 씁 니 다.이 점 은 > 와 완전히 다르다.
3, 0, 1, 2, 9, 그리고 &
 
  
[zhangy@localhost ~]$ cat 1.txt
 333
 111
 222
 444
 [zhangy@localhost ~]$ grep "22" 0< 1.txt  //把1.txt中的内容读取出来
 222
 [zhangy@localhost ~]$ ls tank 2>> 1.txt   //将错误信息放到文件的结尾
 [zhangy@localhost ~]$ cat 1.txt
 333
 111
 222
 444
 ls: tank: 没有那个文件或目录                 //这个就是 2>> 1.txt产生的内容
 [zhangy@localhost ~]$ (ls tank ;pwd) &>1.txt   //将错误信息,以及输出内容放到1.txt文件中,&(stderr,stdout)
 [zhangy@localhost ~]$ cat 1.txt
 ls: tank: 没有那个文件或目录
 /home/zhangy

i > & j 파일 설명자 i 를 j 로 재 설정 합 니 다. i 파일 을 가리 키 는 모든 출력 을 j 로 보 냅 니 다. i 와 j 는 0 - 9 사이 의 숫자 입 니 다.
 
  
[zhangy@localhost ~]$ ls tank 2>&1|egrep \* 1> 2.txt  //在这里我把错误信息重定向到了1,在这里1就会输出错误,根赋值差不多
[zhangy@localhost ~]$ cat 2.txt
ls: tank: 没有那个文件或目录

4. < > 의 용법 < 이 기 호 는 읽 기 입 니 다. > 이 기 호 는 출력 이 므 로 함께 놓 으 면 열 고 읽 습 니 다.
 
  
[zhangy@localhost ~]$ echo 123546 > 2.txt
[zhangy@localhost ~]$ exec 4<> 2.txt     //打开2.txt并将内容读取到&4中
[zhangy@localhost ~]$ read -n 4 [zhangy@localhost ~]$ echo -n . >&4      //在向&4写入一个点
[zhangy@localhost ~]$ exec 4>&-          //关闭输出文件描述符4
[zhangy@localhost ~]$ cat 2.txt
1235.6

위의 이 예 를 넘 으 면 < > 의 역할 을 잘 알 수 있다.
5, n & 출력 파일 설명자 닫 기 n
 
  
[zhangy@localhost ~]$ ls tank          //会提示错误
ls: tank: 没有那个文件或目录
[zhangy@localhost ~]$ ls tank 2>&-     //我把错误关闭后,什么也不输出了

6, | 관리 명령
이 명령 도 우리 가 자주 사용 하 는 것 이다. 전형 적 인 것 이다. 한 명령 의 출력 을 다른 명령 의 입력 으로 여 긴 다.
 
  
[zhangy@localhost ~]$ echo tank | wc -w
 1

tank 은 출력 이지 만 wc 의 입력 임 을 나타 낸다. 그렇지 않 으 면 통계 가 나 오지 않 을 것 이다.

좋은 웹페이지 즐겨찾기