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

Linux shell编程学习笔记31:alias 和 unalias 操作 命令别名

目录

  1. 0 前言
  2. 1 定义别名
  3. 2 查看别名
    1. 2.1 查看所有别名
    2. 2.2 查看某个别名
      1. 2.2.1  alias 别名
      2. 2.2.2 alias | grep 别名字符串
      3. 2.2.3 使用 Ctrl+Alt+E 组合键
  4. 3 unalias:删除别名
  5. 4 如何执行命令本身而非别名
    1. 4.1 方法1:使用 Ctrl+Alt+E 组合键  && unalias
    2. 4.2 方法2:在命令前加上命令文件的绝对路径
    3. 4.3 方法3:在命令前加上相对路径
    4. 4.4 方法4:在命令前加上反斜线\
  6. 5 如何让别名永久有效
  7. 6 为何推荐使用单引号
  8. 7 参考资料

0 前言

记得在DOS中有个doskey命令,使用doskey命令可以定义宏,宏的的执行优先级是最高的,比DOS的内置命令还高(DOS中的命令执行优先级从高至低依次是:宏命令、DOS内部命令,以com为扩展名的可执行程序,以exe位扩展名的可执行程序、以bat位扩展名的批处理程序)。

这就意味着,如果你定义的宏与dos的内置命令同名,比如dir,当你在命令行输入dir时,系统会优先执行你宏,而不是dos的内置命令,这为我们提供了修改内部命令功能的途径。

那以Linux中是否提供有相似的功能呢?

1 定义别名

在Linux中,我们使用alias命令来定义命令别名。格式如下:

alias [命令别名[=值]]

与定义变量相似,在定义命令别名时,要注意:

  • 等号(=)前后不能有空格,否则就会出现变成比较,引起语法错误
  • 如果值中有空格或tab,则值一定要使用单引号、双引号括起来(推荐单引号)

2 查看别名

2.1 查看所有别名

要查看所有别名,直接输入 alias 命令,不加任何选项和参数即可:

purpleEndurer @ bash $alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
purpleEndurer @ bash $

当前定义有6个命令别名 

2.2 查看某个别名

要查看某个别名,有几种方法。

2.2.1  alias 别名

例2.2.1.1 要查看名为abc的别名,就用命令:alias abc

purpleEndurer @ bash $alias abc
bash: alias: abc: not found

 

由于系统中不存在名为abc的别名,所以系统反馈 not found

例2.2.1.2 要查看名为ls的别名,就用命令:alias ls

purpleEndurer @ bash $alias ls
alias ls='ls --color=auto'

可见我们在命令行使用的ls命令,其实是带有 参数的ls命令。

这就意味着,有些命令的选项,我们经常使用,但又不是命令默认选项,那么我们就可以通过定义别名来实现,这样就不需要每次都输入那些选项了。

  • 注意:alias查看别名不支持通配符

例如,要查找所有l开头的别名:

purpleEndurer @ bash $alias l*
bash: alias: l*: not found

2.2.2 alias | grep 别名字符串

例如,我们要查找所有包含ls的别名:

purpleEndurer @ bash $alias | grep ls*
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
purpleEndurer @ bash $

由于grep支持正则表达式,因此我们还可以使用正则表达式来获取符合条件的命令别名。

例2.2.2.1 获取以ls开头,后面可以接字母、数字、下划线或者汉字的命令别名:

purpleEndurer @ bash $ alias | grep "\bls\w*="
alias ls='ls --color=auto'

命令中的字符串"\bls\w*="为正则表达式,其中:

  1. \b 匹配单词的开始或结束
  2. \w 字母、数字、下划线或者汉字

这样只找到一个匹配的命令别名。

例2.2.2.2 获取以l开头,后面可以接字母、数字、下划线或者汉字的命令别名:

purpleEndurer @ bash $ alias | grep "\bl\w*="
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'

这样找到了两个匹配的命令别名。

例2.2.2.3 获取以l开头,后面可以接除换行符之外的任意字符的命令别名:

purpleEndurer @ bash $ alias | grep "\bl.*="
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'

