zoukankan      html  css  js  c++  java
  • shell笔记

    shell:俗称操作系统的"外壳",就是命令解释程序。

        是用户与Linux内核之间的接口。

        是负责与用户交互,分析、执行用户输入的命令,并给出结果或出错提示。

        每个用户账号创建时都会指定一个shell。当用户使用该账号注册成功,便会马上执行。

        root账号的shell提示符是#号。

     

    shell种类:

    ash:占用资源最少的shell。

    bash:默认使用,内部命令一共用40个。

    ksh:共42条内部命令,与商业版ksh完全兼容。

    csh:linux较大的内核,C语言写成。tcsh就是csh,它指向/bin/tcsh这样的一个shell。

    zsh:最大的shell之一,84个内部命令。

     

    查看用户指定的shell:cat /etc/passwd。

        命令显示的内容中,每一行是用户的信息。信息末尾就是指定shell类型。比如/sbin/nologin,这是一个假shell,表示该用户无法登录;/sbin/bash,表示用户登录后使用bash。

     

    修改用户指定shell的方法:

    1. 修改/etc/passwd文件。
    2. 使用usermod命令:修改用户属性。
      1. useradd xx1 //添加xx1用户
      2. usermod –s /bin/ksh //修改用户shell为ksh。
    3. 修改shell命令:chsh。
      1. chsh –s shellname username

     

    Shell变量:用于定制用户本身的工作环境,可保存有用的信息使系统获知用户相关设置。

        按作用分:环境变量和本地变量。本地变量只限于一次会话。

        查看环境变量:set命令。

        定制或设置变量值:set 变量名=变量值

        

    Shell脚本:将一系列的命令保存在一文件内,可以一次执行该系列命令。

    执行脚本文件的方法:

    1. 执行sh命令:sh [文件名];
    2. 将脚本文件添加可执行权限:chmod a+x [文件名]。添加完后就可以直接执行:./文件名。

     

    如果要设定脚本文件执行时的shell,可以在脚本文件开头这样写:

    #!/bin/bash

     

    /etc/profile:环境变量文件,所有的环境变量都在里面设置,该文件会在用户登录时自动执行。

    /etc/bashrc: bash shell环境变量文件,该文件只会在用户登录时使用的是bash shell才会自动执行。

    ~/.bash_profile:用户环境变量文件,当前用户登录时才会执行。

    ~/.bashrc:同上。

     

    脚本命令:

    shift:用于将脚本参数值向后一位传递。

    循环控制:

    For i in 1 2 3

    do

    …..

    done

     

    while <判别命令>

    do

    ….

    done

     

    until <判别命令>

    do

    ….

    done

     

    条件测试:test命令

    test –e [文件名]:检查文件名是否存在;

    -x [文件名]:检查是否为可执行文件;

    -f [文件名]:检查文件是否存在,并为普通文件;

    -L [文件名]:是否为硬链接文件

    -d [文件名]:是否为目录;

    -nt:前者比后者是否新。示例:test file1 -nt file2

     

    判断两整数:

    -eq:两值相等;

    -ne:两值不相等 ;

    -lt:小于;

    -gt:大于;

    -le:小于等于;

    -ge:大于等于;

     

    判断字串:

    –z string:是否空字串;

    -n string:是否不为空;

    ==:是否相等;

    !=:是否不相等;

     

    shell预设参数:

    $0预设的参数值为脚本名称;

    第1个参数为$1,第2个参数为$2……

    特殊的参数:

    $@:包含所有从$1开始的参数值,空格相隔。

    $#:包含的参数个数。

    注意:shift命令能对以上特殊参数造成值的变化。

  • 相关阅读:
    Icinga使用总结
    Linux入门:usermod
    JMeter入门(01)概念和样例
    英语日常词汇:living-room、dining-room vs dining hall
    安装 docker-compose
    CentOS7下安装python-pip
    JMeter入门(03)多台JMeter联合测试
    jmeter入门(02)测试报告各项指标含义
    istio入门(01)istio的优势在哪里?
    Docker学习笔记
  • 原文地址:https://www.cnblogs.com/xiwang6428/p/6108931.html
Copyright © 2011-2022 走看看