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/ ...
随机推荐
- Linq2DB之研究和探索
1,对linq2db使用看法 最近在研究linq2db,用起来还不错,性能还不错的.之前也在博客园有些网友说用ado.net和depper写SQL语句,性能还要高.有时候牺牲点性能,为了提高开发效率, ...
- iOS命名规范(转载)
转载地址:http://www.cnblogs.com/qiqibo/archive/2012/09/05/2671553.html 正文: • 格式化代码 ◦ 指针“*”号的位置 ▪ 如:NSStr ...
- django 中的 ajax
(Asynchronous Javascript And XML ) 特点: 异步 页面局部刷新 传递的数据量小 ajax 请求返回数据 重定向 location.href='/index/' 发请求 ...
- 【Java多线程】ReentrantReadWriteLock
概述 ReentrantReadWriteLock是Lock的另一种实现方式,ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWriteLock允许多个 ...
- exit status 3221225477 npm run dev 报错
Fatal error in , line 0 # Check failed: U_SUCCESS(status). # # # #FailureMessage Object: 000000B5882 ...
- 转://oracle字符集
一.oracle字符集基础知识oracle数据库有国家字符集(national character set)与数据库字符集(database character set)之分.两者都是在创建数据库时需 ...
- go标准库的学习-encoding/xml
参考:https://studygolang.com/pkgdoc 导入方式: import "encoding/xml" 实现的简单的理解XML命名空间的XML 1.0编译器 f ...
- find,xargs,tar有选择打包
find ./ -mtime 83 -exec sz {} \; find . -type f -exec ls -l {} \; \;表达 -exec 的结束. ================== ...
- 关于栈和队列的一点点小知识-----C++自带函数
栈和队列我们可以用C++里自带的函数使用,就不必手写了 1.栈,需要开头文件 #include<stack> 定义一个栈s:stack<int> s; 具体操作: s.emp ...
- Linux Kernel 4.21已更新:优化AMD 7nm Zen2架构
导读 AMD 7nm Zen2处理器预计将于明年第一季推出,采用下一代7nm EPYC. Linux Kernel 4.21已经更新,以优化AMD 7nm EPYC Rome(罗马)处理器. AMD ...