书目:Python(Unix和Linux系统管理指南)
学习日期:20130807
知识点总结:
-
安装IPython:
-
源码安装:
-
12
tar zxvf ipython
-
0.13
.
2.tar
.gz
python setup.py install
-
-
通过系统的软件包管理器安装:
-
1234
# Debian和Ubuntu系统
apt
-
get install ipython
-
notebook
# Fedora,CentOS和RedHat系统等
yum install python
-
ipython
-
notebook
-
-
通过Python包安装:
-
12
# Python包中包含了IPython,需安装setuptools工具
easy_install ipython
-
-
IPython不必安装也可使用:
-
1
python ipython.py
-
-
-
与IPython进行交互:
-
print语句使用非正式的字符串表达式,而简单变量名使用了正式的字符串表达
-
标准Python的提示符由3个大于号(>>>)组成,而IPython的提示符由单词“In [编号]:”组成
-
IPython的输出操作符看上去区分两种输出:写输出和求值输出
-
IPython中的2个内置变量:In(列表list对象)和Out(字典dict对象)
-
1234
In [
13
]:
type
(In)
Out[
13
]:
list
In [
14
]:
type
(Out)
Out[
14
]:
dict
-
-
In保存输入,Out保存非空语句和表达式求值运算的输出:
-
每行必有输入,这对于跟踪类列表结构(list)的输入非常有效;
-
并非每行输出都有可求值的非空结果,故采用字典(dict)对象对输出进行跟踪,空值结果不写入Out字典中
-
-
-
Tab自动完成:
-
IPython中默认开启,标准Python需编译时增加readline支持特性,并作如下处理
-
12
>>>
import
rlcompleter,readline
>>> readline.parse_and_bind(
'tab'
:complete)
-
-
适用场景:属性查找和自动完成,模块导入
-
IPython提供了2类自动完成功能:完成(complete)与菜单完成(menu-complete),默认是“完成”
-
-
配置IPython:
-
默认配置文件:~/.ipython/ipy_user_conf.py
-
交互式:ipyton config -h
-
-
从功能强大的函数获得帮助:
-
IPython会将任何第一个字母为%的行,视为对魔力函数的特殊调用,这些魔力函数都是IPython内置的
-
魔力函数都以%为前缀,并且参数中不包含括号或者引号
-
lsmagic函数:列出所有的魔力函数
-
%<TAB>:列出所有的魔力函数
-
magic函数:打开分页的帮助文档,记录了所有IPython内建函数的用法
-
%page ?:获得具体函数(如page)的帮助信息
-
%quickref函数:打开分页的参考文档信息,是对magic函数的迷你总结
-
-
魔力函数:
-
在IPython中执行UNIX命令:
-
alias函数:通过alias,可以创建一个IPython的快速方式,用以执行系统命令
123456789101112# alias用法:
In [
16
]: alias nss netstat
-
antupl
# 别名alias的2种输入方式
# do-nothing方式:传递给命令的所有附加参数都能够组织在一起
In [
23
]: nss | grep
80
# do-everything方式:采用隐含参数传递的方式,需要显示地操作所有后续参数
In [
24
]: alias achoo echo first:
"|%s|"
,second:
"|%s|"
In [
25
]: achoo foo bar
first:|foo|,second:|bar|
# 保存使用的别名,使得下一次打开IPython时,能够继续使用此别名
In [
26
]: store achoo
Alias stored: achoo (echo first:
"|%s|"
,second:
"|%s|"
)
-
命令前加感叹 (!):另一种可以简易执行shell命令的方法
12345678910# 通过美元符($)前缀,可以将变量传递到shell命令中
In [
27
]: user
=
'root'
In [
28
]: process
=
'bash'
In [
29
]: !ps aux |grep $user |grep $process
# 保存使用感叹号执行的命令结果(变量l包括了一个类列表list-like对象):
In [
30
]: l
=
!ps aux |grep $user |grep $process
In [
31
]: l
Out[
31
]:
[
'root 7238 0.0 0.1 105472 936 pts/0 S+ 11:54 0:00 grep bash'
]
# !!可以替换!,除了使用!!无法保存结果到变量之外,两者完全一致
-
-
sf
sflj