linux命令与makefile学习

news2024/9/20 15:03:37

linux命令与makefile学习

  • 文件权限
  • 通配符*
  • 常用命令
  • makefile
    • gcc与g++区别:

Linux上有一句话:一切皆文件

普通文件-

目录文件d” (directory)

管道文件p” (piping)

链接文件l” (link)

img

文件权限

  • 当为 d 则是目录
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lCxg4woK-1667135348671)(C:\Users\钦子\AppData\Roaming\Typora\typora-user-images\image-20221029162130898.png)]

img

每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。

363003_1227493859FdXT

从左至右用 0-9 这些数字来表示。

0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;

2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

Linux 命令大全 | 菜鸟教程 (runoob.com)

通配符*

在这里插入图片描述

常用命令

pwd在这里插入图片描述
clear或者ctrl+l清屏
cat显示文件里面的内容
mkdir创建文件夹
find -name查找文件
cp拷贝
mv移动/同一级目录也可以通过该命令来改名字
file查看文件的实际类型
sudo让普通用户执行管理员权限[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pb7QJRKH-1667135101866)(C:\Users\钦子\AppData\Roaming\Typora\typora-user-images\image-20221030095337121.png)]
ifconfiglinux中用于显示或配置网络设备
vilinux系统中常用的文本编辑器 进入后i 表示插入可以开始写东西,esc表示停止,ZZ(大写表示保存退出) :wq退出保存,:q!退出不保存[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zdJ2ZkRf-1667135101866)(C:\Users\钦子\AppData\Roaming\Typora\typora-user-images\image-20221030105321529.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c3z8JmP9-1667135101866)(C:\Users\钦子\AppData\Roaming\Typora\typora-user-images\image-20221030105439246.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mxfmJlyh-1667135101867)(C:\Users\钦子\AppData\Roaming\Typora\typora-user-images\image-20221030112817381.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rFzfRuut-1667135101867)(C:\Users\钦子\AppData\Roaming\Typora\typora-user-images\image-20221030112833555.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4VEd1bl0-1667135101867)(C:\Users\钦子\AppData\Roaming\Typora\typora-user-images\image-20221030113336340.png)]在这里插入图片描述在这里插入图片描述在这里插入图片描述
编译gcc a.c -o hello 将a.c进行编译成中间文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2N5UskKv-1667135101868)(C:\Users\钦子\AppData\Roaming\Typora\typora-user-images\image-20221030130417185.png)]在这里插入图片描述
运行当前路径./ 编译好的文件
其他路径/ 编译好的文件
sudosudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具

xshell远程登入

xftp文件传输

makefile

gcc与g++区别:

gcc是GCC中的GUNC Compiler(C 编译器)

g++是GCC中的GUN C++ Compiler(C++编译器)

更准确的说法是:gcc调用了Ccompiler,而g++调用了C++ compiler

gcc和g++的主要区别

  1. 对于 .c和.cpp文件,gcc分别当做c和cpp文件编译(c和cpp的语法强度是不一样的); g++则统一当做cpp文件编译

  2. 使用g++编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL,在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ ,但这并不代表 gcc –lstdc++ 和 g++等价

  3. gcc在编译C文件时,可使用的预定义宏是比较少的

  4. gcc在编译cpp文件时/g++在编译c文件和cpp文件时(这时候gcc和g++调用的都是cpp文件的编译器),会加入一些额外的宏,这些宏如下:

#define__GXX_WEAK__ 1
#define __cplusplus 1
#define __DEPRECATED 1
#define GNUG 4
#define __EXCEPTIONS 1

#define private_extern extern

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RGlF9KHi-1667135101868)(C:\Users\钦子\AppData\Roaming\Typora\typora-user-images\image-20221030202737867.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bv78OXWw-1667135101869)(C:\Users\钦子\AppData\Roaming\Typora\typora-user-images\image-20221030204342101.png)]

@表示makefile取消相关信息的回显

#表示makefile文件中的注释

一些命令
一、-g
-g可执行程序包含调试信息
-g为了调试用的
加个-g 是为了gdb 用,不然gdb用不到

