C高级学习笔记

……接上文

硬链接和软连接(符号链接)

硬链接

硬链接文件可以理解文件副本(可以理解为复制粘贴)

ln 根据Linux系统分配文件的inode(ls -li)进行建立没有办法跨越文件系统

格式ln 链接文件(源文件) 生成链接文件名字(目标文件(自定义))

通过ls -li 命令查看inode

特点

  1. 硬链接属性 - 相当于生成一个副本 起别名
  2. 源文件删除链接文件仍然存在
  3. 删除源文件即使创建一个源文件同名文件也和硬链接文件之间不存在链接关系
  4. 修改其中一个文件内容另一个文件也会更改
  5. 硬链接文件源文件拥有相同inode

软连接

理解为windows快捷方式

ln -s 利用文件路径来创建最好是从绝对路径开始

格式ln -s 链接文件(源文件) 生成链接文件名字(目标文件(自定义))

特点

  1. 软连接文件属性l 相当于快捷方式
  2. 修改内容都变化
  3. 软连接文件可以连接目录
  4. 源文件删除链接断开重新原位置创建同名文件即可重新链接
  5. 拷贝目录软连接可以直接拷贝如果需要拷贝普通文件软连接文件需要加-d保证参数可以存在链接属性

cp -d 软连接文件(普通文件)路径

软连接和硬链接的区别

首先,从使用的角度讲,两者没有任何区别,都与正常文件访问方式一样,支持读写,如果是可执行文件的话也可以直接执行

本质区别:

硬链接:本质上是同一个文件

软连接:本质上不是同一个文件

跨设备区别:

硬链接:不支持

软连接:支持

inode区别:

硬链接:相同

软连接:不同

连接数:

硬链接:创建新的硬链接,连接数会增加,删除硬链接,链接数减少

软连接:创建或删除,链接数不会变化

文件夹:

硬链接:不支持

软连接:支持

压缩和解压

gzip和gunzip

特点

  1. 只能对单个普通文件压缩或解压
  2. 不能进行归档压缩解压源文件不存在
  3. 压缩生成的压缩格式.gz格式

命令:压缩: gzip 文件名 ---->默认生成文件名.gz 压缩文件

解压 gunzip 文件名.gz ---->默认解压 文件名

bzip2和bunzip2(特点和gzip相似)

压缩生成压缩格式.bz2 格式

压缩.bz2 文件名 -----> 默认生成文件名.bz2 压缩文件

解压 gunzip 文件名.gz ---->默认解压 文件名

xz和unxz(特点和gzip相似)

压缩生成压缩格式.xz 格式

压缩.xz 文件名 -----> 默认生成文件名.xz 压缩文件

解压 unxz 文件名.xz ---->默认解压 文件名

zip和unzip

zip命令用于一个多个文件压缩单一压缩文件 .zip

注意:

1)具有归档功能,并进行压缩

2)可以压缩文件夹,后缀为.zip。压缩文件夹需加-r

3)压缩或者解压后源文件依然存在

压缩zip 压缩文件名 压缩文件列表

解压unzip 压缩文件名

tar

选项

-c:创建一个新的归档文件

-v:显示归档和释放的过程信息

-x:释放归档文件

-f:用户指定归档文件的文件名

-t:列出tar归档文件中包含的文件或目录

-j:由tar生成归档,然后由bzip2压缩 .bz2

-z:由tar生成归档,然后由gzip压缩 .gz

-J: 由tar生成归档,然后由xz压缩 .xz

格式

tar 选项 压缩文件名 压缩文件列表

压缩组合:(*表示文件列表,压缩谁写谁)

tar -cvjf file.tar.bz2 *

tar -cvzf file.tar.gz *

tar -cvJf file.tar.xz *

注:tar -cvf file.tar * ----->只归档不压缩

解压:tar -xvf xxx.tar.压缩格式

注意:

1)具有归档功能,并通过选项可以进行压缩或解压

2)压缩或解压后源文件存在

3)需要写全压缩或解压的文件名格式:

压缩文件名.tar.压缩格式

压缩

解压

归档

tar -tf 压缩文件名 查看压缩文件内容

shell脚本编程

shell ---- > 解析器sh ksh csh bash

shell 命令--->shell解析命令

shell脚本---->命令的有序集合

shell脚本编程shell命令结合一些按照一定的逻辑集合一起写到一个.sh文件实现一个多个功能脚本文件不需要编译可以直接执行

解释型python   脚本

编译型c   c++   java   汇编语言

写shell脚本文件步骤

  1. 创建一个脚本文件 touch xxx.sh
  2. 编辑脚本的内容 vi xxx.sh
  3. 执行脚本文件    
  1. bash xxx.sh
  2. 直接运行脚本 需要先更改权限 chmod 777 xxx.sh   运行 ./xxx.sh

shell变量

shell允许建立变量存储数据但是不支持数据类型

(如:整型、字符、浮点类型),所有赋值给变量的值都解释为一串字符。

变量定义格式

变量名=

等号两边不能有空格

变量$变量名

变量的分类

系统的环境变量 env或者printenv

系统配置好内置变量

export 变量名= 临时终端有效

