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提供了大量能使我们快速便捷地处理数据的函数和方法。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C之(15)cppcheck使用介绍

C之(15)cppcheck使用介绍 Author: Once Day Date: 2025年3月23日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可查看专栏: Linux实践记录_Once_day的博客-CS…

Ant Design Vue Select 选择器 全选 功能

Vue.js的组件库Ant Design Vue Select 选择器没有全选功能&#xff0c;如下图所示&#xff1a; 在项目中&#xff0c;我们自己实现了全选和清空功能&#xff0c;如下所示&#xff1a; 代码如下所示&#xff1a; <!--* 参数配置 - 风力发电 - 曲线图 * 猴王软件学院 - 大强 …

CaiT (Class-Attention in Image Transformers):深度图像Transformer的创新之路

CaiT (Class-Attention in Image Transformers)&#xff1a;深度图像Transformer的创新之路 近年来&#xff0c;Transformers 模型在自然语言处理领域的成功逐渐扩展到了计算机视觉领域&#xff0c;尤其是图像分类任务中&#xff0c;Vision Transformer (ViT) 的提出打破了卷积…

Qt之MVC架构MVD

什么是MVC架构&#xff1a; MVC模式&#xff08;Model–view–controller&#xff09;是软件工程中的一种软件架构模式&#xff0c;把软件系统分为三个基本部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controll…

数组,指针 易混题解析(二)

目录 一.基础 1. 2. 二.中等 1. 坑 2. 3.指针1到底加什么 三.偏难 1.&#xff08;小端 x86&#xff09; 2.通过数组指针进行偏移的时候怎么偏移 3. 大BOSS &#xff08;1&#xff09;**cpp &#xff08;2&#xff09;*-- * cpp 3 &#xff08;3&#xff09;*c…

数据建模流程: 概念模型>>逻辑模型>>物理模型

数据建模流程 概念模型 概念模型是一种高层次的数据模型&#xff0c;用于描述系统中的关键业务概念及其之间的关系。它主要关注业务需求和数据需求&#xff0c;而不涉及具体的技术实现细节。概念模型通常用于在项目初期帮助业务人员和技术人员达成共识&#xff0c;确保对业务需…

spring-security原理与应用系列:建造者

目录 1.构建过程 AbstractSecurityBuilder AbstractConfiguredSecurityBuilder WebSecurity 2.建造者类图 SecurityBuilder ​​​​​​​AbstractSecurityBuilder ​​​​​​​AbstractConfiguredSecurityBuilder ​​​​​​​WebSecurity 3.小结 紧接上一篇文…

结合代码理解Spring AOP的概念(切面、切入点、连接点等)

前情回顾 对AOP的理解 我这篇文章介绍了为什么要有AOP&#xff08;AOP解决了什么问题&#xff09;以及如何实现AOP。但在实现AOP的时候&#xff0c;并未探讨AOP相关概念&#xff0c;例如&#xff1a;切面、切入点、连接点等。因此&#xff0c;本篇文章希望结合代码去理解Spring…

【AI大模型】搭建本地大模型GPT-NeoX:详细步骤及常见问题处理

搭建本地大模型GPT-NeoX:详细步骤及常见问题处理 GPT-NeoX是一个开源的大型语言模型框架,由EleutherAI开发,可用于训练和部署类似GPT-3的大型语言模型。本指南将详细介绍如何在本地环境中搭建GPT-NeoX,并解决过程中可能遇到的常见问题。 1. 系统要求 1.1 硬件要求 1.2 软…

Copilot提示词库用法:调整自己想要的,记住常用的,分享该共用的

不论你是 Microsoft 365 Copilot 的新用户还是熟练运用的老鸟&#xff0c;不论你是使用copilot chat&#xff0c;还是在office365中使用copilot&#xff0c;copilot提示词库都将帮助你充分使用copilot这一划时代的产品。它不仅可以帮助你记住日常工作中常用的prompt提示词&…

Spring:AOP

