--------------------------------------------------------
파일 디스크립터
# 파일의 종류와 상관없이 모든 열려있는 파일을 참조하는 데 사용
# 모든 파일마다 각각의 파일 디스크립터를 가지고 있지만 모든 파일마다
#공통되는 파일 디스크립터가 존재한다.
0: 표준입력
1: 표준출력
2: 표준 에러
$$ pid 확인
proc폴더에 확인가능하다
ls -l /proc/$$/fd를 통해 파일 디스크립터의 정보를 볼 수 있다.
exec 0,1,2<$- 는 0이나 1이나 2를 삭제하는 것이다.
즉 표준 입력, 표준 출력 표준에러를 삭제하여 문제가 발생할 것이다.
< : 표준 입력을 의미함
> :표준 출력을 의미함
[root@localhost fd]# exec 3< /tmp/diary
이 것은 tmp/diary를 가지고 표준입력(3번이라는 fd를 가진)을 하나 만들겠다.
이렇게 해당 파일을 불러올 수 있다.
/tmp/outfile 파일을 4번 fd에 표준출력을 만들었다. 그것을
echo "name: hojin" >$4를 통해서 표준입력은 echo를 통해 넣었다.
★모든 파일에는 0,1,2번의 파일 디스크립터가 존재한다.
혹은 3,4번을 주어 만들 수도 있다.
-----------------------------------------
GREP
파일의 특정한 패턴의 문자열을 가진 문장을 출력해주는 명령어
grep[문자열] [파일명]
---color 옵션 ---
# 옵션을 지정하지 않을 경우 default값은 auto 이다.
# none, auto, always
none : grep 문자열에 대한 하이라이팅을 사용하지 않음 auto : grep문자열에 대한 하이라이팅을 사용
always : grep에 대한 표준 출력을 파이프로 넘겼을 경우에도 하이라이팅을 유지
grep예시
grep --help를 작성한 경우 표준출력으로 인해서 위와 같이 나온다.
-문자,이렇게 정리된 상태로 보고 싶을 때 grep를 사용한다.
[root@localhost fd]# grep --help | grep -E '\-.,'
= grep --help를 | 뒤로 보내고 그 것을 grep 이 -E정규식을 사용하여 '' 안에 - .(모든문자),를 넣는데 이때 특수문자인 -를 인식하게 하기 위해 \를 넣어준다.
그러면 이렇게 깔끔하게 정리되서 나온다.
\-.,' 이것이 하이라이팅 된 것이다.
grep --help | grep --color=none -E '\-.,'
이렇게 --color=none 옵션을 넣으면 하이라이팅이 없어지는 것을 알 수 있다.
만약 위에서부터 10개만 출력하고 싶다면
위의 출력을 | 파이프를 통해 다시 head -10으로 보내 위에서부터 10개만 출력하도록 한다.
여기서 하이라이팅 색깔은 GREP_COLOR변수에 저장이 되어 있는데 Ansi Escape code에 색이 정의되어 있다.
export GREP_COLOR=42 로 색을 정의하면 그에 대응하는 색이 하이라이팅 된다.
가장 위에 ^
정규식 \t와 \n을 사용하여 위의 표를 만들고 user1만 하이라이트 하고 싶다면 파이프로 grep을 전달한다.
먄약 가장 위에 있는 것만 보고 싶다면 ^을 사용한다.
가장 끝일경우 user1$를 사용한다. 즉 가증 끝에 user1이 있는 것을 말한다.
.==모든 문자
.모든 문자뒤에 모든 문장*
.의 유무의 차이
.은 모든 문자이기 때문에 a 이후의 모든 문자를 하이라이팅 한다.
하지만 그냥 *만 있으면 a 문자만 하이라이팅한다.
[ ]
[12]는 1,2과 포함된 것을 조회한다.
반면 [^ 13]은 이것이 아닌 것을 조회한다.
< , >
<는 <문자 로 시작하는 것을 조회
>는 문자>로 끝나는 것을 조회
{ }
a{2}는 암것도 안나오지만 e{2}는 하이라이팅이 되었다.
왼쪽에 있는 문자가 적어도 { }안에 있는 개수만큼 있다면 조회한다.
{1,2}로 1개나 2개가 올 수도 있다고 설정할 수도 있다.
-i : 자신의 오른쪽에 해당하는 패턴이 대소문자 구분없이 조회한다.
-I : 대소문자 구분함
-I는 디폴트로는 구분하는 데 만약 -i가 박혀있다면 그것을 무시하기 위해서 뒤에 -I를 써준다.
-n : 행번호를 출력해준다.
-c : 개수 출력
-v: 왼쪽 문자 빼고 조회해라
♠
-i (ignore) : 대소문자를 구분하지 않는다.
-I : 대소문자를 구분한다.
-n (Number) : grep된 행번호를 출력한다.
-E(Expression) : 정규식을 사용해서 grep를 한다.
-v (inverse) : grep한 결과를 제외하고 출력한다
댓글