当前位置: 首页 > article >正文

linux命令行工具进阶

文章目录

  • 前言
  • ssh免密登录,免密码登录,公私钥
  • 查看与修改IP地址
    • 临时修改
    • 永久修改
  • mount临时切换根文件系统
  • 永久切换根文件系统
  • loop文件
  • parted
  • initramfs
  • uboot command line
  • 总结


前言

本文记录了一些不经常用到,但在某个时刻需要用到的一些指令。
免密ssh登录到远程


提示:以下是本篇文章正文内容,下面案例可供参考

ssh免密登录,免密码登录,公私钥

在客户端执行 ssh-keygen -t rsa(或更安全的 ed25519 算法),默认在 ~/.ssh 目录生成 id_rsa(私钥)和 id_rsa.pub(公钥)。生成时可选择是否设置私钥密码增强安全性

使用 ssh-copy-id -i ~/.ssh/id_rsa.pub user@host 自动完成公钥追加到服务端 ~/.ssh/authorized_keys

查看与修改IP地址

ifconfig <eth0> <ip> netmask <mask>

临时修改

永久修改

mount临时切换根文件系统

  1. 挂在新的根分区
    mount /dev/dev /mnt
    
  2. 挂载必要的文件系统proc, sys, dev, run
    mount --bind /dev   /mnt/dev
    mount --bind /sys   /mnt/sys
    mount --bind /proc  /mnt/proc
    mount --bind /run   /mnt/run
    
  3. 进入chroot环境
    chroot /mnt
    
  4. 执行操作

    在chroot环境中,可以执行安装、修复等操作
  5. 退出chroot环境
    exit
    umount /mnt/{proc,sys,dev,run}
    umount /mnt
    

永久切换根文件系统

switch_root /mnt /sbin/init
只有pid==1的进程才能调用该命令,切换rootfs并执行命令

loop文件

parted

# 创建gpt分区表 
parted -s <device> mklabel gpt# 创建分区并添加label
parted -s <dev> mkpart primary 262144 1310720# 命名分区label
parted <dev> name 1 recoveryparted -s <dev> mkpart recovery ext4 2097152s 3145727s将文件挂载为loops设备
sudo losetup -fP <filename>
# 显示设备号
loop_file=$(losetup -j <filename>)yes | sudo mkfs.ext4 ${loop_file}p1
yes | sudo mkfs.ext4 ${loop_file}p2
yes | sudo mkfs.ext4 ${loop_file}p3
# 取消loop的挂载
sudo losetup -d $loop_file

mbr分区创建并格式化脚本


#!/bin/bashset -eecho -e "hello, type the device/file path"read diskif [[ ! -e $disk ]]; thenecho "磁盘设备/文件 $disk 不存在,请检查后重新输入"exit 1
fiecho "manipulate $disk, are you sure?[y/n]"
read -p "(y/n):" confirmcase "$confirm" iny) echo "continue execution...";;n) echo "undo"exit 1;;*) echo "invalid input"exit 1;;
esacecho "正在创建msdos分区表..."
parted -s $disk mklabel msdos
echo "msdos分区表创建成功"echo "正在创建boot分区"
parted -s $disk mkpart primary fat32 2048s 264191secho "正在创建分区 1 262144s-1310720s recovery, 请稍等..."
parted -s $disk mkpart primary ext4 2097152s 3145727secho "正在创建分区 2 1312768s-7604224s system, 请稍等..."
parted -s $disk mkpart primary ext4 3145728s 9437183secho "正在创建分区 3 7606272s-10480000s data, 请稍等..."
parted -s $disk mkpart  primary  ext4 9437184s 60260352secho "正在格式化分区..."
mkfs.vfat ${disk}p1  # boot
mkfs.ext4 ${disk}p2  # recovery
mkfs.ext4 ${disk}p3  # rootfs
mkfs.ext4 ${disk}p4  # datae2label ${disk}p1 "boot"
e2label ${disk}p2 "recovery"
e2label ${disk}p3 "rootfs"
e2label ${disk}p4 "data"# sudo losetup -fP $disk
# loop_file=$(losetup -j $disk)
# loop_file=$(echo $loop_file | cut -d ':' -f 1 | xargs)
# echo loop dev: [$loop_file]
# yes | sudo mkfs.ext4 ${loop_file}p1
# yes | sudo mkfs.ext4 ${loop_file}p2
# yes | sudo mkfs.ext4 ${loop_file}p3
# sudo losetup -d $loop_file
echo "格式化成功"
exit 0

initramfs

制作initramfs.cpio

https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt

