一篇文章让你认识与学习bash(干货满满)

news2024/11/17 9:25:12

  Linux界存在着这样一种说法:“在Linux的环境下,如果你不懂bash是什么,那么其他的东西就不用学了。”bash的学习是所有命令行模式与未来主机维护与管理的重要基础,所以得认真对待。


一.硬件、内核与shell

  1.1 什么是shell? 看下图,我们发现应用程序在最外层(像鸡蛋壳一样,所以shell也叫壳程序)。用户可以通过应用程序来指挥内核,让内核完成我们所需要的硬件操作。然而操作系统其实是一组软件,这组软件控制整个与管理系统的活动监测。
  所以只要能够操作应用程序的软件都能够称为壳程序(shell)。
在这里插入图片描述
  1.2 为何要学习命令行模式的shell? 命令行模式的shell是很不好学的,但是学了之后好处多多:
  #命令行模式的shell:大家都一样
  几乎各家Linux发行版使用的bash都是一样的,所以能够轻松转换不同的Linux发行版。
  #远程管理:命令行模式就是比较快
  Linux的管理常常需要通过远程联机,而联机时命令行模式传输速度一定比较快,而且,较不容易出现掉线或是信息外流的问题。
  #Linux的“任督二脉”:shell是也
  多摸一点命令行模式的东西,将会让你与Linux更亲近。如果真心想要将自己的主机管理好(或者想成为系统管理员),那么良好的shell程序编写是一定需要的。学习shell与shell脚本,将会打通你的任督二脉,任何武功都随你应用。
  1.3 Linux默认使用的是哪个shell? 没错shell依据发展者的不同就有许多的版本,例如常听到的Bourne shell(sh)、在Sun里面默认的C shell、商业上常用的K shell,还有TCSH等,每一种shell都各有其特点。对于Linux使用的这个默认版本就称为bash(Bourne Again Shell)。
  1.4 bash shell的功能?即然bash是Linux默认使用的shell,那么bash有什么功能呢?
  #历史命令(history) 在bash中有一个相当棒的就是它能记录使用过的命令。最大的好处就是可以查询曾经做过的操作,如此可以知道你的执行步骤,那么就可以追踪你曾执行过的命令,以作为除错的重要流程。这些信息保存在家目录内的.bash_history中:
在这里插入图片描述
  #命令与文件补全功能:([Tab]按键的好处)具体功能如下:
  1.[Tab]接在一串命令的第一个字的后面,则为命令补齐;
  2.[Tab]接在一串命令的第二个字的后面,则为文件补齐。
  3.若安装 bash;completion软件,则在某些命令后面使用[Tab]按键时,可以进行选项参数的补齐功能。
  这个按键的功能只有在bash这个shell中才有的。常常在bash环境中使用[Tab]是个很好的习惯,因为至少可以让你1.少打很多字;2.确定输入的数据是否正确。
  #命令别名设置功能:(alias)如果你想要为某个命令取一个别名,那么使用alias将会是一个不错的选择。在命令行中输入alias可以知道目前的命令别名有哪些,也可以直接执行命令来设置别名:
在这里插入图片描述
在这里插入图片描述
  #任务管理、前台、后台控制:(job control、foreground、background)使用前、后台的控制可以让任务进行的更为顺利,至于任务管理的用途更广,可以让我们随时将任务丢到后台中执行,而不怕不小心使用了[Ctrl]+c来停掉该程序。此外,也可以在单一登录的环境中,达到多任务的目的。
  #程序化脚本:(shell scripts)在Linux下面的shell脚本可以将你平时管理系统常需要执行的连续命令写成一个文件,该文件并且可以通过交互式的方式来进行主机的检测工作,也可以借由shell提供的环境变量及相关命令来进行设计。以前在DOS下面需要程序语言才能写的东西,在Linux下面使用简单的shell脚本就可以帮你完成了。
  #通配符(Wildcard)除了完整的字符串之外,bash还支持许多的通配符来帮助用户查询与命令执行。例如使用命令【ls -l /usr/bin/X*】就能知道/usr/bin下面有多少以X为开头的文件,很方便。
  1.5 查询命令是否为Bash shell的内置命令:type 如果想要知道某个命令是来自于外部命令(指的是其他非bash所提供的命令)或是内置在bash中的,利用type这个命令来观察即可。
  不加任何选项和参数时,type会显示出某个命令是外部命令还是bash内置命令:
