shell 메타문자 with putty

감귤맛젤리·2023년 6월 6일
0

shell prompt 상에서 사용되는 shell 메타문자를 shell이 먼저 해석 후 command에게 전달한다.

shell 메타문자

wildcard : 모든 것과 매칭!

종류메타문자의미
file name expension*문자열 wildcard
?한 문자 wildcard
[ ]문자 집합 wildcard(그냥 붙여써도 된다)
{ }문자열 집합 (,로 분리한다)
Escape character\single character escape
' 'String escape(String을 그대로 자식process에 전달)
" "String escape($를 expand하고 자식process에 전달)
job control관련&후면 작업(backgroud job)
입출력 관련\를 쉬프트 누른거..ㅋㅋ파이프(pipe)
< <<입력 재지정(redirection)
> >>출력 재지정(redirection)
기타#주석
$쉘 변수
디렉토리 관련 문자/경로명 디렉토리 분리자
(shell 메타문자 아님)~home directory
.현재 디렉토리
..부모 디렉토리

file name expension 관련

wildcard : 임의의 문자와 매칭 - 현재 디렉토리의 임의의 모든 파일 이름의 문자열과 매칭

? : 한 문자와 매칭

$ls a.?
a.c a.cc a.ccc 
a.()와 매칭되는 결과를 알려준다!

* : 임의의 길이의 문자열과 매칭(널 문자 포함)

$ls he*
hello hell heil 

he로 시작하는 모든 문자열과 매칭된다.
$ls *e*
dave(마지막은 널 문자라 끝이e라도 포함된다)

[set] : set의 문자 중의 하나와 매칭
[!set] or [^set] : set에 없는 문자 중의 하나와 매칭

[abc] = [a-c] 
[!0-9] : 숫자가 아닌 문자 // !는 앞에 매칭한다. 
[0-9!] : 숫자와 느낌표
[a-zA-Z] : 모든 알파벳 문자

{ } 확장 : 제시된 문자열로 대체

경우의 수를 다 따져서 모두 나와야 한다! 하나라도 없으면 에러뜬다 엔터 주의! 엔터 없으면 치지 말자

표현방식결과
b{ed, olt, ar}sbeds bolts bars
b{ar{d,n,k},ed}sbards barns barks beds

입출력

표준 입출력(standard I/O)

standard output : 표준 출력(화면에 출력)
standard error : 에러 메세지
standard input : 표준 입력(키보드)

입출력 재지정(redirection : <, >, >>, >&)

command > file1 : command의 표준 출력을 file1로 보낸다
command < file2 : file2의 내용을 표준 입력으로 사용하여 command 실행한다. (그니까 화면에는 file2의 내용이 출력된다. 입력이 file2의 내용이니까)
>> : 이미 파일이 존재하는 경우 이어쓴다. (>는 덮어씌워짐)
>& : 표준 출력뿐 아니라 standard error까지 파일로 보낸다(>>&) - 에러까지 표준출력에 포함!

! cat : 표준 입력을 바로 표준 출력으로 / cat file은 file 내용을 표준출력으로 !
cat > rrrr : 표준 출력을 rrrr로 보낸다.

$cat < file1 > file2     //file1을 표준 입력으로 사용해서 file2의 내용으로 출력한다. 
= $cat file1 > file2
$cat < file1 >> file2    //file2가 이미 존재하면, file2아래에 이어쓰니까 file2가 늘어난다. 
$cat < file1 >& file2    //위의 예시랑 똑같은데 에러까지 file2에 출력한다. 

오류 메세지까지 출력되는 것을 확인할 수 있다. 

입출력 관련

파이프(|) ; command1 | command2

command1의 표준 출력을 command2의 표준 입력으로 사용한다.
파이프는 일종의 파일!

입출력을 받을 수 없는 명령어는 에러가 난다.
앞 command의 결과를 표준출력해 command2의 표준입력으로 받는다.

wc -w : 공백을 기준으로 단어수를 센다. (표준입력을 받을 수 있는 command)

shell변수($)

shell은 자료형 변수밖에 없다.

$name=value
$echo $value

결과 : name출력


firstname = hyeran 이렇게 띄어서 쓰면 안된다. 붙여서 사용하자
echo : echo다음 뭐가 나오든 string형식으로 출력한다. (명령어라도!) !!!질문!!!!

Escape Character 관련

escape a single char(\: back slash)

메타문자가 아니라 실제 문자를 사용하고 싶을 때!

escape string(" " : double quote)

shell변수($)(variable expansion) 제외하고 string으로 !
모두 다 string은 아니다!

escape string(' ' : single quote)

무슨일이 있어도 다 string으로 받는다.

파일 경로명의 확장

home directory(~ Tilda)

자신의 홈디렉토리!

0개의 댓글

관련 채용 정보