#!/bin/sh# Copyright 2006 Rob Landley <rob@landley.net> and TimeSys Corporation.
# Licensed under GPL version 2if [ $# -ne 2 ]
thenecho "usage: mkinitramfs directory imagename.cpio.gz"exit 1
fiif [ -d "$1" ]
thenecho "creating $2 from $1"(cd "$1"; find . | cpio -o -H newc ) > "$2"
elseecho "First argument must be a directory"exit 1
fi

uboot command line

load mmc <设备> <内存地址,一般大于0x80000000> ${位置}/文件名,如vmlinux等printenv # 打印环境变量setenv bootdelay 5  # 设置启动倒计时为5s
setenv bootargs 'console=ttyS0,115200 root/dev/mmcblk0p2 rw'  # 设置内核参数
saveenv  # 将当前环境变量保存到非易失性存储(如Flash或eMMC)bootz 启动Linux的zImage内核镜像,支持设备树(DTB)和initrd
bootz [内核地址] [initrd地址:大小]/[-] [设备树地址]bootm 启动uImage格式的内核镜像,常用于旧版U-Boot

当内核镜像和initramfs文件编译在一起时,内核启动自动就会进入initramfs中

当内核镜像和initramfs文件分开时可以由下面两种方法使用initramfs

  • 修改设备树根节点
