"Bash"의 두 판 사이의 차이
(→단축키) |
|||
(같은 사용자의 중간 판 19개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | + | https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html | |
− | === | + | bash 명령어를 사용하면 bash를 사용할 수 있다. |
− | <syntaxhighlight lang="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'''<syntaxhighlight lang="bash"> | ||
if [ -z "$1" ] && [ -z "$2" ] | if [ -z "$1" ] && [ -z "$2" ] | ||
18번째 줄: | 100번째 줄: | ||
fi | fi | ||
+ | </syntaxhighlight>연산자 | ||
+ | |||
+ | <nowiki>=</nowiki> | ||
+ | |||
+ | != | ||
+ | |||
+ | '''-z string''' | ||
+ | |||
+ | True if the length of <var>string</var> is zero. | ||
+ | |||
+ | '''-n string''' | ||
+ | |||
+ | True if the length of <var>string</var> is non-zero. | ||
+ | |||
+ | ==== Grouping Commands ==== | ||
+ | |||
+ | === Coprocesses === | ||
+ | |||
+ | === GNU Parallel === | ||
+ | |||
+ | == Shell Functions == | ||
+ | |||
+ | == Shell Parameters == | ||
+ | |||
+ | == Shell Expansions == | ||
+ | |||
+ | === Brace Expansion === | ||
+ | |||
+ | === Tilde Expansion === | ||
+ | |||
+ | === Shell Parameter Expansion === | ||
+ | |||
+ | === 명령 대체(Command Substitution) === | ||
+ | 다음과 같이 사용한다.<syntaxhighlight lang="bash"> | ||
+ | $(command) | ||
+ | </syntaxhighlight>or<syntaxhighlight lang="bash"> | ||
+ | `command` | ||
+ | </syntaxhighlight>변수에 넣어 출력할 수 있다. 첫번째 라인은 띄어쓰기가 없다.<syntaxhighlight lang="bash"> | ||
+ | OUTPUT=$(ls -1) | ||
+ | echo "${OUTPUT}" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | === Arithmetic Expansion === | ||
+ | |||
+ | === Process Substitution === | ||
+ | |||
+ | === Word Splitting === | ||
+ | |||
+ | === Filename Expansion === | ||
+ | |||
+ | === Quote Removal === | ||
+ | |||
+ | == Redirections == | ||
+ | |||
+ | == Executing Commands == | ||
+ | |||
+ | == Shell Scripts == | ||
+ | |||
+ | |||
+ | |||
=== stdout없애기 === | === stdout없애기 === | ||
25번째 줄: | 166번째 줄: | ||
=== stderr없애기 === | === stderr없애기 === | ||
2>/dev/null | 2>/dev/null | ||
+ | |||
+ | === 문자열 === | ||
+ | ': 작은 따옴표 안의 문자 그대로 사용 | ||
+ | |||
+ | ": 문자열 변수는 치환 | ||
+ | |||
+ | \": "출력해야 하는 경우 | ||
+ | |||
==단축키== | ==단축키== | ||
40번째 줄: | 189번째 줄: | ||
* !!: 직전 명령어 실행 | * !!: 직전 명령어 실행 | ||
* !tail: 이전 명령어 중에 tail 로 시작했던 명령어 실행 | * !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 | ||
+ | [[분류:단축키]] | ||
+ | [[분류:리눅스]] |
2023년 6월 18일 (일) 05:30 기준 최신판
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