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. Linq2DB之研究和探索

    1,对linq2db使用看法 最近在研究linq2db,用起来还不错,性能还不错的.之前也在博客园有些网友说用ado.net和depper写SQL语句,性能还要高.有时候牺牲点性能,为了提高开发效率, ...

  2. iOS命名规范(转载)

    转载地址:http://www.cnblogs.com/qiqibo/archive/2012/09/05/2671553.html 正文: • 格式化代码 ◦ 指针“*”号的位置 ▪ 如:NSStr ...

  3. django 中的 ajax

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

  4. 【Java多线程】ReentrantReadWriteLock

    概述 ReentrantReadWriteLock是Lock的另一种实现方式,ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWriteLock允许多个 ...

  5. exit status 3221225477 npm run dev 报错

    Fatal error in , line 0 # Check failed: U_SUCCESS(status). # # # #FailureMessage Object: 000000B5882 ...

  6. 转://oracle字符集

    一.oracle字符集基础知识oracle数据库有国家字符集(national character set)与数据库字符集(database character set)之分.两者都是在创建数据库时需 ...

  7. go标准库的学习-encoding/xml

    参考:https://studygolang.com/pkgdoc 导入方式: import "encoding/xml" 实现的简单的理解XML命名空间的XML 1.0编译器 f ...

  8. find,xargs,tar有选择打包

    find ./ -mtime 83 -exec sz {} \; find . -type f -exec ls -l {} \; \;表达 -exec 的结束. ================== ...

  9. 关于栈和队列的一点点小知识-----C++自带函数

    栈和队列我们可以用C++里自带的函数使用,就不必手写了 1.栈,需要开头文件 #include<stack>  定义一个栈s:stack<int> s; 具体操作: s.emp ...

  10. Linux Kernel 4.21已更新:优化AMD 7nm Zen2架构

    导读 AMD 7nm Zen2处理器预计将于明年第一季推出,采用下一代7nm EPYC. Linux Kernel 4.21已经更新,以优化AMD 7nm EPYC Rome(罗马)处理器. AMD ...