精华内容
参与话题
问答
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆ 安装和登录命令:login、shutdown、...
  • CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 ...set 指定环境变量名称=要指派给变量的字符 设置环境变量 set 显示当前所有的环境变量...
  • 一、Shell变量基础 1、变量类型 变量可以分为两类:环境变量(全局变量)和局部变量 环境变量也被称为全局变量,可以在创建它们...环境变量用于定义shell的运行环境,保证shell命令的正确执行,shell通过环境变量来确定登...

    一、Shell变量基础

    1、变量类型

    变量可以分为两类:环境变量(全局变量)和局部变量
    环境变量也被称为全局变量,可以在创建它们的shell及其派生出来的子进程shell中使用,局部变量只能在创建它们的shell函数或脚本中使用。还有一些变量是用户创建的,其他的则是专用shell变量。

    2、环境变量

    环境变量用于定义shell的运行环境,保证shell命令的正确执行,shell通过环境变量来确定登录用户名、命令路径、终端类型、登录目录等。所有的环境变量都是系统全局变量、可用于所有子进程中,这包括编辑器、shell脚本和各类应用。
    环境变量可以在命令行中设定,但用户退出的时候这些 变量也会消失。因此最好在用户的家目录下的.bash_profile 文件中或者全局配置/etc/profile文件或者/etc/profile.d/中定义。将环境变量放入profile文件中,每次 用户登录时这些变量的值都会被初始化。
    传统上,所有的环境变量都用 大写表示。环境变量应用于用户进程前,必须用export命令导出。

    3、自定义环境变量

    如果想设置环境变量,就要给环境变量赋值之后或设置变量时使用export命令。带-x选项的declare内置命令也可以完成相同的功能。
    在这里插入图片描述
    在这里插入图片描述

    gw_devops@DESKTOP-8BHS6SV:~$ sudo vim  /etc/profile
        OS=ubuntu
        export OS
    gw_devops@DESKTOP-8BHS6SV:~$ . /etc/profile
    gw_devops@DESKTOP-8BHS6SV:~$ echo  $OS
    ubuntu
    

    在这里插入图片描述

    4、显示与取消环境变量

    通过echo命令打印环境变量
    在这里插入图片描述
    用env(printenv)或set显示默认的环境变量

    $:printenv
    

    在这里插入图片描述
    用set显示所有的本地变量
    用unset消除本地变量和环境变量

    gw_devops@DESKTOP-8BHS6SV:~$ echo  $USER
    gw_devops
    gw_devops@DESKTOP-8BHS6SV:~$ unset   USER
    gw_devops@DESKTOP-8BHS6SV:~$ echo  $USER
    此处为空
    

    5、局部变量

    定义本地变量
    本地变量只在用户当前的shell生存期的脚本中使用。如果在shell中启动另一个进程或退出,本地变量无效。
    普通字符串变量定义
    shell变量名的要求:由字母数字下划线定义,不能以数字开头。
    linux.linux123,linux_123

    OS=ubuntu
    OS='ubuntu'
    OS="ubuntu"
    

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    习惯:数字不加引号,其他默认加双引号。

    定义变量单引号、双引号与不加引号
    在这里插入图片描述

    gw_devops@DESKTOP-8BHS6SV:~$ echo '`date`'        #单引号看见什么就是什么
    `date`  
    gw_devops@DESKTOP-8BHS6SV:~$ echo "`date`"     #双引号如果里面是变量,会把变量解析成相应的内容再显示
    Tue Jan 29 11:40:18 DST 2019
    gw_devops@DESKTOP-8BHS6SV:~$ echo `date`      #对于连续的字符串不加引号也可以,加一对双引号比较保险,推荐
    Tue Jan 29 11:40:31 DST 2019
    

    脚本中局部变量的定义
    存在于脚本函数中的变量称为局部变量,要以local方式进行声明,使它只在本函数作用域内生效,防止函数中的命名与变量外部程序中变量重名造成程序异常。
    在这里插入图片描述

    二、命令作为变量

    gw_devops@DESKTOP-8BHS6SV:~$ CMD=`ls`
    gw_devops@DESKTOP-8BHS6SV:~$ echo $CMD
    ip.txt test test.sh
    gw_devops@DESKTOP-8BHS6SV:~$ CMD=$(date +%F)
    gw_devops@DESKTOP-8BHS6SV:~$ echo $CMD
    2019-01-29
    

    在这里插入图片描述
    生产环境常见应用:对站点按时间打包生成不同的文件名

    $ sudo  tar  zcf   etc_$(date +%F).tar.gz   /etc
    $ ls
    etc_2019-01-29.tar.gz 
    
    展开全文
  • shell变量类型:(分两类)环境变量(全局变量)和局部变量#######一般环境变量都为大写######### 变量三种符号无引号:一般是连续字符串,数字,路径等可以不加任何引号'单引号':所见即所得,看到是什么就会...

    shell变量类型:(分两类)
    环境变量(全局变量)和局部变量
    #######一般环境变量都为大写#########

    变量三种符号
    无引号:一般是连续的字符串,数字,路径等可以不加任何引号
    '单引号':所见即所得,看到的是什么就会输出什么
    "双引号":把双引号内的所有内容都输出出来;如果内容中有命令(要用反引号)、变量、特殊转译符等

    ****shell特殊变量$#***
    位置变量:(加双引号)

    $*  获取当前shell的所有参数,将所有的命令行参数视为耽搁字符串
    $# 获取当前执行的shell脚本后的参数总个数
    $@ 获取这个程序的所有参数“$1" "$2" "$3"

    ****数组定义的增删改查*****

    1.数组的定义:
    [root@localhost ~]# text=(1 2 3 4 5)
    2.数组的长度获取:
    ###【】里可以用@或者*来获取###
    [root@localhost ~]# echo ${#text[@]} 
    5
    [root@localhost ~]# echo ${#text[*]} 
    5
    3.打印数组元素:
    从0开始取,0代表第一个元素
    [root@localhost ~]# echo ${text[0]}  
    1
    [root@localhost ~]# echo ${text[1]} 
    2
    [root@localhost ~]# echo ${text[2]} 
    3
    [root@localhost ~]# echo ${text[3]} 
    4
    [root@localhost ~]# echo ${text[4]} 
    5
    
    [root@localhost ~]# set -- "I am" shuyun yunwei.
    [root@localhost ~]# for i in "$*";do echo $i;done
    I am shuyun yunwei.
    [root@localhost ~]# for i in "$#";do echo $i;done 
    3
    [root@localhost ~]# for i in "$@";do echo $i;done 
    I am
    shuyun
    yunwei.

    **打印各个参数信息*****

    [root@localhost ~]# for i in "$1";do echo $i;done
    I am
    [root@localhost ~]# for i in "$2";do echo $i;done 
    shuyun
    [root@localhost ~]# for i in "$3";do echo $i;done 
    yunwei.
    

    ****不加双引号**

    [root@localhost ~]# for i in $*;do echo $i;done 
    I
    am
    shuyun
    yunwei.
    [root@localhost ~]# for i in $#;do echo $i;done 
    3
    [root@localhost ~]# for i in $@;do echo $i;done 
    I
    am
    shuyun
    yunwei.
    [root@localhost ~]# 

    转载于:https://blog.51cto.com/13233089/2107372

    展开全文
  • │ │ 057-变量的使用-05-超市买苹果变量的定义和使用 │ │ 058-变量的类型-01-明确演练需求/项目文件准备 │ │ 059-变量的类型-02-个人信息案例演练 │ │ 060-变量的类型-03-[扩展]PyCharm的调试细节-调试之前...
  • 在linux中经常使用环境变量,或者是设置环境变量,这次准备系统的看一遍 全局环境变量 全局环境变量对于shell会话和所有生成的子shell都是可见...linux中没有显示局部变量的命令。set命令会显示某个特定线程设置的所.

    在linux中经常使用环境变量,或者是设置环境变量,这次准备系统的看一遍

    目录

    1.全局环境变量

    2.局部环境变量

    3.设置用户定义变量

    4.设置全局环境变量

    5.删除环境变量

    6.设置 PATH 环境变量

    7.定位系统环境变量

    7.1登录shell

    7.2 环境变量持久化

    8.数组变量


    1.全局环境变量

    全局环境变量对于shell会话和所有生成的子shell都是可见的。局部变量则只对创建它们的shell可见。

    查看全局变量可以使用env或printenv命令

    也可以使用echo显示变量的值。在这种情况下引用某个环境变量的时候,必须在变量前面加上$

     

    2.局部环境变量

    局部环境变量只能在定义它们的进程中可见,查看局部环境变量的列表有点复杂。linux中没有显示局部变量的命令。set命令会显示某个特定线程设置的所有环境变量。包括局部变量、全局变量以及用户定义变量。

     

    3.设置用户定义变量

    执行一个shell脚本,就能创建在这个shell进程内可见的局部变量了。可以通过等号给环境变量赋值,可以是数值或者字符串

    现在每次引用my_variable 环境变量的值,只要通过$my_variable引用即可。如果要给变量赋一个含有空格的字符串值,必须用单引号来界定字符串的首和尾。

    设置局部环境变量后,就能在shell进程的任何地方使用,但是如果生成了另一个shell,在子shell就不能用了,使用exit可以退出子线程

    4.设置全局环境变量

    在设定全局环境变量的进程所创建的子进程中,该变量都是可见的。创建全局环境变量的方法是先创建一个局部环境变量,然后再把它导出到全局变量。这个过程通过export命令来完成。变量前面不需要加$

    在定义并导出局部环境变量my_variable后, bash命令启动了一个子shell。在这个子shell中能够正确的显示出变量my_variable的值。该变量能够保留住它的值是因为export命令使其变成了全局环境变量。修改子shell中全局环境变量并不会影响到父shell中该变量的值
     

    5.删除环境变量

    全局变量只能在父进程中删除

    6.设置 PATH 环境变量

    当在shell命令行界面输入一个外部命令的时候,shell必须搜索系统来找到对应的程序,PATH环境变量定义了用于进行命令和程序查找的目录,我的ubuntu18 PATH环境变量的内容如下:

    如果命令或者程序的位置没有包括在PATH变量中,那么如果不使用绝对路径的话, shell是没法找到的。所偶一就要将应用程序的目录添加到现有的PATH环境变量中。PATH中的各个目录是用冒号分隔的。你只需引用原来的PATH值,然后再给这个字符串添加新目录就行了。
     

    对PATH变量的修改只能持续到退出或重启系统。这种效果并不能一直持续。要永久的修改效果,要修改配置文件。

    7.定位系统环境变量

    在登录linux系统启动一个bash shell的时候,默认情况下bash会在几个文件中查找命令。这些文件叫做启动文件或者环境文件。bash检查的启动文件取决于你启动bash shell的方式。启动bash shell有三种方式

    • 登录时作为默认登录shell
    • 作为非登录shell的交互式shell
    • 作为运行脚本的非交互shell

    7.1登录shell

    当你登录linux系统时,bash shell会作为登录shell启动。登录shell会从5个不同的启动文件中读取命令

    1. /etc/profile
    2. $HOME/.bash_profile
    3. $HOME/.bashrc
    4. $HOME/.bash_login
    5. $HOME/.profile

    /etc/profile文件是系统上默认的bash shell的主启动文件。系统上的每个用户登录时都会执行这个启动文件。

    剩下的4个目录在home目录下,可能只会有几个,这四个文件都以点号开头,这说明它们是隐藏文件(不会在通常的ls命令输出列表中出现)。它们位于用户的HOME目录下,所以每个用户都可以编辑这些文件并添加自己的环境变量,这些环境变量会在每次启动bash shell会话时生效。

    剩下两种就不说了,我见的少,没见过哟。

    7.2 环境变量持久化

    对全局环境变量来说( Linux系统中所有用户都需要使用的变量),可能更倾向于将新的或修改过的变量设置放在/etc/profile文件中,但这可不是什么好主意。如果你升级了所用的发行版,这个文件也会跟着更新,那你所有定制过的变量设置可就都没有了。
    最好是在/etc/profile.d目录中创建一个以.sh结尾的文件。把所有新的或修改过的全局环境变量设置放在这个文件中。在大多数发行版中,存储个人用户永久性bash shell变量的地方是$HOME/.bashrc文件。这一点适用于所有类型的shell进程。但如果设置了BASH_ENV变量,那么记住,除非它指向的是$HOME/.bashrc,否则你应该将非交互式shell的用户变量放在别的地方。

    8.数组变量

    要给某个环境变量设置多个值,可以把值放在括号里,值与值之间用空格分隔。使用效果如下

    可以用unset命令删除数组中的某个值,删除只是删掉那个位置上的值,但是那个位置始终是存在的。如下

     

     

    展开全文
  • shell脚本变量

    2017-10-14 17:31:26
    环境变量和本地变量,环境变量是具有全局属性的。 在交互式shell下面定义变量:VALUE=100 这定义的即为本地变量,如果要将其变成环境变量则需要export VALUE 导出环境...变量的拼接 shell环境变量 例如PWD HOME HO

    环境变量和本地变量,环境变量是具有全局属性的。
    在交互式shell下面定义变量:VALUE=100
    这定义的即为本地变量,如果要将其变成环境变量则需要export VALUE 导出环境变量,取消环境变量则可以使用unset命令。
    环境变量是可以被子进程继承的更是可以被子子孙孙都继承的。环境变量在程序替换掉的时候默认是不会被替换掉的。

    变量的拼接
    这里写图片描述

    shell环境变量
    例如PWD HOME HOSTNAME BASH GROUPS
    系统自带的,用于工作环境

    shell的位置变量

    #:  传递到脚本的参数个数。*: 以一个单字符串显示所有向脚本传递的参数 与位置变量不同 此选项参数可超过9个
    $$: 脚本运行的当前进程的ID号
    $!: 后台运行的最后一个进程的进程ID号
    $@:与$#相同,但是使用时加引号,并在引号中返回每个参数
    $- :显示shell使用的当前选项,与set命令功能相同
    $? :显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误

    这里写图片描述

    位置变量:
    expr 数值运算的命令
    #!/bin/bash
    SUM=$(expr $1 + $2)
    echo "$1 + $2 = $SUM"
    

    这里写图片描述

    这里写图片描述

    局部变量和全局变量
    环境发生变化
    shell的运行原理:读取一行创建子进程进行exec程序替换
    在子SHELL里面设置环境变量在父SHELL是不生效的

    展开全文
  • shell-的变量

    2020-11-25 09:36:23
    shell变量基础及深入 ... 环境变量用于定义shell的运行环境,保证shell命令的正确执行,shell通过环境变量来确定登陆用户名、命令路径、终端类型、登陆目录等,所有环境变量都是系统全局变量,可用于所有子进程中
  • shell变量介绍及变量子串的使用shell变量可分为两大类:环境变量(全局变量)和局部变量。...1、环境变量环境变量的作用:一般用于定义shell的运行环境,保证shell命令的正确执行,Shell通过环境变量来...
  • shell变量

    2020-07-09 23:43:10
    1 变量 变量类型 变量默认是全局变量 ...``可以获取shell命令得到结果,如例PYTHON_VERSION NAME="shell" VAR1="hello,${NAME}." VAR2='hello,${NAME}' PYTHON_VERSION=`python --version` 输出结
  • Shell变量的作用域

    2020-05-11 18:08:36
    (2)全局变量的作用范围则包括定义该变量的Shell以及其所有子Shell 可以使用export内置命令将局部变量设置为全局变量,export的常用格式为: #将指定的一个或多个局部变量设置为全局变量 export<变量名1>[<...
  • 变量简介变量的赋值方式:先写变量名称,然后“=”,最后是值,中间无任何空格变量类型变量可分为两类:环境变量(全局变量)和普通变量(局部变量)环境变量一般指用export内置命令导出的变量,用于定义shell的运行...
  • (1)环境变量(全局变量)环境变量一般使用export内置命令导出变量,用于定义shell运行环境,保证shell命令能够正确执行,shell通过环境变量来确定登录用户名等信息,所有环境变量都是系统的全局变量。...
  • linux环境变量 在bash shell种,环境变量用于存储有关shell会话和工作环境信息。环境变量分为两类: ...使用set命令,可以查看所有环境变量,包括局部变量、全局变量以及用户定义变量。用户定义变量也分局部环...
  • function可以不写,函数中的变量都是全局变量,函数中不存在局部变量的概念.也没有返回值的概念 function 函数名(){ #function可以不写 命令序列 } 函数的使用 调用语法:函数名 参数1 参数2 在调用函数时不带...
  • shell笔记之变量

    2018-10-29 15:59:48
    变量的类型 全局变量(环境变量) 系统默认定义好的,大写字母组成,哪里都可以使用 自定义全局变量方法注意 变量名大写 定义变量时需要使用export命令 01.export I=1 02.I=1;export I 03....
  • 环境变量:Shell定义的一些与系统工作环境有关的全局变量,用户可以重新定义这些变量。 ― HOME变量:定义用户主目录 ― PATH变量:定义执行命令搜索顺序 ― PS1变量: 定义命令提示符 预定义变量(只读):...
  • 1./etc/profile (建议不修改这个文件 ) 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。 ...我在这里加入mysqlstart、mysql和mysqladmin命令的别名,保证每一个用户都可以使用这
  • 我们想定义全局变量(我们得写到文件里面) #这个文件我们写时候一定要小心 #改完这个文件要source加载你环境变量, 只有source(source方法执行shell)了以后父进程才能去识别子进程东西 当前我们这个终端...
  • shell local命令

    万次阅读 2018-01-30 10:01:25
    作用:一般用于shell内局部变量的定义,多使用在函数内部 关于局部变量和全局变量: (1)shell 脚本中定义的变量是global的,作用域从被定义的地方开始,一直到shell结束或者被显示删除的地方为止。 (2)...
  • Linux里面有很多文件,env可以查看所以变量,set会查看用户定义的以及系统自带的变量,我们可以自己定义变量a=111,变量名可以包含字母,数字,下划线,但首行不可为数字,我们使用export可以将变量设置为全局的,...
  • 可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行 DEFINE_EDITOR=vi f、运行命令文件 SQL>START test SQL>@test 常用SQL*Plus语句 a、表的创建、修改、删除 创建表...
  • Shell脚本之设置变量

    2019-08-10 11:32:09
    本文是自己学习总结,仅以作分享。若有不对地方欢迎指正。... 用于定义shell的运行环境,来保证shell命令的正确执行。一般认为,全局变量是系统的全局变量,可用于系统子进程中,和各类应用中。 ...
  • 目录 shell介绍 shell脚本 ...2、全局变量 3、shell变量 shell介绍 shell是一个用c语言编写程序,用户通过shell可以进行对Linux系统操作。shell既是一种命令语言,又是一种程序设计语言。s...
  • 3,新建全局变量 struct shell_input serial_shell ; 并初始化 SHELL_INPUT_INIT(&serial;_shell ,usart_puts);初始化输入缓存和输出交互; 4,串口接收到一整包函数后,调用 shell_input(&serial;_shell , packet ,...
  • shell编程(一)-变量

    2018-04-09 11:18:57
    变量基础及深入 变量类型 变量可分为两类:环境变量(全局变量)和局部变量 环境变量也可以成为全局...环境变量用于定义shell的运行环境,保证shell命令的正确执行,shell通过环境变量来确定登录用户名、命令路...
  • shell是每个接触linux、unix用户不得不会的工具,谈到shell就又联系到bash,因为这个shell是普遍被使用的。那么bash中的局部变量和子shell你是否能熟练掌握呢?...在函数定义中,没有明确定义为局部变量的变量是全局...
  • Shell变量的分类:局部变量、环境变量、全局变量 1.环境变量 Linux是一个多租户的操作系统,针对不同的用户都会有一个专有的运行环境 对所有用户生效的环境变量 /etc/profile 对特定用户生效的环境变量 ~/....
  • 变量名本质是个指针,指向这个数据变化内存空间,那么在命令执行或者操作时,只需要通过变量名,就能够随时调用那个变化数据,很方便Shell脚本中变量和大多编程语言一样,有全局的,也有局部[比如作用于一个...

空空如也

1 2 3 4 5
收藏数 83
精华内容 33
关键字:

定义shell全局变量的命令是