未分类
docker设置代理
docker pull某些镜像时速度特别慢,可以设置代理,设置方式是: 编辑/usr/lib/systemd/system/docker.service,加入:
1 2 |
[Service] Environment="PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin HTTP_PROXY=myip:myport HTTPS_PROXY=myip:myport" |
docker pull某些镜像时速度特别慢,可以设置代理,设置方式是: 编辑/usr/lib/systemd/system/docker.service,加入:
1 2 |
[Service] Environment="PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin HTTP_PROXY=myip:myport HTTPS_PROXY=myip:myport" |
检出命令(git checkout) 是git最常用的命令之一,同时也是个很危险的命令,因为这条命令会重写工作区: 用法一:git checkout [-q] [<commit>] [–] <paths>… 用法二:git checkout [<branch>] 用法三:git checkout [-m] [[-b|–orphan] <new_branch>] [<start_point>] 上面列出的第一种用法和第二种用法的区别在于,第一种用法在命令中包含路径<paths>.为了避免路径和引用(或者提交id)同名而发生冲突,可以在<paths>前面用两个连续的短线(减号作为分割) 第一种用法的<commit>是可选项,如果省略则相当于从暂存区进行检出(检出的默认值是暂存区)。 第一种用法(包含了路径<paths>的用法)不会改变HEAD头指针,主要是用于指定版本的文件覆盖工作区中对应的文件。如果省略<commit>,则会用暂存区的文件覆盖工作区的文件,否则用指定提交中的文件覆盖暂存区和工作区中对应的文件. 第二种用法则会改变HEAD头指针,主要用作切换到分支,如果省略<branch>则相当于对工作区进行状态检查。 第三种用法主要是创建和切换到新的分支(<new_branch>),新的分支从<start_point>指定的提交开始创建。新的分支和master分支没有什么实质的不同,都是在refs/heads命名空间下的引用。 具体示例: git checkout branch 检出branch分支,要完成上图的三个步骤,更新HEAD以指向branch分支,以及用branch指向的树更新暂存区和工作区 git checkout 汇总显示工作区,暂存区与HEAD的差异 git checkout HEAD 同上 git checkout — filename 用暂存区中filename文件来覆盖工作区中的filename文件。相当于git add filename的撤消,这个命令很危险,因为对于本地的修改会悄无声息的覆盖 git checkout — . 或写作 git checkout . Read more…
python中的subprocess.Popen()使用 从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值。 subprocess意在替代其他几个老的模块或者函数,比如:os.system os.spawn* os.popen* popen2.* commands.* 一、subprocess.Popen subprocess模块定义了一个类: Popen class subprocess.Popen( args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0) 各参数含义如下: args: args参数。可以是一个字符串,可以是一个包含程序参数的列表。要执行的程序一般就是这个列表的第一项,或者是字符串本身。 subprocess.Popen([“cat”,”test.txt”]) subprocess.Popen(“cat test.txt”) 这两个之中,后者将不会工作。因为如果是一个字符串的话,必须是程序的路径才可以。(考虑unix的api函数exec,接受的是字符串 列表) 但是下面的可以工作 subprocess.Popen(“cat test.txt”, shell=True) 这是因为它相当于 subprocess.Popen([“/bin/sh”, “-c”, “cat test.txt”]) 在*nix下,当shell=False(默认)时,Popen使用os.execvp()来执行子程序。args一般要是一个【列表】。如果args是个字符串的 话,会被当做是可执行文件的路径,这样就不能传入任何参数了。 注意: shlex.split()可以被用于序列化复杂的命令参数,比如: >>> shlex.split(‘ls ps Read more…