1 Linux开发环境搭建

1.1 虚拟机安装

1、安装VM Ware

2、安装ubuntu

分区 -- Linux没有盘符的概念
/ -- 5000M
/boot -- 系统启动过程中读取的重要文件
/swap -- 2000M,虚拟内存是物理内存的两倍左右
/home -- 常见的分区
  • Linux文件系统结构是通过文件夹管理的
  • 虚拟内存是一段硬盘空间,当作是内存使用



1.2 Linux文件与Windows文件传输

直接拖拽或者复制粘贴,如果不行执行下面命令

sudo apt-get autoremove open-vm-tools
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop

2.文件和目录相关命令

2.1 Linux文件系统结构

  • Linux系统是一个分层的树形组织结构



  • Filesystem Hierarchy Standard(文件系统层次结构标准)
  • Linux是开源软件,各个linux发行机构都可以按照在即的需求对于文件系统进行剪裁,所以众多的linux发行版本的目录结构也不尽相同。为了规范文件目录命名和存放标准,Linux基金会颁发了FHS(Fliesystem Hierarchy Standard)



2.2 命令

pwd -- 显示路径

ls -- 显示当前文件下文件
ls /home(可以加目录)
ls -a -- 不忽略点开头的文件(隐藏文件)
ls -l -- 用长格式方式显示,权限、用户、大小
ls -l /bin
ls -R 目录 -- 递归显示目录 df -T 显示文件系统的信息
  • ctrl+shift+t,新建一个终端窗口
  • rwx -- 读写执行,-表示无权限,权限通常有9位,三种用户各占3位(创建者,同组用户,其他用户)
  • Linux系统下插入U盘,引入一个新的目录结构
df -T -- 显示文件系统的信息
// 增删改查
cat test.c -- 显示在屏幕中
cat -s 多个空行合并成一个空行显示
cat -b 多加行号显示 nl test.c -- 加行号显示 vi test.c cp test1.c test4.c
cp test.c /home/evan/test cp -rf 文件夹/文件 文件目录 mv test.c test1.c -- 重命名
mv test.c ../test3.c -- 移动并重名名
mv -rf 文件夹 文件目录 touch 文件 -- 创建文件
touch 已经存在的文件 -- 修改时间戳 rm 文件
rm -rf 文件夹 mkdir 文件夹名称
mkdir -p 多级文件夹

3.vi编辑器

vi是一个编辑环境,有三种模式

:w -- 保存
:q -- 退出没有修改的文件
:q! --强制退出,不保存修改过的部分
:x -- 保存并退出
:wq -- 保存并退出
:w test1.c -- 另存为文件,:w 另存为文件的名称
:r file -- 读入其他文件的内容 a -- 光标之后
i -- 光标之前
o -- 插入一个新的行
A -- 行尾插入
I -- 行首插入 :! -- 执行外部命令,按enter键返回





// 拷贝粘贴
ndd -- 表示剪切n行
nyy -- 复制n行
p -- 粘贴在行下
P -- 粘贴在上面
nx -- 删除n个从光标开始的字符
u -- undo撤销操作
// 一些高级操作
// vi 光标的命令
h,l,j,k -- j,k光标上下移动,h,l光标左右移动
gg -- 返回首行
1G -- 返回首行
nG -- 到第一行
G -- 返回最后一行 :set nu -- 显示行号
:set nonu -- 不显示行号 // 查找
/string -- 查找内容
n -- 向下查找
N -- 向上查找
支持正则表达式 // 替换 :10,20s/str1/str2/g -- 在10,20行内用str2替换str1,g表示全部替换
:1,$s/man/MAN/g -- 全文替换
:%s/man/MAN/g -- 全文操作
:s/man/MAN/g -- 不写范围,就是指的是当前行
:s/man/Man -- 不加g表示替换第一个
:10,15s/man/MAN/g y0 -- 从光标复制到行首
y$ -- 从光标复制到行尾
d0 -- 从光标剪切到行首
d$ -- 从光标剪切到行尾 // 块复制,删除
:118,125y -- 复制118,125行复制
:118,$d -- 删除118行之后的所有行

