Shell及环境变量简介
Kernel
系统内核用于在计算机启动时载入基本内存、 管理基本输入输出、管理进程初始化和进程的调度。
Shell
系统的命令解释器,翻译成中文也就叫壳,外壳的意思,就是最表面的,用于操作系统与用户的通信,相当于Dos中的command.com。Red Hat Linux 默认的shell 是Bash
想知道你的熊系统里有哪些Shell吗,可以用这个命令来完成:#cat /etc/shells
一个用户使用什么Shell 可以在 /etc/passwd中查看,可以看到在每一行的最后一行就是用户使用的Shell
nologin是个特殊的Shell,很重要
在Linux里有很多的变量,大致可分为3种:
环境变量
内部变量
用户变量
用户可以通过这些变量获得系统、环境的信息
环境变量相当于给系统或用户应用程序设置的一些变量, 具体起什么作用这当然和具体的环境变量相关。比如PATH, 是告诉系统, 当要求系统运行一个程序而没有告诉它程序所在的完整路径时, 系统除了在当前目录下面寻找此程序外, 还应到由PATH变量定义的目录中去查找.这个PATH和WINDOWS下面作用一样哈
在bash中有很多预定义环境变量
用户可以用set或env查询当前的环境变量
常用的预定义变量:
HOME:当前用户的主目录
PATH:当前用户的可执行文件搜索路径
LANG:程序应该使用的默认语言
PS1:行提示符
注意,我们系统中环境变量是很多的,但是我们需要注意的只要这几个,LINUX下面的变量名字基本都是大写字母
echo $变量名字来查看变量
echo $PATH 这是可执行程序的搜索路径
echo $LANG 当前语系
echo $HOME 当前用户主目录
echo $PS1 就是我们提示框的变量
用户变量是用户在编写shell过程中,可以在shell程序内任意使用和修改的变量。(以字母或下划线开头,通常字母是大写母)
赋值:变量名=变量值
获取变量值 ${变量名}
例:VAR=hellorhce ;赋值
echo ${VAR} ;显示变量值
使用echo完成简单地输出
echo “hello world”
VAR=“hello”
echo ${VAR} world
也可以使用printf来产生各种格式的输出
printf “hello\nworld\n”
read 从标准输入读取数据来为var1这个变量赋值
-p输出提示字符
read -p “Enter a filename: ” FILE
这样就把一个用户输入的数据变成一个变量,在编程的时候可以转入下个动作。
history命令、BASH、快捷键
通过history命令可以查看用户使用过的历史命令,内存中记录的过往指令数根据环境变量中HISTSIZE而定(/etc/profile)
history表存储在内存中,在用户logout时会记录入用户主目录下的.bash_history文件中。在下次login时载入。预定的记录为1000条,这些都定义在环境变量中。
使用!来调用过往指令:
!l:重复执行上一条以l为首的指令
!!:重复执行上一条指令
!number:重复执行上一条在history表中记录号码为number的指令
!-number:重复执行前第number条指令
!$:表示获得前面命令行中的最后一项内容
可以用<ctrl+r>来在history表中查询某条过往指令
命令行表达式
命令行输出——“ ” 将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,则转义。
命令行输出——‘ ’ 将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,不转义。
执行引用符——` ` 引用命令的执行结果
总结:
命令行输出——“ ”
将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,则转义。
命令行输出——‘ ’
将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,不转义
数学运算——$[2*5 ]
在中括号内的表达式会被数学计算
eg: #VAR=$[2*5]
#echo $VAR
10
脱逸符——\
用于取消命令行中字符的特殊含义
用于表示一行未结束
命令行结束符——;
用于在一行内分隔两个独立命令,表示一行已结束,作用相当于回车键
eg: #pwd; ls –l
子shell激活——()
在小括号内的命令行表示激活一个子shell后在子shell中运行
还有两个逻辑语符号&&和||
shell命令行支持在同一行的两条命令中插入&&(逻辑与)与 ||(逻辑或)
&&:当前一条指令执行成功时再执行后一条指令
||:当前一条指令执行失败时再执行后一条指令
eg: ls /home && echo true &&前面执行成功才执行后面
eg: ls /51blog || echo false || 前面执行失败或者为假,才执行后面的命令
定制登陆shell
bash 在用户登录时从四个文件中读取环境设定:
全局设置文件:
① /etc/profile
② /etc/bashrc
用户设置文件:
③ ~/.bash_profile
④ ~/.bashrc\
在shell下键入alias可以查询当前alias列表。
用户可以alias来为一条命令取一个简单的别名
用户也可以用unalias来取消一条别名记录。
alias记录在shell中总是先行。
常用快捷键
Ctrl + d:输入已结束。在shell下相当于一个exit
Ctrl + c:键盘中断请求。
Ctrl +s &Ctrl + q:暂停/恢复屏幕输出
Ctrl + l:清屏,相当于clear。
Tab:自动补完命令行与文件名
Tab键双击: 可以列出所有可能匹配的选择
Ctrl+u: 删除当前光标前的所有字符
ctrl+k: 删除当前光标后的所有字符
运行tree / 这个命令,然后 用Ctrl加s,q 和c 看看效果
ctrl+s暂停屏幕输出