永久生效只需要这个命令放到家目录的.bashrc当前用户有效。

若放到/etc/bash.bashrc 这个文件所有用户永久生效

自定义变量

变量的格式

变量名=变量
变量名='变量的值'
变量名="变量的值"
=两侧不能有空格
''不能$展开变量

修饰变量关键字

unset 变量名清空变量的不能清空readonly修饰变量

readonly 变量名只读变量不能修改

位置变量

$0 ---> 脚本名

$1-$9 ----> 获取1第九个命令行参数(外部参数)

${n} --->n:大于等于10的数 获取第10以上的命令行参数(外部参数)

$# ---> 获取所有外部参数个数不包含脚本名

$*或者$@ ----> 获取所有外部参数不包含脚本名

预定义变量

$? 获取上一句命令是否是正确执行结果

0为真 0:为

$$ :获取当前脚本进程ID

shell中的语句

1.功能性语句

#开始结束不被解释执行(即注释)

#!/bin/bash 告诉操作系统使用那种解析器执行脚本文件

2.结构性语句

任意的shell命令、用户程序或其它shell程序

3.说明性语句

条件测试语句多路分支语句循环语句循环控制语句

功能性语句

1.read(类似C语言中scanf)

终端获取赋值变量

格式read 变量名1 变量名2

提示语句read -p提示字符串 变量名1 变量名2

补充

read -s 变量 ---> 输入的信息不回显

read -t 秒数 变量 ---> 如果用户n秒不输入,就结束输入向后执行语句

read -n 个数 变量名 ---> 如果输入n个字符,自动停止

2.shell中的运算

shell本身不擅长运算,需要借助于运算符和其他的指令

1)expr

使用方法:

  1. expr中使用变量,必须加$
  2. 如果想要接收expr的结果,必须使用命令置换符
  3. expr中运算符两侧必须有空格 、不支持自增和shell中的幂运算
  4. expr中使用某些运算符是,需要转义 |、>、<、*...
  5. expr指令的结果,直接回显到终端上,可以使用命令置换符接收

expr 可以进行字符串运算

match 字符串 表达式
substr 字符串 偏移量 长度
index 字符串 字符
    返回字符在字符串中第一次被查找到时的下标,下标从1开始
length 字符串
    字符串的长度

2let

使用方法:

  1. let 变量名=表达式
  2. let运算时,运算符两侧不能有空格
  3. let中使用变量时,可以加$也可以不加
  4. 如果直接写成 let 表达式,表达式会运行,但是没有办法接收

                                                                                                                               未完待续……

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java基于SpringBoot+Vue的藏区特产销售平台

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

vim 分割窗口后,把状态栏给隐藏

一、基本环境 主机MacOs Sonoma 14.7主机终端Iterm2虚拟机Parallels Desktop 20 for Mac Pro Edition 版本 20.0.1 (55659)虚拟机-操作系统Ubuntu 22.04 最小安装 二、分割窗口后的截图&#xff0c;红色线条部分就是状态栏 分割后个布局是&#xff1a;顶部1行高度窗口&#x…

【数据结构】【线性表】栈的基本概念(附c语言源码)

栈的基本概念 讲基本概念还是回到数据结构的三要素&#xff1a;逻辑结构&#xff0c;物理结构和数据运算。 从逻辑结构来讲&#xff0c;栈的各个数据元素之间是通过是一对一的线性连接&#xff0c;因此栈也是属于线性表的一种从物理结构来说&#xff0c;栈可以是顺序存储和顺…

OpenOCD之J-Link下载

1.下载USB Dirver Tool.exe&#xff0c;选择J-Link dirver&#xff0c;替换成WinUSB驱动。&#xff08;⭐USB Dirver Tool工具可将J-Link从WinUSB驱动恢复为默认驱动⭐&#xff09; 下载方式 ①官方网址&#xff1a;https://visualgdb.com/UsbDriverTool/ ②笔者的CSDN链接&…

【JavaEE初阶 — 多线程】定时器的应用及模拟实现

目录 1. 标准库中的定时器 1.1 Timer 的定义 1.2 Timer 的原理 1.3 Timer 的使用 1.4 Timer 的弊端 1.5 ScheduledExecutorService 2. 模拟实现定时器 2.1 实现定时器的步骤 2.1.1 定义类描述任务 定义类描述任务 第一种定义方法 …

ssm168基于jsp的实验室考勤管理系统网页的设计与实现+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;实验室考勤管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本实验室考勤管…

原生微信小程序在顶部胶囊左侧水平设置自定义导航兼容各种手机模型

无论是在什么手机机型下&#xff0c;自定义的导航都和右侧的胶囊水平一条线上。如图下 以上图iphone12&#xff0c;13PRo 以上图是没有带黑色扇帘的机型 以下是调试器看的wxml的代码展示 注意&#xff1a;红色阔里的是自定义导航&#xff08;或者其他的logo啊&#xff0c;返回之…

Python 获取微博用户信息及作品(完整版)