命令中正则表达式 "\bl.*=" 中 的

  • . 代表除换行符之外的任意字符

2.2.3 使用 Ctrl+Alt+E 组合键

在终端命令行中输入一个命令后,按下 Ctrl+Alt+E 组合键,假如设置了别名,那么别名自动会变成实际的命令。

例 2.2.3.1 在终端命令行中先输入命令alias查看当前所有的命令别名,再输入命令ls,再按Ctrl+Alt+E,看看实际的命令是什么?

purpleEnduer @ bash $ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
purpleEnduer @ bash $ ls --color=auto

 

我们先在命令行中输入alias查看当前所有的命令别名,可以看到ls命令别名对应的实际命令是:'ls --color=auto'

然后在命令行中输入ls,接着按Ctrl+Alt+E,这时命令行上的命令变成了ls --color=auto

注意:

  • 这个快捷键并非在所有终端中都可行,有些终端的快捷键会和这个快捷键冲突,这样的话,该方法就不好使了。

3 unalias:删除别名

命令别名定义的太多了,往往带来的不是方便,而是困扰。所以我们也需要掌握删除别名的方法。

要删除一个别名,可以使用 unalias 命令,其命令格式为:

unalias [-a] 别名1 [别名2 ...]

其中:

  • -a 的选项可以删除所有已定义的命令别名。

例3.1 删除命令别名 egrep

purpleEndurer @ bash $ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
purpleEndurer @ bash $ unalias egrep
purpleEndurer @ bash $ alias
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
purpleEndurer @ bash $ 

我们先用alias命令查看当前所有的命令别名,可以看到命令别名egrep

然后用命令unalias egrep来删除命令别名egrep

再用alias命令查看当前所有的命令别名,这次看不到命令别名egrep了。

例3.2 删除命令别名 egrep 、fgrep 和 grep

purpleEndurer @ bash $ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
purpleEndurer @ bash $ unalias egrep fgrep grep
purpleEndurer @ bash $ alias
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
purpleEndurer @ bash $ 

 

我们先用alias命令查看当前所有的命令别名,可以看到命令别名egrep 、fgrep 和 grep

然后用命令unalias egrep fgrep grep 来删除命令别名egrep 、fgrep 和 grep

再用alias命令查看当前所有的命令别名,这次看不到命令别名egrep 、fgrep 和 grep了。

例 3.3 删除所有命令别名

purpleEndurer @ bash $ alias
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
purpleEndurer @ bash $ unalias -a
purpleEndurer @ bash $ alias
purpleEndurer @ bash $ 

我们先用alias命令查看当前所有的命令别名,可以看到命令别名l. 、ll 和 ls

然后用命令unalias -a 来删除所有命令别名

再用alias命令查看当前所有的命令别名,这次看不到任何命令别名了。

4 如何执行命令本身而非别名

别名虽好使,但也有弊端,比如定义的别名恰好和某个命令重名了,hell 中执行的将永远都是别名。

在这种情况下,如果我们想执行真正的那个命令而非别名,该怎么办呢?有四种方法可以解决这个问题:

4.1 方法1:使用 Ctrl+Alt+E 组合键  && unalias

在终端命令行中输入一个命令后,按下 Ctrl+Alt+E 组合键,假如设置了别名,那么别名自动会变成实际的命令,如果实际的命令跟我们想要执行的不一致,那么,我们可以使用unalias删除别名定义,之后我们输入和执行的就是实际的命令了。

4.2 方法2:在命令前加上命令文件的绝对路径

例如,pwd命令的功能是显示当前工作目录。

当我们使用命令 alias pwd='ls' 定义了变量别名后,输入pwd回车,显示的就是ls的命令执行结果。

这时要想继续执行原始的pwd命令,那么我们可以在pwd命令前加上命令对应的文件的绝对路径,即:/bin/pwd

