Linux指令集合

news2024/11/20 23:26:49

磁盘相关命令

df//查看磁盘整体状况

在这里插入图片描述

df -h //查看磁盘整体状况

在这里插入图片描述

du //查看磁盘使用情况,如果不加目录,默认为当前目录

在这里插入图片描述

du -h -d 0//表示我们只希望看当前目录磁盘使用情况,不会继续展示这层目录的下一级目录
du -h -d 1//表示展示当前目录的下一级目录磁盘使用情况,-d是可以指定查看层数的

在这里插入图片描述

远程拷贝

实现文件的上传和下载,把远程机器的文件拷贝的本地(下载),以及把本地的文件上传到远程机器(上传)
scp(secure copy):使用的协议是ssh协议
本地路径比较好写:可以使用绝对路径和相对路径
远程路径比较难处理:用户名@远程服务器IP:目标路径路径 (这是一种指定远程路径的方法)

示例,使用windows上传文件到ubuntu虚拟机

  1. 最开始没有上传时ubunt虚拟几个普通用户加目录文件
    在这里插入图片描述
  2. 使用windows将本地文件上传到Ubuntu系统中mask用户的根目录下
    scp FileName UserName@TargetIP: targetfile
scp 要上传的文件名 目标机器的用户名@目标机器的IP:上传文件的目标位置

在这里插入图片描述

  1. 登录Ubuntu服务器可以查看到上传的文件
    在这里插入图片描述

  2. 从Ubuntu服务器下载文件
    在这里插入图片描述

除了上面这样使用用户名和密码进行验证实现上传和下载功能,我们还可以使用密钥和公钥的方式进行验证登录,在验证身份时我们会用自己的密钥和别人传过来的公钥进行配对,如果匹配成功,那么就可以实现登录等一系列操作

  1. 生成自己的公钥和私钥,先cd 到自己目录下的 .ssh/ 目录
    在这里插入图片描述

  2. 查看自己的公钥和私钥,id_rsa就是我们创建的私钥,id_rsa.pub就是我们创建的公钥
    在这里插入图片描述

  3. 有了公钥我们就可以让其他设备直接使用公钥和我们建立连接,这里使用的时gitee代码管理仓库来实现我们的对接,查看公钥并且将公钥配置在我们的gitee仓库之后,我们就可以不用输入密码直接在gitee仓库上push,clone,pull代码
    在这里插入图片描述

在这里插入图片描述
此时我们就可以在Ubuntu上快乐的实现操作gitee仓库的代码啦

c在linux上的编译过程

c语言程序在linux上运行,首先编译器会将 *.h文件和 *.c文件进行预处理形成预处理后文件 *.i文件,然后 *.i 文件会经过编译形成 *.s 汇编文件 ,然后再经过汇编形成 *.o 目标文件 ,最后再进行引导代码和库函数的链接 形成没有后缀的 * 可执行文件

在这里插入图片描述

预处理指令
g++ -E hello.c -o hello.i
// -E代表执行预处理
// -o是指定输出文件

1. 预处理的作用

执行预处理指令,预处理指令包含如下指令
(1)#include 文件包含
(2)#define M 5 宏定义(简单的文本替换)
(3)#define size(a)(sizeof(a) / sizeof(a[0])) 宏定义

宏开关
#if #else #endif(不常用)

源代码在这里插入图片描述
执行代码进行预处理

`g++ -E hello.c -o hello.i`

预处理之后生成的代码
在这里插入图片描述

#ifdef N #else #endif(常用)
防御式声明,为了避免重复包含多个头文件
源代码
在这里插入图片描述
执行代码进行预处理

g++ -E hello.c -o hello.i

预处理之后的代码
在这里插入图片描述
重新执行一下代码进行编译,后面的 -D表示添加define宏定义 后面的N表示添加的宏定义名称叫做N

g++ -E hello.c -o hello.i -D N

编译之后的代码
在这里插入图片描述
我们可以看到相同的代码但是再我们执行不同的编译指令之后,预处理出来的代码都是不一样的,这样子就给我们后面进行移动开发进行不同设备之间的代码编译时提供了便捷

#ifndef #else #endif
执行是上面的相反结果

2. 编译

