Linux环境C程序设计
Linux基础
常用shell命令
| 命令 | 说明 | 命令 | 说明 |
|---|---|---|---|
| man | 查看联机帮助 | ls | 查看目录及文件列表 |
| cp | 复制目录或文件 | mv | 移动目录或文件 |
| cd | 改变文件或目录 | rm | 删除文件或目录 |
| mkdir | 创建新目录 | rmdir | 删除空目录 |
| cat | 查看文本内容 | find | 查找目录或文件 |
| date | 显示或修改日期和时间 | free | 显示内存交换空间信息 |
| chmod | 改变目录或文件权限 | chown | 改变目录或文件的所有者 |
控制台操作
按Ctrl+Alt+F2键进入控制台Ctrl+Alt+F7退出控制台
输入用户名root和密码获取管理员权限
输入以下命令,创建新用户
adduser [用户名] //创建新用户,隶属于普通用户组
password [密码] //为该用户修改密码,新用户密码默认为空
GCC/G++ 编译器
Ubuntu默认已安装好GCC/G++编译器,gcc --version命令查看编译器版本,
该编译器没有图形界面,编译命令如下
gcc [-选项 1] [-选项 2]... [-选项 n] <源文件名>
g++ [-选项 1] [-选项 2]... [-选项 n] <源文件名>
如果命令中不包含输出文件的名称,默认在该目录侠生成.out的可执行文件
源程序文件名test.c
常用GCC/G++编译选项:
| 编译选项 | 用法 | 说明 |
|---|---|---|
| -c | gcc -c test.s | 只进行预处理,编译和汇编,生成.o 文件 |
| -S | gcc -S test.i | 只进行预处理,编译和汇编,生成.s 文件 |
| -E | gcc -E test.c -o test.i | 只进行预处理,参数预处理后的结果到标准输出 |
| -C | gcc -S test.i | 预处理不删除注释信息,常与-E同时使用 |
| -o | gcc -O1 test.c -o test | 指定目标名称,常与-c -S同时使用,默认.out |
Vi编译Helloword
cd~ //进入主目录
mkdir helloword //新建helloworld目录
cd helloword //进入helloworld目录
vi helloword.c //使用vi新建并打开helloworld.c文件
helloworld文件如下
#include <stdio.h>
int main()
{
char *c;
c = "hello word!";
printf("%s\n", c);
return 0;
}
输入结束后按Esc退出输入状态,输入命令Q后进入Ex模式,在Ex模式下输入wq并按Enter,保存文件。
程序编译与连接
gcc -o hello helloword.c //编译并连接程序
//-o hello表示使用hello作为目标文件名
若程序编写错误会有相关错误信息
使用终端运行程序
./hello //运行当前目录下的hello程序
输出结果为: Hello world!
GBD调试工具
常用vi编辑起命令
| 命令 | 解释 | 命令 | 解释 |
|---|---|---|---|
| Esc | 进入或退出命令模式 | i/I/ | 插入 |
| h/j/k/l或方向键 | 移动光标位置 | a/A | 在光标后输入 |
| /关键字 | 向下查找关键字 | o/O | 插入新行 |
| x/X | 向前或向后删除一个字符 | r/R | 在光标后改写 |
| D/d | 删除整行 | w | 保存文件 |
| Y/y | 复制整行 | q | 退出vi |
| p/P | 在上一行,下一行粘贴 | wq | 退出Vi |
| U | 还原上一个动作 | set nu | 显示行号 |
Linux环境C程序设计的更多相关文章
- 多线程编程之Linux环境下的多线程(二)
上一篇文章中主要讲解了Linux环境下多线程的基本概念和特性,本文将说明Linux环境下多线程的同步方式. 在<UNIX环境高级编程>第二版的“第11章 线程”中,提到了类UNIX系统中的 ...
- 在Linux环境下采用压缩包方式安装JDK 13
本文地址:https://www.cnblogs.com/oberon-zjt0806/p/11663731.html 可以,转载,出处,格式,懂?? 什么是JDK?? 好吧如果你不知道这个问题的话我 ...
- Linux环境下的network IO
同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. ...
- linux 环境下运行STS时 出现must be available in order to run STS
linux 环境下运行ECLIPSE时 出现 “ A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be avai ...
- Linux环境搭建-在虚拟机中安装Centos7.0
最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...
- Linux环境下部署完JDK后运行一个简单的Java程序
前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version&qu ...
- OpenJDK 编译-Linux环境
说明:笔者是在Ubuntu 16.04虚拟机中编译 OpenJDK 8 源码下载 http://download.java.net/openjdk/jdk8/ 推荐直接下载openjdk-8-src- ...
- Linux环境中Openfire安装指南
Linux环境中Openfire安装指南 安装环境: 安装软件:Openfire 4_1_0 http://download.igniterealtime.org/openfire/openfire_ ...
- linux环境下学习使用pro*c/c++工具
1.proc是oracle用来预编译嵌入SQL语句的c程序. 2.如何使用proc工具 在Linux环境下,首先确保gcc编译器正常使用,安装oracle数据库或者客户端,一般就会默认安装pro*c/ ...
随机推荐
- January 11th, 2018 Week 02nd Thursday
Live, travel, adventure, bless, and don't be sorry. 精彩地活着,不停地前行,大胆冒险,心怀感激,不留遗憾. Everything we do is ...
- C语言变量定义与数据溢出(初学者)
1.变量定义的一般形式为:类型说明符.变量名标识符等:例:int a,b,c;(abc为整型变量) 在书写变量定义时应注意以下几点: (1)允许在一个类型说明符后,定义多个相同类型的变量.各变量之间用 ...
- (8)Python判断结构
- 【转】字符编码笔记:ASCII、Unicode、UTF-8 和 Base64
1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态(-128~127),这被称为一 ...
- MySQL慢查询1- 开启慢查询
本文章摘自网络,学习之用 一.简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 二.参数说明 slow_query_log ...
- MySql常用命令集Mysql常用命令3
MYSQL常用命令 有很多朋友虽然安装好了mysql但却不知如何使用它.在这篇文章中我们就从连接 MYSQL.修改密码.增加用户等方面来学习一些MYSQL的常用命令. 有很多朋友虽然安装好了mysql ...
- mvc:message-converters简单介绍
说说@ResponseBody注解,很明显这个注解就是将方法的返回值作为reponse的body部分.我们进一步分析下这个过程涉及到的内容,首先就是方法返回的类型,可以是字节数组.字符串.对象引用等, ...
- 转载 线程池 异步I/O线程 <第三篇>
在学习异步之前先来说说异步的好处,例如对于不需要CPU参数的输入输出操作,可以将实际的处理步骤分为以下三步: 启动处理: 实际的处理,此时不需要CPU参数: 任务完成后的处理: 以上步骤如果仅仅使用一 ...
- day20 Python 高阶函数,函数,嵌套,闭包 装饰器
高阶函数定义 1.函数接收的参数是一个函数名 2.函数的返回值是一个函数名 3.满足上述条件任意一个都可以称之为高阶函数 一.函数的接收参数是一个函数名 import time def foo(): ...
- Photoshop 基础六 图层
图层就像一张张叠在一起的胶片,最上层的图像挡住下面的图像,使之看不见 上层图像中没有像素的地方为透明区域,通过透明区域可以看到下一层的图像 图层是相对独立的,在一个图层编辑时,不影响其它图层 每次只能 ...