웹사이트 검색

예제가 포함된 Linux의 10가지 유용한 체이닝 연산자


Linux 명령을 연결한다는 것은 여러 명령을 결합하고 그 사이에 사용되는 연산자의 동작을 기반으로 실행되도록 하는 것을 의미합니다.

Linux에서 명령 연결은 셸 자체에서 짧은 셸 스크립트를 작성하고 터미널에서 직접 실행하는 것과 같습니다. 체인을 사용하면 프로세스를 자동화할 수 있습니다.

또한 무인 기계는 체인 작업자의 도움으로 체계적으로 작동할 수 있습니다.

이 기사의 목적은 자주 사용되는 명령 연결 연산자를 조명하는 것입니다. 생산성을 향상시키고 때때로 시스템 로드를 줄이면서 간결하고 의미 있는 코드를 작성할 수 있도록 하는 짧은 설명과 해당 예제를 제공합니다.

1. 앰퍼샌드 연산자(&) – 백그라운드에서 Linux 명령 실행

'&'의 기능은 명령이 백그라운드에서 실행되도록 하는 것입니다. 명령 뒤에 공백과 '&'을 입력하면 됩니다. 백그라운드에서 한 번에 두 개 이상의 명령을 실행할 수 있습니다.

백그라운드에서 'ping'이라는 단일 Linux 명령을 실행합니다.

ping -­c5 linux-console.net &

백그라운드에서 두 개 이상의 apt 명령을 동시에 실행합니다.

apt update & apt upgrade &

2. 세미콜론 연산자(;) - 여러 명령 실행

세미콜론 (;) 연산자를 사용하면 한 번에 여러 명령을 실행할 수 있으며 명령 실행이 순차적으로 발생합니다.

apt update ; apt upgrade ; mkdir test

위의 명령 조합은 먼저 update 명령을 실행한 다음 upgrade 명령을 실행하고 마지막으로 현재 작업 디렉터리 아래에 'test' 디렉터리를 생성합니다.

3. AND 연산자(&&) – 성공 시 두 번째 명령 실행

AND 연산자(&&)는 첫 번째 명령의 실행이 SUCCEEDS인 경우, 즉 종료 상태인 경우에만 두 번째 명령을 실행합니다. 첫 번째 명령은 0입니다. 이 명령은 마지막 명령의 실행 상태를 확인하는데 매우 유용합니다.

예를 들어 터미널에서 link 명령을 사용하여 linux-console.net 웹사이트를 방문하고 싶지만 그 전에 호스트가 live 또는 인지 확인해야 합니다. >아닙니다.

ping -c3 linux-console.net && links linux-console.net

4. OR 연산자(||) - 조건부 명령 실행

OR 연산자(||)는 프로그래밍의 'else' 문과 매우 유사합니다. || 연산자를 사용하면 첫 번째 명령 실행이 실패한 경우에만 두 번째 명령을 실행할 수 있습니다. 즉, 첫 번째 명령의 종료 상태는 '1'입니다.

예를 들어 루트가 아닌 계정에서 'apt update'를 실행하고 첫 번째 명령이 실패하면 두 번째 'links linux-console.net' 명령을 실행하려고 합니다. 실행됩니다.

apt update || links linux-console.net

위 명령에서 사용자는 시스템 업데이트가 허용되지 않았으므로 첫 번째 명령의 종료 상태가 '1' )임을 의미합니다. 따라서 마지막 명령인 'links linux-console.net'이 실행됩니다.

종료 상태 '0'으로 첫 번째 명령이 성공적으로 실행되면 어떻게 되나요? 확실히! 두 번째 명령은 실행되지 않습니다.

mkdir test || links linux-console.net

여기에서 사용자는 자신의 홈 디렉터리에 'test' 폴더를 생성하고 해당 사용자에게 허용합니다. 종료 상태 '0'을 제공하는 명령이 성공적으로 실행되었으므로 명령의 마지막 부분이 실행되지 않습니다.

5. NOT 연산자(!) - 명령의 선택적 실행

NOT 연산자(!)는 '제외' 문과 매우 유사합니다. 이 명령은 제공된 조건을 제외한 모든 조건을 실행합니다. 이를 이해하려면 홈 디렉터리에 'tecmint' 디렉터리를 만들고 여기에 'cd' 디렉터리를 만듭니다.

mkdir tecmint 
cd tecmint

다음으로 'tecmint' 폴더에 여러 유형의 파일을 만듭니다.

touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html

'tecmint' 폴더 내에 새 파일을 모두 생성했습니다.

ls 

a.doc  a.html  a.pdf  a.xml  b.doc  b.html  b.pdf  b.xml

이제 rm 명령을 사용하여 'html' 파일을 제외한 모든 파일을 한 번에 삭제하세요.

rm -r !(*.html)

