在练习一当中,主要使用了模块os,
sys,和stat。接下来学习一下这三个模块。
os: 提供与操作系统相关的各种操作。
以下是各通用
变量:
environ : 它是一个dict。其中key就是Linux下各个环境变量的名称,如PATH;value的值与$PATH值相等。
linesep: 行分隔符;在Linux下的值是 '\n'
pathseq:path分隔符:在Linux下的值是 ' : '
path : 它是一个模块,用于对路径名称的各种操作。
name : 这个还不是十分清楚, 出来的结果是posix。
以下是修改当前进程的运行环境的函数:(也主要是针对的 ls -l 中能里出来的信息)
与进程环境相关的有:1、进程当前的工作目录,2、进程的用户ID、有效用户ID、用户组ID。
1、获取和修改当前工作目录,os.getcwd() 获取当前的工作目录,与Linux pwd的值相等;os.chdir(‘’)切换当前工作目录,与Linux cd 相似。
2、获取和修改进程的用户ID、有效用户ID、用户组ID。
a、获取和修改进程的用户ID。 os.getgid() 获取进程的用户ID,os.setuid(id) 设置进程的用户ID。 Linux环境下查看方法:id -u
b、获取和修改进程的有效用户ID。os.geteuid() 和 os.seteuid().
c、获取和修改进程的用户组ID。os.getgid() 和os.setgid().
d、获取和修改进程的有效用户组ID。os.getegid() 和 os.setegid().
这些个ID有什么用呢?原先是root权限,执行os.setuid()后结果如下:
>>> os.setuid(1000)
>>> os.open('/root/.vimrc', os.O_RDWR)
Traceback (most recent call last):
File "", line 1, in
OSError: [Errno 13] Permission denied: '/root/.vimrc'
>>> os.geteuid()
1000
注意:进程的有效用户ID也跟着改变了,其次无法在os.setuid(0)了。
3、其它重要的函数有,os.getpid()_获取进程ID,os.getppid获取父进程ID,chroot()改变跟目录(起到了一定安全作用),putenv(name,value)设置环境变量,unsetenv(name)
删除环境变量name。其中chroot的使用例子如下:
>>> getcwd()
'/home/xxxx/test'
>>> chroot('/home/xxxx')
>>> chdir('/test')
>>> getcwd()
'/test'
以下是与文件创建创建、读、写相关,这些也包括在目录在内。
1、最容易想到的有:open、read、write、close。
2、对文件的i-node进行各种操作,例如修改文件的所有者,移动文件指针,修改文件的日期等
最后一部分就是进程管理相关的函数,比如有fork、execl、wait等一系列函数。
看来和进程、进程管理、文件操作相关的函数,就来os模块里面查找,且它与Unix高级环境编程中的大部分函数保持一致。
注意:stat模块提供了一些常量(可以这么称呼吗)和一些判断函数,往往利用os.stat()获得内容,然后进行比较判断
注意:可以使用help()函数,查看模块的信息,在编写程序是很有帮助。
阅读(981) | 评论(0) | 转发(0) |