二、-o
-o指定输出文件名
-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
一般语法:
gcc filename.c -o filename
上面的意思是如果你不打 -o filename(直接gcc filename.c )
那么默认就是输出a.out.这个-o就是用来控制输出文件的。 ------用./a.out执行文件

三、-c
-c 只编译不链接
产生.o文件,就是obj文件,不产生执行文件

四、-D
其意义是添加宏定义,这个很有用。

当你想要通过宏控制你的程序,不必傻乎乎的在程序里定义,然后需要哪个版本,去修改宏。

只需要在执行gcc的时候,指定-D,后面跟宏的名称即可。

示例:

gcc test.c -o test -D OPEN_PRINTF_DEBUG

或者gcc test.c -o test -DOPEN_PRINTF_DEBUG

两者都是可以的。

五、-w
-w的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告是我们平时可以忽略的。

六、-W和-Wall
-W选项类似-Wall,会显示警告,但是只显示编译器认为会出现错误的警告。

-Wall选项意思是编译后显示所有警告

七、-O3
-O是大写字母O,不是数字0哦。

意思是开启编译优化,等级为三

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP FICO银行账户余额查询表开发说明书(包括开发源代码、测试样例及FS)

程序说明 满足财务银行账户余额查询明细的需求; 支持财务实时查看银行余额数据。 筛选界面 序号 栏位标题 字段类型 是否必须 是否为范围

【pwn】2022 祥云杯 部分wp

【pwn】2022 祥云杯 部分wp 前言 又是一年的祥云杯,相比去年我啥也不会写,今年起码写了几个签到… 又被队友带飞咯 protool Google的Protobuf,参考学习连接 https://bbs.pediy.com/thread-270004.htm 发现了栈溢出,protobuf…

Unity技术手册-UGUI零基础详细教程-Toggle切换

往期文章分享点击跳转>《导航贴》- Unity手册,系统实战学习点击跳转>《导航贴》- Android手册,重温移动开发 本文约3千字,新手阅读需要7分钟,复习需要2分钟 【收藏随时查阅不再迷路】 👉关于作者 众所周知&#…

2.6 Python 基本数据类型

1. 数据类型 类型是变量所指的内存中对象的类型. 内置的type()函数可以用来查询变量所指的对象类型。Python 3中有六个标准的数据类型: Numbers(数字), String(字符串), List(列表), Tuple(元组), Sets(集合), Dictionary(字典).2. Numbers 数字型 Python 有三种数字类型 in…

SpringMVC基本配置

小常规 springmvc的处理器对应的bean必须按照规范格式开发,为避免加入无效的bean可通过bean加载过滤器进行包含设定或排除设定,表现层bean标注通常设定为Controller在此发现图片没有加载出来回到程序去分析当发起一个请求以后DispatcherServlet配置拦截所…

【JVM技术专题】 深入分析class字节码指令方法调用详解「原理篇」

方法调用详解 ​ 调用目标在程序代码写好、编译器进行编译时就必须确定下来,这类方法的调用称为解析。 解析 ​ 在Java语言中符合**“编译期可知,运行期不可变”**这个要求的方法,主要包括静态方法和私有方法两大类,前者与类型…

【JavaScript】网页轮播图

目录HTML搭建功能实现小圆圈事件左右按钮事件自动播放轮播图也叫焦点图,是网页中比较常见的网页特效。功能:鼠标经过轮播图模块,左右按钮显示,离开隐藏左右按钮。点击右侧按钮一次,图片往左播放一张,以此类…

UACANet: Uncertainty Augmented Context Attention for Polyp Segmentation代码补充

上一篇看了文章创新点的代码,现在看一下train文件等其余的文件。 看主函数: import os import torch import argparse import tqdm import sysimport cv2 import torch.nn as nn import torch.distributed as distfrom torch.optim import Adam, SGD fr…

CVE-2022-21907 Microsoft Windows HTTP 协议栈远程代码执行漏洞复现

目录 0x01 声明: 0x02 简介: 0x03 漏洞概述: 0x04 影响版本: 0x05 环境搭建: 下载: 开启IIS: 0x06 漏洞复现: 利用POC: 0x07 流量分析: 客户端&am…