在当今的社交媒体时代&#xff0c;微博作为一个热门的社交平台&#xff0c;蕴含着海量的用户信息和丰富多样的内容。今天&#xff0c;我将带大家深入了解一段 Python 代码&#xff0c;它能够帮助我们获取微博用户的基本信息以及下载其微博中的相关素材&#xff0c;比如图片等。…

springcloud alibaba之shcedulerx实现分布式锁

文章目录 1、shcedulerx简介2、基于mysq分布式锁实现3、注解方式使用分布式锁4、编码方式使用分布式锁 1、shcedulerx简介 springcloud alibaba shcedulerx看起来有点像xxl job那样的任务调度中间件&#xff0c;其实它是一个分布式锁框架&#xff0c;含有两种实现一种基于DB实…

【LLM训练系列02】如何找到一个大模型Lora的target_modules

方法1&#xff1a;观察attention中的线性层 import numpy as np import pandas as pd from peft import PeftModel import torch import torch.nn.functional as F from torch import Tensor from transformers import AutoTokenizer, AutoModel, BitsAndBytesConfig from typ…

Selenium的八种定位方式

1. 通过 ID 定位 ID 是最直接和高效的方式来定位元素&#xff0c;因为每个页面中的 ID 应该是唯一的。 from selenium import webdriverdriver webdriver.Chrome(executable_pathpath/to/chromedriver) driver.get(https://example.com)# 通过 ID 定位 element driver.find…

MySQL底层概述—1.InnoDB内存结构

大纲 1.InnoDB引擎架构 2.Buffer Pool 3.Page管理机制之Page页分类 4.Page管理机制之Page页管理 5.Change Buffer 6.Log Buffer 1.InnoDB引擎架构 (1)InnoDB引擎架构图 (2)InnoDB内存结构 (1)InnoDB引擎架构图 下面是InnoDB引擎架构图&#xff0c;主要分为内存结构和磁…

丹摩|丹摩智算平台深度评测

1. 丹摩智算平台介绍 随着人工智能和大数据技术的快速发展&#xff0c;越来越多的智能计算平台涌现&#xff0c;为科研工作者和开发者提供高性能计算资源。丹摩智算平台作为其中的一员&#xff0c;定位于智能计算服务的提供者&#xff0c;支持从数据处理到模型训练的全流程操作…

基于企业微信客户端设计一个文件下载与预览系统

在企业内部沟通与协作中&#xff0c;文件分享和管理是不可或缺的一部分。企业微信&#xff08;WeCom&#xff09;作为一款广泛应用于企业的沟通工具&#xff0c;提供了丰富的API接口和功能&#xff0c;帮助企业进行高效的团队协作。然而&#xff0c;随着文件交换和协作的日益增…

LLM的原理理解6-10:6、前馈步骤7、使用向量运算进行前馈网络的推理8、注意力层和前馈层有不同的功能9、语言模型的训练方式10、GPT-3的惊人性能

目录 LLM的原理理解6-10: 6、前馈步骤 7、使用向量运算进行前馈网络的推理 8、注意力层和前馈层有不同的功能 注意力:特征提取 前馈层:数据库 9、语言模型的训练方式 10、GPT-3的惊人性能 一个原因是规模 大模型GPT-1。它使用了768维的词向量,共有12层,总共有1.…

大模型系列11-ray

大模型系列11-ray PlasmaPlasmaStore启动监听处理请求 ProcessMessagePlasmaCreateRequest请求PlasmaCreateRetryRequest请求PlasmaGetRequest请求PlasmaReleaseRequestPlasmaDeleteRequestPlasmaSealRequest ObjectLifecycleManagerGetObjectSealObject ObjectStoreRunnerPlas…

开源动态表单form-create-designer 扩展个性化配置的最佳实践教程

在开源低代码表单设计器 form-create-designer 的右侧配置面板里&#xff0c;field 映射规则为开发者提供了强大的工具去自定义和增强组件及表单配置的显示方式。通过这些规则&#xff0c;你可以简单而高效地调整配置项的展示&#xff0c;提升用户体验。 源码地址: Github | G…

美创科技入选2024数字政府解决方案提供商TOP100!

11月19日&#xff0c;国内专业咨询机构DBC德本咨询发布“2024数字政府解决方案提供商TOP100”榜单。美创科技凭借在政府数据安全领域多年的项目经验、技术优势与创新能力&#xff0c;入选收录。 作为专业数据安全产品与服务提供商&#xff0c;美创科技一直致力于为政府、金融、…

地平线 bev_cft_efficientnetb3 参考算法-v1.2.1

01 概述 在自动驾驶感知算法中 BEV 感知成为热点话题&#xff0c;BEV 感知可以弥补 2D 感知的缺陷构建 3D “世界”&#xff0c;更有利于下游任务和特征融合。 地平线集成了基于 bev 的纯视觉算法&#xff0c;目前已支持 ipm-based 、lss-based、 transformer-based&#xff…

C#里怎么样检测文件的属性?

C#里怎么样检测文件的属性? 对于文件来说,在C#里有一种快速的方法来检查文件的属性。 比如文件是否已经压缩, 文件是否加密, 文件是否是目录等等。 属性有下面这么多: 例子演示如下: /** C# Program to View the Information of the File*/ using System; using Syste…