shell 命令行解释器,是用户与系统沟通时的媒介 unix 系统中有各种shell,linux采用bash为其默认shell 系统可以使用的shell记录在 /etc/shells中 bash:Bourne Again Shell的缩写 支持命令行输入,操作历史查询,快捷键,使用变量等功能 预订系统变量 查看变量值 echo $+变量名 = echo ${变量名} 推荐使用第二种 unset + 变量名 删除变量 系统通过预定义环境变量来定义shell的环境 用户可以用set或env查询当前环境变量:env只查看环境变量,set系统和环境变量都可以 常用预定义环境变量: home:当前用户主目录 path:当前用户可执行文件搜索路径 lang:程序应该使用的默认语言 ps1:行提示符 PS1参数的介绍 \u 当前用户账号 \h 仅列出主机名的第一个名字 \H列出全名 \W 显示当前目录的最后一个文件名称 \W 显示完整路径 \# 显示命令条数 \A 显示时间 点 界面提示符可以更改:PS1='[\u@\H \W \A \#]\$' export 可以将自定义的环境转换为环境变量 history:在bash中输入history指令可以查询用户过往的操作 内存中记录的过往指令数根据环境变量中historysize而定 history表存储在内存中,在用户logout时会记录入用户主目录下的.bash_history文件中,在下次login时载入 .bash_history中的指令数根据环境变量中的histfilesize而定 使用!来调用过往指令: !! :重复执行上一条命令 !a : 重复执行上一条以a为首的指令 !number: 重复执行上一条在history表中记录号码为number的指令 !-number: 重复执行前number条指令 !$:截取到上条指令的最后个参数 <ctrl+r> 用来在history表中查询某条过往指令 别名: alias 可以查看哪些命令使用了别名 设定别名 alias a='ls -al' 取消别名 unalias a alias记录在shell中最先行 命令行表达式: 命令行输出 -- " " 将一串字符当成一个字符串来对待,如果字符串包含特殊含义的字符,则转义. 碰到$~\! 四个字符还是当做原先作用来用,不去转义它,不能转化为一般字符 echo "$PWD" = \root 命令行输出 -- ' ' 可以禁止所有特殊符号,包括$!~\ 执行引用符 -- 会先执行引用符里面的命令 如ls -al 'pwd' = ls -al \root 数学运算 -- $[] 在中括号内会执行数学表达式的计算 如 echo $[1+4] = 5 逸脱符 -- \ 用于取消命令行中字符的特殊含义 用于表示一行的结束 mkdir a b 建立了a ,b的两个目录 mkdir a\ b 建立a b一个目录 命令行结束符 -- ; 用于在一行内分隔两个独立命令,表示一行已结束,作用相当于回车键 ls;pwd 先执行ls然后执行pwd 子shell激活 -- () 在小括号内的命令行表示激活一个子shell后在子shell中运行 shell命令行支持在同一行的两条命令中插入&&与|| &&:当前一条指令执行成功时再执行下一个指令 ||:当前一条指令执行不成功时再执行下一个指令 默认情况下,在shell下改变变量,umask,alias,只在此次登录中有效.一旦logout后再login,则设定恢复初始值 一个通过登录而得到的shell,一般是用户初始shell 在登录shell下激活 bash 在用户登录时从四个文件中读取环境设定 全局设置文件:/etc/profile /etc/bashrc 用户设置文件: ~/.bashrc ~/.bash_profile 系统先执行/etc/profile 然后执行~/.bash_profile 再然后~/.bashrc 最后/etc/bashrc ctrl+d 输入已结束,在shell下相当于exit ctrl+c 键盘中断请求 ctrl+s & ctrl+q 暂停/恢复屏幕输出 ctrl+l 清屏,相当于clear tab 自动补完命令行与文件名 tab建双击可以列出所有可能匹配的选择