在这里插入图片描述
  当加入 -t 参数时,type将命令以下面这些字眼显示出它的意义:
  file :表示为外部命令;
  alias :表示该命令为命令别名所设置的名称;
  builtin :表示该命令为bash内置的命令功能。
在这里插入图片描述
  1.6 如果命令串太长的话,如何使用两行来输出?通过“\[Enter]”来将[Enter]]这个按键转义开来,注意[Enter]键是紧接着反斜杠[\]的,两者之间没有其他字符,因为\仅转义紧接着的下一个字符而已。
在这里插入图片描述


二.bash环境中的变量

  变量是bash环境中非常重要的一个玩意儿。那什么是变量?简单地说,就是让某一个特定字符串代表不固定的内容。(相信结合C++中的对象多态——虚函数,将会更好理解)。所以每个都能使用bash执行mail这个命令来接收自己的邮件(对象不同,mail的值就不同)。
  2.1 变量的使用:echo 可以使用“echo”这个命令来使用变量,但是,变量在被使用时,前面必须加上美元符号【$】才行,例如要想知道“PATH”中的内容,可以这样操作:
在这里插入图片描述

  利用echo就能读出变量中的内容。美元符号【$】是不是同C++中的取地址运算符【&】的功能很相似(可以对比理解一下)
  2.2 如何设置或修改某个变量的内容?很简单,用等号(=)连接变量与它的内容就好,举例来说:我要将myname 这个变量名称的内容设置为Tiger,可以这样操作:
在这里插入图片描述

  在bash中,当一个变量名称尚未被设置时,默认的内容是空。
  2.3 变量的设置规则:
  1.变量与变量内容以一个等号【=】来连接;
  2.等号两边不能直接接空格;
  3.变量名称只能是英文字母与数字,但是开头字符不能是数字;
  4.变量的内容若有空格可使用【"】或单引号【‘】将变量内容结合起来,但:双引号内的特殊字符如$等,可以保持原本的特性(比如变量依旧是变量,不会变为字符串);单引号的特殊字符则仅为一般字符(纯文本)
  2.4 取消变量的方法:unset
在这里插入图片描述


三.环境变量的功能

  环境变量可以帮我们实现很多功能,那么在我们的shell环境中,有多少默认的环境变量?
3.1 用env观察环境变量
在这里插入图片描述
  env是enviroment(环境)的简写,上面的例子中是列出所有的环境变量。
3.2 用set观察所有变量(含环境变量与自定义变量)
在这里插入图片描述
  这里列举几个比较特殊的变量:

  $:(关于本shell的PID)美元符号“$”本身是一个变量,其代表的是目前这个shell的进程号,即所谓的PID。
在这里插入图片描述
  ?:(关于上个执行命令的返回值)问号也是一个特殊的变量,这个变量是上一个执行的命令的返回值。当我们执行某些命令时,这些命令都会返回一个执行后的代码。一般来说,如果成功的执行该命令,则会返回一个0值,如果执行过程中发生错误,一般会返回非0值:
在这里插入图片描述
3.3 自定义变量转成环境变量:export 环境变量与自定义变量的差异在于该变量是否会被子进程所继续引用。因为子进程仅会继承父进程的环境变量,子进程不会继承父进程的自定义变量。若要想让自定义变量继续在子进程中使用,请使用执行export如下:
在这里插入图片描述
  如果仅执行export而没有接变量时,那么此时将会把所有的环境变量显示出来。对于学C/C++的朋友可以将环境变量等价于全局变量,自定义变量等价于局部变量来理解。
  那如何将环境变量变为自定义变量?使用“declare +x 变量名称”即可。
3.4 要想查看我们的Linux到底支持了多少语系,可以使用“locale”来查询“
在这里插入图片描述
3.5 变量键盘读取:read 要读取来自键盘输入的变量,就用read这个命令。这个命令常用在shell脚本的编写当中。
在这里插入图片描述
  3.6 声明变量的类型:declare或typeset
在这里插入图片描述
  看着上面的例子是否让你联想到了C/C++中对变量的声明、定义和使用,多么有趣呀,不是吗?我相信你和我一样也都理解了。
  那我们为什么需要进行变量声明?在bash中变量类型默认是字符串,所以若不能指定变量类型,则1+2为一个字符串而不是计算式(bash中的数值运算,默认最多仅能到达整数形态,所以1/3结果是0)所以当我们需要非字符串类型的变量,那得进行变量声明才行。
