linux 特殊shell变量

特殊变量

环境变量:

  系统本身运行需要由linux系统提前创建好的一类变量

  主要用于用户的工作环境,包括(用户的宿主目录,命令的查找路径,用户的当前目录,登录的终端等)环境变量的值由操作系统本身维护,随着用户的状态改变而改变

使用env调取当前系统的环境变量

[root@zq ~]# env
XDG_VTNR=1
XDG_SESSION_ID=1
SSH_AGENT_PID=1925
HOSTNAME=zq                                主机名
IMSETTINGS_INTEGRATE_DESKTOP=yes
GPG_AGENT_INFO=/run/user/1000/keyring/gpg:0:1
VTE_VERSION=3803
XDG_MENU_PREFIX=gnome-
SHELL=/bin/bash
TERM=xterm-256color
HISTSIZE=1000
WINDOWID=37748743
IMSETTINGS_MODULE=IBus
USER=zq                                   当前用户

环境变量的配置文件在/etc/profile(全局)

用户宿主目录/home/zq/.bash profile(局部)

 

$PATH

定义命令默认的搜索路径

[root@zq ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zq/.local/bin:/home/zq/bin

注意: 只有自己执行的命令在PATH变量包括的目录下,才可以直接使用并用tab补齐,如果不在PATH所包括的路径下,           只能通过绝对路径或相对路径使用

[root@zq ~]# echo $user[root@zq ~]# echo $USER  查看当前用户
zq
[root@zq ~]# echo $SHELL  当前脚本
/bin/bash
[root@zq ~]# echo $HOME   
/root
当前语言 $LANG

eg: 将我们所写的脚本放到$PATH的默认搜索路径中去

[root@zq ~]# first.sh       不能直接运行这个脚本
bash: first.sh: 未找到命令...
[root@zq ~]# echo $PATH       因为PATH中没有这个命令
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zq/.local/bin:/home/zq/bin
[root@zq ~]# PATH="$PATH:/root"   将这个路径加到PATH中去
[root@zq ~]# echo $PATH           PATH中显示有了这个脚本的路径
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zq/.local/bin:/home/zq/bin:/root
[root@zq ~]# first.sh           可以直接运行这个脚本了  之前需要通过./执行的 
mkdir: 无法创建目录"/root/shell": 文件已存在
eno16777736: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.1.63  netmask 255.255.255.0  broadcast 192.168.1.255inet6 fe80::20c:29ff:fedf:de30  prefixlen 64  scopeid 0x20<link>

这个只能当前有效,想要永久生效的话必须在/etc/profile最后边加上刚刚设置的变量,保存退出,source生效之后,就可以永久直接执行了。

vim /etc/profile  最后追加 所有用户有效  重启或 source方可使用

或只是root用户生效的话 vim /root/.bash_profile 在这个文件的最后追加

 

每个用户还有自己的环境变量都在自己的宿主目录中

 

 

位置变量

  为了使用shell脚本程序:方便通过命令行为程序提供参数Bash引用了位置变量的概念

  当执行命令行操作时第一个字段表示命令字或程序名,其余的字符串参数按照从左到右的顺序一次给位置变量赋值

位置变量也叫位置参数,使用$1,$2,$3.....$表示

eg: 编写一个加法运算的脚本来说明位置变量

vim zq.sh

#!/bin/bash
SUM=$(expr $1 + $2)
echo "$1 + $2 = $SUM"

测试结果

[root@zq ~]# vim zq.sh
[root@zq ~]# ./zq.sh
bash: ./zq.sh: 权限不够
[root@zq ~]# chmod u+x zq.sh
[root@zq ~]# ./zq.sh
expr: 语法错误+  = 
[root@zq ~]# ./zq.sh 1 2  给变量赋值才可以
1 + 2 = 3

 

预定义变量

$#:命令行中位置变量的个数(程序执行了几个位置参数)

$*:所有位置变量的内容(具体的内容 比如/boot就是个具体内容)

$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错取值在1-127之间

$0:当前执行的进程/程序名(就是当前执行的命令或程序的名字)

!$:表示上一个命令的最后一个参数

转载于:https://www.cnblogs.com/zq6041/p/6828533.html

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

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

相关文章

JavaScript中的循环

js循环 程序中进行有规律的重复性操作&#xff0c;需要用到循环语句。 break 和 continue 语句对循环中的代码执行提供了更严格的控制。 for循环 for(var i0;i<len;i){...... }while循环 var i0;while(i<8){......i;}for-in 语句 for-in 语句是严格的迭代语句&…

快速傅里叶变换python_FFT快速傅里叶变换的python实现过程解析

FFT是DFT的高效算法&#xff0c;能够将时域信号转化到频域上&#xff0c;下面记录下一段用python实现的FFT代码。 # encodingutf-8 import numpy as np import pylab as pl # 导入和matplotlib同时安装的作图库pylab sampling_rate 8000 # 采样频率8000Hz fft_size 512 # 采样…

rabbitmq的安装全过程

2019独角兽企业重金招聘Python工程师标准>>> 1 首先下载安装依赖elang 添加yum支持 cd /usr/local/src/ mkdir rabbitmq cd rabbitmq wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm rp…

【框架学习分享】HttpRunner

今天文章分为两部分 :) PART1 HttpRunner内容分享/ PART2 关于后厂村儿 10 Minutes HttpRunner: PART 1 首先感谢作者开源&#x1f44d; 因为最近工作需要用到HttpRunner&#xff0c; 于是便趁着周末学了下这个测试框架&#xff0c;感觉还可以~ 所以分享一下今天的学习记…

