
주요 Magic Commands 정리
이 문서는 Jupyter Notebook에서 자주 사용되는 라인 매직(Line Magics)과 셀 매직(Cell Magics)을 소개함.
shell-like magic commands는 다음을 참고
2023.09.19 - [Python] - [Python] IPython shell 에서 shell cmds 사용하기.
[Python] IPython shell 에서 shell cmds 사용하기.
IPython 에서 지원하는 shell commandsPython interactive shell에서 OS등이 지원하는 shell commands를 사용하지 못하는 것과 달리, IPython shell에서는 많이 사용되는 shell commands는 다음과 같이 지원함.In [17]: pwdOut[1
ds31x.tistory.com
Magic Commands란?
%로 시작하는 명령어: Line Magic- Line Magic은 한 줄짜리 명령어로, 셀의 한 줄에만 적용됩
%%로 시작하는 명령어: Cell Magic- Cell Magic은 전체 셀에 적용되는 명령어로, 셀 안의 모든 줄에 영향을 미침.
Python 코드가 아니라 IPython 인터프리터가 해석하는 특수한 명령어임.
전체 list는 %magic 으로 확인 가능함.
디렉토리 관련
| 명령어 | 주요 옵션 | 설명 |
%pwd |
(없음) | 현재 작업 디렉토리 경로를 출력 |
%cd |
-b <북마크명> |
북마크로 지정된 디렉토리로 이동 예: %cd -b myproj |
-q |
조용히 이동 (출력 없음) | |
%ls |
-l |
상세 정보 출력 (ls -l 과 유사) |
-a |
숨김 파일 포함 (.git, .env 등) |
|
-F |
파일/디렉토리 구분 기호 추가 (/, *, @ 등) |
|
%env |
VAR=value |
환경변수 설정 (예: %env MY_KEY=123) |
| (없음) | 현재 환경변수 목록 출력 |
/: directory*: executable file@: symbolic link
exampels
%pwd
%cd /path/to/project
%ls -alF
%env PATH
%env MY_SECRET=abc123
변수 관리 및 정보 조회
| 명령어 | 주요 옵션 | 설명 |
%who |
str, int 등 타입 지정 |
지정된 타입의 변수만 출력 예: %who int |
%whos |
str, int 등 타입 지정 |
지정된 타입의 변수만 자세히 출력 예: %whos str |
%who_ls |
(없음) | 변수명 리스트를 Python 리스트 형태로 반환 |
%reset |
-f |
사용자 확인 없이 즉시 초기화 (force) |
-a |
모든 이름 공간(예: magic function 포함) 초기화 | |
-s |
__ 로 시작하는 내부 변수 제외하고 초기화 |
히스토리 관련
| 명령어 | 주요 옵션 | 설명 |
%history |
-n <숫자> |
최근 입력한 명령어 n개 출력 예: %history -n 5예: %history -n 1-5 로 범위지정 가능. |
-t |
타임스탬프 포함하여 출력 | |
-g |
전체 세션 히스토리에서 검색 | |
%hist |
(※ %history와 동일) |
%hist는 %history의 축약형 |
%dhist |
(없음) | 디렉토리 이동 이력 출력 이전 %cd 경로 추적 가능 |
| %rerun | <숫자> | 히스토리에서 확인가능한 실행 순서 번호에 해당하는 숫자를 입력하여 다시 실행시킴. |
| -l <숫자> | 최근 명령들 중 숫자로 입력한 갯수를 다시 실행함. -l 3인 경우 최근 수행한 3개의 명령어를 실행순서대로 다시 실행. | |
| -g <패턴> | 해당 패턴에 해당하는 명령어를 검색하여 실행 | |
| %save | <file명.ipy> 3-5 | 명령을 파일로 저장: history에서 3에서 5까지의 명령을 지정한 파일로 저장함. py 확장자도 가능 (magic command가 있을 경우엔 ipy 확장자로 저장하고 이후 IPython으로 실행하길 권함). |
| -r | raw를 의미. 원문 그대로 저장. %time 등의 magic command는 get_ipython().run_line_magic() 등의 실제 파이썬 구현물 호출로 대체되는데, 이를 대체하지 않도록 해주는 옵션임. |
%dhist는 디렉토리 경로 변경 기록을 출력하며%cd -<숫자>로 해당 위치(<숫자>)로 돌아갈 수 있음.
참고로, IPython에선 In 과 Out 에 이제까지의 입력 commands 와 실행결과가 list와 dict로 저장됨 (_3 은 Out[3]의 shorthand임).
또한 python REPL shell의 이전 결과인 _ 를 확장하여 __, ___ 를 지원하여 최근 결과와 최근 하나전 결과, 최근 2개전 결과를 저장함.
examples
%history
%hist -n 5
%hist -t
%cd /Users/kim/project
%cd /tmp
%cd /Users/kim/Downloads
%dhist
%cd -1
%rerun 10 11
%save -r test.ipy 43-36
In[10]
Out[10]
코드 실행 시간 및 성능 측정
| 명령어 | 주요 옵션 | 설명 |
%time |
(없음) | 한 줄 코드의 실행 시간을 단일 측정으로 출력 |
%timeit |
-n <횟수> |
한 loop당 실행 횟수 지정 (예: -n 1000) |
-r <횟수> |
전체 loop 반복 횟수 지정 (예: -r 5) |
|
-t |
time.time()으로 측정 (wall time, 실제 경과시간 기준으로 대기시간 포함) |
|
-q |
출력 최소화 (quiet mode) | |
-o |
결과 객체 반환 (속도 비교 등에 활용 가능) | |
-v |
verbose (자세한 출력) |
loop vs. repeats
%timeit -n 1000 -r 5 sum(range(100))
sum(range(100))을 1,000번 실행한 loop를 5번 반복- 총 실행 횟수는 1,000 × 5 = 5000
- 5개의 평균값(1,000번씩 수행한 결과 평균.)들 중 최소값을 반환함.
examples
%time sum(range(10000))
# 단 한 번 실행 시간 측정
%timeit sum(range(10000))
# 평균 실행 시간 자동 측정
%timeit -n 1000 -r 5 sum(range(10000))
# 1000번씩 5루프 실행 후 5개의 평균값 중 최소값을 반환
외부 파일 작업
| 명령어 | 주요 옵션 | 설명 |
| %cat 파일명 | (없음) | 지정한 파일의 내용을 출력 |
| %man 명령어 | (없음) | 유닉스 기반 셸 명령어의 매뉴얼 페이지 표시 |
| %run 스크립트.py | -i : 현재 namespace에서 실행 -n : 빈 namespace에서 실행 |
외부 Python 스크립트를 실행 |
| %%writefile 파일명 | -a : 파일에 내용을 append | 셀 전체 내용을 지정한 파일로 저장 |
examples
%cat my_script.py
%man ls
%run -i my_script.py
%%writefile hello.py
print("Hello, world!")
2023.09.30 - [Linux] - [Linux] 파일 내용확인하기: cat, bat, less, more, head, tail
[Linux] 파일 내용확인하기: cat, bat, less, more, head, tail
cat, bat, head, tail대표적인 text processing utilities로 file viewing commands라고도 불림.less, morepager라고 불리는 utilities로 긴 출력을 화면에 페이지 단위로 나누어 보여주는 역할을 수행함.cat, batcat (concatenate
ds31x.tistory.com
도움말 및 객체 정보 조회
| 명령어 / 기호 | 주요 옵션 | 설명 |
?, ?? |
(없음) | ?: 객체의 docstring 확인??: docstring + 소스 코드 출력 (가능한 경우) |
%pdoc |
객체명 | 객체의 문서 문자열(docstring)만 출력 |
%pdef |
함수명 | 함수의 시그니처(signature) 출력 |
%psource |
함수/클래스명 | 함수 또는 클래스의 전체 소스 코드 출력 (가능한 경우) |
examples
sum? # sum 함수의 문서 확인
sum?? # sum 함수의 문서 + 소스 코드 확인
%pdoc sum # sum의 문서 문자열만 출력
%pdef sum # sum의 정의 형식 출력
%psource sum # sum의 소스코드 보기 (가능한 경우)
출력 제어
| 명령어 | 주요 옵션 | 설명 |
%%capture |
--no-stderr : stderr는 무시--no-stdout : stdout은 무시 |
셀의 표준 출력(stdout) 및 오류(stderr)를 변수에 캡처 |
examples
%%capture captured_output
print("This output is captured")
print(captured_output.stdout) # 캡처된 출력 확인
기타 유용한 명령
| 명령어 | 주요 옵션 | 설명 |
%load |
(없음) | 외부 파일의 내용을 현재 셀에 불러오기 |
%store |
변수명 : 변수 저장-r : 변수 복원 |
변수 값을 저장하거나 다음 세션에서 불러오기 |
%alias |
별칭=명령어 |
자주 사용하는 셸 명령어에 별칭을 설정 |
%lsmagic |
magic command의 리스트를 보여줌. | |
%magic |
%lsmagic 보다 자세한 설명을 보여줌. |
examples
%load my_script.py # 해당 파일의 내용을 현재 셀로 가져옴
%store my_data # my_data 변수를 저장
%store -r my_data # 저장된 my_data 복원
%alias gs git status # git status를 gs로 짧게 실행
gs # 분리된 아래의 cell에서 실행할 것.
같이 보면 좋은 자료들
2025.07.21 - [Python] - Jupyter NoteBook-vscode 확장 중심
Jupyter NoteBook-vscode 확장 중심
https://youtu.be/suAkMeWJ1yE?si=YR3b_4aLnYiWCHGd0. Jupyter NoteBook이란?Jupyter Notebook은 코드, 문서, 시각화를 하나의 문서에 통합하여 대화형으로 작업할 수 있는 웹 기반 개발 환경으로, REPL Shell을 개선한 IPython
ds31x.tistory.com
2024.09.04 - [개발환경] - [Py] IPython, Jupyter Notebook, and Colab
[Py] IPython, Jupyter Notebook, and Colab
IPython: IPython은 파이썬의 대화형 인터프리터로, 파이썬 표준 인터프리터보다 향상된 기능을 제공함. 다음과 같은 기능을 제공:Code auto-completionAccess to shell commands: 시스템의 명령어를 보다 편하게
ds31x.tistory.com
'Python' 카테고리의 다른 글
| list의 sort() 메서드 와 sorted() 내장 함수 (3) | 2025.07.30 |
|---|---|
| Compound Statement란? (3) | 2025.07.27 |
| Jupyter NoteBook-vscode 확장 중심 (4) | 2025.07.21 |
| ipynb 파일 (IPython NoteBook) (5) | 2025.07.17 |
| [Py] double asterisk 사용법-packing and unpacking (1) | 2025.07.16 |