linux复习

'与"区别

在Linux中,单引号(')和双引号(")用于定义字符串,但它们在处理变量扩展和转义字符时有所不同。以下是具体分析:

1. **变量扩展**:在双引号内,变量可以被扩展,即变量的值会被其对应的值所替代;而在单引号内,变量则保持原样,不会被扩展。例如,如果有一个变量`var="world"`,那么在命令`echo "Hello $var"`中,`$var`会被替换为`world`,输出结果为`Hello world`。而在命令`echo 'Hello $var'`中,`$var`会保持原样,输出结果为`Hello $var`。
2. **转义字符**:在双引号中,反斜杠(\)可以用作转义字符,用于插入特殊的字符或者进行转义;而在单引号中,所有字符都是字面意义上的字符,包括反斜杠本身。
3. **命令执行环境**:在编写脚本或命令时,使用单引号可以避免Shell对其中的内容进行解析,这在创建不会改变的字符串时非常有用。而双引号则允许Shell进行解析,这在需要字符串内部变量或命令替换时更为方便。

总的来说,单引号用于创建原始字符串,其中不会有任何字符被解释或扩展;而双引号则允许变量扩展和转义字符的使用。在实际使用过程中,应根据具体需求选择合适的引号类型。

find 

-name

对文件的basename进行匹配

find /  -name "nginx"匹配只有文件名为nginx的文件find / -name "nginx*"匹配文件名以nginx开头的文件

-path

对文件的dirname+basename进行匹配

find / -path "*/var/*/nginx"文件名为nginx,前面的目录必须有var这个目录

-type

一般需要搜索的文件类型就只有普通文件(f),目录(d),链接文件(l)。

find /usr -type d -name "a*"匹配/usr下所有目录包括其子目录以a开头的目录

shell理解

shell:壳,命令解释器,负责解析用户输入的命令。

命令分两类:

  • 内置命令 (shell内置),shell为了完成自我管理和基本的管理,不同的shell内置不同的命令,但是 大部分都差不多
  • 外置命令,在文件系统的某个目录下,有个与命令名称相同的文件

type 命令查看命令是file、alias(外置命令)还是builtin(内置命令)

  • type -a 列出当前命令可以如何执行
  • type -t 仅列出命令按照哪种方式执行
root@ring04h-virtual-machine:~# type -a cd
cd is a shell builtin
root@ring04h-virtual-machine:~# type -a ls
ls is aliased to `ls --color=auto'
ls is /usr/bin/ls
ls is /bin/ls
root@ring04h-virtual-machine:~# 

 builtin(内置命令)

用户在命令行输入命令后,一般情况下Shell会fork并exec该命令,但是Shell的内建命令例外,执行内建命令相当于调用Shell进程中的一个函数,并不创建新的进程。以前学过的cd、alias、umask、exit等命令即是内建命令,凡是用which命令查不到程序文件所在位置的命令都是内建命令,内建命令没有单独的man手册,要在man手册中查看内建命令,应该执行

root@ring04h-virtual-machine:~# man bash-builtins可看到所有内置命令的使用详细说明

file、alias(外置命令)

引出PATH,外置命令都会去PATH下所有的路径下去找与命令相同的二进制文件,然后执行

那shell如何知道命令的可执行文件在哪个路径下呢?系统为了让用户在命令行快速方便地执行命令,将 可执行文件的路径存储在环境变量PATH中。

在众多环境变量里面有一个环境变量叫做PATH,当用户每次执行外部命令的时候都会去该变量所记录的 路径下搜索和命令同名的二进制文件,如果有则执行该二进制文件,如果没有则提示命令找不到。

root@ring04h-virtual-machine:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/root/.local/bin:/root/.local/bin

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

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

相关文章

阿里巴巴1688商品详情API返回值深度剖析:精准获取商品信息的关键

在电子商务日益繁荣的今天,阿里巴巴1688作为中国领先的B2B平台,汇聚了海量的供应商和商品信息。对于商家、开发者以及希望深入了解商品数据的用户来说,如何通过有效的方式获取这些商品信息成为了一个重要议题。阿里巴巴1688商品详情API的出现…

Semi-decentralized Federated Ego Graph Learning for Recommendation

论文概况 本文是2023年WWW的一篇联邦推荐论文,提出了一个半去中心化的联合自我图学习框架。 Introduction 作者提出问题 现有的推荐方法收集所有用户的自我图来组成一个全局图,导致隐私风险。联合推荐系统已被提出来缓解隐私问题,但在客户…

zabbix监控方式(zabbix-trapper)

中文:zabbix采集器,即zabbix sender 。 Zabbix-Trapper 监控方式可以一次批量发送数据给Zabbix Server,与主动模式不同,Zabbix-Trapper 可以让用户控制数据的发送,而不用Zabbix-Agent进程控制,这意味着可以…

PE文件(四)FileBuffer-ImageBuffer

文件执行的总过程 当文件从硬盘中读入虚拟内存(FileBuffer)中时,文件数据会被原封不动的复制一份到虚拟内存中,然后进行拉伸对齐。此时虚拟内存中文件数据叫做文件印象或者内存印象,即ImageBuffer。此时ImageBuffer中…

42.乐理基础-拍号-看懂拍号的意义

到这必然是已经知道 X、Y的意思了: 然后带入数字: 然后念拍号的时候,在国内,百分之九十的地方是从下往上念,念作四二拍,还有百分之十的地方是和国外一样,从上往下念,念作二四拍&…

使用vant组件库

官方文档:Vant 4 - A lightweight, customizable Vue UI library for mobile web apps. vue2对应vant2,vue3对应vant3/vant4 1.安装 官网的快速上手里都有介绍。 # Vue 3 项目,安装最新版 Vant: npm i vant -S# Vue 2 项目&am…

跨境支付行业研究

1. 行业基本情况 随着全球人均购买力增强、互联网普及率提升、支付渠道的进一步成熟、物流等配套设施的完善,网络购物已经成为全球兴起的消费习惯。另一方面,跨境电商对传统贸易的替代已经成为趋势。跨境电商在交易成本和便利程度上都有明显的优势 图1 …

【问题记录】ORA-31603 对象 ““ 属于类型 , 在方案 ““ 中未找到,存储过程procedure执行报错

文章目录 问题:解决方法 问题: ORA-31603: 对象 “V_RST_UTC01390” 属于类型 VIEW, 在方案 “RISKCONFIG_BAK” 中未找到 ORA-06512: 在 “SYS.DBMS_METADATA”, line 5805 ORA-06512: 在 “SYS.DBMS_METADATA”, line 8344 ORA-06512: 在 line 1&…

大数据API技术分享:使用API接口采集淘宝数据(商品详情丨关键词搜索丨店铺所有商品)

使用API接口采集淘宝数据(商品详情、关键词搜索、店铺所有商品)是大数据领域常见的应用场景。以下是一些关于如何使用API接口进行这些操作的技术分享: 1. 获取API权限 首先,你需要在淘宝开放平台注册成为开发者,并创建…

想做视频号小店,为何不建议开通个体店?开店步骤+做店思路如下

我是王路飞。 如果你想在视频号开通店铺的话,那么一定不要使用个体执照开通个体店? 这是为什么呢? 原因很简单,视频号个体店是无法入驻优选联盟的,只能企业店可以入驻。 因为现阶段视频号小店的自然流量很少&#…

五一 作业

#include <iostream>using namespace std; class Num { private:int a; public:Num() {}Num(int a):a(a){}//设置a的值void set(int a){this->aa;}//1-a的和void Sum(){if(a<1){cout<<"a<1"<<endl;return;}int sum0;for(int i1;i<a;i)…

开源模型应用落地-CodeQwen模型小试-探索更多使用场景(三)

一、前言 代码专家模型是基于人工智能的先进技术&#xff0c;它能够自动分析和理解大量的代码库&#xff0c;并从中学习常见的编码模式和最佳实践。这种模型可以提供准确而高效的代码建议&#xff0c;帮助开发人员在编写代码时避免常见的错误和陷阱。 通过学习代码专家模型&…

使用QT开发ROS可视化界面

Q&#xff1a; undefined reference to non-virtual thunk to MyViz A&#xff1a; 该问题主要由于QT中的MOC File没有正确生成&#xff0c;导致虚函数列表出现问题。另外&#xff0c;需要注意虚函数的virtual关键字需要放在类的声明&#xff0c;不能放在类的定义。 qt5_wrap…

获取Android Native堆栈

文章目录 工具和方法获取当前线程的堆栈信息获取任意线程的堆栈信息GCC生成符号的规律总结 在Android系统中&#xff0c;我们有时需要获取Native层的堆栈信息&#xff0c;例如在进行性能分析、问题定位和调试等场景。本文将介绍如何在Android Native层获取堆栈信息&#xff0c;…

计算机视觉——OpenCV Otsu阈值法原理及实现

算法简介 Otsu阈值法&#xff0c;也被称为大津算法&#xff0c;是一种在图像处理中广泛使用的自动阈值分割技术。这种方法由日本学者大津展之于1979年提出&#xff0c;旨在根据图像的灰度直方图来自动选择最佳全局阈值。Otsu阈值法的核心思想是最小化类内方差或最大化类间方差…

《设计一款蓝牙热敏打印机》

主控芯片用易兆威蓝牙ic&#xff0c;通讯接口&#xff1a;蓝牙、串口、usb 安卓apk用java kotlin编写、上位机用Qt编写。

【微磁学】对于现阶段微磁学仿真发展的思考1-理论篇

系列文章目录 对于现阶段微磁学仿真发展的思考1-理论篇 对于现阶段微磁学仿真发展的思考2-工具篇 文章目录 系列文章目录前言一、微磁学的数学区二、微磁学的物理区三、微磁学仿真现存的一些问题四、微磁学代码区&#xff1a;上手操作&#xff0c;理解更深入栗子1: 能量最小化…

【代码随想录】day50

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、123买卖股票的最佳时机III二、188买卖股票的最佳时机IV 一、123买卖股票的最佳时机III 超时了。。。 class Solution { public:int helper(vector<int>…

lsof 查看进程是被哪个文件占用

要查看进程被哪个文件占用&#xff0c;可以使用lsof命令&#xff08;list open files&#xff09;。可以使用以下命令来查看指定进程的打开文件&#xff1a; lsof -p <PID>其中&#xff0c;<PID>是要查询的进程的进程ID。这将列出指定进程打开的所有文件。如果想查…

WouoUIPagePC端实现

WouoUIPagePC端实现 WouoUIPage是一个与硬件平台无关&#xff0c;纯C语言的UI库&#xff08;目前只能应用于128*64的单色OLED屏幕上&#xff0c;后期会改进&#xff0c;支持更多尺寸&#xff09;。因此&#xff0c;我们可以在PC上实现它&#xff0c;本文就以在PC上使用 VScode…