Jupyter Notebook에서! sudo 매직 명령을 실행하는 방법의 비망록 메모

Jupyter Notebook은 파이썬의 간편한 실행 환경으로 매우 편리하며 애용하고 있습니다. Python 의외의 언어를 추가할 수 있는 데에 노트북상에서 Linux 커멘드(매직 커멘드)도 실행 가능합니다.

실행 예



다음과 같이 ls 또는 cd 명령을 실행할 수 있습니다.

ls 명령


!ls

cd 명령


%cd

pip 명령



pip 명령도 마법 명령으로 실행할 수 있습니다. pandas를 설치하는 경우 다음 명령으로 실행할 수 있습니다. Jupyter Notebook을 사용하고 있을 때 추가로 필요한 라이브러리를 추가하는 경우 아래의 커멘드를 기재해 두면 Notebook의 공유시에도 안심입니다.
!pip install pandas

sudo가 필요한 명령도 실행



여기에서 본제입니다. 관리자 권한(sudo)으로 실행이 필요한 명령을 실행해 봅니다. 여기서 apt를 실행해 보겠습니다. 파이썬 라이브러리에는 때때로 별도의 OS 패키지 관리자에서 응용 프로그램을 설치하라는 메시지 1가 있습니다. Notebook상에서 실행할 수 있으면 인스톨 잊음을 막습니다.

1단계: 그대로 실행



그대로 시도!sudo apt update를 실행해 봅니다.
!sudo apt update

다음과 같은 결과가 되었습니다. 이 상태에서는 암호를 입력할 수 없습니다.



2단계: echo 명령을 사용하여 문자열 전달



echo 명령을 사용하여 문자열로 암호를 전달해보십시오. sudo 명령에 -S 옵션을 전달합니다. 이제 명령줄 인수로 암호를 전달할 수 있습니다. (실제로는 표준 입력에서 패스워드를 입력하는 방식)
!echo "passwd" | sudo -S apt udate



안전하게 움직였습니다. 그러나 노트북을 공유할 때 문자열을 다시 작성해야 하므로 번거로울 수 있습니다. 게다가 이대로에서는 패스워드가 둥글 알고 있어, 보안상 바람직하지 않습니다. 비밀번호가 새어 버리거나 해서는 비밀번호를 의미하지 않습니다. . .

비밀번호를 외부 파일로 전달



암호를 passwd.txt라는 파일에 나열하고 해당 파일의 내용을 읽고 전달하는 방법으로 변경합니다. 이렇게 하면 비밀번호가 잘못 누설될 우려도 없습니다. 파일을 읽으려면 xargs 명령을 사용하십시오. 커맨드 라인 인수를 만드는 커맨드입니다. 여기서 -a 옵션(--arg-file=)을 전달하여 파일을 지정합니다.
!xargs -a passwd.txt | sudo apt update



무사히 실행할 수 있었습니다. 비밀번호가 새는 걱정이 없어진 뒤에 Notebook을 공유할 때 비밀번호 부분을 다시 쓸 필요가 없어져 번거로운 작업이 없어졌습니다2. 이것으로 안심입니다.

Reference


  • 역방향 UNIX 명령 / sudo 명령의 암호를 자동으로 입력하는 방법
  • 【 xargs 】 커맨드―― 커맨드 라인을 작성해 실행한다
  • Jupyter Notebook에서 매직 명령 목록 확인 %lsmagic



  • Mecab이나 GraphViz는 Python 버전과는 별도로 본체의 설치도 필요합니다. 

    passwd.txt에 해당하는 파일을 준비 할 필요는 있습니다. . . 

    좋은 웹페이지 즐겨찾기