Linux程序设计--编程前你需要知道的基础知识

本文介绍了Linux系统中的PATH环境变量及其作用,并详细讲解了应用程序、头文件和库文件的组织方式与使用方法,帮助读者更好地理解Linux系统结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 PATH变量

当登陆进Linux系统时你与一个Shell程序进行交互,它在一组特定的路径下进行指令的搜索,一般称为PATH环境变量,echo $PATH可以显示搜索路径。当以普通用户登陆时,系统的默认PATH路径为
/bin:二进制文件目录,一般存放系统启动时用到的程序
/usr/bin:用户二进制文件目录,用于存放用户使用的标准程序
/usr/local/bin:本地二进制文件目录,用于存放软件安装的程序

系统管理员(例如root用户)登录后,使用的PATH变量可能还包含存放系统管理程序的目录,如/sbin /usr/sbin
NOTE:
(1)Linux和Unix系统一样,使用冒号(:)分割PATH变量里的条目,而MS-DOS和Windows使用分号(;)
(2)Linux使用正斜线(/)分割文件名里的目录名,Windows使用反斜线(\)进行分割。

2 软件编程导引

1 应用程序

应用程序通常放在系统保留的特定目录中,包括用于程序开发的工具,一般放在/usr/bin /usr/local/bin /opt中。系统管理员喜欢放在/user/local /opt目录下,用于区分厂商提供的还是后续添加的。对于我们个人开发者,可以放在/home目录下的某个位置,方便使用。

2 头文件

系统级头文件一般存放于/usr/include目录及其子目录中。在调用C语言编译器时,需要指定自定义的头文件路径时,使用-I选项,如gcc -I/home/carl/helloworld hello.c -o hello

3 库文件

标准系统库文件一般存储在/lib /usr/lib目录中。库文件的名字总是以lib开头,随后的部分指明是什么库,最后是库类型。

.a 代表传统的静态函数库
.so 代表共享函数库

同调用外部头文件的方式,在调用C语言编译器时,需要指定自定义的库文件路径时,使用-L选项,如gcc -L/home/carl/helloworld hello.c -o hello

使用静态库,程序本身包含库中的函数代码,仅限库中被调用的函数。而使用动态库时,它的链接方式是这样的:程序本身不包含库函数代码,而是引用运行时可以访问的共享库。当编译好的程序加载到内存中运行时,函数引用被解析并去调用共享库,如果有必要,共享库才会被加载到内存中。

共享库好处:
(1)减少生成的可执行文件的大小。
(2)可以在系统中只保存一份共享库的副本供许多应用程序同时使用。
(3)共享库的更新可以独立于依赖它的应用程序。

可以通过ldd工具查看应用程序依赖的共享库,如ldd hello

Java基础教程课件 Java知识整理 1 把编写好的Java源文件保存起来,原文件的扩展名必须是_________ 用JDK编译Java源程序,使用的命令是_______,编译源¬¬¬¬文件得到字节码文件。 Java源程序编译后生成的字节码文件扩展名为________ 2 一个Java源程序是有若干个_____组成。_____是Java的关键字,用来定义类。 3 Java应用程序中有多个类,Java命令后的类名必须是包含了_____方法的那个类的名字。 4 一个Java应用程序必须且只有一个类含有_____方法 5 在一个Java应用程序中main方法必须被说明为_______________________ 6 Java 中所有程序都使用方法,应用程序以_______方法开始 7 Java源文件中有多个类,但只能有一个类是_________类 8 Java源程序编译后生成的字节码文件扩展名为___________ 9 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为________ 10 Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是__________ 11 ________就是Java语言中已经被赋予特定意义的一些单词,不可以把这类词作为名字来用 12 使用关键字_______来定义逻辑变量 13 ________就是Java语言中已经被赋予特定意义的一些单词 14 结构化程序设计的基本数据类型包括_________、__________、____________、_____________。 15 Java中byte型数组在内存中的存储形式是________ 16 对于int变量,内存分配____个字节 17 对于byte变量,内存分配____个字节 18 对于long变量,内存分配____个字节 19 对于short变量,内存分配____个字节 20 结构化程序设计的基本数据类型包括_______、逻辑类型、字符类型、浮点类型 21 使用关键字________来定义字符变量 22 结构化程序设计的基本数据类型包括_______、逻辑类型、整数类型、浮点类型 23 Java中,浮点型变量的类型有float和_________两种 24 对于float型变量,内存分配_______个字节 25 对于double型变量,内存分配_______个字节 26结构化程序设计的基本数据类型包括_______、逻辑类型、整数类型、字符类型 27 Java使用____________字符集 28 混合运算中不同类型的数据先转化为同一类型,然后运算,其中不包括__________和字符类型 29 混合运算中不同类型的数据先转化为同一类型,然后运算,其中不包括__________、逻辑类型 30 当把级别高的变量的值赋予级别低的变量时,必须使用______________转换 31 Java中关系运算符的运算结果是___________型 32 Java中逻辑运算符的操作元必须是________________型数据 33 整数类型数据在内存中以_______________的方式表示 34 Java语言的控制语句有3种类型,即________________、________________和转移语句 35 Java中有两种类型的控制语句即if和_______________ 36 Java语言的控制语句有3种类型,即________________、循环语句和转移语句 37 Java中的语句可分为方法______________、__________________、_________________、______________和package语句和______________语句 38 Java中的语句可分为方法调用语句、表达式语句、复合语句、控制语句、package语句和______________语句 39 在同一个switch语句中,case后的________必须互不相同. 40 do-while循环和while循环的区别是__________________________________________ 41 在循环体中,如果想结束本次循环可以用_______________语句 42 在循环体中,如果想跳出循环,结束整个循环
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值