Linux Shell

Shell是一个系统程序,但与一般在后台运行的系统程序不同,它在前台提供Linux系统与用户交互操作的界面。

一、Shell变量

1.本地变量

本地变量是由用户自己定义,只作用于当前的shell环境,对于在这个shell环境下启动的子shell进程,它将不能够被有效访问。

(1)设置变量

例:MOVIE="Live is beautiful"

(2)显示变量

例:echo $MOVIE

(3)清除变量

例:unset MOVIE

(4)查看所有变量

例:set|more

2.环境变量

定义用户的工作环境,用户在当前shell或者任意子shell中获得环境变量的信息。

(1)设置变量

例:MOVIE="Live is beautiful"

export MOVIE

导出变量,使之能用于全部的shell环境

(2)显示所有环境变量

例:export

(3)清除环境变量

例:unset MOVIE

(4)常用环境变量

HOME:用户主目录绝对路径

PATH:用冒号分割的可执行文件目录

TERM:终端类型

UID:用户ID

PWD:当前工作目录绝对路径

PS1:主提示符,特权用户缺省的是#,普通用户是$

PS2:缺省辅助提示符,例如未输完命令按enter键,shell显示的辅助提示符

3.位置参数变量

共10个:$0-$9,$0表示shell程序本身,$1标示第一个位置的参数。当位置参数多于8个的时候,可以通过shift命令,将后面参数前移一位。

例:sharg.sh脚本文件为:

echo "command received $# params"

echo "command:$0"

echo "Arg1:$1"

shift

echo "Arg3:$1"

运行:./sharg.sh 80 f1 f2

结果为:command receive 3 prarams

command:./sharg.sh

Arg1:80

Arg2:f1

4.预定义变量

$# 传递到脚本的参数数量

$* 以一个单字符串显示传递到脚本的所有参数内容

$? 命令执行后返回的状态

$$ 当前进程的进程号

$! 后台运行的最后一个进程号

$0 当前执行的进程名

5.环境变量配置文件

/etc/profile

/etc/pfofile.d/*

/etc/bashrc

用户主目录下.bash_profile

用户主目录下.bashrc

/etc/profile和/etc/profile.d/*对系统所有用户都有效,用户登录的时候,bash先执行它们,再执行用户主目录下的.bash_profile和.bashrc(执行它的时候会执行/etc/bashrc)。用户主目录下的.bash_profile每次登录都运行,而.bashrc是每次打开新的终端时执行,所以用户一般修改某个环境变量,一般都放在.bashrc中

你可能感兴趣的:(Linux Shell)