shell 环境
常见的shell:
- sh:Bourne Shell
- tcsh:C Shell
- ksh:Korn Shell
- bash:Bourne Again Shell
shell 常见命令:
- 查看本机已经安装的shell:
- chsh -l
- cat /etc/shells
- 查看当前正在使用的shell:
- echo $SHELL
- 切换shell版本:
- chsh -s /usr/bin/zsh
- 修改 /etc/passwd 文件,即将 root:x:0:0:root:/root:/usr/bin/bash 中最后一位进行修改 root:x:0:0:root:/usr/bin/zsh ```bash $ cat /etc/shells #查看本机支持的shell /bin/sh #Bourne Shell /bin/bash #Bourne Again Shell /usr/bin/sh /usr/bin/bash
$ echo $SHELL #查看当前系统使用的Shell /bin/bash
安装 zsh:
```bash
$ yum install zsh
$ which zsh #首先定位到zsh的绝对路径
/usr/bin/zsh
$ chsh -s /usr/bin/zsh
Changing shell for root.
chsh: Warning: "/usr/bin/zsh" is not listed in /etc/shells.
Shell changed.
$ head -n 1 /etc/passwd
root:x:0:0:root:/root:/usr/bin/zsh
shell 变量
查看shell环境变量:
- env / export:显示环境变量
- set / declare:显示环境变量和自定义变量
$ env
USER=root
.......省略
_=/usr/bin/env #下划线变量 _ 表示用户上一次输入的命令的最后一个参数
设置shell环境变量:
- export PATH=$PATH;/xxx :export 设置一个环境变量,注意前面的$PATH不能省略,否则会清空原来设置的环境变量
read 获取用户输入
获取标准输入或文件输入,并将信息存放到变量中:
- read var
- read -p “提示语” var:var指用来接受输入的变量
- read var1 var2… :同时接受多个输入
- read -t m:指定接受输入的时间,单位秒
- read -s :隐藏用户的输入,如密码
1、如果输入的数据量少于变量的个数,那么多余的变量不会获取到数据,即变量值为空#!/bin/bash
read -p "提示语" var
echo "你的输入是:$var"
2、如果输入的数据量多于变量的个数,那么超出的数据都将复制给最后一个变量
3、如果 read 后面没有写接受变量,则会将输入数据存放到一个 $REPLY 的变量
read 使用 -u 参数读取文件:
#! /bin/bash
read -p "请输入要打开的文件:" var
echo "你要打开的文件:$var"
# 创建文件描述符
exec 3<$var
# 通过文件描述符进行循环读取
count=0
while read -u 3 line
do
let count=$count+1
echo "Line $count:$line"
done
echo "finished"
echo "Line num is $count"
# 关闭文件描述符
exec 3<&-