x264 移植到 ARM的方法

1。Linux下编译X264&#xff1a; 其实在windows下使用vc已经编译过了&#xff0c;不过听到有人说在linux下编好了&#xff0c;我也就尝试做一下&#xff0c;况且x264源代码的makefile已经做好了&#xff0c;我只需要做的就是把文件copy一下&#xff0c;然后make 一下就可以了。…

JavaScript中的元素获取与操作

js元素获取与操作 可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素&#xff0c;获取到的是一个html对象&#xff0c;然后将它赋值给一个变量&#xff0c;比如&#xff1a; <script type"text/javascript">var oDiv document…

VUE2第五天学习---自定义指令

阅读目录 1.理解VUE中的自定义指令回到顶部1.理解VUE中的自定义指令 默认核心指令有 (v-model 和 v-show), 但是有时候我们需要用到自定义指令&#xff0c;在vue中&#xff0c;代码复用主要形式和抽象是组件&#xff0c;但是在有的情况下&#xff0c;我们仍然需要对DOM元素进行…

python报名_2019年少儿Python创意编程比赛报名时间

2019年Python创意编程比赛时间及相关规定&#xff1a;参赛对象 Python创意编程比赛设初中组和高中组。 全国各地初中、高中(含中等职业学校)在校学生均以个人名义报名参加。 参赛步骤 Python创意编程比赛分初评、复评和终评三个阶段&#xff0c;初评和复评以线上形式开展&#…

【分享】后厂村鲜为人知的另一面

好&#xff01;回归学长每周的杂谈分享&#xff01; 有人说“后厂村”像一座孤岛&#xff0c; 这里远离喧嚣&#xff0c;没有生活气息。 而刚刚到厂的学长&#xff0c; 却想和你分享他鲜为人知的另一面。 内容整理源于网络看客原创侵删 说起后厂村&#xff0c;也许是老北京人…

windows 下安装rabbitmq

2019独角兽企业重金招聘Python工程师标准>>> 1、下载 下载地址&#xff1a;http://www.rabbitmq.com/download.html 2、Windows上安装 2.1 安装安装Erlang 下载erlang&#xff1a;http://www.erlang.org/download/otp_win64_17.3.exe 安装&#xff1a; erlang安装完…

