Linux服务器管理神器-IPython
系统管理员的首选,一个很智能的交互式解释器。
一、特性:
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的更多相关文章
- Linux 服务器管理建议
Linux 服务器管理建议 一.学习Linux 的注意事项 Linux 严格区分大小写 Linux 一切皆文件 Linux 不靠扩展名区分文件类型 靠权限位标识来确定的 特殊文件要求写扩展名(给管理员 ...
- 阿里云宝塔Linux服务器管理面版初始化地址不能登入(原创)
宝塔面板是一款可以让Linux服务器实现图形可视化操作的集成系统. 安装好以后,页面初始化登录地址http://{您的服务器IP}:888不能登入. 不能登入通常是我们没有权限访问,需要更改安全组赋予 ...
- linux服务器管理常用命令
1.ps命令 (Processes Status) ps这个命令是查看系统进程,ps 是显示瞬间行程的状态,并不动态连续. ==============ps 的参数说明================ ...
- Linux服务器管理: 日志管理(一)
1.日志管理介绍: a.日志服务:在CentOS6.x中日志服务以及由rsyslogd取代了原有的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日子文件的格 ...
- Linux服务器管理: RPM包
服务安装类型主要分两种: RPM安装和源码包编译安装: 1.RPM包查看: rpm -qa | grep 包名 用chkconfig --list 查看服务自启动命令 只对RPM包安装的服务生效 ...
- (11)Linux服务器管理维护注意事项
1.远程服务器关机及重启时的注意事项 为什么远程服务器不能关机?原因很简单,远程服务器没有放置在本地,关机后谁帮你按开机电源键启动服务器?虽然计算机技术曰新月异,但是像插入电源和开机这样的工作还是需要 ...
- Linux服务器管理: 系统的进程管理ps命令
源码包:2015-06-30 12:11:25 首先我们可以通过网络去下载相应的源码包:我们以apache为例: [root@localhostA1 opt]# wget http://archive ...
- Linux服务器管理: 系统管理:系统资源查看
vmstat 命令: 查看或监控系统资源 [root@localhostA1 ~]# vmstat procs -----------memory---------- ---swap-- -----i ...
- Linux服务器管理: 系统的进程管理终止进程kill命令
在Linux中如何用kill终止进程: kill -l [root@localhost~]#kill -l 可以看到kill中有很多的 常用: -1 是重启一个进程 -9 是强制杀死进程 ...
随机推荐
- VS code 推荐插件
vs code 中eslint语法检测,保存即可格式化 具体查看:(https://www.jianshu.com/p/23a5d6194a4b) { // vscode默认启用了根据文件类型自动设置 ...
- vstring.hpp
//vov #ifndef VSTRING_HPP #define VSTRING_HPP #include <string> #include <sstream> #incl ...
- JAVA-类方法与实例方法
1.实例方法:一个方法如果不加static关键字,那么这个方法是实例方法.意思是他属于类的某个实例,通过这个实例调用它,对类的其他实例不产生影响. 2.类方法:也称静态方法.在方法前加static关键 ...
- 【转】LVDS基础、原理、图文讲解
转自:https://blog.csdn.net/wangdapao12138/article/details/79935821 LVDS是一种低摆幅的差分信号技术,它使得信号能在差分PCB 线对或平 ...
- SSM框架完成Ajax简单用户登录验证
一.前端JSP <%@ page contentType="text/html;charset=UTF-8" language="java" %> ...
- UML作业第二次:类在类图中的表示
一.学习小结: 类之间的关系通过下面的符号定义 : 使用.. 来代替 -- 可以得到点 线. @startuml Class01 <|-- Class02 Class03 *-- Class04 ...
- spring boot2.0(一 ) 基础环境搭建
1.基础配置 开发环境:window jdk版本:1.8(spring boot2.0最低要求1.8) 开发工具:eclipse 构建方式:maven3 2.POM配置文件 <project x ...
- leetcode 78,236,300
---恢复内容开始--- 2018.3.16目前已刷27题,打卡记录有意思的题目. leetcode78 subsets 思路1:DFS遍历子集,每遇到一个数就把该数加上原来的子集变成新的子集. cl ...
- 云计算概述和KVM虚拟化
前言: 近些年一直听着 虚拟化.云计算.公有云.私有云.混合云这些个概念,一直想着....这些概念要用什么技术实现? 一.云计算的概念 1.传统IDC机房面都会临什么问题? 任何新事物都是由需求催生的 ...
- [LeetCode] 80. Remove Duplicates from Sorted Array II ☆☆☆(从有序数组中删除重复项之二)
https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/discuss/27976/3-6-easy-lines-C% ...