ESC csh 파일명 완성
RETURN csh, sh 명령 실행
space csh, sh 아규먼트 구분
TAB csh, sh 아규먼트 구분
TAB bash 파일명 완성
# csh, sh 코멘트 시작점
` csh, sh 명령 대치(backquotes)
” sh 불완전 quote $, `, \ 의 의미는 희석시키지 못함
” csh 불완전 quote $, `, ! 의 의미는 희석시키지 못함
‘ csh, sh 완전 quote 모든 문자의 의미 희석
\ csh, sh 한 문자를 quote
$var csh, sh 변수
${var} csh, sh $var와 같다.
$var:mod csh var를 편집자인 mod로 편집한다. => 나중에 다시 설명
${var-default} sh var가 정의되어 있지 않으면 default를 사용한다.
${var=default} sh var가 정의되어 있지 않으면 var를 defualt로 셋팅하고 그것을 사용한다.
${var+instead} sh var가 정의되어 있으면 instead를 사용하고 그렇지 않으면 null 문자 사용.
${var?message} sh var가 정의되어 있지 않으면 message를 프린트하고 만약
정의되어 있으면 그 값을 사용한다.
${var#pat} ksh, bash 시작부분으로부터 삭제되는 최소 pat를 가지는 var의 값
${var##pat} ksh, bash 시작부분으로부터 삭제되는 최대 pat를 가지는 var의 값
${var%pat} ksh, bash 끝부분으로부터 삭제되는 최소 pat를 가지는 var의 값
${var%%pat} ksh, bash 끝부분으로부터 삭제되는 최대 pat를 가지는 var의 값
| csh, sh 표준 출력의 파이프
|& csh 표준출력과 표준 에러의 파이프
^ sh(only) 파이프
^ csh,bash 이전 명령의 편집
& csh, sh 프로그램을 백그라운드로 실행
? csh, sh 한문자의 일치
* csh, sh 0개 이상의 문자와의 일치
; csh, sh 명령 구분자
;; sh case문의 끝표시
~user csh, ksh, bash user의 홈디렉토리
! csh, bash 명령 히스토리
– 프로그램 아규먼트의 시작
– 프로그램 표준 입력을 읽는다(오직 몇몇 프로그램에서만)
$# csh, sh 스크립트할 아규먼트의 갯수
“$@” sh 스크립트할 오리지널 아규먼트
$* csh, sh 스크립트할 아규먼트
$- sh shell에서의 플레그 셋
$? sh 이전 명령의 상태
$$ csh, sh 프로세스 ID
$! sh 최근 백그라운드 작업의 프로세스 번호
$< csh 터미널로부터 입력을 받아 들인다.
cmd1 && cmd2 csh, sh cmd1이 정상적으로 실행되면 cmd2를 실행한다.
cmd1 || cmd2 csh, sh cmd1의 결과에 상관없이 cmd2를 실행한다.
$(..) ksh, bash 명령 대치
((..)) ksh, bash 수치 연산(평가?(evaluation))
. file sh 파일에 있는 내용을 현재의 쉘에서 실행
: sh 아규먼트를 평가하는데 true를 되돌린다.
예) while :
do
ls
done
위의 명령은 sh에서 실행되면 무한정으로 ‘ls’명령을 실행한다.
: sh path들을 구분한다.
: csh 변수 편집자
[] csh, sh 문자의 일치 범위
[] sh 시험.
%job csh, ksh, bash 작업 번호
(cmd;cmd) csh, sh cmd;cmd 명령을 서브쉘에서 실행한다.
{} csh, bash In-Line 확장
{cmd;cmd} sh (cmd;cmd)와 같지만 서브쉘에서 실행되는건 아니다
>file csh, sh 표준아웃을 파일에 리다이렉트
>>file csh, sh 표준아웃을 파일에 append한다.
<file csh, sh 파일을 표준입력으로 받아들인다.
<<word csh, sh word가 있는동안 그것을 읽어들여 명령을 실행하고
변수를 교체한다.
<<\word csh, sh 위와 같지만 변수 교체는 이루어지지 않는다.
<<-word sh word를 읽어 들이지만 앞의 TAB은 무시한다.
>>! file csh noclobber가 설정되어 있고 파일이 존재하지 않아도
>! file csh 파일로 출력을 보낸다. 물론 noclobber가 설정되어
있거나 파일이 존재해도 무시하고 덮어쓴다.
>| file ksh, bash 위와 같다.
>& file csh 표준 출력과 표준 에러를 file로 리다이렉트
m> file sh 출력 파일디스크립터 m을 file로 리다이렉트
m>> file sh 출력파일디스크립터 m을 file로 append
m< file sh 입력파일디스크립터 m을 file로 부터 리다이렉트
<&m sh 파일 디스크립터 m으로부터 표준 입력을 가로챔
<&- sh 표준 입력을 닫는다.
>&m sh 파일디스크립터 m을 표준 출력으로 사용한다.
>&- sh 표준 출력을 닫는다.
m<&n sh 입력파일디스크립터 n을 파일디스크립터 m에 연결한다
m<&- sh 입력 파일디스크립터 m을 닫는다
n>&m sh 출력파일디스크립터 n을 파일디스크립터 m에 닫는다.
m>&- sh 출력파일디스크립터 m을 닫는다.
'프로그래밍 > 리눅스 프로그래밍' 카테고리의 다른 글
[systemd] systemd를 시용한 자가 업데이트 로직 (0) | 2022.01.06 |
---|---|
프로그램 중복 실행 확인 코드 (0) | 2021.10.11 |
[Linux] realpath 구하기 (0) | 2021.08.11 |
[Linux] dynamic library (dlopen, dlsym, dlclose, dlerror) 사용법 (0) | 2021.08.11 |
[cmake] cmake 기초 부터 활용 까지 (0) | 2021.06.17 |