paint-brush
ChatGPT가 Linux Bash 스크립팅을 처리하는 방법~에 의해@dclinton
17,185 판독값
17,185 판독값

ChatGPT가 Linux Bash 스크립팅을 처리하는 방법

~에 의해 David Clinton6m2023/02/20
Read on Terminal Reader
Read this story w/o Javascript

너무 오래; 읽다

ChatGPT는 매우 유용한 파트너와 페어링 프로그래밍하는 데 사용할 수 있는 OpenAI의 새로운 도구입니다. 이 기사에서는 ChatGPT가 Linux Bash 스크립팅을 처리하는 방법을 살펴봅니다. 학습을 보완하기 위해 이 기사를 사용하고 싶다면 여기에서 이 기사의 비디오 버전을 시청할 수 있습니다.
featured image - ChatGPT가 Linux Bash 스크립팅을 처리하는 방법
David Clinton HackerNoon profile picture

우리는 몇 주 동안 인공 지능과 자연어 처리, 특히 최신 버전의 OpenAI GPT에 관해 많은 이야기를 들어왔습니다.


GPT 3.5의 최근 릴리스, 특히 매우 새로운 ChatGPT 도구는 확실히 큰 도약입니다.


AI에게 부동산 계약서와 유언장 작성, 심지어 프로그래밍 코드 생성까지 요청하는 사람들에 대해 읽어본 적이 있을 것입니다. 이 문서에서는 약간 다른 관점에서 도구에 접근합니다.


학습을 보완하기 위해 이 기사를 사용하려면 여기에서 이 기사의 비디오 버전을 시청할 수 있습니다.




ChatGPT 및 Bash 스크립팅 실험

나는 ChatGPT가 Linux Bash 스크립팅을 어떻게 처리하는지 알아보기로 결정했습니다. 그러나 (스포일러 경고!) 도구의 제안(좋은 코드와 나쁜 코드 모두)을 검토하면서 나는 훨씬 더 강력한 이점이 눈에 띄게 있다는 것을 깨닫기 시작했습니다. 즉, 매우 도움이 되는 파트너와 페어링 프로그래밍할 수 있는 기회입니다. .


AI는 궁극적으로 내 문제를 해결하지 못했지만 실패 방식 은 정말 매력적이었습니다. 그리고 새로운 답을 찾는 AI를 보는 것은 정말 말도 안 되는 일이었습니다.

첫 번째 시도 – ChatGPT가 문제 해결을 시도합니다.

그럼 모든 일이 어떻게 일어 났는지 봅시다. 다음은 제가 AI에 제공한 초기 프롬프트입니다.

YouTube 동영상의 URL을 입력하라는 메시지를 표시한 다음 yt-dlp 프로그램을 사용하여 해당 URL에서 다운로드하는 Bash 스크립트를 작성해 주세요. 그런 다음 스크립트는 파일 이름을 "myvideo.mp4"로 변경해야 합니다.

몇 초 후 ChatGPT에서 스크립트가 올 것이라고 말했습니다. 해당 코드는 다음과 같습니다.

 #!/bin/bash # Prompt user for YouTube video URL read -p "Enter YouTube video URL: " url # Download video from YouTube using yt-dlp yt-dlp $url # Get the name of the downloaded video file yt-dlp $url # Change the downloaded video filename to "myvideo.mkv" mv video-filename.mp4 myvideo.mp4

AI는 분명히 Bash 스크립트가 무엇인지, 코드를 표시하는 방법을 알고 있습니다. 각 코드 줄에 대한 주석을 훌륭하게 처리했습니다. AI는 사용자에게 입력을 요청하는 방법과 입력 문자열을 url 이라는 변수로 가져오는 방법을 알고 있습니다.


또한 yt-dlp 프로그램과 작동 방식을 알고 제공된 URL을 적절하게 제공합니다. 그런 다음 적어도 다운로드한 비디오 파일의 이름을 myvideo.mp4로 바꾸려고 시도했습니다. 그러나 다운로드 파일 이름이 video-filename.mp4라고 가정하면 모든 것이 무너졌습니다. 앗.


어쨌든 AI는 코드에서 스크립트를 생성하고 실행하는 방법을 나에게 유용하게 보여주었습니다.

두 번째 시도 – ChatGPT가 스스로 수정함

나의 첫 번째 후속 메시지는 명백한 실수를 지적했고, 몇 초 후에 ChatGPT는 그것이 잘못되었음을 인정하고 개선 사항을 제안했습니다.

맞습니다. 제가 제공한 스크립트는 다운로드한 비디오가 video-filename.mp4 이름의 파일에 저장된다고 가정하기 때문에 예상대로 작동하지 않습니다. 그러나 이것이 보장되는 것은 아닙니다. 이 문제를 해결하려면...

AI가 여기서 프로세스에 완전히 참여하는 방식은 정말 놀랍습니다. 첫 번째 코드를 기억하고, 내 불만 사항을 듣고 이해하며, 해결책을 생각합니다. 두 번째 시도는 다음과 같습니다.

 #!/bin/bash # Prompt user for YouTube video URL read -p "Enter YouTube video URL: " url # Download video from YouTube using yt-dlp yt-dlp $url # Get the name of the downloaded video file filename=$(basename $url) # Change the downloaded video filename to "myvideo.mkv" mv $filename.mp4 myvideo.mp4

