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的方法:
- 修改/etc/passwd文件。
-
使用usermod命令:修改用户属性。
- useradd xx1 //添加xx1用户
- usermod –s /bin/ksh //修改用户shell为ksh。
-
修改shell命令:chsh。
- chsh –s shellname username
Shell变量:用于定制用户本身的工作环境,可保存有用的信息使系统获知用户相关设置。
按作用分:环境变量和本地变量。本地变量只限于一次会话。
查看环境变量:set命令。
定制或设置变量值:set 变量名=变量值
Shell脚本:将一系列的命令保存在一文件内,可以一次执行该系列命令。
执行脚本文件的方法:
- 执行sh命令:sh [文件名];
- 将脚本文件添加可执行权限: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命令能对以上特殊参数造成值的变化。