Linux에서 여러 명령을 동시에 실행하여 효율성 향상

Linux에서 여러 명령을 동시에 실행하여 효율성 향상
기능 이미지 속도 향상 다중 명령 프로세스

생산성을 높이고 싶으신가요? Linux 터미널에서 여러 명령을 동시에 실행하는 것을 고려하세요. 이 접근 방식을 사용하면 간단한 시퀀스 명령을 수행하고, 백그라운드에서 작업을 실행하고, 조건부 명령을 전체적으로 관리할 수 있습니다.

이 글에서는 Linux 터미널에서 명령을 순차적, 동시에 실행하는 여러 가지 기술을 살펴보겠습니다.

여러 명령을 함께 실행하는 이점

일상적인 유지 관리 작업을 실행하든, 대용량 데이터 세트를 처리하든, 워크플로우의 일부를 자동화하든, 명령을 결합하면 작업을 간소화하고 전반적인 효율성을 높일 수 있습니다.

예를 들어, 여러 디렉토리를 백업할 때 각 명령을 개별적으로 처리하는 대신 명령을 연결하면 시간과 노력을 절약할 수 있습니다.

여러 모듈이 필요한 Linux 패키지를 설치할 때 명령을 자주 체인으로 연결합니다. 이렇게 하면 패키지와 종속성이 단일 작업으로 설치되므로 반복적인 타이핑이 필요 없습니다.

순차적 명령 실행

이 방법은 터미널을 사용할 때 제가 주로 사용하는 방법입니다. 이전 명령이 성공적으로 실행되었는지 여부와 관계없이 명령을 차례로 실행하도록 명령을 연결할 수 있습니다.

이러한 명령을 순서대로 실행하려면 세미콜론을 ;구분 기호로 사용하면 됩니다. Enter를 누르면 터미널은 초기 명령을 처리하고 완료될 때까지 기다린 다음 다음으로 진행합니다.

예를 들어, 시스템을 업데이트하고 동시에 사용하지 않는 패키지를 지우려는 경우 다음을 실행할 수 있습니다.

apt 패키지 관리자를 사용하여 Ubuntu 시스템을 업데이트, 업그레이드 및 정리합니다.

이러한 명령을 체인으로 연결하면 순차적 실행이 적용되어 이전 작업이 완료된 후에만 각 작업이 완료되므로 효율성이 유지됩니다.

조건 기반 명령 실행

첫 번째 명령이 성공(또는 실패)할 경우에만 두 번째 명령을 실행하려면 &&(AND) 및 ||(OR) 연산자를 사용하여 조건부 실행을 활용할 수 있습니다.

첫 번째 명령이 성공하면 실행

이전 명령이 성공한 경우에만 다음 명령이 실행되도록 하려면 &&명령 사이에 연산자를 활용하세요.

예를 들어, 새 디렉토리를 만든 다음 디렉토리 생성이 성공한 경우에만 해당 디렉토리로 변경하려면 다음을 사용합니다.

동시에 디렉토리를 생성하고 변경합니다.

첫 번째 명령이 실패하면 후속 명령은 실행되지 않습니다.

첫 번째 명령이 실패하면 실행

|| 연산자. 이는 특히 워크플로를 방해하지 않고 폴백 명령이나 오류 로깅에 유용합니다.

저는 종종 이 연습이 파일 작업, 예를 들어 백업 위치에 파일을 복사하는 동안 유익하다는 것을 알게 되었습니다. 복사가 실패하면 진행 중인 작업을 방해하지 않고도 알림을 받고 싶습니다. 다음과 같이 구성할 수 있습니다.

cp file_name /backup || echo "Failed!" >> error_log.txt

이 경우 cp명령은 지정된 파일을 백업 디렉토리에 복사하려고 시도합니다. 실패하면 ||운영자는 다음 명령을 실행하여 오류 메시지를 오류 로그에 추가합니다. 이렇게 하면 워크플로가 중단 없이 계속되고 나중에 검토할 수 있도록 문제를 문서화할 수도 있습니다.

백그라운드에서 명령 실행

때로는 작업이 끝날 때까지 멈추고 싶지 않을 수도 있습니다. 프로세스에 상당한 시간이 걸리는 경우 &명령 끝에 앰퍼샌드를 추가하여 작업 흐름을 유지할 수 있습니다.

예를 들어, 다른 작업을 진행하는 동시에 특정 URL에서 큰 파일을 다운로드하려는 경우 다음을 사용할 수 있습니다.

sudo wget https://example.com/large-file.zip &

이렇게 하면 다운로드가 백그라운드에서 진행되는 동안에도 터미널에서 작업을 계속할 수 있습니다.

백그라운드 실행을 사용한 명령 체이닝

두 명령을 연결하고 전자가 완료된 후 후자가 백그라운드에서 실행되도록 하려면 어떻게 해야 할까요? 이 경우 파이프 |연산자와 앰퍼샌드를 모두 활용할 수 있습니다 &.

파이프는 |첫 번째 명령의 출력을 두 번째 명령의 입력으로 전달하는 반면, 앰퍼샌드는 &두 번째 명령이 백그라운드에서 실행될 수 있도록 합니다.

예를 들어, 큰 파일을 읽고 키워드를 추출하여 결과를 새 파일에 저장하려면 리디렉션 >연산자를 사용할 수 있습니다.

cat samplefile.txt | grep "Project" > output.txt &
대용량 파일을 검색하고 지정된 결과를 별도로 저장합니다.

이 설정을 사용하면 검색 및 저장 작업이 모두 백그라운드에서 수행됩니다. 이렇게 하면 파일이 처리되는 동안 중단 없이 다른 명령을 실행할 수 있습니다.

Xargs로 여러 명령을 동시에 실행

멀티태스킹 능력을 향상시키고 싶다면 xargs명령을 사용하여 병렬로 명령을 실행하는 것을 고려하세요. 이렇게 하면 순차적으로 처리하는 대신 여러 명령을 동시에 실행할 수 있습니다.

xargs명령은 인수 목록을 더 작은 배치로 효율적으로 분할하고 각 배치에서 특정 명령을 동시에 실행합니다.

예를 들어, 파일에 URL 목록이 저장되어 있고 이를 모두 한 번에 다운로드하려는 경우 하나씩 수행하는 대신 다음을 실행할 수 있습니다.

cat urls_file.txt | xargs -n 1 -P 4 wget

이 경우, 명령당 하나의 인수를 처리하도록 -n 1지시 xargs하고, -P 4동시에 네 개의 명령을 실행하도록 지시합니다. 이는 순차적 접근 방식에 비해 다운로드 프로세스를 상당히 가속화합니다.

결론

요약하자면, 세미콜론을 사용하여 명령을 결합하고 ;, &&및 를 사용하여 조건 실행을 구현하고 ||, 를 사용하여 백그라운드 프로세스를 실행하고 &, 를 사용하여 병렬 실행을 통해 멀티태스킹 역량을 높일 수 있습니다 xargs.

이미지 출처: Unsplash . 모든 수정 및 스크린샷은 Haroon Javed가 작성했습니다.

원천

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다