一、AOP概念的引入 为了更好地介绍AOP&#xff0c;我们以登录作为示例。 首先&#xff0c;我们先来看一下登录的原理&#xff1a; 如图所示&#xff0c;这是一个基本的登录原理图&#xff0c;但是如果我们想要在这个登录过程上再添加一些新的功能&#xff0c;比如权限校验&am…

Ubuntu实时读取音乐软件的音频流

文章目录 一. 前言二. 开发环境三. 具体操作四. 实际效果 一. 前言 起因是这样的&#xff0c;我需要在Ubuntu中&#xff0c;实时读取正在播放音乐的音频流&#xff0c;然后对音频进行相关的处理。本来打算使用的PipewireHelvum的方式实现&#xff0c;好处是可以直接利用Helvum…

CUDA 学习(4)——CUDA 编程模型

CPU 和 GPU 由于结构的不同&#xff0c;具有不同的特点&#xff1a; CPU&#xff1a;擅长流程控制和逻辑处理&#xff0c;不规则数据结构&#xff0c;不可预测存储结构&#xff0c;单线程程序&#xff0c;分支密集型算法GPU&#xff1a;擅长数据并行计算&#xff0c;规则数据结…

前端会话控制技术:cookie/session/token

目录 前端中的 Cookie、Session 和 Token&#xff1a;详解与应用1. Cookie1.1 什么是 Cookie&#xff1f;1.2 Cookie 的工作原理1.3 Cookie 的特点1.4 Cookie 的用途1.5 Cookie 的安全性 2. Session2.1 什么是 Session&#xff1f;2.2 Session 的工作原理2.3 Session 的特点2.4…

MATLAB实现基于“蚁群算法”的AMR路径规划

目录 1 问题描述 2 算法理论 3 求解步骤 4 运行结果 5 代码部分 1 问题描述 移动机器人路径规划是机器人学的一个重要研究领域。它要求机器人依据某个或某些优化原则 (如最小能量消耗&#xff0c;最短行走路线&#xff0c;最短行走时间等)&#xff0c;在其工作空间中找到一…

Shopify Checkout UI Extensions

结账界面的UI扩展允许应用开发者构建自定义功能&#xff0c;商家可以在结账流程的定义点安装&#xff0c;包括产品信息、运输、支付、订单摘要和Shop Pay。 Shopify官方在去年2024年使用结账扩展取代了checkout.liquid&#xff0c;并将于2025年8月28日彻底停用checkout.liquid…

电阻的阻值识别

电阻买回来是有偏差的&#xff0c;不同的电阻种类&#xff0c;它的偏差大小会不一样&#xff0c;偏差越小的肯定越贵 主要看要求的精度要求是否越高 色环电阻或者说插件电阻 用来读数的几个色环它是比较靠近的&#xff0c;精度的色环跟用来读数的几个色环的间距会大一点点。 间…

quartz.net条件执行

quartz.net条件执行 在使用Quartz.NET时&#xff0c;你可能需要基于某些条件来决定是否执行一个任务。Quartz.NET本身并不直接支持基于条件执行任务的功能&#xff0c;但你可以通过一些策略来实现这一需求。下面是一些方法来实现基于条件的任务执行&#xff1a; 1. 使用触发器…

计算机操作系统(四) 操作系统的结构与系统调用

计算机操作系统&#xff08;四&#xff09; 操作系统的结构与系统调用 前言一、操作系统的结构1.1 简单结构1.2 模块化结构1.3 分层化结构1.4 微内核结构1.5 外核结构 二、系统调用1.1 系统调用的基本概念1.2 系统调用的类型 总结&#xff08;核心概念速记&#xff09;&#xf…

NSSCTF(MISC)——[SUCTF 2018 招新赛]single-dog

相应的做题地址&#xff1a;https://www.nssctf.cn/problem/2324 分离图片 在1.txt中得到一段颜文字 http://www.hiencode.com/aaencode.html 解密得到flag