3.7 与文件系统及程序的限制关系:ulimit 我们的bash是可以限制用户的某些系统资源的,包括可以开启的文件数量,可以使用的CPU时间,可以使用的内存总量等。 在这里不作展开,


四.命令别名与历史命令

4.1 命令别名设置:alias、unalias 命令别名是一个很有趣的东西,特别是常用命令特别长的时候,使用alias为命令取一个别名就会特别方便。如果想要取消命令别名的话,就使用unalias。

在这里插入图片描述
4.2 历史命令:history 前面我们也提到过bash有提供命令历史的服务。那如何查询我们执行过的命令呢?使用history:
在这里插入图片描述
   历史命令的用法特别多,在这里也完全没有必要全部列出,有一个最基础的概念就很不错,当有需要的时候查找就行。


五.数据流重定向

  数据流重定向由字面上的意思来看,好像就是将【数据给它定向到其他地方去】的样子?没错,数据流重定向就是将某个命令执行后应该要出现在屏幕上的数据,给它传输到其他地方,例如文件或是设备(打印机之类的)。这个东西在Linux的命令行模式下很重要,尤其是如果我们想要将某些数据存储下来时,就更有用了。
  5.1 standard output(标准输出)与standard error output(标准错误输出): 简单地说,标准输出指的是命令执行所返回的正确信息,而标准错误输出可理解为命令执行失败后,所返回的错误信息。
   标准输出与标准错误输出所产生的数据在bash中都是默认输出到屏幕上,所以屏幕当然是乱的。 那能不能将这两股数据分开?当然可以,那就是数据流重定向的功能,数据流重定向可以将standard output(简称stdout)与standard error output(简称stderr)分别传送到其他的文件或设备,而分别传送所用的特殊字符则如下所示:
在这里插入图片描述
   当使用标准输出时1可以省略不写,即如果仅存在 > 时则代表默认的代码1。
   如果我们使用数据流重定向将数据输入到某个文件时,想要将数据累加而不是想要将旧的数据删除,该如何做?具体有以下规则:
在这里插入图片描述
   下面我简单的示范一下基本操作:
在这里插入图片描述
  反正还是挺有趣的,希望大家都自己动手试一试。在这里我就不额外补充太多的例子,敲一敲大家都会明白的(对于vim的知识在以前的文章中有讲过,有兴趣的看看)
5.2 /dev/null垃圾桶黑洞设备与特殊写法: 现在我有一个需求,我想要将错误信息忽略掉而不显示或存储,该如何操作?可以使用黑洞设备/dev/null,这个/dev/null可以吃掉任何导向这个设备的信息:
在这里插入图片描述
  现在我还有一个需求,我想将正确与错误数据通通写入同一个文件中,该如何操作?那么可以使用特殊写法如下:
·
  第一行错误的原因是,由于两股数据同时写入一个文件,又没有使用特殊的语法,此时两股数据可能会交叉写入该文件内,造成次序的错乱。比较推荐使用第二种写法,也是我使用的方法。
5.3 standard input:<与<< 将原本需要由键盘输入的数据,改由文件内容来替换。
  什么是键盘的输入?跟着敲一下,你就懂了:
在这里插入图片描述
  但是现在我们可以用纯文本文件代替键盘的输入,也就是说,用某个文件的内容来代替键盘的敲击:
在这里插入图片描述
  对于连续的两个小于号“<<”,它所代表的是【结束的输入字符】的意思:
在这里插入图片描述
  在数据流重定向中的输入(<、<<)、输出(>、>>)大家也可以结合C/C++中的输入输出理解一下。
为什么要使用数据流重定向?
  * 当屏幕输出的信息很重要,而且我们需要将它存下来的时候;
  * 后台执行中的程序,不希望它干扰屏幕正常的输出结果时;
  * 一些系统的计划任务命令的执行结果,希望它可以存下来时;
  * 一些执行命令的可能已知错误信息时,想以【/dev/null】将它丢掉时;
  * 错误信息与正确信息需要分别输出时。

  5.4 命令执行的判断根据:“;” 、“&&” 、 “||” 这个知识点的学习,结合C/C++中的逻辑判断将会更加好理解(C++有三种逻辑运算符:分别是逻辑与AND(&&)、逻辑或OR(||)和逻辑非NOT(!))功能都是大同小异的。
  在某些情况下,很多命令我想要一次输入去执行,而不想要分次去执行就可以使用命令执行的判断根据 “ ; && || ”。
  cmd;cmd(不考虑命令相关性的连续命令执行) 有些时候我们想要一次执行多个命令,就可以使用“;”这个命令执行的判读根据。
