일부 Linux 터미널 명령에서 이러한 기호는 무엇을 의미합니까? [닫은]

AskUbuntu에서는 그 주위에 몇 가지 명령이 매우 복잡해 보이고 많은 기호가 있습니다. 이 명령이 어떻게 구성되어 있는지 더 잘 이해하기 위해 기호의 의미를 알고 싶습니다.

예를 들면 다음과 같습니다.

find ~/ -name \*.c -exec sed -i "s/cybernetnews/cybernet/g" {} \;

또는 더 복잡한 :

echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"

나는 아주 잘하는 추가 매개 변수를 이해하고 -c, --debug주요 Section 명령에 어떤 효과를 가지고있다. 이것의 의미는 거의 모든 경우에서 man페이지 에서 찾을 수 있으므로 실제로 내가 원하는 것은 아닙니다.

내가 제시 한 예를 설명하는 대신 답변에서 상징이 구체적으로 무엇을하는지 정의하십시오. 다음과 같이 보일 수 있습니다.

" means 'argument': the main command uses anything within these symbols as its source
^ is used for ...
# is used for ...

미리 감사드립니다



답변

보기 배쉬 참조 설명서 라는 섹션 쉘 작동고급 Bash 스크립팅 가이드 3 장 (특수 문자)를 .

나는 우분투 / 리눅스에서 쉘 스크립팅에 대해 새로운 것을 배울 필요가있는 사람들을 언제든지 참조합니다.

ABS 3 장을 가장 쉽게 탐색 할 수 있다고 생각합니다. 모든 기호는 페이지의 가장 왼쪽에 표시되며 바로 아래에 설명이 있습니다.


답변

불행히도 “기호”는 어떤 명령을 읽고 있는지에 따라 다른 의미를 가질 수 있으므로 매뉴얼 페이지로 이동해야합니다.

예를 들어 첫 번째 명령에서 {} 및 \; find 명령 (man find)에 따라 다릅니다. sed에 대한 인수에서 따옴표의 의미는 sed 또는 bash에 의존합니다 (인용 매개 변수이므로 잠재적으로 쉘일 수 있음). ~ /는 분명히 bash 패턴 확장입니다.

두 번째 복잡한 명령의 경우 대부분 에코를 처리하므로 bash의 맨 페이지에서 대부분의 정보를 찾을 수 있습니다.

이에 대한 귀하의 의견에 답하기 위해, 재 지정 문자> <| 파일에서 파일로 그리고 파일로 파이프하고 (기호보다 크거나 작은), 명령의 출력을 다른 입력 (파이프 |)과 연결하는 데 사용됩니다. I / O 리디렉션에 대한 유용한 자습서를 보려면 여기 를 참조 하십시오 . 이것은 Unix 쉘 및 도구 세트의 매우 강력한 디자인 기능입니다.


답변

파일에 끝나는 제 1 회 하나 개의 검색 .c디렉토리 내에서 ~/exec백인 군대가 sed나오지도 (유선형 편집기) s에 대한 earches를 cybernetnews하고로 변경됩니다 cybernet.

두 번째 것은 나를 회피합니다 … 실행시 빈 결과를 보여줍니다.


답변

터미널 명령을 배우기 위해 찾은 최고의 리소스는 LinuxCommand 이며 사용 가능한 가장 많이 사용되는 명령에 대한 자세한 설명을 제공합니다.


답변

복잡한 명령을 붙여 넣을 때 기호의 전체 의미를 말하기는 어렵습니다.

특히 에코.

-e에 대해서는 man echo를 참조하십시오. 이스케이프를 활성화하므로 \ e가 늦을수록 이스케이프됩니다.

다른 기호의 대부분은 문자열 조작입니다.

문자열 “foo”를 포함하는 i 변수가 있다고 가정하십시오.

i=foo;echo $i
foo

그러나 변수 $ i가 문자열의 일부인 경우 더 복잡해집니다.

echo $ibar # Note: no output

echo ${i}bar # we have output
foobar

이제 문자열도 조작 할 수 있고 일부만 인쇄 할 수 있습니다

당신의 경우

$ {i # * =} = print $ i, *와 = 사이의 최단 일치를 제거하지만 * 자체는 와일드 카드입니다.

echo ${i#o}
foo

echo ${i#*o}
o

http://tldp.org/LDP/abs/html/string-manipulation.html을 참조하십시오

다음으로 우리는 서브 쉘 (x …)을 쳤다

Bash는 서브 쉘에서 명령을 처리하고 명령의 출력을 리턴합니다.

x = (i의 하위 문자열); 계속하다

이제 [ “$ {! x}”] 테스트가 진행되었습니다.

참조 : http://tldp.org/LDP/abs/html/testconstructs.html

그리고 내가 더 이상 말할 수없는 곳입니다.

bash에서 $ {! x}는 빈 문자열이됩니다. && == 논리 및 || 논리적이거나

{빈 문자열} 테스트 및 빈 문자열 에코 또는 에코 x

더 많은 구문을 제공해야하지만이 에코가 어딘가에 출력되는 것으로 보입니다.

다시 []는 테스트이며, 우리는 처음에 [를 탈출했습니다.

에코가하는 일에 대해서만 설명 할 수 있습니다.

터미널에서 echo 명령을 입력 할 때 출력이없는 이유는 코드 스 니핏이므로 기본적으로 x 또는 i가 정의되어 있지 않으므로 모든 출력이 비어 있습니다.


답변

특정 언어의 기호에 대한 질문은 SymbolHound 를 사용해보십시오 . Google에서 찾지 못한 문자를 웹에서 검색 할 수 있습니다.