观察环境变量的功能env
env是environment的缩写,列出所有环境变量
env中列出的几个重要的变量:
HOME
当前用户的家目录,cd ~可以直接到这里,~就是取这个变量的值
SHELL
当前环境使用的是哪个版本的shell程序
HISTSIZE
可以记录的最大命令数
使用mail指令读取邮件时,就读这里
PATH
执行文件的搜索路径,~目录与目录用:分隔,PATH内的目录顺序决定了先找到哪个对应的文件
LANG
当前的语言信息
RANDOM
/dev/random文件,产生随机数,$RANDOM可以取得随机数,随机数介于0-32767之间
要产生0-9之间的可以用如下方法:
declare -i number=$RANDOM*10/32768;echo $number
观察所有变量(环境变量与自定义变量bash内的变量)set
set中列出的几个重要的变量:
PS1:提示字符的设定,就像这个root@ubuntu:~#,来个自定义的吧
主要符号如下:
\d: 显示【星期 月 日】的格式,"Mon Oct 03"
\H: 显示完整的主机名
\h: 仅取主机名在第一个小数点之前的名字,例如www.del1214.com就显示www
\t: 显示时间,24小时格式的【HH:MM:SS】
\T: 显示时间,12小时格式的【HH:MM:SS】
\A: 显示时间,24小时格式的【HH:MM】
\@: 显示时间,12小时格式的【am/pm】
\u: 当前使用者的账号名,如root
\v: Bash的版本信息
\w: 完整的工作目录名,有根目录写起的目录名,home目录会用~取代
\W: 利用basename函数取得工作目录名称,只会列出最后一个目录名
\#: 下达的第几个命令
\$: 提示字符,root时为#,其他是$
自己定义一下吧PS1='[\u@\d\h \H \w \A #\#]\$'
$
关于本shell的PID,echo $$出现的数字就是shell的线程代号
?
关于上个执行命令的返回值,echo $?
如果上次指令成功执行返回0,如果发生错误会返回错误值如127
OSTYPE,HOSTTYPE,MACHTYPE
关于主机的信息
自定义变量转成环境变量export
export 变量名
国际化变量locale
locale 显示所有语言相关的变量
文件系统和程序限制ulimit
ulimit [-SHacdfltu] [配额]
-H: hard limit 严格的设定,必须不能超过这个设定数值
-S: soft limit 警告的设定,可以超过设定值,超过后有警告信息,soft必须小于hard,使soft到hard之间有个警告区间
-a: 后面不接任何选项与参数,可以列出所有的限制额度
-c: 当程序发生错误时,系统会将该程序在内存中的信息写到文件,这种文件成为核心文件。此为限制每个核心文件的最大容量
-f: 此shell可以建立的最大文件容量,单位为Kbytes
-d: 程序可使用的最大断裂内存segment容量
-t: 可使用的最大CPU时间,单位秒
-u: 单一用户可以使用的最大程序process数量
-m: 最大内存使用量
-l: 可用于锁定lock的内存量
更多的参数用-a查看
命令别名设定:alias,unalias
设定别名
例:alias rm='rm -i' 删除时有确认提示
查看所有使用别名的命令,直接打alias
取消别名
unalias rm
用惯dos的可以这样
alias cls='clear'
alias dir='ls -l'
历史命令:history
history [n]
history [-c]
history [-raw] histfiles
n: 数字,列出最近n行命令
-c: 将当前shell的history内容清空
-a: 将目前新增的history命令写入目标文件,没有指定文件则写入~/.bash_history
-r: 将目标文件内容读到当前shell的history中
-w: 将目前的history内容写到目标文件中
很好用的功能
使用history来列出前面的命令行数
!300 执行第300行的命令
!! 执行上一次命令
!al 执行最近一次以al开头的命令