系统管理员的首选,一个很智能的交互式解释器。

一、特性:

1)magic函数:内置了很多函数用来实现各种特性。

2)Tab补全:可以有效地补齐Python语言的模块、方法和类等。

3)源码编辑:可以直接修改源码并运行。

4)宏:可以将一段代码定义为一个宏,便于以后运行

5)历史记录:提供了强大的历史记录功能。

6)对象自省:有强大的对象自省功能。

7)执行系统命令:可以直接在交互式Shell中执行系统命令。

二、安装

1)pip 或 pip3 install ipython

2)源码安装 python setup.py install

三、启动

直接输入ipython启动

四、和ipython的简单交互

In 表示输入 数字表示 计数

Out 表示输出  数字表示计数

如果直接输入一个被赋值的变量 则直接会打印这个变量

也可以使用print()函数来打印

五、IPython中的magic函数

当输入是以%开始的时候,IPython会将其视为一个magic函数。

1.目录管理

cd、pwd、bookmark和dhist等

1)使用cd切换目录

例:

cd 目标目录

cd - 切换到上次的目录中

cd -q 忽略输出

2)使用bookmark管理书签目录

一旦书签建立,除非显示删除,否则在IPython中总是可用的。换句话说,即使是IPython退出了,书签在下次启动的时候也是可用的。

有两种方式来加入目录书签。一种是在当前目录上直接使用bookmark命令,第二种是使用bookmark命令直接定义一个目录书签。

例:

bookmark 书签名 将当前目录加入书签

bookmark 书签名 目录名 将指定目录加入书签

bookmark -l 查看已经定义的书签

使用cd -b  书签名 可以切换到该书签所指向目录 可以使用Tab键补齐书签

bookmark -d 书签名   删除指定书签

bookmark -r 删除所有已经定义的书签

3)使用dhist查看目录历史

使用书签目录的前提是需要定义书签,但是有的时候可能只是需要在已经输入的目录中进行操作。该命令可以输出曾经在IPython绘画中切换过的目录

后面跟一个n n表示输出信息的最上面的N个目录

后面跟n和m 表示输出m和n之间的目录,其中不包括m数字所代表的目录

cd -n 可以进入切换目录历史记录中出现的目录   Tab键可以进行提示

cd --搜索的关键字 进行搜索

2.对象信息的收集
1)查看环境变量信息

env命令 输出当前的系统环境配置

2)使用page处理输出信息

当执行外部命令的时候,有可能输出过长,这个时候可以使用page来对输出信息进行分页处理,从而获得一个更好的显示。当不带有参数的时候,将会对上次的输出信息进行处理。这个处理过程有点像外部系统命令more的功能。

3)使用pfile命令

当含有Python源文件的时候,可以使用pfile来查看其相关的信息。

例:

import os

pfile os

4)使用pdef、pdoc和pinfo查看对象信息

对于一个Python对象,可以使用上述命令查看其函数定义等相关信息。

5)使用psearch查找对象信息

使用psearch命令可以搜索当前名字空间中已有的Python对象

psearch 对象

psearch a*  支持这种

psearch -e 对象 将内置对象过滤掉

pycat  可以获取Python对象的代码  (非常有用)

3.其他一些magic函数总结
 
alias 定义一个别名
bg 将bg后面的函数放在后台执行
edit 编辑一个文件并执行
history 显示历史记录
lsmagic 显示所有的magic函数
macro 定义一个宏
magic 显示当前的magic系统帮助
psource 输出对象的代码
pwd 显示当前目录
r 重复执行上次的命令
run 执行文件
save 将代码保存为文件
time 计算一段代码的执行时间
timeit 计算一段代码的运行时间,系统将自动选择循环次数
who 打印所有的Python变量
who_ls 返回所有Python变量的列表
whos 和who类似,但是会输出更详细的信息

六、IPython适合于系统管理的特点

1.Tab补齐

强大的联想功能

IPython会先检查输入的命令 是否是IPython的magic函数,如果不是再交给Python解释器去处理

IPython有两种补齐方式,分别是常规补齐和菜单补齐

两者不同在于,当有超过一个可选项的时候,常规补全是首先尝试最大化匹配展开,如果还有多余一个选择,则列出所有的匹配结果。而菜单补全则不会显示可能的匹配列表,而是在可能的匹配中进行轮换。默认采用常规补全方式。

2.历史记录功能

为了能更好地利用以前的输入,IPython会记录下每次输入。

history 输出原始调用的记录

history -r 输出原始输入的命令

history -n 输出前面加上序号

history -g 搜索内容

使用 _ 符号访问输出结果

3.执行外部系统命令和运行文件

使用!执行外部系统命令

将系统命令输出复制给Python变量

运行外部文件

%run 或 !执行

4.对象查看和自省

?和??的使用 后者 不会截断还会高亮显示

不光可以查看Python对象还可以查看magic函数

使用who等查看对象信息

5.直接编辑代码

