linux shell 入门学习笔记7 父子shell面试题

news/2024/4/19 8:59:07/文章来源:https://blog.csdn.net/qq_20252351/article/details/129172134

1. 不同的执行方式,不同的shell环境

  1. 每次调用bash/sh解释器执行脚本都会开启一个子shell,因此不保留当前shell变量,通过pstree命令检查进程树
  2. 调用source是当前环境加载脚本,因此保留变量
    例子:
xiao123@xiao123:~/Downloads$ echo "name=大西瓜" > make_vars.sh
xiao123@xiao123:~/Downloads$ cat make_vars.sh
name=大西瓜
xiao123@xiao123:~/Downloads$ chmod +x make_vars.sh
xiao123@xiao123:~/Downloads$ bash ./make_vars.sh
xiao123@xiao123:~/Downloads$ echo ${name}xiao123@xiao123:~/Downloads$ echo $namexiao123@xiao123:~/Downloads$ source ./make_vars.sh
xiao123@xiao123:~/Downloads$ echo ${name}
大西瓜
xiao123@xiao123:~/Downloads$ echo $name
大西瓜
xiao123@xiao123:~/Downloads$

2.shell变量面试题

问,如下输入什么内容

xiao123@xiao123:~/Downloads$ echo 'user1=`whoami`' > test.sh
xiao123@xiao123:~/Downloads$ cat test.sh
user1=`whoami`
xiao123@xiao123:~/Downloads$ sh test.sh
xiao123@xiao123:~/Downloads$ echo $user1
A.当前用户
B.超哥
C.空

答案:C

环境变量设置

环境变量一般指的是用export内置命令导出的变量,用于定义shell的运行环境、保证shell命令的正确执行。
shell通过环境变量确定登录的用户名、PATH路径、文件系统等各种应用。
环境变量可以在命令行中临时创建,但是用户推出shell终端,变量即丢失,如要永久生效,需要修改环境变量配置文件。

  • 用户个人配置文件 ~/.bash_profile~/.bashrc远程登陆用户特有文件
  • 全局配置文件/etc/profile/etc/bashrc,且系统建议最好创建在/etc/profile.d/,而非直接修改主文件,修改全局配置文件,影响所有登录系统的用户。

检查系统环境变量的命令

  • set,输出所有变量,包括全局变量、局部变量
  • env,只显示全局变量
  • declare,输出所有变量,如同set
  • export,显示和设置环境变量值

撤销环境变量

  • unset 变量名,删除变量或函数

设置只读变量

  • readonly,只有shell结束,只读变量失效
xiao123@xiao123:~/Downloads$ readonly name='xiao'
xiao123@xiao123:~/Downloads$ name=123
-bash: name: readonly variable
xiao123@xiao123:~/Downloads$

环境变量初始化于加载顺序

  1. shell登录Linux后,系统启动一个bash,shell bash会读取若干个系统环境文件,检查环境变量设置。
  2. /etc/profile:全局环境变量文件;为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
  3. 然后读取/etc/profile.d目录下的脚本,有系统诸多脚本,也放入自定义需要登录加载的脚本,便于用于登录后立即运行脚本。
  4. 运行$HOME/.bash_profile(用户环境变量文件)。
  5. 运行$HOME/.bashrc。
  6. 等等
  7. 运行/etc/bashrc。

注意:
1.每个用户都有自己的环境变量配置文件,~/.bash_profile ~/.bashrc,且以个人配置文件优先加载变量,读取,以个人优先生效。
2.当你需要给所有用户都是用某个变量,写入全局即可/etc/profile。

set 命令

set命令能够找到当前的shell环境中的所有变量,以及包括局部变量(sh脚本文件中定义的变量)
展示:
set

env命令

env命令输出当前shell环境中的全局变量。
展示:
env

declare 命令

declare命令等同于set命令。
展示:
declare

export命令

export查找和设置环境变量的值。
展示:
export

unset命令

unset删除撤销一个变量。

readonly命令

readonly声明变量只读,当前shell结束,该变量只读就失效。

找出当前系统中的环境变量
awk

bash多行命令执行

xiao123@xiao123:~/Downloads$ ls;cd ../;cd -;ls;
make_vars.sh  test.sh
/home/xiao123/Downloads
make_vars.sh  test.sh
xiao123@xiao123:~/Downloads$

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

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

相关文章

直播间的2个小感悟

我是卢松松,点点上面的头像,欢迎关注我哦! 在线人数固定 最近直播间出现了很多新面孔,有的是偶然刷到的,有的是关注互联网找到的。而直播间的人数一直没什么变化,卢松松在抖音直播较少,主播间…

开学第一周,超30所高校系主任选择与百度飞桨联办校赛

经历了一场特殊而漫长的假期,各地校园又恢复了往日的热闹,重新焕发出勃勃生机,师生们在一声声久别重逢的暖心问候中,迎来了2023年春季学期。 以赛促学蔚然成风 开学季是校内竞赛策划及启动的最佳时机之一,越来越多的老…

JVM17GUI工具

3. JVM 监控及诊断工具-GUI 篇 3.1. 工具概述 命令行工具或组合能帮您获取目标 Java 应用性能相关的基础信息,但它们存在下列局限: 1.无法获取方法级别的分析数据,如方法间的调用关系、各方法的调用次数和调用时间等&#xff0…

TEMU联盟计划用意何在?做推广达人真的能收入满满吗?

