《Beginning Linux Programming》读书笔记(一)
1,第一个程序
int main()
{
printf("hello,linux\n");
return 0;
}
编译运行:
./hello
2,链接目标文件
void fred(int arg)
{
prinft("fred: you %\n",arg);
}
void bill(char *arg)
{
printf("bill: you passed %s\n", arg);
}
编译:
This is lib.h. It declares the functions fred and bill for users
*/
void bill(char *);
void fred(int);
int main()
{
bill("Hello World");
fred(100);
exit(0);
}
编译运行:
gcc –o program program.o bill.o fred.o
./program
3,打包为静态链接库再链接
gcc -o program program.o libfoo.a
./program
也可以这样
这里的-L.就指明编译器在当前目录下寻找库文件,-lfoo告诉编译器使用名为libfoo.a的静态库(或名为libfoo.so的共享库)
4,要查看obj文件,库或可执行文件中包含的函数,可以使用nm命令,
5,可以使用ldd来查看程序所需要的共享库
6,一个简单的脚本
for file in *
do
if grep -q bash $file
then
echo $file
fi
done
exit 0
可以有两种执行方式
或者先改变脚本文件的权限,给用户加上可执行权限
然后直接执行
如果报错说“找不到命令“,则说明Shell环境变量PATH中没有设置当前目录这一项,可以有两种方式改变,要么输入”PATH=$PATH:. “,再用”export”使之生效,要么编辑.bash_profile文件,将这个命令加入到文件末尾,然后登出再登陆回来。当然另一种暂行的方法是输入”./first”。当然最后一种方式是linux推荐的。
另外,我们可以将上面这个脚本文件放到别的目录下共享
chmod 755 /usr/local/bin/first
最后一行是给予组用户和其他用户执行权限
7,在Windows下,查看环境变量的命令是:set,这个命令会输出系统当前的环境变量,那Linux下应该如何查看呢,命令是:
如果你想查看某一个名称的环境变量,命令是:echo $环境变量名,比如:
--------------------------------------------------------------------------------
设置环境变量
如果使用的是bash外壳,则键入如下命令:
JAVA_HOME=/ path/ to/ jdk
export JAVA_HOME
其中/path/to/jdk是安装Java的路径。
如果使用的是tcsh,则键入如下命令:
setenv JAVA_HOME /path/to/jdk
--------------------------------------------------------------------------------
删除环境变量
字符模式下设置/删除环境变量
bash下
设置:export 变量名=变量值
删除:unset 变量名
csh下
设置:setenv 变量名 变量值
删除:unsetenv 变量名
《Beginning Linux Programming》读书笔记(一)相关推荐
- mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...
MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...
- MongoDB权威指南读书笔记——CRUD
插入并保存文档 插入是向MongoDB中添加数据的基本方法.可以使用Insert方法向目标集合插入一个文档:db.foo.insert({"bar" : "baz&quo ...
- HTTP权威指南读书笔记
<<HTTP权威指南>>读书笔记 第一部分:Web的基础 第1章:HTTP概述 主要内容 1.什么是HTTP 2.HTTP的基本组件 HTTP HTTP:HTTP(Hypert ...
- HTML5权威指南----读书笔记
<!DOCTYPE html> <html> <head><meta name = 'keywords' content="HTML5权威指南--- ...
- 计算机网络和http权威指南 读书笔记
计算机网络笔记 网络层 网络层向上提供无连接的,尽最大努力交付的数据报服务 网络层不提供数据质量承诺 物理层使用的中间设备叫转发器repeater 数据链路层叫网桥bridge 网络层叫路由器rout ...
- MapReduce总结 + 相关Hadoop权威指南读书笔记(未完......欢迎补充,互相学习)
文章目录 MapReduce概述 MapReduce优缺点 MapReduce核心思想 MapReduce进程 MapReduce编程规范 WordCount 案例实操 本地测试 集群测试 Hadoo ...
- android开发读书笔记,android开发权威指南读书笔记
第17章 Fragment 1.在res目录下增加 layout-sw600dp 目录,用于存放7英寸及以上尺寸屏幕的布局文件.10英寸以上平板用 sw720dp.如果是更小的屏幕,如 480*800 ...
- java性能权威指南中文_Java性能权威指南读书笔记--之一
JIT(即时编译) 解释型代码:程序可移植,相同的代码在任何有适当解释器的机器上,都能运行,但是速度慢. 编译型代码:速度快,电视不同CPU平台的代码无法兼容. java则是使用java的编译器先将其 ...
- javascript权威指南读书笔记之二——词法结构
本章讲述的内容,用通俗的语言来说,就是应该注意的地方,这些也许和我们所学的其他语言类似,也许完全不同,比如一开始就介绍说javascript程序中的每个字符都是用两个字节表示的,但有些程序设计者习惯于 ...
- HTTP权威指南读书笔记(一)HTTP概述、URL和资源及报文详解
一.HTTP概述 1.WEB客户端和服务器. 2.资源:资源可以是各种格式的静态文件,也可以是应用程序. 3.媒体类型 4.URI:统一资源标识符 URL:统一资源定位符. URL的第一部分称为方案: ...
最新文章
- java socket 全双工客户端_java socket实现全双工通信
- property_get 与 property_set 的返回值(转载)
- unity3d : Failed to query D3D11 context for ID3DUserDefinedAnnotation interface (hr = 0x80004002)
- 第八天2017/04/17(2、❤String类的源代码)
- caffe中Makefile.config详解
- js面向对象和继承的碎碎念
- k8s部署postgresql(含postgis插件)
- 19 CO配置-控制-产品成本控制-产品成本计划编制-定义日期控制
- 互联网公司的黑话,你都经历过吗?
- (2)[wp7数据存储] WP7 IsolatedStorage系列篇——获取存储的文件或文件夹 [复制链接]...
- java怎么连接activemq集群_ActiveMQ之集群(主从)搭建-yellowcong
- 基于 FPGA 的数字表示
- 快快436 高智商罪犯一
- Linux系统服务简述和作用
- HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!
- 国家档案局发布第13号令《机关档案管理规定》
- 无痕bu单及降低分险常规办法分享
- 无与伦比的工业设计 iPhone 4详细评测
- P5 似然函数与狄拉克函数
- Dhtml,html,xhtml的区别