edit命令的使用

对上一次代码进行更改 edit -p

edit -x 修改而不执行代码

6.设置别名和宏

alias 别名 具体指令

<%1>  表示输入的参数

%s 表示指定参数

设置宏:类似于代码的缩写

Linux服务器管理神器-IPython的更多相关文章

  1. Linux 服务器管理建议

    Linux 服务器管理建议 一.学习Linux 的注意事项 Linux 严格区分大小写 Linux 一切皆文件 Linux 不靠扩展名区分文件类型 靠权限位标识来确定的 特殊文件要求写扩展名(给管理员 ...

  2. 阿里云宝塔Linux服务器管理面版初始化地址不能登入(原创)

    宝塔面板是一款可以让Linux服务器实现图形可视化操作的集成系统. 安装好以后,页面初始化登录地址http://{您的服务器IP}:888不能登入. 不能登入通常是我们没有权限访问,需要更改安全组赋予 ...

  3. linux服务器管理常用命令

    1.ps命令 (Processes Status) ps这个命令是查看系统进程,ps 是显示瞬间行程的状态,并不动态连续. ==============ps 的参数说明================ ...

  4. Linux服务器管理: 日志管理(一)

    1.日志管理介绍: a.日志服务:在CentOS6.x中日志服务以及由rsyslogd取代了原有的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日子文件的格 ...

  5. Linux服务器管理: RPM包

    服务安装类型主要分两种: RPM安装和源码包编译安装: 1.RPM包查看: rpm -qa | grep 包名 用chkconfig --list 查看服务自启动命令    只对RPM包安装的服务生效 ...

  6. (11)Linux服务器管理维护注意事项

    1.远程服务器关机及重启时的注意事项 为什么远程服务器不能关机?原因很简单,远程服务器没有放置在本地,关机后谁帮你按开机电源键启动服务器?虽然计算机技术曰新月异,但是像插入电源和开机这样的工作还是需要 ...

  7. Linux服务器管理: 系统的进程管理ps命令

    源码包:2015-06-30 12:11:25 首先我们可以通过网络去下载相应的源码包:我们以apache为例: [root@localhostA1 opt]# wget http://archive ...

  8. Linux服务器管理: 系统管理:系统资源查看

    vmstat 命令: 查看或监控系统资源 [root@localhostA1 ~]# vmstat procs -----------memory---------- ---swap-- -----i ...

  9. Linux服务器管理: 系统的进程管理终止进程kill命令

    在Linux中如何用kill终止进程: kill -l [root@localhost~]#kill -l   可以看到kill中有很多的 常用:  -1 是重启一个进程    -9 是强制杀死进程 ...

随机推荐

  1. node中redis重连

    项目node中用到redis ,做了的moudle,但是有个问题,两台redis,一台挂了,redis能自动切换,我的项目却不会自动重连: 查了资料,redis本身是实现了重连机制啊,为什么不自动重连 ...

  2. python 学习笔记 2 ----> dive into python 3

    Python Shell idle的使用 >>> >>>help() ----> help> 可以在help这个工具中查找Python内置函数的文档等等 ...

  3. lua调用不同lua文件中的函数

    a.lua和b.lua在同一个目录下 a.lua调用b.lua中的test方法,注意b中test的写法 _M 和 a中调用方法: b.lua local _M = {}function _M.test ...

  4. java小白也能懂的面向对象

    类是对一组具有共同特征和行为的对象的抽象描述. 理解 [1]类是专门用于描述现实生活中的事物的. [2]类描述的事物都具有共同的特征和行为. [3]类就是我们通常所说的 “类型” ,描述的是一个群体性 ...

  5. 微信小程序onlaunch异步,首页onLoad先执行?

    按照原理是小程序初始化时会先触发APP里的onLaunch事件,之后再执行页面Page里的onLoad事件.但实际请求时在onLaunch事件中请求获取数据,等待返回值的时候Page里的onLoad事 ...

  6. 笨办法学python 文本复制

    本来面目 from sys import argv from os.path import exists script, from_file, to_file = argv print(f" ...

  7. Tomcat并发优化和缓存优化

    Tomcat并发优化 1.调整连接器connector的并发处理能力 在Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中 1.参数说明 max ...

  8. h5属性直接控制上传文件类型

    和公司前端交互的时候发现我在选择上传文件的时候只能选择图片,其他类型,text,doc等等等等全部无法选择 仔细查看了下代码,发现归功于H5新增(??没查到资料,不确定是不是H5的)的input属性 ...

  9. EO bugs

    定价两次-同一事件在确认前再次发生 pragma solidity ^; contract TransactionOrdering { uint256 price; address owner; ev ...

  10. 面向对象DAO模式

    DAO模式编写数据访问层代码步骤? 1.  接口 增.删.改.查的方法 方法的返回类型为泛型集合 Int rows=select语句的条数 If(rows>0) 方法的返回类型为泛型集合 If( ...