1.python环境

python2和python3命令用来区分python版本

pip2和pip3命令用来区分pip,你的包到底安装在哪里pip3 install xxx

sudo apt install python3-pip这是安装pip3

2.安装虚拟环境

pip install virtualenvwrapper #直接安装虚拟环境容器来顺便安装virtualenv

有可能:必须使用sudo pip来安装virtualenvwrapper。不是pip3
注意需要先修改环境变量。否则命名无法使用

vim ~/.bashrc 在最底部增加
#这是为了让 WORKON 命令能用。
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
别忘记重新加载 bash 配置文件 source ~/.bashrc

然后你需要用 mkvirtualenv xxx -p python3 #注意后面要跟上 -p python3,
来创建一个叫xxx 的python 3虚拟环境
workon xxx #切换到你的虚拟环境

3. .sh文件:

脚本文件,一般都是bash脚本。想运行的话就用sh命令运行 sh xxx.sh,.sh为Linux的脚本文件,我们可以通过.sh执行一些命令,可以理解为windows的.bat批处理文件

4.点命令:.

命令和source是同一个命令,可以理解为source的缩写,简称点命令。

5.执行方式:

1).  /test.sh

2)sh test.sh

3). test.sh

4)source test.sh

他们有何区别?

1)第一种方式,是在当前的shell执行脚本本身,也就是说把test.sh当成一个文件执行,这时候我们需要拥有test.sh的运行权限(x权限),而且当我们在执行此命令时,有2个新进程在运行,一个是test.sh,一个是sleep,如果我们在执行第一个sleep时按ctrl+c终止脚本,test.sh和sleep一起终止,并且第二个sleep不会执行,因为整个test.sh运行已经终止。

2)第二种方式,是新建一个shell执行test.sh脚本里面的命令,不需要执行权限,有读取权限(r权限)即可,在执行此命令时,有2个新进程在运行,一个是bash,一个是sleep,如果执行第一个sleep时按ctrl+c,bash被终止,结果和第一种方式一样,第二个sleep不会执行。

3)第三种方式,是在当前shell执行test.sh里面的命令,不需要执行权限,有读取权限(r权限)即可,在执行此命令时,只有一个新进程在运行,就是sleep,如果在执行第一个sleep时按ctrl+c终止,那么第二个sleep接着运行,直到脚本所有命令执行完。

4)第四种方式和第三种方式一致。

6.export 和 sourse

sourse在当前shell中执行,而.是调用了一个子shell

export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

一般把环境变量写到bashrc中,因为这样   每次登陆的时候可以使用

7.关于 ~/.bashrc文件

7.1.加环境变量

假定想添加的环境变量路径为:/opt/my-tools/Android-sdk/tools

1 进入用户的根目录

cd $HOME 或 cd ~

2 然后打开.bashrc若不存在则新建.bashrc文件

vim .bashrc(新建文件)

3 在.bashrc页面最后加上想要加的路径

export PATH=$PATH:/opt/my-tools/android-sdk/tools

4 最后执行

source ~/.bashrc

7.2.说明

1.Linux系统默认使用的shell为bash,在shell启动的时候会读取根据情况读取.bash_profile和.bashrc文件。
准确的说,当shell是交互式登录shell时,读取.bash_profile文件,如在系统启动、远程登录或使用su -切换用户时;当shell是交互式登录和非登录shell时都会读取.bashrc文件,如:在图形界面中打开新终端或使用su切换用户时,均属于非登录shell的情况。
简单的说,.bash_profile只在会话开始时被读取一次,而.bashrc则每次打开新的终端时,都会被读取。

2.~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。所以一般优先把变量设置在.bashrc里面。比如在crontab里面执行一个命令,.bashrc设置的环境变量会生效,而.bash_profile不会。

3.配置文件有两个级别, 系统级(/etc)和用户级(~/), 每次调用优先调用系统级, profile用于登录式shell, 而bashrc用于每个交互式shell

4.当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有”.”是用来表示当前目录的。sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。

source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

7.3.创建虚拟环境

第一步就是打开  ~/.bashrc文件 然后在最后写入。把下面几行加入:

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7 # 这句是为了防止环境变量$PATH中已有其它环境的python

export WORKON_HOME=$HOME/.virtualenvs # 放所有虚拟环境的地方