purpleEnduer @sh /bin $ pwd
/bin
purpleEnduer @sh /bin $ alias pwd='ls'
purpleEnduer @sh /bin $ pwd
ash        dumpkmap    1inux64        ping6        sync
busybox        echo        ln        printeny    tar
busybox.suid    egrep        login        ps        touch
cat        false        ls        pwd        true
chgrp        fdflush        mkdir        rev        umount
chmod        fgrep        mknod        rm        uname
chown        getopt        mktemp        rmdir        uncompress 
cp        grep        more        rpm        usleep
cpio        gunzip        mount        sed        vi
date        gzip        mv        setarch        watch
dd        hostname    netstat        sh        zcat
df        ipcalc        nice        sleep
dmesg        kill        pidof        stty
dnsdomainame    1inux32        ping        su
purpleEnduer @sh /bin $ /bin/pwd
/bin

 

4.3 方法3:在命令前加上相对路径

除了使用增加绝对路径这种方式外,也可以使用增加相对路径这种方式。

例如:

执行pwd命令,可知当前工作目录为 /home/tc

当我们使用命令 alias pwd='ls' 定义了变量别名后,输入pwd回车,显示的就是ls的命令执行结果。由于/home/tc没有文件和目录,所以命令没有结果显示。

pwd命令对应的文件位于/bin中,

这时要想继续执行原始的pwd命令,除了加上绝对路径即:/bin/pwd

还可以加上相对路径,即: ../../bin/pwd 

purpleEnduer @sh ~ $ pwd
/home/tc
purpleEnduer @sh ~ $ alias pwd='ls'
purp leEnduer @sh  $ pwd
purp leEnduer @sh $ ../../bin/pwd 
/home/tc
purpleEnduer @sh $ /bin/pwd 
/home/tc

purp leEnduer @sh 

 使用绝对路径还是相对路径,主要是看二者中哪个更短 ,这样可以少输一些字符^_^

4.4 方法4:在命令前加上反斜线\

例如:

在pwd命令别名存在的情况下,我们要执行实际的pwd命令,可以使用命令:\pwd

purpleEnduer @sh ~ $ pwd
/home/tc
purpleEnduer @sh ~ $ alias pwd='ls'
purpleEnduer @sh $ pwd
purpleEnduer @sh~$ /pwd
-sh: /pwd: not found
purpleEnduer @sh ~ $ \pwd
/home/tc
purpleEnduer @sh $

 

5 如何让别名永久有效

我们通过 alias 命令设置的别名,仅限于在当前 Shell 中使用,如果系统重启了,那么新设置的别名就失效了。

如果想让别名永久有效的话,就需要把所有的别名加入到($HOME)目录下的 .alias 文件中。

如果你的系统中没有这个文件,你可以创建一个。

然后在 .bashrc 文件中增加这样一段代码:

# Add my aliases
if [ -f ~/.alias ]; then. ~/.alias
fi

这样设置后,无论怎样重启系统,.alias 中的别名都有效。

6 为何推荐使用单引号

环境变量PWD保存了当前工作目录的绝对路径,我们可以利用它来了解当前工作目录。

我们先看下面这个命令序列:

purpleEndurer @ bash ~ $ echo $PWD
/home/csdn

可见当前工作目录为 /home/csdn

然后我们定义了别名mypwd="echo $PWD"并执行:

purpleEndurer @ bash ~ $ alias mypwd="echo $PWD"
purpleEndurer @ bash ~ $ mypwd
/home/csdn

别名mypwd执行的结果与 echo $PWD命令是相同的。

接下来,我们把当前工作目录变成/home/csdn/a

purpleEndurer @ bash ~ $ cd a

执行命令  echo $PWD:


purpleEndurer @ bash ~/a $ echo $PWD
/home/csdn/a

命令执行结果 正确。

再试试别名 mypwd:


purpleEndurer @ bash ~/a $ mypwd
/home/csdn

结果不对。

为什么不对了呢?我先看看别名mypwd实际执行的命令:


purpleEndurer @ bash ~/a $ alias mypwd
alias mypwd='echo /home/csdn'

看到了吗?由于我们在定义别名mypwd时使用了双引号,系统在创建这个别名时没有保留p字符串$PWD,而是把它替换成了 PWD的值  /home/csdn。