在这里插入图片描述
  在命令与命令中间利用分号(;)来隔开,这样一来,分号前的命令执行完后就会立刻接着执行后面的命令
  $?(命令返回值)与&&或|| 这两个的判断原理同C/C++中的是一模一样的具体规则如下:
在这里插入图片描述
  下面给大家贴几个简单的例子,结合上图的规则大家都很容易理解,就不罗里吧嗦解释了
在这里插入图片描述
在这里插入图片描述


六.管道命令 pipe

   就如同前面所说,bash命令执行的时候有输出的数据会出现。那么如果这些数据必须要经过几道处理之后才能得到我们所想要的格式,应该如何来设置?这就涉及到管道命令的问题了,管道命令使用的是【|】这个界定符号。此外,管道命令与【连续执行命令】是不一样的
在这里插入图片描述
在这里插入图片描述

   管道命令【|】仅能处理经由前面一个命令传来的正确信息,也就是标准输出的信息,对于标准错误并没有直接处理的能力。整体的管道命令可以用下图来表示:
在这里插入图片描述
   在每一个管道后面接的第一个数据必定是【命令】,而且这个命令必须要能够接收标准输入的数据才行,这样的命令才可为管道命令,例如 less 、more、head、tail等都是可以接受标准输入的管道命令,至于例如 ls、cp、mv等就不是管道命令。管道命令主要有两个比较需要注意的地方:
在这里插入图片描述
6.1选取命令:cut、grep 什么是选取命令?说穿了,就是将一段数据经过分析后,取出我们所想要的,或是经由分析关键词,取得我们所想要的那一行。
  cut: cut 不就是【切】吗?没错,这个命令可以将一段信息的某一段给它【切】出来,处理的信息是以【行】为单位。
在这里插入图片描述
  cut的主要用途在于将同一行里面的数据进行分解,最常使用在分析一些数据或文字数据的时候。不过cut在处理多空格相连的数据时,可能会比较吃力一点。
  grep: 刚刚的cut是在一行信息当中,取出某部分我们想要的,而grep则是分析一行信息,若当中有我们所需要的信息,就将该行拿出来。
  grep是一个很棒的命令,它支持的语法实在太多了。在这里我们只需要知道,grep可以解析一行文字,取得关键字,若该行有存在关键字,就会整行列出来。
6.2 排序命令:sort、wc、uniq
  sort: sort是很有趣的命令,它可以帮我们进行排序,而且可以根据不同数据形式来进行排序,例如数字与文字的排序就是不一样。
在这里插入图片描述
  关于sort的很多细节这里就不一一列举,我们使用的时候知道有这个概念,再根据自己的需求去查证(下面这些命令也是)。
  uniq: 这个命令用来将重复的行删除掉只显示一个,举个简单的例子:

在这里插入图片描述
  wc: 如果想要知道某个文件里面有多少字?多少行?多少字符的话,可以怎么做?其实可以利用wc这个命令来完成,它可以帮我们计算输出信息的整体数据。
在这里插入图片描述
6.3 双向重定向:tee 何为双向重定向?想个简单的东西,我们前面学过数据流重定向 “>” 会将数据流整个传送给文件或设备,因此除非我们去读取该文件或设备,否则就无法继续利用这个数据流。而双向重定向:tee会同时将数据流分送到文件与屏幕,而输出到屏幕的,其实就是stdout,从而可以让下个命令继续处理。
在这里插入图片描述
6.4 字符转换命令:tr、col、join、paste、expand
  tr: tr可以用来删除一段信息当中的文字,或是进行文字信息的替换。
