shell笔记,老男孩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的方法:

  • 修改shell命令:chsh。
  •  

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

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

        查看环境变量:set命令。

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

        

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

    执行脚本文件的方法:

     

    如果要设定脚本文件执行时的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命令能对以上特殊参数造成值的变化。

    相关内容