这样,不管当前工作目录如何变化,别名mypwd始终显示的是 /home/csdn。

找到原因后,我们改用单引号来定义,再查看mypwd实际执行的命令:

purpleEndurer @ bash ~/a $ alias mypwd='echo $PWD'

purpleEndurer @ bash ~/a $ alias mypwd
alias mypwd='echo $PWD'

使用单引号来定义后,$PWD成功保存下来了,没有被替换为它的值。

我们再执行这个别名看看:

purpleEndurer @ bash ~/a $ mypwd
/home/csdn/a 

这次执行结果正确了。

7 参考资料

doskey | Microsoft Learnicon-default.png?t=N7T8https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/doskey

相关文章:

Linux shell编程学习笔记31:alias 和 unalias 操作 命令别名

目录 0 前言1 定义别名2 查看别名 2.1 查看所有别名2.2 查看某个别名 2.2.1 alias 别名2.2.2 alias | grep 别名字符串2.2.3 使用 CtrlAltE 组合键3 unalias:删除别名4 如何执行命令本身而非别名 4.1 方法1:使用 CtrlAltE 组合键 && unalias4…...

Django JSONField/HStoreField SQL注入漏洞(CVE-2019-14234)

漏洞描述 Django 于2019年8月1日 日发布了安全更新,修复了 JSONField 和 HStoreField 两个模型字段的 SQL 注入漏洞。 参考链接: Django security releases issued: 2.2.4, 2.1.11 and 1.11.23 | Weblog | DjangoDjango JSONField SQL注入漏洞&#x…...

Unity中Shader的Standard材质解析(一)

文章目录 前言一、在Unity中,按一下步骤准备1、在资源管理面板创建一个 Standard Surface Shader2、因为Standard Surface Shader有很多缺点,所以我们把他转化为顶点片元着色器3、整理只保留主平行光的Shader效果4、精简后的最终代码 前言 在Unity中&am…...

5.1 Windows驱动开发:判断驱动加载状态

在驱动开发中我们有时需要得到驱动自身是否被加载成功的状态,这个功能看似没啥用实际上在某些特殊场景中还是需要的,如下代码实现了判断当前驱动是否加载成功,如果加载成功, 则输出该驱动的详细路径信息。 该功能实现的核心函数是NtQuerySys…...

Linux之高级IO

目录 IO基本概念五种IO模型钓鱼人例子五种IO模型高级IO重要概念同步通信 VS 异步通信阻塞 VS 非阻塞其他高级IO阻塞IO非阻塞IO IO基本概念 I/O(input/output)也就是输入和输出,在著名的冯诺依曼体系结构当中,将数据从输入设备拷贝…...

进程和线程的关系

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:JavaEE 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 进程&线程 1. 什么是进程PCB 2. 什么是…...

YOLOv5全网独家改进:NanoDet算法动态标签分配策略(附原创改进代码),公开数据集mAP有效涨点,来打造新颖YOLOv5检测器

💡本篇内容:YOLOv5全网独家改进:NanoDet算法动态标签分配策略(附原创改进代码),公开数据集mAP有效涨点,来打造新颖YOLOv5检测器 💡🚀🚀🚀本博客 YOLOv5+ 改进NanoDet模型的动态标签分配策略源代码改进 💡一篇博客集成多种创新点改进:NanoDet 💡:重点:更…...

原生DOM事件、react16、17和Vue合成事件

目录 原生DOM事件 注册/绑定事件 DOM事件级别 DOM0:onclick传统注册: 唯一(同元素的(不)同事件会覆盖) 没有捕获和冒泡的,只有简单的事件绑定 DOM2:addEventListener监听注册:可添加多个…...

基于HTML+CSS+JavaScript的登录注册界面设计

一、界面效果: 二、HTML代码: 登录注册html: 登录成功html: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <h1>登录成功!</h1> </body> <…...

BUUCTF [MRCTF2020]Ez_bypass 1

