shell
命令行解释器,是用户与系统沟通时的媒介
linux采用bash为其默认shell
系统可以使用的shell记录在/etc/shells 中
GNU计划一个组件
支持命令行输入。操作历史查询,快捷键。使用量
预定义变量:
给定一个变量;
还可以使用echo ${a}:但两者有区别:
用a=$a123时他会认为将a123里内容给a,因为a123里没有内容,所以输出结果为空。用a=${a}123 输出结果为正确
删除一个变量:
unset a
变量:set能查看所有变量
本地变量
环境变量:用在全部的工作环境中 env只能查看环境变量
系统通过预定义环境变量来定义shell
预定义变量:
预先定义好的变量。
常用预定义变量:
HOME:当前用户的主目录
PATH:当前用户的可执行文件搜索路径
LANG:程序应该使用的默认语言
列出所有支持的语言:locale -a
PS1:行提示符
\d 代表星期
\H 代表完整主机名
\h 获取主机名第一个名字
\t 显示:时 分 秒 (24小时)
\T 显示时间(12小时)
\A 只能显示:时 分(24小时)
\u 当前用户账户名称
\v bash版本
\w 完整工作目录名称(root家目录)
\W basename列出当前工作目录的最后一个目录名
\# root用户
\$ 普通用户
更改:
export 变量名 将自定变量转换为环境变量
history
在bash中输入history指令可以查询用户的过往操作
内存中记录的过往指令数根据环境变量中HISTSIZE而定
history表中存储在内存中,用户logout时会记录入用户主目录下的.bash_history文件中,下次login时载入
.bash_history中的指令数根据环境变量中的HISTFILESIZE而定
强制执行将内存中指令存以.bash_history不用注销时才写入
调用过往指令
使用!来调用过往指令:
!!重复执行上一条指令
!a:重复执行上一条指令
!number:重复执行上一条在history表中记录号码为number的指令
!-number:重复执行前第number条指令
可以用ctrl+r来在history表中查询某条过往指令
alias
在shell下键入alias可以查询当前alias列表
用户可以alias来为一条命令取一个简单的别名
用户也可以用unalias来一条别名记录
alias记录在shell中总是先行
手工创建:
取消别名:unalias
命令行表达式:
命令行输出---------“”
将一串字符当成一个字符串来对待,如果字符串中包含特 殊含义的字符,则转义
$ \ ! `不以被双引号""禁掉其他都可以
命令行输出---------‘’
将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,不转义
禁止所有特殊符号。包括$ ` ! \
执行引用符--------''
引用命令执行的结果
首先执行pwd 然后将执行结果传给ls -al执行
命令行表达式二:
数学运算-------------$[]
在括号内的表达式会被数学计算
先将中括号数学运算得出结果赋于临时变量,然后再将临时变量显示
逸脱符---------------\
用于取消命令行中字符的特殊含义
加入逸脱符系统认为空格是普通符号
用于表示一行未结束
命令行表达式三:
命令行结束符----------;
用于在一行内分隔两个独立命令,表示一行已结束,作用相当于回车键
pwd ; ls -l
子shell激活-----------()
在小括号内的命令行表示激活一个子shell后在子shell中运行
HOME会激活一个子shell在子shell命令中运行,也不会传给另外一个shell
逻辑运算符
shell命令行支持在同一行的两条命令中插入&&(逻辑与)与||(逻辑或)
&&:当前一条指令执行成功再执行后一条指令
||:当前一条指令执行失败时再执行后一条指令
登录shell
默认情况下,在shell下改变变量,umask alias只在此次登录中有效,一旦logout后再login则设定恢复初始值
一个通过登录而得到的shell,一般是用户的初始shell
在登录shell下激活的shell采用登录shell的环境设定
登录shell从配置文件中读取其环境设定
定制登录shell
bash 在用户登录时从四个文件中读取环境设定:
全局设置文件:设定系统环境变量(也可以设定自定义变量)
/etc/profile 针对系统所有用户
/etc/bashrc 可自定变量或全名,路径
用户设置文件:
~/.bashrc 功能与/etc/bashrc一样 区别:只针对特定用户
~/.bash_profile 功能与/etc/profile一样 区别:只针对特定用户
其 他shell设定文件
~/.bash_logout:用户logout的时候自动执行
~/.bash_history:用户在login时自动读取其内容并加载到内存history记录中,logout时将内存history记录写入
./etc/profile.d/*.sh:在/etc/profile中被执行,其中的环境设定,也会被全局引用
登录shell
启动读取文件顺序:
1. /etc/profile
2. /etc/profile.d/*.sh
3. ~/.bash-profile
4. ~/.bashrc
5. /etc/bashrc
su 开启一个非登录shell su - 开启一个新的shell
非登录shell过程:
~/.bashrc
/etc/bashrc
/etc/profile.d/*.sh
常用快捷键:
Ctrl+d输入已结束。相当于shell下一个exit
Ctrl+c:键盘中断请求
Ctrl+s &ctrl +q :暂停/恢复屏幕输出
ctrl+l:清屏相当于clear
Tab:自动补完命令行与文件名
tab键双击可以列出所有可能匹配的选择