在这里插入图片描述
  col: 虽然col有它的特殊用途,不过,很多时候,它可以用来简单地处理将[Tab]按键替换成为空格键。
  join:join看字面的意义(加入/参加)就可以知道,它是在处理两个文件之间的数据,而且,主要是在处理【两个文件当中,有相同数据的那一行,才将它加在一起】的意思。
  此外,需要特别注意的是,在使用join之前,你所需要处理的文件应该要事先经过排序处理,否则有些比对的项目会被忽略,特别注意了。
  paste: 这个paste就要比join简单多了。相对于join必须要比对两个文件的数据相关性,paste就直接将两行贴在一起,且中间以[Tab]键隔开。
  expand: expand就是在将[Tab]按键转成空格键。
  6.5划分命令:split 如果你有文件太大,导致携带不太方便的话,嘿嘿,找split就对了,它可以帮你将一个大文件,依据文件大小或行数来划分,就可以将大文件划分成为小文件了,快速又有效。


  注意: 在这部分有些命令的学习,不是我懒不提供例子。因为我感觉粘贴上例子,反而让文章又增加了一个难度。所以知道功能,以后要用的时候,再结合互联网的例子来学习就可以了。
  最后文章的知识点也是有点多,不免会出现错误。如果读者发现有不对的知识点,希望留言,我会及时纠正。

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

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

相关文章

Linux下安装mysql5.7.18

查询mysql的安装文件&#xff1a; find / -name mysql有安装mysql的路径&#xff0c;有是存放MySQL安装包的路径 卸载mysql: 删除安装路劲 rm -rf /opt/mysql删除配置文件 rm -rf /etc/my.cnf删除/etc/init.d/下跟mysql有关的全部文件&#xff0c;一般包括mysql文件或mys…

浅尝Go语言的协程实现

文章目录为什么需要协程协程的本质协程如何在线程中执行GMP调度模型协程并发为什么需要协程 协程的本质是将一段数据的运行状态进行打包&#xff0c;可以在线程之间调度&#xff0c;所以协程就是在单线程的环境下实现的应用程序级别的并发&#xff0c;就是把本来由操作系统控制…

微服务框架 SpringCloud微服务架构 25 黑马旅游案例 25.1 搜索、分页

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构25 黑马旅游案例25.1 搜索、分页25.1.1 直接开干25 黑马旅游案例 25.1 搜…

PyTorch~自定义数据读取

这次是PyTorch的自定义数据读取pipeline模板和相关trciks以及如何优化数据读取的pipeline等。 因为有torch也放人工智能模块了~ 从PyTorch的数据对象类Dataset开始。Dataset在PyTorch中的模块位于utils.data下。 from torch.utils.data import Dataset围绕Dataset对象分别从…

前端入门必备基础

化繁为简 HTML5要的就是简单、避免不必要的复杂性。HTML5的口号是“简单至上&#xff0c;尽可能简化”。因此&#xff0c;HTML5做了以下改进&#xff1a; 以浏览器原生能力替代复杂的JavaScript代码。 新的简化的DOCTYPE。 新的简化的字符集声明。 简单而强大的HTML5API。…

[附源码]Python计算机毕业设计SSM基于云数据库的便民民宿租赁系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

《Linux运维实战:MongoDB数据库全量逻辑备份恢复(方案一)》

一、备份与恢复方案 mongodump是MongoDB官方提供的备份工具,它可以从MongoDB数据库读取数据,并生成BSON文件,mongodump适合用于备份和恢复数据量较小的MongoDB数据库, 不适用于大数据量备份。 默认情况下mongodump不获取local数据库里面的内容。mongodump仅备份数据库中的文档&…

回溯算法(1)组合

文章目录回溯算法理论77. 组合216. 组合总和17. 电话号码的组合回溯算法理论 回溯算法其实就是递归&#xff0c;只不过递归又分为递去和归来&#xff0c;其中归来便就是回溯。 为什么要使用回溯&#xff1f; 有些问题我们通过暴力解法也很难解决&#xff0c;比如说我们接下来…

C语言学习之路(高级篇)—— 变量和内存分布(上)

说明&#xff1a;该篇博客是博主一字一码编写的&#xff0c;实属不易&#xff0c;请尊重原创&#xff0c;谢谢大家&#xff01; 数据类型 1) 数据类型概念 什么是数据类型&#xff1f;为什么需要数据类型? 数据类型是为了更好进行内存的管理&#xff0c;让编译器能确定分配…

04 | 云硬盘的使用方法

前期环境&#xff1a; Ubuntu 0 云硬盘类型 云硬盘类型包括&#xff1a; 高性能云硬盘通用型 SSD 云硬盘SSD 云硬盘增强型 SSD 云硬盘极速型 SSD 云硬盘&#xff0c;仅支持随存储增强型云服务器一同购买&#xff0c;不支持单独购买 1 创建云硬盘 1.1 创建方式 1.1.1 单个…