【Kubernetes】k8s 的基本使用指令

今天分享如题&#xff1a; Kubernetes 最近更新缓慢由于工作太忙惹&#xff0c;忙里偷闲整理愿能与君共勉&#x1f4aa; K8S对我来说是个新的技术栈&#xff0c;程序员就是需要一直充电&#x1f50b; 加油&#xff0c;一起进步&#x1f4aa; 结构模型 k8s 是经典的一对多模…

php是如何工作的

a:前提条件: apache服务器启动正常工作 b:客户端浏览器在地址栏输入一个程序地栏 按回车发送请求 {请求}http://127.0.0.1/day03/1.php c:apache接收请求&#xff0c;并且负责查找相应资源1.php d:如果apache没有找到相应的资源,返回错误消息给客户端浏览器404 NOT FOUND e:如果…

c语言 malloc_C语言快速入门——动态内存分配

在前面一系列的字符串操作中&#xff0c;我们都是先定义一个固定大小的字符数组&#xff0c;然后根据所需&#xff0c;或拷贝、或连接、或格式化来为这个数组提供内容。固定大小的数组意味着在程序运行期间&#xff0c;数组所占用的内存是确定的(即划分了固定数量的内存)&#…

FFMPEG设置 cbr讨论

Q:我采用ffmpeg调用x264一直出错&#xff0c;命令如下ffmpeg -s 352x288 -r 50 -pix_fmt yuv420p -i tmp.yuv tmp.h264可不可以给点建议&#xff0c;找了很久也没有找到解决办法&#xff0c;错误时error while opening encoder for output stream 0.0 maybe incorrect parame…

博文声明

本博客用于分享学习笔记 欢迎大神指正&#xff0c;我们互相学习交流&#xff0c;共同成长进步&#xff01; 博客首页:秋叶夏风的博客

【经验分享】工程开发与Coding规范

今天分享分为两部分 :) PART01 工程开发代码规范分享/ PART02 关于某易云自动签到听歌分享- 5Mins DevCoding Rule: PART 1 了解真实工程开发&#x1f3d7;..... 本篇内容分享的宗旨: 学长工作经验之谈仅作分享&#x1f3f7; Ready,Go 代码管理——工具篇 •工程上首先需要…

过滤器与拦截器区别

过滤器与拦截器区别 参考&#xff1a;http://www.cnblogs.com/dreamroute/p/4198087.html?utm_sourcetuicool 过滤器 过滤器是一个程序&#xff0c;它先于与之相关的servlet或JSP页面运行在服务器上。它是随你的web应用启动而启动的&#xff0c;只初始化一次&#xff0c;以后就…

二进制-高效位运算

数独 数独是介绍位运算的好例子&#xff0c;运用位运算和不运用效率差别还是挺大的。我们先看数独需求: 1、当前数字所在行数字均含1-9&#xff0c;不重复 2、当前数字所在列数字均含1-9&#xff0c;不重复 3、当前数字所在宫&#xff08;即3x3的大格&#xff09;数字均含1-9&a…

pytorch resnet50_PyTorch终于能用上谷歌云TPU,推理性能提升4倍,我们该如何薅羊毛?...

晓查 发自 凹非寺量子位 报道 | 公众号 QbitAIFacebook在PyTorch开发者大会上正式推出了PyTorch 1.3&#xff0c;并宣布了对谷歌云TPU的全面支持&#xff0c;而且还可以在Colab中调用云TPU。之前机器学习开发者虽然也能在Colab中使用PyTorch&#xff0c;但是支持云TPU还是第一次…

x264里的2pass指的是什么意思? x264源代码分析2.encode()

A:x264里的2pass指的是什么意思?另外stat是什么意思, 比如有个参数--stats <string> Filename for 2 pass stats [/"%s/"]/n", defaults->rc.psz_stat_out );stats在这是什么意思? 2pass是2次编码的意思&#xff0c;stats是统计文档的名称&a…