首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux学习-环境变量和可执行属性

文件的可执行属性和环境变量 Linux下文件有一个特殊的属性即可执行属性,用来指示这个文件是一个可执行的脚本或可以运行的二进制文件。前面所提到的这些命令,都具有可执行属性。...ct@iZ8vb3e9jtel4m99ss6e7eZ:~$ ls -l "`which cd`" #rwx: 文件所有者可读、可写、可执行 #r-x: 文件所有者所在组其它成员可读可执行,不可修改 #...r-x: 其它人可读可执行,不可修改 -rwxr-xr-x 1 root root 26 12月 7 2016 /usr/bin/cd ct@iZ8vb3e9jtel4m99ss6e7eZ:~$ ls...11月 6 2016 /usr/bin/mkdir ct@iZ8vb3e9jtel4m99ss6e7eZ:~$ ls -l "`which python`" #l: 代表软连接 #软连接自身是所有人可读可写...o+X: 表示给文件增加组内人或其它人可执行权限 chmod 755 file: 表示拥有者有可读写执行权限,其它人有可读执行权限。

1.4K90
您找到你想要的搜索结果了吗?
是的
没有找到

linux装载和启动可执行程序的过程

罗军 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 基础知识 编译程序的过程 预处理...) 通过调用链接器ld来链接程序运行需要的一大堆目标文件,以及所依赖的其它库文件,最后生成可执行文件 静态链接和动态链接 静态链接是指在编译阶段直接把静态库加入到可执行文件中去,这样可执行文件会比较大。...在编译链接时,链接器并不能控制执行从一个可执行文件或者共享文件中转移到另一个中(这时候函数的地址还不能确定),因此,链接器将控制转移到PLT中的某一项。...在实际的可执行程序或者共享目标文件中,GOT表在名称为.got.plt的section中,PLT表在名称为.plt的section中。   ELF文件符号动态解析的过程 ?   ...load_elf_binary代码 load_elf_binary(struct linux_binprm *bprm) { …… if(elf_interpreter) //使用动态链接

3K40

Linux系统创建可执行文件软链接

这里我们使用的案例是通过TMalign这个蛋白质打分文件,在编译好可执行文件之后,可以使用建立软链接的方法快捷的使用该可执行文件。...Mac可能需要去掉static): $ g++ -static -O3 -ffast-math -lm -o TMalign TMalign.cpp 编译之后就会在当前路径下生成一个名为TMalign的可执行文件...,有时候会遇到想把可执行文件放在特定的路径下的问题,比如放到/usr/bin目录下,这样可以全局可调用,又不需要手动添加各种乱七八糟的系统路径。...这就需要使用到Linux中的软链接的功能,通常使用ln -s的指令即可。...本文顺带介绍了蛋白质结构评分软件TMalign的源码下载和安装使用的基本方法,编译成一个可执行文件后,可以建立一个软链接,在系统各处都可以使用,是一个比较基础的操作。

2.8K20

Manjaro Linux平台用pyinstaller打包python可执行文件

对于使用场景不是很复杂的,我们可以直接做成一个可执行文件,这样开发者只需要维护可执行文件的功能正常,以及对于各种平台的兼容性较好,这就可以了。...这里我们介绍如何使用pyinstaller去通过python源码构造一个可执行文件。...pyinstaller -F pye.py --clean 754 INFO: PyInstaller: 4.2 754 INFO: Python: 3.8.5 (conda) 791 INFO: Platform: Linux...最常用的方法其实是直接将该可执行文件拷贝到/usr/bin/目录下,这样该可执行文件就可以直接使用,BLACKPINK不需要在前面加上路径就能运行。...总结概要 通过pyinstaller我们可以将一个python项目打包编译构建成一个可执行文件,然后将该可执行文件放置到一个系统路径下,使得系统可以不需要路径也能够识别到这个可执行文件,这样我们就可以仅配置一些输入文件或者命令行的入参

2.7K00

可读代码编写炸鸡一

包括我在内,许多人的代码可读性其实一塌糊涂。先不从代码组织,设计模式这些较大的方面来说。光是一个变量,一个函数的命名,注释的规范都没有提供帮助理解 的作用,让人看的一头雾水。...代码的编写规范,是很少人去注意的,这段时间,我的主程让我看一本书 ——《编写可读代码的艺术》,正好直击痛点,于是我打算写一写关于这个方面的东西。...希望通过这个系列的炸鸡,能让我和各位在代码可读性上,有所进步。 前提准备 在阅读本篇前,先得了解一些原则。 基本可读性定理 代码应该写得让人在最短时间内理解。...但是再过些时日再看,你自己都会摸不着头脑了,这样代码的可读性是很差的。 所以,命名应该表达更多的信息。

34610

nodejs可读流源码分析

