linux 명령어를 쉘에서 실행

choi·2025년 1월 20일

업무 관련 이슈

목록 보기
2/5

회사에서 프로젝트를 하는 중
파이썬에서 리눅스 명령어를 실행해야 하는 경우가 생겼다.

명령어를 사용할 때 쉘에서 실행해야 하는 경우가 있어 그 부분을 정리한다.

sh -c "command"
  • sh -c는 Bourne Shell (sh) 또는 기본 쉘에서 명령어(Command)를 실행하는 옵션
  • 주어진 문자열을 하나의 쉘 명령으로 해석하여 실행

sh -c가 필요한 이유

  1. 쉘 연산자(;, &&, ||, |)를 사용한 명령 실행
sh -c "echo '첫 번째 명령어 실행'; ls -l; echo '끝'"
  1. 리다이렉션(>, <, >>)을 사용한 명령 실행
sh -c "df -h > disk_usage.txt"
  1. 여러 개의 명령어를 한 줄에서 실행
sudo -u someuser sh -c "whoami && ls -l"
  1. 환경 변수 확장 ($HOME, $PATH) 적용
sh -c "echo \$SHELL"
  1. 와일드카드 (*, ?) 적용
sh -c "ls -l /etc/*.conf"
  1. 스크립트나 subprocess.run()에서 실행할 때
import subprocess
subprocess.run(["sh", "-c", "ls -l /var/log | grep 'auth'"])

단순한 명령실행이 아니라면 대부분의 경우에 쉘에서 명령어를 실행하는 경우가 많다.

profile
늦게나마 정신을 차리려고 하는 개발 뭐시기하는 사람

0개의 댓글