4.基础知识

计算机基本结构

一.冯诺依曼模型

  • 计算机硬件由五部分构成
  • 存储程序的思想:系统的运行过程就是按照一定的顺序不断执行存储器中的程序指令的过程



    二.存储器分类
  • 主存储器及内存,程序中待处理的数据和处理的结果都存储在内存中
  • 外存储器是用来长期保存数据的大容量存储器
  • 寄存器是CPU内部的高速存储器,速度快,数量少

    三.程序

    广义上讲,为了实现一个特定的目标而预先设计的一组操作的工作步骤,称之为一个程序

    程序就是系统可以识别的一组有序的指令,程序存储在磁盘上,被加载到内存中执行

    四.程序设计语言的发展

    1.机器语言,直接使用机器指令01序列来设计程序,可以被计算机系统直接识别

    2.汇编语言,把机器指令符号化,即通过一组简单的符号来表示机器指令

    3.高级语言,和特定的计算机系统无关,更接近于人类自然语言,一条语句对应多条机器指令

    五.程序设计步骤

    编辑--编译,链接-执行,调试

5.数据的表示

一.计算机数据表示

送入计算机的数字,字母,符号等信息必须转换成0,1组合的数据形式才能被计算机识别

能够进行算术运算得到明确数值概念的信息,是计算机数值数据,其余的信息称为非数值数据

二.数值数据的表示

十进制\八进制\二进制\十六进制

三.原码\反码\补码

四.非数值型数据表示

字符的存储,ASCII表

6.程序编译和调试

gcc(GNU Compiler)是GUN推出的多平台编译器,可以将C,C++源程序编译连接成可执行文件支持以下后缀文件

.c -- c语言源代码
.h -- 程序所包含的头文件
.i -- 已经进过预处理的c源代码
.s -- 汇编语言源代码文件
.o -- 编译后的目标文件
//编译输出可执行文件
gcc -o hello hello.c
-o 输出可执行文件
-c 只要求编译器输出目标代码(.o文件),而不必输出可执行文件
-g 用于调试
./hello 查看输出结果 gcc -o hello hello.c -Wall gcc -o hello.c 没有指定输出文件,默认文件名就是a.out
__FILE__  -- %s -- 显示文件
__LINE__ -- %d -- 哪一行
__FUNCTION__ -- %s ,哪个函数

7.数据结构与算法

算法的概念:解决问题采取的方法和步骤就称之为算法

gcc作为一个交叉编译器,如何生成ARM平台的执行程序