算法提升 (三)基础数据结构

作者:小萌新 专栏:算法提升 作者简介:大二学生 希望能够和大家一起进步! 内容简介:简单介绍基本数据结构的简单面试题 不负韶华 链表 阅读这篇文章之前需要有初阶数据结构的基础 关于链表的结构如果还有不了解的同学…

智能AI创意图片编辑Luminar Neo

Luminar Neo是Mac上的智能AI技术编辑软件背景替换、图像层、除尘、重新照明选项等,从而实现精确掌控。同时在这款软件中还拥有可简化复杂的编辑程序,如此一来用户即可将自己大脑中想象的愿景变为现实,让使用者能有多大胆的想法都可以在这款软…

深度学习 卷积神经网络原理

深度学习 卷积神经网络原理一、前言二、全连接层的局限性三、卷积层3.1 如何进行卷积运算?3.2 偏置3.3 填充3.4 步长3.5 卷积运算是如何保留图片特征的?3.6 三维卷积3.7 多种特征提取四、池化层五、全连接层六、参考资料一、前言 本文分析了全连接层存在…

burpsuite利用sql注入漏洞猜解数据库名称

目录 一、前提条件 二、burpsuite猜解数据库名 (一)设置firefox代理 (二)使用burpsuite的proxy模块截取数据包 (三)将proxy截取的数据包右击发送到intruder模块 (四)设置2个变量…

【Spring】快速入门Spring框架

文章目录1. 对Spring的理解2. Spring IoC3. DI4. 如何创建一个Spring项目4.1 创建一个Maven项目4.2 添加Spring框架支持4.3 添加启动类5. 存储Bean对象5.1 添加配置文件5.2 创建Bean对象5.3 注册Bean6. 获取并使用Bean对象7. 更简单存储Bean对象的方式7.1 前置工作7.2 添加存储…

python爬虫1

1.1 网络爬虫概述 网络爬虫(又被称为网络蜘蛛、网络机器人,在某社区中经常被称为网页追逐者),可以按照指定的规则(网络爬虫的算法)自动浏览或抓取网络中的信息,通过 Python 可以很轻松地编写爬…

二叉搜索树+二叉进阶oj

索引二叉搜索树1.二叉搜索树概念与性能分析2.二叉树的应用3.二叉树的实现细节4.类中函数递归调用5.二叉树实现总体代码6.二叉进阶oj7.二叉树三种遍历非递归实现二叉搜索树 1.二叉搜索树概念与性能分析 什么是二叉搜索树 二叉搜索树也被称为二叉排序树,其也可以是一…

热视觉2:使用Python和OpenCV从图像中测量温度

热视觉2:使用Python和OpenCV从图像中测量温度 这篇博客将介绍学习热/中远红外视觉的基础知识,gray8 和 gray16 图像(即最常见的热成像格式)之间的差异,学习如何使用Python和OpenCV从热图像中的每个像素点测量温度,并以不同的调色板显示结果。以及如何实时计算视频流和UV…

2022高频经典前端面试题(vue2+vue3+typescript+nodejs下篇,含答案)

vue2篇 1.vue的生命周期(重点) 2.父子组件的钩子函数顺序 页面初次渲染的时候: 父beforeCreate-> 父created -> 父beforeMount 子beforeCreate-> 子created ->子beforeMount-> 子mounted 父mounted 页面更新的时候&#xff…

大数据之Hive

文章目录前言一、数据仓库介绍(一) 数据仓库的基本概念(二)数据仓库的主要特征(三)数据仓库与数据库的区别二、Hive的概念(一)Hive的介绍(二)Hive的架构总结前…

4种方法!怎么把电脑上的音频传到苹果手机上?

案例分享 我新买了iphone13,想把macbook上下载的音乐传输一份到手机上,怎么把电脑上的音频传到苹果手机上?能否通过网络实现将电脑音乐传输到手机播放?” 很多果粉在刚拿到心爱的苹果手机后,都先把之前收藏的歌曲传到…