ipython是一个升级版的交互式python命令行工具.

ipython安装

pip install ipython

等到命令执行完成后显示successfully表示完装成功

在命令提示符下输入ipython就可以启动ipython了

其与原版python命令行工具不同在于ipython的提示符变成了in和out.

in为输入命令的地方,out为命令执行完成后输出的地方

ipython的特点

tab键自动补全一些常用的方法

支持一些系统命令

    In [2]: pwd             # 显示当前所在目录
Out[2]: '/root' In [3]: cd .. # 返回当前目录的上一级目录
/

执行系统命令(!)

    In [6]: !ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.81.10 netmask 255.255.255.0 broadcast 192.168.81.255
inet6 fe80::a545:8b99:d507:4d0f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:95:d5:31 txqueuelen 1000 (Ethernet)
RX packets 12851 bytes 9887304 (9.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7172 bytes 1546188 (1.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 140 bytes 12132 (11.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 140 bytes 12132 (11.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 In [7]: !ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:95:d5:31 brd ff:ff:ff:ff:ff:ff
inet 192.168.81.10/24 brd 192.168.81.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::a545:8b99:d507:4d0f/64 scope link
valid_lft forever preferred_lft forever In [8]: !cat /etc/sysconfig/selinux # This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

?命令(内省,命令空间搜索)

    In [12]: l1?
Type: list
String form: [1, 2, 3, 4]
Length: 4
Docstring:
list() -> new empty list
list(iterable) -> new list initialized from iterable's items In [13]: def func():
...: print("hello world")
...: In [14]: func?
Signature: func()
Docstring: <no docstring>
File: /<ipython-input-13-4475a92670e6>
Type: function In [15]: func?? # 打印函数的源码
Signature: func()
Source:
def func():
print("hello world")
File: /<ipython-input-13-4475a92670e6>
Type: function In [17]: l1.a*?
l1.append In [18]: l1.p*?
l1.pop In [19]: l1.__*__?
l1.__add__
l1.__class__
l1.__contains__
l1.__delattr__
l1.__delitem__
l1.__dir__
l1.__doc__
l1.__eq__
l1.__format__
l1.__ge__
l1.__getattribute__
l1.__getitem__
l1.__gt__
l1.__hash__
l1.__iadd__
l1.__imul__
l1.__init__
l1.__init_subclass__
l1.__iter__
l1.__le__
l1.__len__
l1.__lt__
l1.__mul__
l1.__ne__
l1.__new__
l1.__reduce__
l1.__reduce_ex__
l1.__repr__
l1.__reversed__
l1.__rmul__
l1.__setattr__
l1.__setitem__
l1.__sizeof__
l1.__str__
l1.__subclasshook__

%run命令执行文件代码

    In [29]: !vi test.py

    In [30]: !cat test.py
def func1():
print("hello world") func1() In [31]: %run "test.py"
hello world

%paste和%cpaste命令执行剪帖板代码

    In [2]: %paste
def func1():
print("hello world") func1() ## -- End pasted text --
hello world

与编辑器和IDE交互

魔术命令:%timeit %pdb

    In [37]: %timeit a+b
47.1 ns ± 0.955 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) pdb是python debug的简写,一般用于排错

使用命令历史

使用上箭头或下箭头可以查看上一条命令或下一条命令的历史

输入与输出变量

    In [40]: !ls
1 boot etc lib media opt root sbin sys tmp var
bin dev home lib64 mnt proc run srv test.py usr In [41]: _ # 执行前面倒数第一条命令
Out[41]: 3 In [47]: !ls
1 boot etc lib media opt root sbin sys tmp var
bin dev home lib64 mnt proc run srv test.py usr In [48]: print("hello world")
hello world In [49]: !ls
1 boot etc lib media opt root sbin sys tmp var
bin dev home lib64 mnt proc run srv test.py usr In [50]: __
Out[50]: 3 In [54]: _i48 # 执行第48条命令
Out[54]: 'print("hello world")'

目录书签系统%bookmark

    In [55]: %bookmark local /usr/local			# 定义local书签

    In [56]: %bookmark selinux /etc/sysconfig/selinux	# 定义selinux书签

    In [57]: %bookmark -l		# 显示所有的书签
Current bookmarks:
local -> /usr/local
selinux -> /etc/sysconfig/selinux In [55]: %bookmark local /usr/local In [56]: %bookmark sysconfig /etc/sysconfig In [57]: %bookmark -l
Current bookmarks:
local -> /usr/local
sysconfig -> /etc/sysconfig In [58]: pwd
Out[58]: '/' In [59]: cd local
(bookmark:local) -> /usr/local
/usr/local In [60]: pwd
Out[60]: '/usr/local' In [61]: cd sysconfig
(bookmark:sysconfig) -> /etc/sysconfig
/etc/sysconfig In [62]: pwd
Out[62]: '/etc/sysconfig'

ipython notebook

安装jupyter

pip install jupyter

运行界面

ipython常用的魔术命令

%quickref                   显示ipython的快速参考
%magic 显示所有的魔术命令的详细文档
%debug 从最新的异常跟踪的底部进入交互式调试器
%hist 打印命令的输入(可选输出)历史
%pdb 在异常发生后自动进入调试器
%paste 执行剪贴板中的python代码
%cpaste 打开一个特殊提示符以便手工粘贴待执行的python代码
%reset 删除interactive命名空间中的全部变量/名称
%page OBJECT 通过分页器打印输出object
%run script.py 在ipython中执行一个python脚本文件
%prun statement 通过cprofile执行statement,并打印分析器的输出结果
%time statement 报告statement的执行时间
%timeit statement 多次执行statement以计算系统平均执行时间.对那么执行时间非常小的代码很有用
%who,%who_id,%whos 显示interactive命名空间中定义的变量,信息级别/冗余度可变
%xdel variable 删除variable,并尝试清除其在ipython中的对象上的一切引用

python调试器命令

h(help)                 显示命令列表
help command 显示command的文档
c(continue) 恢复程序的执行
q(quit) 退出调试器,不再执行任何代码
b(break) n 在当前文件的第n行设置一个断点
b path/to/file.py:n 在指定文件的第n行设置一个断点
s(step) 单步进入函数调用
n(next) 执行当前行,并前进到当前级别的下一行
u(up)/d(down) 在函数调用栈中向上或向下移动
a(args) 显示当前函数的参数
debug statement 在新的递归调试器中调用语句statement
l(list) statement 显示当前行,以及当前栈级别上的上下文参考代码
w(where) 打印当前位置的完整栈跟踪(包括上下文参考代码)

ipython快捷键

Ctrl+p或者向上键头            向后搜索命令历史中以当前输入的文本开头的命令
Ctrl+n或者向上键头 向前搜索命令历史中以当前输入的文本开头的命令
Ctrl+r 按行读取的反向历史搜索(部分匹配)
Ctrl+Shift+variable 从剪贴板粘贴文本
Ctrl+c 中止当前正在执行的代码
Ctrl+a 把光标移动到行首
Ctrl+e 把光标移动到行尾
Ctrl+k 删除从光标开始到行尾的文本
Ctrl+u 清除当前行的所有内容
Ctrl+f 将光标向前移动一个字符
Ctrl+b 将光标向后移动一个字符
Ctrl+l 清屏

ipython的用法详解的更多相关文章

  1. C#中string.format用法详解

    C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...

  2. @RequestMapping 用法详解之地址映射

    @RequestMapping 用法详解之地址映射 引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没 ...

  3. linux管道命令grep命令参数及用法详解---附使用案例|grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  4. mysql中event的用法详解

    一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存 ...

  5. CSS中伪类及伪元素用法详解

    CSS中伪类及伪元素用法详解   伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...

  6. c++中vector的用法详解

    c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...

  7. AngularJS select中ngOptions用法详解

    AngularJS select中ngOptions用法详解   一.用法 ngOption针对不同类型的数据源有不同的用法,主要体现在数组和对象上. 数组: label for value in a ...

  8. systemctl命令用法详解

    systemctl命令用法详解系统环境:Fedora 16binpath:/bin/systemctlpackage:systemd-units systemctl enable httpd.serv ...

  9. CSS3的@keyframes用法详解:

    CSS3的@keyframes用法详解:此属性与animation属性是密切相关的,关于animation属性可以参阅CSS3的animation属性用法详解一章节. 一.基本知识:keyframes ...

随机推荐

  1. [bzoj3191] [JLOI2013]卡牌游戏

    概率DP. 首先由题解可得>_<,胜出概率只与剩余人数.与庄家的相对位置有关. 所以设f[i][j]表示剩下i个人,从庄家开始第j个人的胜利概率... 根据卡牌一通乱搞即可... #inc ...

  2. [国嵌攻略][100][嵌入式Linux内核制作]

    Linux内核制作步骤 1.清除原有配置 make distclean 2.配置内核 选择一个已有的配置文件简化配置 make menuconfig ARCH=arm 3.编译内核 ARCH指明处理器 ...

  3. [国嵌攻略][066][ARP协议实现]

    以太网通讯 在计算机网络中,数据发送的过程就是把数据按照各层协议层层封装的过程.在这个过程中,最终要使用的协议通常是以太网协议(数据链路层协议). 以太网包格式 目的MAC地址:接收者的物理地址(6字 ...

  4. Android按下home键后重新打开app进入主activity的问题

    问题阐述: 当我们写一款App的时候,势必会有这种情况:用户已经进行了多级的操作,现返回栈中已存在多个activity,那么这个时候我们想回到最初的activity难道要一层层的返回吗,对用户来说 无 ...

  5. 根据PV统计出前三的热门板块,并统计出热门板块下的用户数--方式一

    根据PV统计出前三的热门板块,并统计出热门板块下的用户数--方式一 测试数据 java代码 package com.hzf.spark.study; import java.util.ArrayLis ...

  6. PHP结合Ueditor并修改图片上传路径

    投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2016-10-16 我要评论 使用ueditor编辑器,附件默认在ueditor/php/upload/, 但是大家的附件地址的默认路 ...

  7. html dl dt dd标签元素语法结构与使用

    dl dt dd认识及dl dt dd使用方法 标签用于定义列表类型标签. dl dt dd目录 dl dt dd介绍 结构语法 dl dt dd案例 dl dt dd总结 一.dl dt dd认识 ...

  8. phpcms v9——工作需要【套模板】

    phpcms v9 模板标签说明整理 作者:匿名 来源:ChinaZ源码报导 浏览:44061次 2011-6-17 15:52:09 字号:大 中 小 [摘要]本文介绍phpcms v9中模板标签使 ...

  9. Eclipse报错An internal error occurred during: "J2EE Component Mapping Update". java.lang.NullPointerException

    Eclipse每次打开.java文件时,报错信息如下: An internal error occurred during: "J2EE Component Mapping Update&q ...

  10. ABB中断设定

    简介: 中断是程序定义事件,通过中断编号识别.中断发生在中断条件为真时.中断不同于其他错误,前者与特定消息号位置无直接关系(不同步).中断会导致正常程序执行过程暂停,跳过控制,进入软中断程序. 即使机 ...