题目环境&#xff1a;F12查看源代码 I put something in F12 for you include flag.php; $flagMRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}; if(isset($_GET[gg])&&isset($_GET[id])) { $id$_GET[id]; $gg$_GET[gg]; if (md5($id) md5($gg) && $id ! $gg) { …...

基于Apache部署虚拟主机网站

文章目录 Apache释义Apache配置关闭防火墙和selinux 更改默认页内容更改默认页存放位置个人用户主页功能基于口令登录网站虚拟主机功能基于ip地址相同ip不同域名相同ip不同端口 学习本章完成目标 1.httpd服务程序的基本部署。 2.个人用户主页功能和口令加密认证方式的实现。 3.…...

大数据平台/大数据技术与原理-实验报告--部署全分布模式HBase集群和实战HBase

实验名称 部署全分布模式HBase集群和实战HBase 实验性质 &#xff08;必修、选修&#xff09; 必修 实验类型&#xff08;验证、设计、创新、综合&#xff09; 综合 实验课时 2 实验日期 2023.11.07-2023.11.10 实验仪器设备以及实验软硬件要求 专业实验室&#xff…...

手写字符识别神经网络项目总结

1.数据集 手写字符数据集 DIGITS&#xff0c;该数据集的全称为 Pen-Based Recognition of Handwritten Digits Data Set&#xff0c;来源于 UCI 开放数据集网站。 2.加载数据集 import numpy as np from sklearn import datasets digits datasets.load_digits() 3.分割数…...

八、Lua数组和迭代器

一、Lua数组 数组&#xff0c;就是相同数据类型的元素按一定顺序排列的集合&#xff0c;可以是一维数组和多维数组。 在 Lua 中&#xff0c;数组不是一种特定的数据类型&#xff0c;而是一种用来存储一组值的数据结构。 实际上&#xff0c;Lua 中并没有专门的数组类型&#xf…...

平凯星辰 TiDB 获评 “2023 中国金融科技守正创新扬帆计划” 十佳优秀实践奖

11 月 10 日&#xff0c;2023 金融街论坛年会同期举办了“第五届成方金融科技论坛——金融科技守正创新论坛”&#xff0c;北京金融产业联盟发布了“扬帆计划——分布式数据库金融应用研究与实践优秀成果”&#xff0c; 平凯星辰提报的实践报告——“国产 HTAP 数据库在金融规模…...

运算符展开、函数,对象,数组,字符串变化 集合

... 展开运算符 用于函数实参或者赋值号右边 console.log(...[1, 2, 3]) // 1,2,3console.log(Math.max(...[1, 2, 3]))//3 console.log(Math.max.apply(null, [1, 2, 3]))//3const o { a: 1, b: 2 }const obj { ...o, c: 3 }console.log(obj)//Object ... 剩余运算符 用于…...

NI自动化测试系统用电必备攻略,电源规划大揭秘

就像使用电脑之前需接通电源一样&#xff0c;自动化测试系统的电源选择也是首当其冲的问题&#xff0c;只不是这个问题更复杂。 比如&#xff0c;应考虑地理位置因素&#xff0c;因为不同国家或地区的公共电网所提供的线路功率有所不同。在电源布局和设备选型方面&#xff0c;有…...

ky10 server arm 在线编译安装openssl3.1.4

在线编译脚本 #!/bin/shOPENSSLVER3.1.4OPENSSL_Vopenssl versionecho "当前OpenSSL 版本 ${OPENSSL_V}" #------------------------------------------------ #wget https://www.openssl.org/source/openssl-3.1.4.tar.gzecho "安装OpenSSL${OPENSSLVER}...&q…...

外网IP和内网IP的区别

首先得先知道什么是ip地址&#xff0c;它就是唯一标识连接网络的设备的&#xff0c;即IP地址充当了设备在网络中的“住址”&#xff0c;使得设备能够相互通信和交换数据。 我们常听开发人员说外网内网&#xff0c;那么它们有什么区别呢&#xff1f; 外网可以理解为互联网&…...

Jquery动画特效

1&#xff0c;Jquery提供的特效方法 2&#xff0c;实例代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...