可读流是对数据消费的抽象,nodejs中可读流有两种工作模式:流式和暂停式,流式就是有数据的时候就会触发回调,并且把数据传给回调,暂停式就是需要用户自己手动执行读取的操作。...我们先看一下ReadableState,这个对象是表示可读流的一些状态和属性的。...nodejs只是抽象了流的逻辑,具体的操作(比如可读流就是读取数据)是由用户自己实现的,因为读取操作是业务相关的。下面我们分析一下可读流的操作。...1 可读流从底层资源获取数据 对用户来说,可读流是用户获取数据的地方,但是对可读流来说,他提供数据给用户的前提是他自己得有数据,所以可读流首先需要生产数据。生产数据的逻辑由_read函数实现。...2 用户从可读流获取数据 用户可以通过read函数或者监听data事件来从可读流中获取数据 Readable.prototype.read = function(n) { n = parseInt(

84730

Manjaro Linux平台用pyinstaller打包python可执行文件

对于使用场景不是很复杂的,我们可以直接做成一个可执行文件,这样开发者只需要维护可执行文件的功能正常,以及对于各种平台的兼容性较好,这就可以了。...这里我们介绍如何使用pyinstaller去通过python源码构造一个可执行文件。...pyinstaller -F pye.py --clean 754 INFO: PyInstaller: 4.2 754 INFO: Python: 3.8.5 (conda) 791 INFO: Platform: Linux...最常用的方法其实是直接将该可执行文件拷贝到/usr/bin/目录下,这样该可执行文件就可以直接使用,不需要在前面加上路径就能运行。...总结概要 通过pyinstaller我们可以将一个python项目打包编译构建成一个可执行文件,然后将该可执行文件放置到一个系统路径下,使得系统可以不需要路径也能够识别到这个可执行文件,这样我们就可以仅配置一些输入文件或者命令行的入参

2.9K20

Linux可执行文件与进程的虚拟地址空间

Linux可执行文件与进程的虚拟地址空间 一个可执行文件被执行的同时也伴随着一个新的进程的创建。...Linux会为这个进程创建一个新的虚拟地址空间,然后会读取可执行文件的文件头,建立虚拟地址空间与可执行文件的映射关系,然后将CPU的指令指针寄存器设置成可执行文件的入口地址,然后CPU就会从这里取指令执行...所以,操作系统实际上并不关心可执行文件各个段所包含的的实际内容,OS只关心一些跟装载相关的问题,最主要的是段的权限(可读,可写,可执行)。...ELF文件中,段的权限往往只有为数不多的几种组合,基本上就3种: 以代码段为代表的权限为可读可执行的段 以数据段和BSS段为代表的权限为可读可写的段 以只读数据段为代表的权限为只读的段 ELF可执行文件中有两个概念...比如可读可执行的段都放在一起,这种段的典型是代码段;可读可写的段都放在一起,这种段的典型是数据段。

4.1K30

MySQL Server可执行注释

前言 可执行注释 结语 ---- 前言 MySQL Server当前支持如下3种注释风格: 以'#'开头的单行注释 以'-- '开头的单行注释 C语言风格的单行/多行注释 如下SQL脚本给出了3种注释风格的示例...* 这是一个 多行注释 示例 */ select 1 from dual; select 2 from dual; # 单行注释用例1 select 3 from dual; -- 单行注释用例2 可执行注释...MySQL-specific code */ 通过比较如下两个带注释的SQL语句的执行结果可以比较直观地看出可执行注释语句的行为: # 普通注释,'+1' 被忽略 mysql> select 1 /*...+1 */; +---+ | 1 | +---+ | 1 | +---+ # 可执行注释,'+1' 被当成语句的一部分 mysql> select 1 /*!...不难看出,带version_number的可执行注释,是为了解决不同的MySQL版本之间的兼容问题。

1.1K50

提高程序可读

提高程序可读性 点开这篇文章,意味着你有想成为更好的程序员的决心,那么请认真阅读以下内容: 在编程过程中注意提高程序的可读性是良好的编程习惯,这使程序更易于理解,也更容易在以后进行修改和更正。...为了避免步入代码的wading,可读性是必要的。...技巧3:函数的使用 1)减少嵌套 多层嵌套会大幅度降低程序的可读性,我们可以借用函数来减少嵌套 2)避免重复 重复的代码块可能意味着某种想法未在程序中清晰的表达出来,这也削弱了代码的可读性。...利用函数包装重复代码块,可以使程序更整洁 3)代码模块化 当代码量比较大时,对代码进行模块化,根据各个部分的不同功能进行打包区分,包进函数里,可以使程序看起来整齐有序,提高可读性。...0;//case 2 最后 正如《代码整洁之道》一书中的“花时间保持代码整洁不但有关效率,还有关生存”,毕竟混乱会导致团队生产力下降,又制造更多混乱,最终效率趋向于零… 因此,在编码过程中注意提高程序可读性就显得至关重要

35020

详解 Linux 可执行文件 ELF 文件的内部结构

”,是一种用于二进制文件之间相互调用的可执行文件格式,通过链接即可引入调用,拥有非常强大的可扩展性和灵活性。...在 linux 中,可执行文件、Object文件、动态库文件都是ELF格式文件,他相当于 windows 操作系统中的 PE 文件。 通过 readelf 命令可以读取 ELF 文件的内容。 3....这里提到了“节”的概念,上一篇文章中,我们在汇编中使用了 section 关键字,就是指定了对应代码块的 section 类型,linux 支持下面的三种 section: .text — 代码段,用来存放代码...,可读可执行 .data — 数据段,存放堆栈以及初始化过的 global 变量、static 变量等,可读可写 .bss — 存放未初始化 global 变量和未初始化 static 变量,可读可写...可执行文件, 3.

2.5K20

『Python』Python编译成计算机可执行文件(Windows计算机可执行文件exe,Linux 计算机可执行文件elf,Mac计算机可执行文件mach-O)

程序都是脚本的方式,一般是在解析器里运行,如果要想要给别的计算机使用,需要提前安装Python解析器和相关包才可以运行,为了在 Windows(或其它系统里) 里方便发布,我们将.py文件,编译成一个可执行文件...,并且打包所需要库文件,只需要点击一个可执行文件运行,而无需安装Python和相关库文件。...PyInstaller将 Python应用程序冻结(打包)在Windows,GNU / Linux,Mac OS X,FreeBSD,Solaris和AIX下的独立可执行文件中。...-D,--onedir 产生一个目录(包含多个文件)作为可执行程序 -a,--ascii 不包含 Unicode 字符集支持 -d,--debug 产生 debug 版本的可执行文件 -w,--windowed...也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径 -n NAME,--name=NAME 指定项目(产生的 spec)名字。

3.3K10
领券