source /usr/local/bin/virtualenvwrapper.sh #激活virtualenvwrapper

最后执行source ~/.bashrc

 

linux 虚拟环境问题的更多相关文章

  1. Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台 Seesaw

    负载均衡系统 Seesaw Seesaw是由我们网络可靠性工程师用 Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台,就像所有好的项目一样,这个项目也是为了解决实际问题而产生的. Seesa ...

  2. Linux虚拟主机通过FTP软件创建目录时提示550 Create Directory Operation Failed

    更新时间:2017-06-07 13:26:11   分享: 问题描述 通过FTP软件连接Linux虚拟主机,在尝试创建新目录时,服务器返回错误提示:550 Create Directory Oper ...

  3. Linux 虚拟文件系统概述

    转自:http://blog.csdn.net/u011373710/article/details/70198080 文章梗概 本文首先以“尽量不涉及源代码”的方式讨论Linux虚拟文件系统的存在的 ...

  4. 一文总结 Linux 虚拟网络设备 eth, tap/tun, veth-pair

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. Linux 虚 ...

  5. Linux虚拟文件系统

    从文件 I/O 看 Linux 的虚拟文件系统 1 引言 Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等.通过使用同一套文件 I/O 系统 调用即可对 Linux ...

  6. Linux虚拟主机管理系统---wdcp

    关于WDCP这款虚拟主机管理系统,是疯子使用的第二款Linux虚拟主机管理系统,使用是挺简单的,以前好像是因为编码问题而放弃这款面板. WDCP功能比较完善,基本上需要的功能都能满足,例如:在线下载. ...

  7. Linux 虚拟串口及 Qt 串口通信实例

    Linux 虚拟串口及 Qt 串口通信实例 2011-06-22 17:49 佚名 互联网 字号:T | T Linux 虚拟串口及 Qt 串口通信实例是本文所要介绍的内容,在实现过程中,打开了两个伪 ...

  8. Linux虚拟系统安装——Ubuntu18.04 & CentOS6.5

    Linux虚拟系统安装--Ubuntu18.04 & CentOS6.5 摘要:Linux简介.虚拟系统安装.系统备份与文件介绍 1. Linux简介 (1)1968年,MIT.Bell实验室 ...

  9. Linux虚拟服务器--LVS

    LVS 百科名片 LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是L ...

随机推荐

  1. paramiko远程执行命令成功

  2. 问题:oracle select into;结果:oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解 (2011-07-08 08:59:47) 转载▼ 标签: it 分类: oracle 我们经常会遇 ...

  3. 《Android应用性能优化》 第5章 多线程和同步

    1.DDMS中可以看见的系统线程(Andorid3.1的Galaxy Tab 10.1为例): main HeapWorker 执行finalize函数和引用对象清理 GC Garbage Colle ...

  4. linux下vtune使用

    安装:http://www.cnblogs.com/jiu0821/p/5943533.html 终端输入amplxe-gui,打开vtune界面. 点击new project,进入project p ...

  5. 关于WebGIS开源解决方案的探讨(转)

    关于WebGIS开源解决方案的探讨   文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 公司目前的多数项目采 ...

  6. C++面向对象类的实例题目九

    题目描述: 编写一个学生和老师数据输入和显示程序,学生数据有编号.姓名.班号和成绩,教师数据有编号.姓名.职称和部门. 要求将编号.姓名.输入和显示设计成一个类person,并作为学生数据操作类stu ...

  7. ubuntu16配置Mask-RCNN

    一.安装Anaconda3 1.下载 下载地址:https://www.continuum.io/downloads 2.安装 在文件目录下执行:bash Anaconda3-4.2.0-Linux- ...

  8. vue 之 计算属性和侦听器

    计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div> {{ message.split('').rever ...

  9. GPG入门 - 练习笔记

     GPG入门练习笔记  参考阮一峰的GPG入门教程http://www.ruanyifeng.com/blog/2013/07/gpg.html 1.加密     1)刘言机器: 用王老师公钥加密gp ...

  10. windows7向github提交代码

    首先要有一个github账号. 我自己申请了github账号,然后创建一个代码仓库. 这个是我创建好的代码仓库:里面是空的没有代码,我今天从我本地写好的代码,传到github上面去. 首先需要告诉gi ...