将c语言代码编译成汇编代码
两种风格的汇编代码
(1)AT&T汇编
(2)x86/x86_64
他俩的区别就是目标寄存器和原寄存器位次不一样,他俩刚好反过来的
源代码
在这里插入图片描述
执行以下代码(先将源代码进行预处理再进行编译)
gcc -E hello.c -o hello.i
gcc -S helli.c -o hello.s
或者一步到位,直接将源代码编译成 *.s 汇编代码
gcc -S hello.c -o hello.i
在这里插入图片描述

pushq %rbp  //会将%rbp寄存器的值保存在栈帧中
movq %rsp , %rbp //会将%rsp 的值移动到%rbp中,这样他们相减为0,说明main函数的栈帧大小为0
leaq .LC0(%rip),%rdi //%rip中存储的是hello world字符串的地址,会将此地址赋值给 %rdi ,%rdi一般是存储第一参数
call puts@PLT //调用printf内置函数
movl $0,%eax //执行return 0 的操作,将0 存储在%eax寄存器中
popq  %rbp //恢复%rbp寄存器的值
push 入栈		mov 移动(赋值)		pop 出栈		lea (load effictive address)相当于&,加载有效地址
call 函数调用		ret 函数返回                     
%rbp -->base pointer 栈帧基址寄存器
%rsp -->stack pointer 栈顶寄存器
%eax -->存储返回值

在这里插入图片描述

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

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

相关文章

微信自动批量添加好友的方法

在现在的营销中微信已成为一种重要的沟通方式。微信目前是没有自动批量添加好友的功能,需要运营者一个一个手动去添加,这样太过于浪费时间,并且加频繁了还容易被封号,今天给大家介绍几种手动批量加好友的方式以及怎么借助第三方软…

深入理解AQS之ReentrantLock源码分析

开题:如何自己生成一把独占锁? 1. 管程 — Java同步的设计思想 管程:指的是管理共享变量以及对共享变量的操作过程,让他们支持并发。 互斥:同一时刻只允许一个线程访问共享资源; 同步:线程之间…

【测试】丝滑版本测试记录2023-10-13

目录 四组24个视频拉取 视频拉取的带宽 本地内存不足 四组24个视频拉取 视频拉取的带宽 本地内存不足 由于 edge需要内存大几百M,加截wasm要更多一点,只剩下 400M,不足以使用

git+gitee代码上传

gitgitee代码上传 1、git应用工具下载安装 gitee应用注册并创建仓库点创建后进入到仓库 git命令关于.gitignore只执行一次的命令经常执行的命令 1、git应用工具 下载安装 https://git-scm.com/downloads $ git --version git version 2.39.0.windows.2代码仓库: …

全力以赴,火山引擎边缘云代表团出战亚运会

END 未来,火山引擎边缘云赛事阵容将继续全力以赴,通过领先、可信赖的云和智能技术,助力游戏行业呈现更加精彩的竞技赛事。

LeetCode【240】搜索二维矩阵

题目&#xff1a; 思路&#xff1a; 1、单靠对角线元素无法判定位置 2、主要逐行进行二分 代码&#xff1a; public boolean searchMatrix(int[][] matrix, int target) {int rows matrix.length;int columns matrix[0].length;// 按行进行二分for (int i 0; i < rows…

Apipost连接数据库详解

Apipost提供了数据库连接功能&#xff0c;在接口调试时可以使用数据库获取入参或进行断言校验。目前的Apipost支持&#xff1a;Mysql、SQL Sever、Oracle、Clickhouse、达梦数据库、PostgreSQL、Redis、MongoDB 8种数据库的连接操作 新建数据库连接&#xff1a; 在「项目设置…

ue5蓝图请求接口

安装与使用 1、在虚幻商城搜索 VaRest 插件 2、选择自己项目的对应版本安装 3、查看是否安装成功 4、进入项目后,分别启动VaRest、JSON Blueprint Utilities两个插件(勾选后会提示重启项目) 5、基本用法:打开关卡蓝图使用(url改为自己的接口、Verb是请求方式) 5.1、或者…

了解什么是JWT

