linux命令与makefile学习

linux命令与makefile学习

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

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

普通文件-

目录文件d” (directory)

管道文件p” (piping)

链接文件l” (link)

linux命令与makefile学习_第1张图片

文件权限

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

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。
linux命令与makefile学习_第2张图片

linux命令与makefile学习_第3张图片

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

linux命令与makefile学习_第4张图片

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

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

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

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

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

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

通配符*

linux命令与makefile学习_第5张图片

常用命令

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)]
ifconfig linux中用于显示或配置网络设备
vi linux系统中常用的文本编辑器 进入后i 表示插入可以开始写东西,esc表示停止,ZZ(大写表示保存退出) :wq退出保存,:q!退出不保存linux命令与makefile学习_第6张图片linux命令与makefile学习_第7张图片linux命令与makefile学习_第8张图片linux命令与makefile学习_第9张图片
编译 gcc a.c -o hello 将a.c进行编译成中间文件
linux命令与makefile学习_第10张图片linux命令与makefile学习_第11张图片linux命令与makefile学习_第12张图片
运行 当前路径./ 编译好的文件
其他路径/ 编译好的文件
sudo sudo是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

linux命令与makefile学习_第13张图片

linux命令与makefile学习_第14张图片

@表示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哦。

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

你可能感兴趣的:(linux,linux,makefile)