1,第一个程序

#include <stdio.h>
int main()
{
    printf("hello,linux\n");
    return 0;
}

编译运行:

gcc -o hello hello.c
./hello

2,链接目标文件

#include <stdio.h>

void fred(int arg)
{
    prinft("fred: you %\n",arg);
}

#include <stdio.h>

void bill(char *arg)
{
    printf("bill: you passed %s\n", arg);
}

编译:

gcc –c bill.c fred.c
/*
    This is lib.h. It declares the functions fred and bill for users
*/

void bill(char *);
void fred(int);

#include "lib.h"

int main()
{
bill("Hello World");
fred(100);
    exit(0);
}

编译运行:

gcc –c program.c
gcc –o program program.o bill.o fred.o
./program

3,打包为静态链接库再链接

ar crv libfoo.a bill.o fred.o
gcc -o program program.o libfoo.a
./program

也可以这样

gcc -o program program.o -L. -lfoo

这里的-L.就指明编译器在当前目录下寻找库文件,-lfoo告诉编译器使用名为libfoo.a的静态库(或名为libfoo.so的共享库)

4,要查看obj文件,库或可执行文件中包含的函数,可以使用nm命令,

nm libfoo.a

5,可以使用ldd来查看程序所需要的共享库

ldd program

6,一个简单的脚本

#!/bin/bash

for file in *
    do 
        if grep -q bash $file
        then
            echo $file
        fi
    done

exit 0

可以有两种执行方式

/bin/bash first

或者先改变脚本文件的权限,给用户加上可执行权限

chmod u+x first

然后直接执行

first

如果报错说“找不到命令“,则说明Shell环境变量PATH中没有设置当前目录这一项,可以有两种方式改变,要么输入”PATH=$PATH:. “,再用”export”使之生效,要么编辑.bash_profile文件,将这个命令加入到文件末尾,然后登出再登陆回来。当然另一种暂行的方法是输入”./first”。当然最后一种方式是linux推荐的。

另外,我们可以将上面这个脚本文件放到别的目录下共享

sudo cp first /usr/local/bin
chmod 755 /usr/local/bin/first

最后一行是给予组用户和其他用户执行权限

7,在Windows下,查看环境变量的命令是:set,这个命令会输出系统当前的环境变量,那Linux下应该如何查看呢,命令是:

export

如果你想查看某一个名称的环境变量,命令是:echo $环境变量名,比如:

echo $JAVAHOME    

--------------------------------------------------------------------------------

设置环境变量

如果使用的是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》读书笔记(一)相关推荐

  1. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

    MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...

  2. MongoDB权威指南读书笔记——CRUD

    插入并保存文档 插入是向MongoDB中添加数据的基本方法.可以使用Insert方法向目标集合插入一个文档:db.foo.insert({"bar" : "baz&quo ...

  3. HTTP权威指南读书笔记

    <<HTTP权威指南>>读书笔记 第一部分:Web的基础 第1章:HTTP概述 主要内容 1.什么是HTTP 2.HTTP的基本组件 HTTP HTTP:HTTP(Hypert ...

  4. HTML5权威指南----读书笔记

    <!DOCTYPE html> <html> <head><meta name = 'keywords' content="HTML5权威指南--- ...

  5. 计算机网络和http权威指南 读书笔记

    计算机网络笔记 网络层 网络层向上提供无连接的,尽最大努力交付的数据报服务 网络层不提供数据质量承诺 物理层使用的中间设备叫转发器repeater 数据链路层叫网桥bridge 网络层叫路由器rout ...

  6. MapReduce总结 + 相关Hadoop权威指南读书笔记(未完......欢迎补充,互相学习)

    文章目录 MapReduce概述 MapReduce优缺点 MapReduce核心思想 MapReduce进程 MapReduce编程规范 WordCount 案例实操 本地测试 集群测试 Hadoo ...

  7. android开发读书笔记,android开发权威指南读书笔记

    第17章 Fragment 1.在res目录下增加 layout-sw600dp 目录,用于存放7英寸及以上尺寸屏幕的布局文件.10英寸以上平板用 sw720dp.如果是更小的屏幕,如 480*800 ...

  8. java性能权威指南中文_Java性能权威指南读书笔记--之一

    JIT(即时编译) 解释型代码:程序可移植,相同的代码在任何有适当解释器的机器上,都能运行,但是速度慢. 编译型代码:速度快,电视不同CPU平台的代码无法兼容. java则是使用java的编译器先将其 ...

  9. javascript权威指南读书笔记之二——词法结构

    本章讲述的内容,用通俗的语言来说,就是应该注意的地方,这些也许和我们所学的其他语言类似,也许完全不同,比如一开始就介绍说javascript程序中的每个字符都是用两个字节表示的,但有些程序设计者习惯于 ...

  10. HTTP权威指南读书笔记(一)HTTP概述、URL和资源及报文详解

    一.HTTP概述 1.WEB客户端和服务器. 2.资源:资源可以是各种格式的静态文件,也可以是应用程序. 3.媒体类型 4.URI:统一资源标识符 URL:统一资源定位符. URL的第一部分称为方案: ...

最新文章

  1. java socket 全双工客户端_java socket实现全双工通信
  2. property_get 与 property_set 的返回值(转载)
  3. unity3d : Failed to query D3D11 context for ID3DUserDefinedAnnotation interface (hr = 0x80004002)
  4. 第八天2017/04/17(2、❤String类的源代码)
  5. caffe中Makefile.config详解
  6. js面向对象和继承的碎碎念
  7. k8s部署postgresql(含postgis插件)
  8. 19 CO配置-控制-产品成本控制-产品成本计划编制-定义日期控制
  9. 互联网公司的黑话,你都经历过吗?
  10. (2)[wp7数据存储] WP7 IsolatedStorage系列篇——获取存储的文件或文件夹 [复制链接]...
  11. java怎么连接activemq集群_ActiveMQ之集群(主从)搭建-yellowcong
  12. 基于 FPGA 的数字表示
  13. 快快436 高智商罪犯一
  14. Linux系统服务简述和作用
  15. HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!
  16. 国家档案局发布第13号令《机关档案管理规定》
  17. 无痕bu单及降低分险常规办法分享
  18. 无与伦比的工业设计 iPhone 4详细评测
  19. P5 似然函数与狄拉克函数
  20. Dhtml,html,xhtml的区别

热门文章

  1. MacOS怎样启用悬停文本功能的具体操作方法!
  2. Java学习之==注释、数据类型、变量、运算符
  3. 大数据工作由哪几部分组成?
  4. JS字符串截取(获取指定字符后面的所有字符内容)
  5. Kompose: Docker-compose 到 Kubernetes 的迁移工具
  6. WPF 模拟UI 键盘录入
  7. The stacking context
  8. 用变量a给出下面的定义
  9. Nginx 设置文件缓存时间
  10. 「leetcode」90.子集II【回溯算法】详细图解!