• shell预备知识


    设置默认shell

    /etc/passwd配置文件中设置

    临时调用:bash、ksh、csh


    设置环境变量:[export] 变量名=变量值

    注:修改效力仅及于该次登录操作

    引用环境变量:$变量名


    常用环境变量

    env命令:对当前设置的环境变量进行查看

    PATH(设置命令搜索路径):决定了shell将到哪些目录中寻找命令或程序  。增加目录file:#PATH=$PATH:/file

    比如/opt/bin中有一个脚本a,在没有设置之前需要通过绝对路径执行/opt/bin/a,而现在就可以在任意位置执行了

    PS1变量:设置作为命令提示符的字符串

    PS2变量:设置作为命令提示符的字符串,该提示符在用户尚未键入完整命令前按下[回车键]后显示的提示符。


    系统配置文件:所有的shell配置文件都保存在/etc目录中,包括:bashrc、profile以及/etc/profile.d目录中的脚本文件

    /etc/bashrc:设定别名和一些其它的功能,该文件设定了umask的数值,该参数决定了新创建的文件的默认权限,另外还设定了命令行下的提示符。

    /etc/profile:用于设定系统环境,设定PATH、USER、LOGNAME、MAIL、HOSTNAME、HISTSIZE以及INPUTRC变量,以及最后运行/etc/profile.d目录中的脚本文件。

    /etc/profile.d:一个包含若干用bash语言写的shell脚本文件的目录,这些脚本文件由/etc/profile启动运行。


    用户的配置文件(优先级更高)

    ~/.bash_profile:用户可使用该文件设置专用于自己的shell信息,该文件仅在用户登录时执行一次!默认情况下,它设置一些环境变量,执行用户的.bashrc文件;

    ~/.bashrc:该文件包含专用于用户的shell信息,每当启动一个新的窗口时该文件被读取;

    ~/.bash_logout:当每次退出系统(退出bashshell)时,执行该文件

    shell变量

    shell将所赋的每个值都当作字符串,如果串中含有空白字符,应用“”括起

    设置变量:name=value

    引用变量:$name

    清除变量:unset name


    局部变量和全局变量

    局部变量:只作用于当前为它赋值的shell进程,对其他各个子shell进程不产生影响;

    全局变量(传值方式):经过export命令输出的变量对当前shell的各个子shell、以及子shell的子shell起作用


    变量替换

    ${var:-word}var有值且非空时取该值,否则取word的值,但var不变

    ${var:=word}var有值且非空时取该值,否则取word的值,同时var被赋值为word


    位置参数和与预定义变量

    由shell在程序运行时设置,只能引用不能修改!。共10个变量,从程序名开始依次为0-9

    $0 当前shell程序的名字

    $1~ $9 命令行上的第一到第九个参数

    $# 命令行上的参数个数

    $* 命令行上的所有参数

    $@ 分别用双引号引用命令行上的所有参数

    $$ 当前进程的进程标识号(PID)

    $? 上一条命令的退出状态

    $! 最后一个后台进程的进程标识号

    注意$@和 $*的区别


    通过set命令赋值

    set one two three

    echo$0 $1 $2 $3


  • 相关阅读:
    sqoop 使用场景
    scala 类型和集合图
    scala 格式化操作
    sqoop 基础
    scala import 总结
    shell错误 syntax error: invalid arithmetic operator (error token is "
    C/C++ 隐式申明 问题
    阿里云贾扬清:数据湖正成为企业数据应用创新标配
    云原生时代如何用 Prometheus 实现性能压测可观测Metrics 篇
    基于 KubeVela 的机器学习实践
  • 原文地址:https://www.cnblogs.com/jcuan/p/5558465.html
Copyright © 2020-2023  润新知