확인하기 위해 마지막 실행을 수행합니다. ls 명령을 사용하여 사용 가능한 모든 파일을 나열합니다.

ls 

a.html  b.html

6. AND – OR 연산자(&& – ||) – 조건부 명령 실행

위 연산자는 'AND'와 'OR' 연산자의 조합입니다. 이는 'if-else' 문과 매우 유사합니다.

예를 들어, linux-console.net에 ping을 실행하고, 성공하면 'Verified' echo 'Host Down'이 나오면 성공합니다.

ping -c3 linux-console.net && echo "Verified" || echo "Host Down"

샘플 출력:

PING linux-console.net (212.71.234.61) 56(84) bytes of data. 
64 bytes from linux-console.net (212.71.234.61): icmp_req=1 ttl=55 time=216 ms 
64 bytes from linux-console.net (212.71.234.61): icmp_req=2 ttl=55 time=224 ms 
64 bytes from linux-console.net (212.71.234.61): icmp_req=3 ttl=55 time=226 ms 

--- linux-console.net ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms 
Verified

이제 인터넷 연결을 끊고 동일한 명령을 다시 시도하십시오.

ping -c3 linux-console.net && echo "verified" || echo "Host Down"

샘플 출력:

ping: unknown host linux-console.net 
Host Down

7. PIPE 연산자(|) – 간소화된 출력 처리

PIPE 연산자는 첫 번째 명령의 출력이 두 번째 명령의 입력 역할을 하는 경우 매우 유용합니다. 예를 들어 'ls -l'의 출력을 'less'로 파이프라인하고 명령의 출력을 확인합니다.

ls -l | less

drwx------  tecmint tecmint  4.0 KB Thu Nov 16 12:03:02 2023 AnyDesk
drwxrwxr-x  tecmint tecmint  4.0 KB Tue Oct 10 10:44:35 2023 bin
drwxr-xr-x  root    root     4.0 KB Wed Nov 24 22:05:09 2021 DEBIAN
drwxrwxr-x  tecmint tecmint  4.0 KB Sat Nov 18 12:32:49 2023 Desktop
drwx--x---+ tecmint tecmint  100 KB Fri Dec  8 12:00:49 2023 Downloads
drwxrwxr-x  tecmint tecmint  4.0 KB Wed Sep 13 10:25:07 2023 llpp
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 14:26:46 2023 MyImages
drwxrwxr-x  tecmint tecmint  4.0 KB Wed Sep 13 14:55:42 2023 Obsidian Vault
drwxrwxr-x  tecmint tecmint  4.0 KB Tue Oct 10 10:44:32 2023 opt
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 14:46:54 2023 php
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 15:54:33 2023 tar_examples
.rw-rw-r--  tecmint tecmint   73 KB Mon Sep 18 11:46:02 2023 Apache-Web-Server-Security.png
.rw-rw-r--  tecmint tecmint  2.2 KB Sun Oct 29 00:17:15 2023 ChatGPT-SEO-Prompts
.rw-rw-r--  tecmint tecmint   41 KB Thu Nov 23 11:34:33 2023 Create-Users-in-Linux.png
...

8. 명령 조합 연산자 {}

두 개 이상의 명령을 결합하면 두 번째 명령은 첫 번째 명령의 실행에 따라 달라집니다.

예를 들어 'bin' 디렉터리가 사용 가능한지 확인하고 해당 출력을 출력합니다.

[ -d bin ] || { echo Directory does not exist, creating directory now.; mkdir bin; } && echo Directory exists.

9. 우선순위 연산자() - 명령 실행 순서 관리

() 연산자를 사용하면 우선순위에 따라 명령을 실행할 수 있습니다.

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

위의 의사 명령에서 Command_x1이 실패하면 어떻게 되나요? Command_x2, Command_x3, Command_x4 중 어느 것도 실행되지 않습니다. 이를 위해 다음과 같이 우선순위 연산자를 사용합니다.

(Command_x1 &&Command_x2) || (Command_x3 && Command_x4)

위의 의사 명령에서 Command_x1이 실패하면 Command_x2도 실패하지만 여전히 Command_x3Command_x4는 실행에 따라 실행됩니다. Command_x3의 종료 상태.

10. 연결 연산자(\) - 여러 줄 명령 연결

이름에서 알 수 있듯이 연결 연산자(\)는 셸에서 여러 줄에 걸쳐 큰 명령을 연결하는 데 사용됩니다. 예를 들어, 아래 명령은 test(1).txt 텍스트 파일을 엽니다.

nano test\(1\).txt

지금은 여기까지입니다. 조만간 또 다른 흥미로운 기사로 찾아오겠습니다. 그때까지 계속 지켜봐주시고, 건강하시고, Tecmint에 접속하세요. 댓글 섹션에 귀중한 피드백을 제공하는 것을 잊지 마세요.