\ {chosen {stdout-path = "serial2:115200n8";linux,initrd-start = <0xb0000000>;  # initramfs 起始内存地址linux,initrd-end = <0xc6539600>;    # initramfs起始内存地址 + 文件大小};  
}
  • 或者,通过bootargs向内核传递参数setenv bootargs "console=ttyS0,115200 initrd=${ramdisk_addr_r},${filesize}"

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

相关文章:

linux命令行工具进阶

文章目录 前言ssh免密登录&#xff0c;免密码登录&#xff0c;公私钥查看与修改IP地址临时修改永久修改 mount临时切换根文件系统永久切换根文件系统loop文件partedinitramfsuboot command line总结 前言 本文记录了一些不经常用到&#xff0c;但在某个时刻需要用到的一些指令…...

Linux系统管理实战:文件权限配置、用户组协作与日志处理全解析

1、创建/www目录&#xff0c;在/www目录下新建name和https目录&#xff0c;在name和https目录下分别创建一个index.html文件&#xff0c;name下面的index.html文件中包含当前主机的主机名&#xff0c;https目录下的index.html文件中包含当前主机的ip地址。 &#xff08;1&…...

[自动化] 【八爪鱼】使用八爪鱼实现CSDN文章自动阅读脚本

在CSDN上&#xff0c;文章的阅读量往往是衡量内容影响力的一个重要指标。为了测试自动化手段能否提高阅读数&#xff0c;我尝试使用网页自动化工具来模拟人工阅读某个ID的文章。 1. 网页自动化的常见方案 谈到网页自动化&#xff0c;Selenium 是一个最常见的选择。它可以通过…...

Go语言分布式锁实战:dlock助力构建高并发稳定系统

在构建分布式系统时&#xff0c;一个常见且棘手的问题便是资源竞争和数据一致性问题。分布式锁作为一种常用的解决方案&#xff0c;在多个进程或节点之间协调访问共享资源时显得尤为重要。今天&#xff0c;我们将介绍一款分布式锁库——dlock&#xff0c;并通过详细的使用示例带…...

如何提高G口服务器的安全性?

G口服务器可以支持千兆网络传输速度&#xff0c;能够为企业提供更快的数据处理能力和传输能力&#xff0c;随着网络流量的不断增长以及复杂计算任务的普及&#xff0c;企业对于网络带宽的要求也在相应提高&#xff0c;而G口服务器则可以降低网络的延迟度&#xff0c;大幅度提高…...

为没有CMake配置的第三方库添加CMake配置

1 编写CMakeLists.txt cmake_minimum_required(VERSION 3.15) #如果你第三方库和自己的库没有xxxConfig.cmake #请修改项目名称和命名空间&#xff08;一般不需要&#xff09; project("pthreads" LANGUAGES C CXX) set(KC_NAMESPACE "") #set(K…...

Linux驱动编程 - seq_open、single_open使用方法

目录 前言: 一、seq_xxx 1、seq_xxx 函数介绍 1.1 seq_open 1.2 seq_read 1.3 seq_lseek 1.4 seq_release 1.5 格式化输出函数 2、seq_open 实例 二、single_xxx 函数 1、single_xxx 函数介绍 1.1 single_open 1.2 single_start 1.3 single_next 1.4 single_stop…...

N列股票收盘价为起点的马科维茨(Markowitz)均值—方差理论

1. 数据准备与收益率计算 输入数据&#xff1a; 假设你有一个矩阵&#xff0c;每一列代表一只股票的历史收盘价序列。每一行对应一个时间点的收盘价。 计算收益率&#xff1a; 马科维茨理论要求使用资产的收益率而非价格。常用的收益率计算方法有对数收益率或简单收益率。 2.…...

【嵌入式学习2】函数

目录 ## 函数 ## 函数分类 ## 函数定义 1、无参数无返回值 2、有参数无返回值 3、有参数有返回值 ## 函数声明 ## 局部变量和全局变量 ## 多文件编程 如何避免把同一个头文件 include 多次&#xff0c;或者头文件嵌套包含&#xff1f; 命令行编译文件 头文件包含的…...

模式搜索+扩散模型:FlowMo重构图像Token化的技术革命

图像Token化作为现代生成式AI系统的核心技术&#xff0c;长期面临对抗性训练不稳定、潜在空间冗余等挑战。斯坦福大学李飞飞与吴佳俊团队提出的FlowMo&#xff08;Flow towards Modes&#xff09;创新性地融合模式搜索与扩散模型&#xff0c;在多个关键维度突破传统方法局限&am…...

mac brew 安装的php@7.4 打开redis扩展

1. 找到php7.4的pecl目录 一般在这个位置 cd /usr/local/Cellar/php7.4/7.4.33_8/pecl/20190902 ls 一下 有个 redis.so 于是 直接去php.ini编辑了 php.ini的路径 vim /usr/local/etc/php/7.4/php.ini 把938行添加进去 然后重启一下 php7.4 brew services restart ph…...

OSPF多区域通信

作业要求: 1、多区域0SPF area 0、area10、are20 2、AR5、AR6作为stub区&#xff0c;使用环回接口与Pc1进行通信 第一步&#xff1a;为各端口配置IP地址 AR1: <Huawei>sys [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 5.5.5.1 24 [Huawei-GigabitEther…...

C++模板编程与元编程面试题及参考答案(精选100道题)

目录 解释 C++ 模板的实例化过程,显式实例化与隐式实例化的区别 模板函数在不同翻译单元中的 ODR(单一定义规则)问题 模板参数推导失败的可能场景及解决方法 模板函数中 auto 返回类型的推导规则 如何限制模板函数仅接受特定类型的参数?(非 C++20 概念场景) 函数模板…...

括弧匹配检验(信息学奥赛一本通-1354)

【题目描述】 假设表达式中允许包含两种括号&#xff1a;圆括号和方括号&#xff0c;其嵌套的顺序随意&#xff0c;如&#xff08;&#xff3b; &#xff3d;&#xff08;&#xff09;&#xff09;或&#xff3b;&#xff08;&#xff3b; &#xff3d;&#xff3b; &#xff3…...

三、重学C++—C语言内存管理

上一章节&#xff1a; 二、重学C—C语言核心-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/146191640?spm1001.2014.3001.5502 本章节代码&#xff1a; cPart2 CuiQingCheng/cppstudy - 码云 - 开源中国https://gitee.com/cuiqingcheng/cppstudy/tree/…...

算法题(105):小猫爬山

审题&#xff1a; 本题需要我们找出将n个小猫放在有限重的缆车上运下山所需的最小缆车数 时间复杂度分析&#xff1a;本题的数据量小于等于18&#xff0c;所以我们在做好剪枝的前提下可以使用深度优先搜索解题 思路&#xff1a; 方法一&#xff1a;dfs 搜索策略&#xff1a;将小…...

C语言-适配器模式详解与实践

文章目录 C语言适配器模式详解与实践1. 什么是适配器模式&#xff1f;2. 为什么需要适配器模式&#xff1f;3. 实际应用场景4. 代码实现4.1 UML 关系图4.2 头文件 (sensor_adapter.h)4.3 实现文件 (sensor_adapter.c)4.4 使用示例 (main.c) 5. 代码分析5.1 关键设计点5.2 实现特…...

线程的pthread_create、pthread_join、pthread_exit、pthread_detach函数

线程的创建&#xff08;pthread_create&#xff09; pthread_t tid;//本质是unsigned long类型&#xff0c;打印时得到的是该线程的虚拟地址int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine)(void*), void *arg ); pthread_t *thre…...

测试专项4:AI算法测试在测试行业中,该如何定位自己自述

这岗位到底干啥的&#xff1f; 打个比方&#xff1a; 你就像AI模型的“质检员产品经理风险顾问”三合一。 质检员&#xff1a; 别人造了个AI模型&#xff08;比如人脸识别系统&#xff09;&#xff0c;你不能光看它实验室成绩好&#xff0c;得把它丢到现实里折腾&#xff1a;…...

QT-LINUX-Bluetooth蓝牙开发

BlueToothAPI QT-BlueToothApi Qt Bluetooth 6.8.2 官方提供的蓝牙API不支持linux。 D-Bus的API实现蓝牙 确保系统中安装了 BlueZ(版本需≥5.56),并且 Qt 已正确安装并配置了 D-Bus 支持。 默默看了下自己的版本.....D-BUS的API也不支持。 在 D-Bus 中,org 目录是 D-Bus…...

【经验总结】AUTOSAR架构下NvMBlock无效问题分析

目录 前言 正文 1.问题描述 2.问题原因 3.深入分析 3.1NvM_InvalidateNvBlock分析 3.2NvBlock无效后NvM_ReadBlock行为分析 3.3NvBlock无效后NvM_WriteBlock行为分析 4.总结 前言 最近在做所有NvMBlock测试的时候,发现一个NvMBlock始终无法测试成功(写入Block值 --&…...

STM32 的tf卡驱动

基于STM32的TF卡驱动的基本实现步骤和相关代码示例,主要使用SPI接口来与TF卡进行通信。 硬件连接 将TF卡的SPI接口与STM32的SPI引脚连接,通常需要连接SCK(时钟)、MOSI(主出从入)、MISO(主入从出)和CS(片选)引脚。 软件实现 初始化SPI 配置SPI的工作模式、时钟频率…...

stress-ng命令详解

stress-ng 是一款功能强大的 Linux 系统压力测试工具&#xff0c;能够模拟多种复杂负载场景&#xff0c;覆盖 CPU、内存、磁盘 I/O、进程调度等核心资源&#xff0c;帮助开发者验证系统在高负载下的稳定性与性能表现。以下是其核心功能、参数解析及实战案例。 一、工具简介与安…...

【C语言系列】数据在内存中存储

数据在内存中存储 一、整数在内存中的存储二、大小端字节序和字节序判断2.1什么是大小端&#xff1f;2.2练习2.2.1练习12.2.2练习22.2.3练习32.2.4练习42.2.5练习52.2.6练习6 三、浮点数在内存中的存储3.1练习3.2浮点数的存储3.2.1 浮点数存的过程3.2.2 浮点数取的过程 3.3题目…...

【中文翻译】第12章-The Algorithmic Foundations of Differential Privacy

由于GitHub项目仅翻译到前5章&#xff0c;我们从第6章开始通过大语言模型翻译&#xff0c;并导出markdown格式。 大模型难免存在错漏&#xff0c;请读者指正。 教材原文地址&#xff1a;https://www.cis.upenn.edu/~aaroth/Papers/privacybook.pdf 12 其他模型 到目前为止&…...

图解模糊推理过程(超详细步骤)

我们前面已经讨论了三角形、梯形、高斯型、S型、Z型、Π型6种隶属函数&#xff0c;下一步进入模糊推理阶段。 有关六种隶属函数的特点在“Pi型隶属函数&#xff08;Π-shaped Membership Function&#xff09;的详细介绍及python示例”都有详细讲解&#xff1a;https://lzm07.b…...

datawhale组队学习-大语言模型-task5:主流模型架构及新型架构

目录 5.3 主流架构 5.3.1 编码器-解码器架构 5.3.2 因果解码器架构 5.3.3 前缀解码器架构 5.4 长上下文模型 5.4.1 扩展位置编码 5.4.2 调整上下文窗口 5.4.3 长文本数据 5.5 新型模型架构 5.5.1 参数化状态空间模型 5.5.2 状态空间模型变种 5.3 主流架构 在预训…...

为什么后端路由需要携带 /api 作为前缀?前端如何设置基础路径 /api?

一、为什么后端路由需要携带 /api 作为前缀&#xff1f; 1. 区分 API 端点与其他路由 在 Web 应用程序中&#xff0c;后端不仅需要处理 API 请求&#xff0c;还可能需要处理静态资源&#xff08;如 HTML、CSS、JS 文件&#xff09;或其他服务&#xff08;如 WebSocket&#x…...

C++ 关系运算符重载和算术运算符重载的例子,运算符重载必须以operator开头

在C中&#xff0c;运算符重载允许为用户定义的类型&#xff08;类或结构体&#xff09;赋予某些内置运算符的功能。下面是一个关于关系运算符重载&#xff08;&#xff09;和算术运算符重载&#xff08;&#xff09;的简单例子。 示例&#xff1a;复数类的运算符重载 将创建一…...

建造者模式 (Builder Pattern)

建造者模式 (Builder Pattern) 是一种创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 一、基础 1.1 意图 将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 1.2 适用场景 当创建复杂对象的算法应该…...