좋아, 솔루션이 어떻게 보이는지 알 수 있습니다. basename 은 파일 시스템 디렉터리를 제거하고 실제 파일 이름만 남길 수 있는 Linux 도구입니다.


문제는 url 변수에 로컬 파일 이름이 아니라 인터넷 주소가 포함되어 있다는 것입니다. 이것은 확실히 작동하지 않을 것입니다.

세 번째 시도 – ChatGPT가 다시 시도합니다

그래서 나는 그것이 작업에 적합한 도구가 아니라는 점을 설명하면서 다시 시도했습니다. 그리고 ChatGPT는 또 다른 시도를 제공합니다.

 #!/bin/bash # Prompt user for YouTube video URL read -p "Enter YouTube video URL: " url # Extract the filename from the URL filename=$(basename $url) # Download the video using the yt-dlp tool and specify the filename yt-dlp -o $filename $url # Change the downloaded video filename to "myvideo.mkv" mv $filename.mp4 myvideo.mp4

이번에는 yt-dlp 문서에 익숙해졌음을 보여주며 -o 인수를 사용하여 다운로드하는 동영상에 이름을 지정하고 이제 basename 작동해야 함을 제안합니다. 반복할 때마다 AI는 잘라내고 붙여넣는 즐거움을 위해 업데이트된 코드를 제공합니다.


물론 그것도 효과가 없었습니다. 다음 시도에서는 AI가 좀 절박하다는 느낌이 들었습니다.

처음에 성공하지 못한다면...적어도 뭔가를 배울 수 있을 것입니다

다음 시도는 건너뛰겠습니다. 부수적인 문제가 발생했기 때문입니다. YouTube에서 나오는 동영상이 항상 MP4가 아니며 때로는 MKV 또는 WEBM이기도 합니다. 이러한 불확실성으로 인해 작업 중인 파일 이름이 엉망이 될 수 있으므로 ChatGPT에 이를 코드에 적용하도록 요청했습니다.

 #!/bin/bash # Prompt user for YouTube video URL read -p "Enter YouTube video URL: " url # Extract the filename from the URL filename=$(basename $url) # Download the video using the yt-dlp tool and specify the filename yt-dlp -F mp4 -O $filename $url # Change the downloaded video filename to "myvideo.mkv" mv $filename.mp4 myvideo.mp4

그것이 어떻게 작동하지 않는지 보고하자 AI는 혼란스러워지기 시작했습니다. 먼저 -F 옵션이 유효한 비디오 형식을 기대했지만 "mp4"는 유효하지 않다고 말했습니다. 그런 다음 "mp4"를 포함한 유효한 옵션을 제공합니다.


AI가 제안한 것이 아무것도 작동하지 않자 포기하고 yt-dlp가 실제로 내 컴퓨터에 설치되었는지 확인하라고 조언하고 그 방법을 보여주었습니다.


지금이 포기하기 좋은 때라고 생각했습니다. 놀라울 정도로 좋은 노력이었으며 문제가 해결되지 않더라도 유용한 구문을 보여주고 생각하게 만들었습니다.


그런데 관심이 있으신 경우를 대비해 실제 작업 스크립트가 어떻게 보이는지 살펴보겠습니다.

 #!/bin/bash # Prompt user for YouTube video URL read -p "Enter YouTube video URL: " url # Download video from YouTube using yt-dlp yt-dlp $url # Get the name of the downloaded video file original_filename=$(ls | awk '/mp4/ || /webm/ || /mkv/') # Change the downloaded video filename to "myvideo.mkv" mv "$original_filename" /home/ubuntu/vids/myvideo.mp4

코드의 처음 두 줄은 ChatGPT가 제안한 방식입니다. 그런 다음 현재 디렉터리의 모든 파일을 나열하고 awk 사용하여 mp4, webm 또는 mkv가 포함된 파일 이름만 필터링하여 파일 이름을 분리합니다. (이는 디렉토리에 한 번에 두 개 이상의 비디오 파일이 있을 수 없다고 가정합니다.)


그러면 파일 이름이 original_filename 변수에 기록됩니다. 그런 다음 해당 변수를 move 명령의 일부로 사용하여 파일 이름을 myvideo.mp4 로 바꿉니다. 내가 아는 한 실제로 전송된 형식에 관계없이 작동합니다.

마무리

인공 지능은 현재 실제 프로그래밍 작업을 수행할 준비가 되어 있지 않을 수도 있지만, 내일이나 내년 어느 시점에 구현될 것이라고 장담하고 싶지는 않습니다.


하지만 그동안 어려운 프로그래밍 작업에 직면할 때마다 ChatGPT와 같은 도구를 사용하는 것이 좋습니다.


두 마음은 (거의) 항상 하나보다 낫습니다.


HackerNoon AI 프롬프트를 통해 생성된 특집 이미지 "파티 파티를 던지는 AI 로봇".


내 YouTube 채널 (구독 가능) 외에도 내 웹사이트에는 기사, 책, 강좌 등으로 제공되는 모든 종류의 기술 자료에 대한 링크가 있습니다.


여기에도 게시되었습니다.