美文网首页
shell初识与变量

shell初识与变量

作者: 快去学习不然怎么去看aimer | 来源:发表于2019-08-03 14:10 被阅读0次

    ctrl-u 删除光标前
    ctrl-k 删除光标后
    ctrl-a 光标放到行首
    crtl-e 光标放到行尾
    echo -e "\n" 换行(-e 特殊字符特殊处理)
    env 查看所有环境变量

    初识

    shell提供了用户操作内的接口

    cat /etc/shells  查看本机包含的所有shell
    stty -echo  键入终端的内容不显示
    stty  echo  退出隐藏终端
    
    alias     查看所有的别名
    alias ll=“ls -l”    设置别名
    unalias ll     取消别名设置
    
    Bash shell 的内建命令 type
    用途: 用来测试命令的类型
    type [-tpa] name
    选项和参数:
    :不加任何选项,会显示name是外部命令,还是bash内置命令
    -t //会将name以下面这些关键字来表示出他的意义:
    file :外部命令
    alias :命令别名
    builtin :bash内置命令
    不显示任何数据时,表示name不是任何命令
    -p //后面接外部命令时,才会显示出命令的完整文件名
    -a //会由PATH变量定义的路径中,将所以含name的指令都列出来,包括alias
    
    Ps:
    [root@rourou ~]# type -t ls
    alias
    [root@rourou ~]# type -t cd
    builtin
    [root@rourou ~]# type -t pwd
    builtin
    [root@rourou ~]# type -t date
    file
    

    history

    history //列出全部历史命令记录
    history 10 //显示最近10条执行过的命令
    history -c //清除目前 shell 中的所以历史命令
    history -a //将目前新增的命令写入 ~/.bash_history文件中
    history -r //读入内存
    history -w //写入histfiles
    操作:
    !25     执行第25条历史命令
    ! ser   执行最近一次以 “ser”开头的命令
    !!        执行上一条命令
    

    注意history的安全问题,历史命令的记录数量上要控制好
    注意:同一帐号同时多次在线执行命令时,这样会产生多个bash,那么会以最后一个登出的命令历史记录为准
    建议使用一个用户登入bash,再用[Ctrl]+z fg bg 来控制前后台来切换不同的工作

    bash登录欢迎信息

    vim /etc/issue   显示系统信息
    ![issue含义.jpg](https://img.haomeiwen.com/i18861868/b5c342f4ffa9a703.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    vim /etc/mote  修改登录欢迎信息
    

    bash 控制用户可以打开的最大文件数等

    ulimit -f 1024   限制用户仅等建立10MBytes以下容量的文件
    ![ulimit.jpg](https://img.haomeiwen.com/i18861868/65a8be65ccc33d07.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    

    通配符

    通配符.jpg

    特殊符号:

    # 批注符号
    \   转移符号,可以将具有特殊意义的符号变为一般字符
    |   管道符,把前一个命令的结果传递给后一个命令,可以多个,以此类推
    ;   连续下达命令的分隔符
    $   取用变量值的前缀符号
    &   将一个工作置于后台
    !   逻辑运算意义上的非
    /   路径分隔符
    >,>>  输出重定向,>覆盖,  >>追加
    <,<<  输入重定向
    ''  单引号,单引号内的字符均视为一般字符
    ""   双引号,其内的字符具有特殊意义,具有变量置换功能
    ``   其内的命令可以先执行,建议用$( )取代
    ()  在中间为子shell的起始与结束
    {}  在中间为命令区块的组合
    

    数据重定向

    0 标准输入 (stdin)
    1 标准输出 (stdout)
    2 错误输出 (stderr)

    重定向.jpg

    Ps: /dev/null 黑洞文件,将数据导入会被清空

    变量

    什么是变量

    举个例子:

    yy=123
    echo $yy
    123
    

    变量设定的规则

    1.变量名=变量值,不能有空格
    2.变量名只能包含数字和字母,但是开头不能有数字
    3.“ ” 弱引,引号内的特殊字符还是特殊字符
    ‘ ’ 强引,引号内的特殊字符会输出为普通字符
    4.可用转意符 \ 将特殊符号(如 [Enter], , \, 空格符, 等)变成一般字符 5.echo(uname -r) 先执行uname -r 然后echo打印(uname -r) 6.在变量中追加追加内容 :PATH={PATH}:/home/bin
    7用export将普通变量转换为环境变量 export ROUROU (环境变量一般为大写)
    8.unset rourou 取消变量

    环境变量

    echo $RANDOM 产生随机数

    PS1:(提示字符的设置)

    PS1=\d"Mon Feb 2"
    \d :可显示出“星期 月 日”的日期格式,如:"Mon Feb 2"
    \H :完整的主机名称。
    \h :仅取主机名称在第一个小数点之前的名字,如鸟哥主机则为“study”后面省略
    \t :显示时间,为 24 小时格式的“HH:MM:SS”
    \T :显示时间,为 12 小时格式的“HH:MM:SS”
    \A :显示时间,为 24 小时格式的“HH:MM”
    @ :显示时间,为 12 小时格式的“am/pm”样式
    \u :目前使用者的帐号名称,如“dmtsai”;
    \v :BASH 的版本信息,如鸟哥的测试主机版本为 4.2.46(1)-release,仅取“4.2”显示
    \w :完整的工作目录名称,由根目录写起的目录名称。但主文件夹会以 ~ 取代;
    \W :利用 basename 函数取得工作目录名称,所以仅会列出最后一个目录名。
    # :下达的第几个指令。
    $ :提示字符,如果是 root 时,提示字符为 # ,否则就是 $
    

    只在本次shell里有效有效退出重进后主机名为之前的

    列出shell环境下的所有环境变量及其内容

    env 是 environment (环境) 的简写
    set 列出系统中所有的变量
    子程序仅会继承父程序的环境变量, 子程序不会继承父程序的自订变量

    环境变量文件

    登入检查4个文件
    /etc/inputrc :定义快捷键
    /etc/profile.d/*sh :定义bash操作接口颜色、语系、命令别名等
    etc/locale.conf :定义系统的默认语系
    .bashrc

    . ~/.bashrc 将该文件读到给环境中

    登出检查2个文件
    ~/.bash_history
    历史命令记录文件;记录的数量与HISTFILESIZE变量有关。在/etc/profile里
    ~/.bash_logout
    记录了当我注销bash后,系统再帮我做完什么动作后才离开的。

    预定义变量

    echo $#   位置参数个数(不包括shell脚本名)
    echo $*   位置参数组成的字符串
    echo $!   上一个后台命令对应的进程号
    echo $?   上一个命令的退出状态,为十进制数字,如果返回为0,则代表执行成功,则否为不成功。
    echo $$   当前的进程号PID
    

    变量键盘读取、数组与宣告: read, array, declare

    read:

    [root@www ~]# read [-pt] variable
    选项不参数:
    -p :后面可以接提示字符!
    -t :后面可以接等待的秒数
    Ps:
    read -p “请输入你的姓名” name
    echo "你的姓名是: $name"
    

    array:

    var=(qwe asd zcv)
    echo ${var[1]}
    asd
    echo ${var[*]}
    qwe asd zcv
    
    替换取代.jpg

    相关文章

      网友评论

          本文标题:shell初识与变量

          本文链接:https://www.haomeiwen.com/subject/gbvkdctx.html