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程序设计的更多相关文章

  1. 多线程编程之Linux环境下的多线程(二)

    上一篇文章中主要讲解了Linux环境下多线程的基本概念和特性,本文将说明Linux环境下多线程的同步方式. 在<UNIX环境高级编程>第二版的“第11章 线程”中,提到了类UNIX系统中的 ...

  2. 在Linux环境下采用压缩包方式安装JDK 13

    本文地址:https://www.cnblogs.com/oberon-zjt0806/p/11663731.html 可以,转载,出处,格式,懂?? 什么是JDK?? 好吧如果你不知道这个问题的话我 ...

  3. Linux环境下的network IO

    同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. ...

  4. 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 ...

  5. Linux环境搭建-在虚拟机中安装Centos7.0

    最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...

  6. Linux环境下部署完JDK后运行一个简单的Java程序

    前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version&qu ...

  7. OpenJDK 编译-Linux环境

    说明:笔者是在Ubuntu 16.04虚拟机中编译 OpenJDK 8 源码下载 http://download.java.net/openjdk/jdk8/ 推荐直接下载openjdk-8-src- ...

  8. Linux环境中Openfire安装指南

    Linux环境中Openfire安装指南 安装环境: 安装软件:Openfire 4_1_0 http://download.igniterealtime.org/openfire/openfire_ ...

  9. linux环境下学习使用pro*c/c++工具

    1.proc是oracle用来预编译嵌入SQL语句的c程序. 2.如何使用proc工具 在Linux环境下,首先确保gcc编译器正常使用,安装oracle数据库或者客户端,一般就会默认安装pro*c/ ...

随机推荐

  1. SAP中的ALE, IDOC

    ALE技术:应用链接支持(Application Link Enabling 简称ALE),是一项用于创建和运行分布式应用的技术.ALE是SAP的专有技术. ALE对象——ALE包含了可控的数据消息交 ...

  2. 【转】ICCAVR TAB键设置

    转载于: http://blog.163.com/liuyunqian@yeah/blog/static/7039584320099159545292/ 在使用ICCAVR C编译器的时候会发现TAB ...

  3. vue_模板渲染

    渲染 当获取到后端数据后,我们会把它按照一定的规则加载到写好的模板中,输出成在浏览器中显示的HTML,这个过程就称之为渲染. vue.js是在前端(即浏览器内)进行的模板渲染. 前后端渲染对比 前端渲 ...

  4. django 中的 ajax

    (Asynchronous Javascript And XML ) 特点: 异步 页面局部刷新 传递的数据量小 ajax 请求返回数据 重定向 location.href='/index/' 发请求 ...

  5. cocos2d-x 3.0 安装及创建项目

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/LanerGaming/article/details/24146921 好久没实用过cocos2d- ...

  6. oracle 查询表中数据行(row)上最后的DML时间

    在这介绍Oracle 10G开始提供的一个伪列ORA_ROWSCN,它又分为两种模式一种是基于block这是默认的模式(块级跟踪):还有一种是基于row上,这种模式只能在建里表时指定ROWDEPEND ...

  7. nginx跟apache访问方法

    ifconfig 在浏览器中输入ip即可访问 centos安装nginx环境 1:进入 cd /usr/local/src  //下载文件放到这个目录中 2:wget http://nginx.org ...

  8. slf4j+logback搭建超实用的日志管理模块

    文章转自http://www.2cto.com/kf/201702/536097.html slf4j+logback搭建超实用的日志管理模块(对日志有编号管理):日志功能在服务器端再常见不过了,我们 ...

  9. Qt+QGIS二次开发:开发环境搭建(超级详细)

    原文链接: 1.qgis二次开发环境搭建(超级详细) 2.QGIS开发教程(1)——QGIS开发准备工作 3.QGIS(2.18.15 源码)+Qt(5/5.9.3)+VS2015(X64)编译

  10. MySQL 基础七 视图

    -- 查看表 SELECT * FROM student; SHOW CREATE TABLE student; -- 创建视图 CREATE VIEW v_student1 AS SELECT *F ...