第二证券|连拉20CM涨停!防疫新概念股火了!恒生科技指数涨逾5%

周四上午&#xff0c;“新十条”发布后&#xff0c;由于A股商场已反弹一段时刻&#xff0c;两市股指今天早盘接连震动走势&#xff0c;港股在地产、科技、消费等板块带动下&#xff0c;体现更为强势。 A股上证指数早盘在3200点附近持续震动&#xff0c;光伏、化肥、物流、港口等…

JavaScript内置对象(内置对象、查文档(MDN)、Math对象、日期对象、数组对象、字符串对象)

目录 JavaScript内置对象 内置对象 查文档 MDN Math对象 Math概述 案例一&#xff1a;封装自己的对象 随机数方法 random() 案例一&#xff1a;猜数字游戏 日期对象 Date 概述 Date()方法的使用 获取日期的总的毫秒形式 案例一&#xff1a;倒计时效果 数组对象 …

DoltLab本地部署实践

目录引言Dolt是什么&#xff1f;如何本地部署使用DoltLab具体安装步骤安装期间FAQ写在最后其他相关资料引言 自从搞深度学习训练模型以来&#xff0c;一直有个问题困扰着我&#xff1a;训练所用数据集的管理。为什么说这是一个问题呢&#xff1f; 在读研时&#xff0c;我们依据…

ELK日志分析系统概述及部署

文章目录一、ELK日志分析系统1、概念2、完整日志系统基本特征3、使用ELK的原因4、ELK 的工作原理二、ELK日志分析系统集群部署的操作步骤环境准备&#xff1a;1、 ELK Elasticsearch 集群部署&#xff08;在Node1、Node2节点上操作&#xff09;1.1、更改主机名、配置域名解析、…

剑指 Offer 53 - I. 在排序数组中查找数字 I

摘要 剑指 Offer 53 - I. 在排序数组中查找数字 I 一、二分查找 1.1 二分查找的分析 由于数组已经排序&#xff0c;因此整个数组是单调递增的&#xff0c;我们可以利用二分法来加速查找的过程。 考虑 target在数组中出现的次数&#xff0c;其实我们要找的就是数组中「第一…

汇编语言ch2_2 汇编语言中的debug

使用debug 可以完成以下功能&#xff1a; 可以查看 和改变 CPU 中&#xff0c;寄存器的内容&#xff1b;可以查看 和改变内存中的内容&#xff1b;可以将内存中的 机器指令 翻译成汇编指令使用汇编指令 在 内存中 存入 机器指令执行机器指令 首先&#xff0c;启动 Debug,在DO…

实现数智内控,数据分析创造价值——辽宁烟草智能风险体检系统

近两年&#xff0c;烟草行业部分单位围绕中心任务&#xff0c;结合实际&#xff0c;守正创新&#xff0c;开展了许多研究探索。比如&#xff0c;在财务大数据价值挖掘、会计共享中心建设、财务风险预警系统建设等方面做了大量卓有成效的工作。在这样的背景下&#xff0c;辽宁烟…

DSPE-MAL 磷脂改性马来酰亚胺简介CAS1360858-99-6

DSPE-MAL二硬脂酰磷脂酰乙醇胺改性马来酰亚胺 中文名称&#xff1a;二硬脂酰磷脂酰乙醇胺改性马来酰亚胺 英文名称&#xff1a;DSPE-MAL CAS&#xff1a;1235864-97-7 分子式&#xff1a;C48H86N2NaO11P 分子量&#xff1a;921.16700 外观&#xff1a;白色粉末 DSPE-MAL二…

2022icpc 济南站 持续补题

链接&#xff1a;Dashboard - 2022 International Collegiate Programming Contest, Jinan Site - Codeforces 签到题&#xff1a;k K. Stack Sort You are given a permutation with nn numbers, a1,a2,…,an(1≤ai≤n,ai≠aj when i≠j). You want to sort these numbers …

WY易盾cb、fp逆向分析

内容仅供参考学习 欢迎朋友们V一起交流&#xff1a; zcxl7_7 目标 网址&#xff1a;案例地址 这个好像还没改版&#xff0c;我看官网体验那边已经进行了混淆 分析 这个进行的请求很乱&#xff0c;我就不说怎么找的了&#xff0c;到时候越听越乱。一共有2个请求很重要 …