01-Linux命令和C语言基础的更多相关文章

  1. 必备Linux命令和C语言基础

    每一个学习嵌入式单片机的伙伴我相信对于这两个都不陌生,这毕竟是嵌入式单片机的生存之道    所有基础还是要打牢的   有句老话说的好基础不牢地动山摇    下面看下系统的资料吧   希望能对大家有所帮 ...

  2. Linux入门所必备的Linux命令和C语言基础

    文件和目录(底部有视频资料) cd /home 进入 '/ home' 目录' cd - 返回上一级目录 cd -/- 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 c ...

  3. 零基础入门必备的Linux命令和C语言基础

    文件和目录(底部有视频资料) cd /home 进入 '/ home' 目录' cd - 返回上一级目录 cd -/- 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 c ...

  4. 嵌入式linux——汇编、C语言基础(一)

    一.汇编语言基础 (断断续续的记录自己的笔记...2018-10-11) 1. mov指令 基本用法: mov r0, #0 mov指令是赋值指令,用法如上,把立即数0放入到寄存器r0中. 2. bl ...

  5. Java程序员常用的Linux命令01——linux命令基础

    1.显示日期的命令date 显示日期: [root@localhost ~]# date 显示年月日: [root@localhost ~]# date '+%Y%m%d' 2.显示日历指令cal 显 ...

  6. 重学Python - Day 06 - python基础 -> linux命令行学习 -- 简单基础命令学习

    学习资源 虚拟机工具:VMWare 12 linux :Ubuntu 14 或者CentOS 6 PS:ubuntu用远程连接工具的设置方法 step 1: 输入sudo apt-get instal ...

  7. 50个常用的Linux命令(三)基础实例

    ls ls -als -l == llls -Aldrwxrwxrwx.  2 root   root       6 Dec 21 20:38 Videos-rwxrwxrwx   1 root   ...

  8. day01<计算机基础知识&Java语言基础>

    计算机基础知识(计算机概述) 计算机基础知识(软件开发和计算机语言概述) 计算机基础知识(人机交互) 计算机基础知识(键盘功能键和快捷键) 计算机基础知识(如何打开DOS控制台) 计算机基础知识(常见 ...

  9. 005 Linux 命令三剑客之-sed

    grep:数据查找定位 awk:数据切片,数据格式化,功能最复杂 sed:数据修改 01 Linux 命令三剑客? 三剑客各有所长,和锅锅一一搞起就是了! sed:擅长数据修改. grep:擅长数据查 ...

  10. 【转载】Linux字符集和系统语言设置-LANG,locale,LC_ALL,POSIX等命令及参数详解

    Linux字符集和系统语言设置-LANG,locale,LC_ALL,POSIX等命令及参数详解 1清风揽月10人评论5006人阅读2017-06-21 15:48:43   博文说明[前言]: 本文 ...

随机推荐

  1. C++ Qt开发:Charts绘图组件概述

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QCharts ...

  2. Ascii字符画 在线生成工具

    英文 http://patorjk.com/software/taag/ 点击 Test All 一键测试所有样式 目前有317种可选 个人常用格式 3D-ASCII ANSI Shadow Bulb ...

  3. 用Spring Boot 3.2虚拟线程搭建静态文件服务器有多快?

    Spring Boot 3.2 于 2023 年 11 月大张旗鼓地发布,标志着 Java 开发领域的一个关键时刻.这一突破性的版本引入了一系列革命性的功能,包括: 虚拟线程:利用 Project L ...

  4. 利用腾讯快捷登录协议截取 QQ ClientKey / QQKey 实战课程

    本文主要通过利用腾讯网页快捷登录协议来模拟访问并截取已登录 QQ 客户端的Token.Uin.ClientKey.Skey.P_skey等. Step 1. https://ssl.xui.ptlog ...

  5. 开源的代名词「GitHub 热点速览」

    当开发者谈论开源时,通常会想到 GitHub,它不仅仅是一个代码托管平台,更是一个汇聚了全球开发者的社交中心.过去,开发者发布一款软件后,都是在自己的小圈子里默默努力和交流,现在通过 GitHub 平 ...

  6. 保姆级教程:带你体验华为云测试计划CodeArts TestPlan

    摘要:华为云测试计划(CodeArts TestPlan)是面向软件开发者提供的一站式云端测试平台,覆盖测试管理.接口测试,融入DevOps敏捷测试理念,帮助您高效管理测试活动,保障产品高质量交付. ...

  7. 多模态AI开发套件HiLens Kit:超强算力彰显云上实力

    摘要:Huawei HiLens Kit是一款端云协同多模态AI开发套件,支持图像.视频.语音等多种数据分析与推理计算,可广泛用于智能监控.智能家庭.机器人.无人机.智慧工业.智慧门店等分析场景. 在 ...

  8. 云图说|ROMA演进史:一个ROMA与应用之间不得不说的故事

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 华为云ROMA源 ...

  9. 2023年 CISO 需要高度关注的任务和趋势

    在过去的几年中,企业一直忙于应对远程办公模式下的安全要求.展望2023年,疫情局面将与过去3年大不相同.根据目前的趋势,未来一年的网络攻击的数量和严重程度都将增加,这将对各规模企业,尤其是未做好准备的 ...

  10. Axure 公司年会抽奖器

    步骤一:拖拉摆放好相关控件 1.摆好相关相关背景,即一个心形和一行文字"一路同行,感谢同行" 2.一个中继器,中继器里面放有一个300X60的白底黑框矩形.一个"name ...