目录 JWT 是什么 有什么用 Jwt的使用 依赖 工具类 过滤器 控制器 配置 测试类 案列 JWT 是什么 JWT是指JSON Web Token&#xff0c;它是一种用于在网络应用间安全传递信息的开放标准&#xff08;RFC 7519&#xff09;。JWT通过使用私钥对JSON数据进行签名或者使用公钥…

蜘蛛飞机大战

欢迎来到程序小院 蜘蛛飞机大战 玩法&#xff1a; 点击开始游戏&#xff0c;鼠标移动控制方向&#xff0c;可自由移动飞机打剁掉方飞机下落的子弹并打掉敌方飞机&#xff0c;三次生命&#xff0c;不同关卡不同奖励&#xff0c;快去闯关吧^^。开始游戏https://www.ormcc.com/pl…

高数笔记03:几何、物理应用

图源&#xff1a;文心一言 本文是我学习高等数学几何、物理应用的一些笔记和心得&#xff0c;希望可以与考研路上的小伙伴一起努力上岸~~&#x1f95d;&#x1f95d; 第1版&#xff1a;查资料、画导图~&#x1f9e9;&#x1f9e9; 参考资料&#xff1a;《高等数学 基础篇》武…

计算机操作系统-第五天

目录 1、系统调用 什么是系统调用&#xff1f;有何作用&#xff1f; 系统调用与库函数的区别&#xff1a; 为什么系统调用是必须的&#xff1f; 什么功能要用到系统调用&#xff1f; 系统调用的过程&#xff1a; 1、系统调用 什么是系统调用&#xff1f;有何作用&#…

如何通过 NFTScan API 按照 NFT 合约地址检索数据?

在当前 NFT 市场还在不断扩张的背景下&#xff0c;各种 NFT 项目依旧是井喷式涌现&#xff0c;投资者和开发者都面临获取项目全貌数据的困境。公链上提取和处理大量的数据既费时又费力&#xff0c;缺乏全面的信息支持&#xff0c;将难以深入判断一个 NFT 项目的真实情况&#x…

Vite项目打包构建优化(视图分析、CDN引入)

使用rollup-plugin-visualizer插件先分析模块占用空间 安装依赖&#xff1a;pnpm i rollup-plugin-visualizervite配置&#xff1a; plugins: [vue(), visualizer({filename: analysis.html, // 分析图生成的文件名open:true // 如果存在本地服务端口&#xff0c;将在打包后自…

Photoshop Lightroom 2024 (Lr2024)最新安装特别版

Adobe Photoshop Lightroom 2024是一款由Adobe Systems公司发布的软件&#xff0c;其英文直译为“明室”&#xff0c;也常被称为数码暗房。它主要用于图片管理和后期润色&#xff0c;包括图片导入、整理、编辑、导出等全过程&#xff0c;不仅可以对图片进行编辑&#xff0c;还可…

linux usb驱动移植(1)

1. USB总线 1.1 usb总线定义 在linux 设备模型中&#xff0c;总线由bus_type 结构表示&#xff0c;我们所用的 I2C、SPI、USB 都是用这个结构体来定义的。该结构体定义在 include/linux/device.h文件中&#xff1a; struct bus_type {const char *name;const c…

WiFi 6在工业物联网应用中有哪些优势?

Wi-Fi 6 (802.11ax)作为新一代应用成熟的无线通信技术&#xff0c;也被越来越广泛地部署在工业物联网中。WiFi 6 相比其前身 Wi-Fi 5 (802.11ac) 进行了多方面的改进提升&#xff0c;非常适合工业环境的苛刻要求。现在也有许多工业网关支持WiFi 6无线技术标准&#xff0c;为工业…

kantts docker化

kan-tts docker本地化 环境安装 下载docker镜像(python3.8的) registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.8.0-py38-torch2.0.1-tf2.13.0-1.9.2 安装基础模型 pip install modelscope 安装语音模型 pip install "modelscope…

KubeSphere 社区双周报 | FluentBit 新增 tcp 输入插件 | 2023.09.29-10.12

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者&#xff0c;并对近期重要的 PR 进行解析&#xff0c;同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为&#xff1a;2023.09.29-2023.…

2023年09月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 Python编程(1~6级)全部真题・点这里 第1题:红与黑 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 时间限…