据东哥近期了解,Temu在北美市场表现十分火爆,甚至冲上了AppStore下载榜第一名。Temu在美国市场上采用了类似PDD的病毒式传播策略,以实惠的产品和折扣吸引消费者并动员普通人大量传播链接和App下载,所以有了TEMU联盟计划&#xff0…

ArcGIS导出AI或EPS格式的地图图片并在Adobe Illustrator中继续编辑

本文介绍在ArcGIS下属的ArcMap软件中,将绘制好的地图导出为.ai或者.eps格式文件,并在Adobe Illustrator软件中进一步编辑地图,并最终导出为图片格式的结果文件的方法。 在ArcMap软件中绘制各类地图可以说非常方便,绘制得到的地图也…

深圳/东莞/惠州师资比较强的CPDA数据分析认证

深圳/东莞/惠州师资比较强的CPDA数据分析认证培训机构 CPDA数据分析师认证是中国大数据领域有一定权威度的中高端人才认证,它不仅是中国较早大数据专业技术人才认证、更是中国大数据时代先行者,具有广泛的社会认知度和权威性。 无论是地方政府引进人才、…

synchronized和ReentrantLock有什么区别呢?

第15讲 | synchronized和ReentrantLock有什么区别呢? 从今天开始,我们将进入 Java 并发学习阶段。软件并发已经成为现代软件开发的基础能力,而 Java 精心设计的高效并发机制,正是构建大规模应用的基础之一,所以考察并发…

Golang学习Day1

😋 大家好,我是YAy_17,是一枚爱好网安的小白。本人水平有限,欢迎各位大佬指点,欢迎关注 😁,一起学习 💗 ,一起进步 ⭐ 。⭐ 此后如竟没有炬火,我便是唯一的光…

诚邀您体验人工智能AI

近期,人工智能(AI)领域动作频频,OPENAI公司Chat GPT的出现,标志着人工智能的研究与应用已经进入了一个崭新的发展阶段,国内腾讯、阿里巴巴、百度、易网、国外微软、谷歌、苹果、IBM、Amazon,等互…

电子技术——反馈放大器的分析方法总结

电子技术——反馈放大器的分析方法总结 第一种也是最简单的估算方法,直接拿出反馈网络,计算 β\betaβ 则假设在 AβA\betaAβ 无限大的情况下有 Af≃1/βA_f \simeq 1/\betaAf​≃1/β 。开环法。比第一种方法更能精确的估计 AAA 和 β\betaβ 的值。系…

自动化测试优势和劣势

一、自动化测试概述 软件自动化测试是相对手工测试而存在的,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,节省人力、时间或硬件资源,提高测试效率。 二、自动化测试优势&劣…

BP神经网络参数总结,BP神经训练窗口详解,基于BP神经网络的火灾识别,1000案例之17

目录 摘要 BP神经网络参数设置及各种函数选择 参数设置 训练函数 传递函数 学习函数 性能函数 显示函数 前向网络创建函数 BP神经网络训练窗口详解 训练窗口例样 训练窗口四部详解 基于B P神经网络的火灾识别 数据集 MATLAB编程BP神经网络代码,并附有GUI窗口 效果图…

Python-项目实战--贪吃蛇小游戏-贪吃蛇功能实现(4)

5.贪吃蛇功能的实现在这一小节,我们就以完成的游戏框架为基础,加入贪吃蛇的功能,完成整个游戏的开发本小节的知识重点包括:贪吃蛇类的设计定义贪吃蛇类添加蛇身体绘制和移动身体改变贪吃蛇的方向贪吃蛇吃食物贪吃蛇的死亡5.1贪吃蛇类的设计我…

java -cp 错误:找不到或无法加载主类

java -cp 错误:找不到或无法加载主类 1.问题场景 在一个项目开发中,我需要写一个 windows的bat脚本,需要在里面 调用 SpringBoot项目生成的jar包,我在调用 classes下面的 jar时 通过 调用 jar包 去调用 jar包中的某个 .java类 …

吃鸡用什么蓝牙耳机效果好?手游吃鸡公认最好的几款蓝牙耳机

蓝牙耳机的作用很多,几乎每个人都需要一副很棒的耳机在通勤或锻炼途中使用,并且玩游戏也少不了它,手游近几年十分的流行,下面整理了几款性能不错的蓝牙耳机。 第一款:南卡小音舱蓝牙耳机 蓝牙版本:5.3 发…

树莓派CM4基础设置

安装系统1.1 软件和硬件准备硬件:CM4(4GB DDR32GB EMMC 板载WIFI和蓝牙)CM4-to-Pi4-Adapter软件:Raspberry Pi或者 Win32DiskImagerRaspberry Pi下载链接:点击直接下载Win32DiskImager下载链接:链接&#x…

JSP 在线学习管理系统myeclipse定制开发sqlserver数据库网页模式java编程jdbc

一、源码特点 JSP 在线学习管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为SQLServer2008&#x…

第09章_MySQL子查询

第09章_子查询 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了…

2023年你应该关注的JavaScript趋势

本文翻译者系360 奇舞团前端开发工程师原文标题:Top JavaScript (JS) Trends You Should Follow in 2023原文作者:yevheniia原文地址:https://www.codica.com/blog/top-javascript-trends/#top-java-script-frameworks-and-libraries-to-watc…

【python】考前复习,python基础语法知识点整理

文章目录1.常量与表达式2.变量和数据类型创建变量数据类型动态类型数据类型的转换3.注释4.字符串字符串的定义方式字符串的拼接字符串的格式化①字符串格式化的精度控制字符串的格式化②对表达式进行格式化5.从控制台输入(input)6.运算符算术运算符赋值运算符布尔类型和比较运算…