首页 » InfoTech »

Linux下的source命令

2018年5月19日 / 329次阅读
Linux

打开支付宝首页,搜索“529018372”,即可领取红包!可重复领。

Linux source命令:

通常用法:source filepath . filepath(一个小点)

功能:使当前shell读入路径为filepath的文件并依次执行文件中的所有语句;通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。例如,当我们修改了/etc/profile文件,并想让它立刻生效,而不用重新登录,就可以使用source命令,如source /etc/profile。

source命令(从 C Shell 而来)是bash shell的内置命令;点命令(.),就是个点符号(从Bourne Shell而来)是source的另一名称。

使用这个命令执行脚本即使没有执行权限也可以运行。

 

例如我们要将某个python的虚拟环境(virtualenv创建)运行起来,可以使用如下命令:

xinlin@ubuntu:~$ . BlogChecker/bin/activate
(BlogChecker) xinlin@ubuntu:~$
(BlogChecker) xinlin@ubuntu:~$ deactivate
xinlin@ubuntu:~$ source BlogChecker/bin/activate
(BlogChecker) xinlin@ubuntu:~$

而activate这个文件本身,默认是没有执行权限的:

xinlin@ubuntu:~/BlogChecker/bin$ ll
total 4416
drwxrwxr-x 2 xinlin xinlin 4096 May 18 06:26 ./
drwxrwxr-x 6 xinlin xinlin 4096 May 18 07:29 ../
-rw-rw-r-- 1 xinlin xinlin 2083 May 18 06:08 activate
-rw-rw-r-- 1 xinlin xinlin 1025 May 18 06:08 activate.csh
-rw-rw-r-- 1 xinlin xinlin 2179 May 18 06:08 activate.fish
-rw-rw-r-- 1 xinlin xinlin 1137 May 18 06:08 activate_this.py
-rwxrwxr-x 1 xinlin xinlin 245 May 18 06:26 chardetect*
-rwxrwxr-x 1 xinlin xinlin 254 May 18 06:08 easy_install*
-rwxrwxr-x 1 xinlin xinlin 254 May 18 06:08 easy_install-3.5*
-rwxrwxr-x 1 xinlin xinlin 236 May 18 06:08 pip*
-rwxrwxr-x 1 xinlin xinlin 236 May 18 06:08 pip3*
-rwxrwxr-x 1 xinlin xinlin 236 May 18 06:08 pip3.5*
lrwxrwxrwx 1 xinlin xinlin 7 May 18 06:08 python -> python3*
-rwxrwxr-x 1 xinlin xinlin 4464400 May 18 06:08 python3*
lrwxrwxrwx 1 xinlin xinlin 7 May 18 06:08 python3.5 -> python3*
-rwxrwxr-x 1 xinlin xinlin 2342 May 18 06:08 python-config*
-rwxrwxr-x 1 xinlin xinlin 233 May 18 06:08 wheel*
xinlin@ubuntu:~/BlogChecker/bin$

 

source命令与./和sh的区别

./xxxx,使用这个命令需要先将文件提升为可执行的文件才可以进行命令的使用

sh是一个shell,运行sh xxx.sh,表示使用sh来解释这个脚本,sh和source命令一样,没有执行权限也可以运行脚本。

下图是使用sh命令和source命令在执行上的区别:

sh命令和source命令在执行上的区别

sh命令和source命令在执行上的区别

 

如果直接运行./xxx.sh,首先会查找脚本第一行(#!)是否指定了解释器,如果没指定,那么就用当前系统默认的shell(大多数linux默认是bash),如果指定了解释器,那么就将该脚本交给指定的解释器。

举个例子,下面是一段python脚本a.run:

#!/usr/bin/python3
print("This is Python script")

用分别./和sh来执行:

xinlin@ubuntu:~$ ./a.run
This is Python Script
xinlin@ubuntu:~$ sh a.run
a.run: line 2: syntax error near unexpected token `"This is Python Script"'
a.run: line 2: `print("This is Python Script")'

因为这是一个python脚本,sh是看不懂的(注意,linux下后缀通常不是很严格,.run后缀是我随意命名的,和windows有点区别)。

 

以上基本说清楚了Linux下source命令的各方面情况。

本文链接:http://www.maixj.net/ict/linux-source-18000
云上小悟 麦新杰(QQ:1093023102)

相关文章

评论是美德

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top