Shell:命令解释器,介于操作系统与用户之间,负责将命令解释给Linux内核
常见的Shell种类:Bsh、Ksh、Zsh、Csh以及我们的Bash,Bash是Bsh的升级版本,是Linux默认的Shell
Shell环境的切换:
登录Shell:
指用户每次登录加载的Shell程序,大多数Linux系统采用/bin/bash作为默认的登录Shell
/etc/shells记录了系统支持的有效登录Shell
切换Shell:
临时切换:直接执行其他Shell程序,如ksh、csh等
更改用户登录Shell:修改/etc/passwd文件中记录的最后一个字段,或者usermod -s Shell程序路径 用户名
Bash的命令别名:
查看别名:alias 命令,比如alias ls查看ls的别名
设置命令的别名:alias 命令="实际执行的别名",比如alias rm="rm" 此时rm的别名就是“rm”(带了引号)
取消已设置的别名:unalias 别名,比如unalias "rm"取消了上一步设置的别名,记得恢复回去
Bash的历史命令:history
管道与变量:
管道:左边命令的输出结果作为左边命令的输入,操作符为“|”
Shell变量:为灵活管理Linux系统提供特定参数,有两层意思:
1.变量名:使用固定的名称,由系统预设或用户定义
2.变量值:能够根据用户设置或系统环境变化而变换
Shell变量种类:
用户自定义变量:用户自己定义、使用和修改
环境变量:由系统维护,用于设置用户Shell工作环境,只有极少的环境变量可以修改
预定义变量:Bash预定义的特殊变量,不能直接修改
位置变量:通过命令行给程序传递执行参数
变量的赋值与使用:
定义新变量:
变量名要以英文字母或下划线开头,区分大小写
格式:变量名=变量值
查看变量值:
echo $变量名
从键盘输入内容为变量赋值:
格式:read [-p "信息"] 变量名
结合不同的引号为变量赋值:
双引号:允许通过$引用其他变量的值
单引号:禁止使用其他变量,$视为普通字符
反撇号(``):将命令执行的结果输出给变量
设置变量的作用范围
export 变量名... 设置变量为全局变量
export 变量名=变量值 [...变量名n=变量值n]
这里设置DAY为全局变量之后,在其他的环境中也能生效
清除用户设置的变量
unset 变量名
环境变量:
全局配置文件:/etc/profile
用户配置文件:~/.bash_profile
查看环境变量
set命令可以查看所有的Shell变量