在Python中调用linux命令目的:用Python做出全自动化的pipline,用于rrbs
最近有个需求就是页面上执行shell命令,第一想到的就是os.system ,
os.system('cat /proc/cpuinfo')
但是发现页面上打印的命令执行结果 0或者1,当然不满足需求了 。
尝试第二种方案 os.popen()
output = os.popen('cat /proc/cpuinfo')printoutput.read()
通过 os.popen() 返回的是 file read 的对象 , 对其进行读取 read() 的操作可以看到执行的输出 。但是无法读取程序执行的返回值)
尝试第三种方案 commands.getstatusoutput() 一个方法就可以获得到返回值和输出,非常好用 。
(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')printstatus, output
Python Document 中给的一个例子,
import commands commands.getstatusoutput('ls /bin/ls')
(0, '/bin/ls') commands.getstatusoutput('cat /bin/junk')
(256,'cat: /bin/junk: No such file or directory') commands.getstatusoutput('/bin/junk')
(256,'sh: /bin/junk: not found') commands.getoutput('ls /bin/ls')'/bin/ls' commands.getstatus('/bin/ls')'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'
最后页面上还可以根据返回值来显示命令执行结果 。
Linux命令 快照功能:记录当前的硬盘的状态 。刚建快照时快照占用内存为0linux命令256,标记linux命令256了当前硬盘的存储状态 。当虚拟机对快照标记的内容改写时,会将改写的内容存储进快照,与未改写的部分整合得到完整的快照 。当快照标记的部分被完全改写 , 那么快照存储空间完整记录了当时拍摄时的内存状态 。
参数形式
第一种:参数用一横的说明后面的参数是字符形式 。
第二种:参数用两横的说明后面的参数是单词形式 。
第三种:参数前有横的是 System V风格 。
第四种:参数前没有横的是 BSD风格 。
cat、more、less、head、tail命令的比较:
cat命令可以一次显示整个文件 , 如果文件比较大,使用不是很方便linux命令256;
more命令可以让屏幕在显示满一屏幕时暂停,按空格往前翻页,按b往后翻页 。
less命令也可以分页显示文件 , 和more命令的区别就在于: 支持上下键卷动屏幕、查找;不需要在一开始就读取整个文件,打开大文件时比more、vim更快 。
head命令用于查看文件的前n行 。
tail命令用于查看文件的后n行,加上-f命令 , 查看在线日志非常方便 , 可以打印最新增加的日志 。
一般模式:
编辑模式:
命令模式:
编码
多行操作(列编辑模式)
插入:ctrl+v进入列编辑模式,上下移动光标选择需要插入的位置,然后输入大写I,输入需要文本,最后按esc键退出,就会发现文本会在选择的多行中插入 。
删除:ctrl+v进入列编辑模式,上下移动光标选中需要删除的部分,然后按d,就会删除选中的内容 。
①head:显示文件头部内容
②tail:输出文件尾部内容
注意:用vim和vi修改内容会删除源文件并生成新文件,所以tail -f会失效 。需要用到
追加和覆盖语句(或),才能被tail -f监视到 。
一般用于查看小文件
查看压缩文件中的文本内容
例:
①more:文件内容分屏查看器
②less:分屏显示文件内容,效率比more高
1、简单读取
运行脚本如下
测试结果为:
2、-p 参数 , 允许在 read 命令行中直接指定一个提示 。
运行脚本如下
测试结果为:
echo [选项] [输出内容](输出内容到控制台)
输出给定文本的sha256加密后的内容
推荐阅读
- 全民侦探游戏角色扮演2,全民侦探实景角色扮演推理游戏馆
- 智能电视的图像怎么看,智能电视怎么看正常电视
- java补码代码 java二进制补码运算
- 硬盘阵列怎么做,怎样做磁盘阵列
- 云虚拟主机建设网站,云虚拟主机使用教程
- 硬盘录像机怎么进去,硬盘录像机怎么进去安全模式
- go语言闭包是什么 go语言闭包和匿名函数
- 手机美图秀秀删了怎么恢复,用美图秀秀拍的照片删了怎么找回?
- 删除原有的mysql服务,删除mysql55