Bash
https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html
bash 명령어를 사용하면 bash를 사용할 수 있다.
기본쉘을 변경하려면
chsh -s /bin/bash
목차
정의(용어)
POSIX
Bash는 주로 POSIX 1003.1에서(https://standards.ieee.org/ieee/1003.1/7700/) Shell과 Utilities부분과 관련이 있다.
blank
공백 또는 탭 문자
builtin
실행파일이 아니라 Shell 자체에 내장된 명령이다.
control operator
control function을 수행하는 토큰이다. newline이거나 ‘||’, ‘&&’, ‘&’, ‘;’, ‘;;’, ‘;&’, ‘;;&’, ‘|’, ‘|&’, ‘(’, or ‘)’ 이다.
exit status
명령이 caller에게 리턴한 값이다. 8bit이다. (최대값 255)
field
text의 unit이다. text는 shell expansions의 하나의 결과이다. 명령이 실행되었을 때 expansion 후에 resulting fields는 명령어 이름과 arguments로서 사용된다.
file name
파일을 식별하는데 사용하는 문자열이다.
job
동일한 프로세스 그룹에 있는 파이프라인과 파이프라인에서 파생된 모든 프로세스로 구성된 프로세스 집합
job control
사용자가 프로세스 실행을 선택적으로 중지(일시 중지) 및 다시 시작(재개)할 수 있는 메커니즘
metacharacter
따옴표가 아닌 문자로 단어와 구분된다. metacharacter는 space, tab, newline 또는 다음 문자 중 하나이다. '|', '&', ';', '(', ')', '<', 또는 '>'.
name
letters, numbers, underscores로만 이루어진 단어이다. letter나 underscore로 시작한다. name은 쉘 변수와 함수명으로 사용된다. 식별자로 사용되기도 한다.
operator
control operator 혹은 redirection operator이다.
process group
같은 process group ID를 가지는 연관된 프로세스들의 묶음이다.
process group ID
reserved word
예약어. for, while 같은 것들이다.
return status
exit status와 같다.
signal
시스템에서 발생하는 이벤트를 커널이 프로세스에 알릴 수 있는 메커니즘입니다.
special builtin
POSIX에 의해 특별 분류된 builtin command.
token
shell에서 single unit으로 간주되는 문자의 sequence이다. word 이거나 operator이다.
word
shell에서 unit으로 취급되는 문자의 sequence이다. 단어들은 따옴표가 없는 metacharacters를 포함할 수 없다.
Shell Syntax
Shell Commands
Reserved Words
Simple Commands
Pipelines
List of Commands
Compound Commands
Looping Constructs
Conditional Constructs
if
if [ -z "$1" ] && [ -z "$2" ]
then
somecode1
elif [ "$1" = "run" ]; then
somecode
else
somecode2
fi
연산자
=
!=
-z string
True if the length of string is zero.
-n string
True if the length of string is non-zero.
Grouping Commands
Coprocesses
GNU Parallel
Shell Functions
Shell Parameters
Shell Expansions
Brace Expansion
Tilde Expansion
Shell Parameter Expansion
명령 대체(Command Substitution)
다음과 같이 사용한다.
$(command)
or
`command`
변수에 넣어 출력할 수 있다. 첫번째 라인은 띄어쓰기가 없다.
OUTPUT=$(ls -1)
echo "${OUTPUT}"
Arithmetic Expansion
Process Substitution
Word Splitting
Filename Expansion
Quote Removal
Redirections
Executing Commands
Shell Scripts
stdout없애기
>/dev/null
stderr없애기
2>/dev/null
문자열
': 작은 따옴표 안의 문자 그대로 사용
": 문자열 변수는 치환
\": "출력해야 하는 경우
단축키
이동
- alt+b: 현재 단어의 시작으로 이동
- alt+f: 현재 단어의 끝으로 이동
잘라내기
- alt+d: 커서부터 오른쪽 단어 잘라내기
- ctrl+w: 커서의 왼쪽 단어 잘라내기
- ctrl+k: 커서부터 끝까지 잘라내기
- ctrl+u: 처음부터 커서 앞까지 잘라내기
실행
- !!: 직전 명령어 실행
- !tail: 이전 명령어 중에 tail 로 시작했던 명령어 실행
- ctrl+r: Recall the last command matching the characters you provide.
프롬프트
.bashrc에 PS!변수에 저장된다.
special characters: https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html#Controlling-the-Prompt
ANSI color: https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
외부입력
http://www.gnu.org/software/bash/bash.html
매뉴얼: http://www.gnu.org/software/bash/manual/html_node/index.html