尝试在python下写一个简单的shell,这个是参考实验楼上面的一个python教程。觉得这些api挺好玩的,写下来做一个笔记。
这是后来写得 python下实现的一个mini shell :http://www.jianshu.com/p/30bac36a7651
#coding:utf-8
import os
import socket
import getpass
import platform
#獲得用戶名
print getpass.getuser()
#獲得主機名
print socket.gethostname()
#獲得當前目錄
cwd=os.getcwd()
print cwd
#獲得系統平臺
print platform.system()
运行结果:
这样就很容易模仿出一个shell
#coding:utf-8
import os
import socket
import getpass
import platform
import sys
user=getpass.getuser()
print user
hostname=socket.gethostname()
print hostname
cwd=os.getcwd()
#print cwd
base_dir=os.path.basename(cwd)
home_dir = os.path.expanduser('~')
print home_dir
print platform.system()
sys.stdout.write("[%s@%s %s]$ " % (user, hostname, base_dir))
#get input from shell
cmd=sys.stdin.readline()
print cmd
sys.stdout.flush()
运行结果:
<br />
现在支持4条命令
ls命令:
ls命令的实现可以依靠python os库的chdir函数
os.chdir('/home/zhaozheng/code')
cwd=os.getcwd()
print (cwd)
getenv命令:
获取shell的环境变量
可以依靠os库里面的getenv函数
os.getenv('HOME')
cat命令:
查看文件
实现的基本思路是,通过打开一个文件,然后将他重定向到shell端。
history命令:
查看历史的输入命令
每一次的输入命令,都被写在一个文件里面,输入的每一条命令,都将他写到文件里面。执行history命令的时候,将文件输出。
exit命令:
退出当前的shell