linux学习笔记——shell

来源:互联网 发布:aegisub 中文版 mac 编辑:程序博客网 时间:2024/05/29 03:09
shell(bash) 212


一般可以将shell理解为一个命令处理器:一个读取并解释所输入命令的程序。其次,shell还支持一些shell脚本。
使用的shell类型,可以查看环境变量echo $SHELL
系统可用的shell路径存储在 /etc/shells
改变登录shell可以使用chsh(change shell)命令,语法为:
chsh [-s shell] [userid]


局部变量:程序中只存在于创建它的范围之内的变量
全局变量:可以在程序的任何地方使用的变量
一般的,bash中所有变量都是大写的
显示环境变量:
env 或者 printenv
显示shell变量
set
bash中创建的变量默认是shell变量,例如 HARLEY=cool
可以使用export命令导出到环境中,例如 export HARLEY,也可以一步完成这一动作
显示一个变量的值可以使用echo命令
例如:echo ${TERM}  $和c语言中的取值运算符*有点类似
也可以省略{}
如果变量值中有空格或其他有特殊意义的元字符,需要引用起来,用\或者''、""
如果要复位或者叫删除一个命令,可以使用unset命令


shell选项
shell选项就像on/off开关一样,当打开一个选项时,就说设置了这个选项
设置选项用:set -o option
关闭选项用:set +o option
o代表option的意思
要显示shell选项,可以使用以下命令:
set -o
set +o
前者以一种容易阅读的方式显示所有shell选项的当前状态;后者的以一种紧凑的方式显示,这种信息适合用作shell脚本或者程序的数据


命令和定制
我们称那些拥有特殊含义的字符为元字符
有时候,希望按字面上的含义使用元字符,而不使用其特殊的含义,这时需要告诉shell按照字面意义解释字符,这样做时,称为引用字符
可以使用 \ 字符引用,或者称为转义一个元字符
弱引用:作用范围内的大部分字符都被引用 "" ,\、`(反引号)、$ 除外
强引用:作用范围内任何字符都被引用 ''、和\


用type命令查看一个命令是否是shell内置命令
路径信息存储在PATH环境变量中
shell提示信息存储在PS1环境变量中
bashname命令可以抽取任何路径名的最后一部分


fc -l、history命令查看使用命令的历史列表
通过历史列表中的事件编号可以调取并执行特定的命令:
fc -s   s表示substitude,替换
在重新执行命令之前对命令进行小的修改
fc -s pattern=replacement number
如果不指定number,则认为是上一条命令
改变历史列表大小,设置HISTSIZE环境变量
输入命令的过程中,按下<Tab>键可以实现自动补全
上面几个功能实现的原理就是命令行编辑,有vi模式或者Emacs模式
创建别名:alias [name commands]
移除别名:unalias name
临时挂起别名:在命令前键入转义字符\


初始化文件
登录文件:存放着所有希望在每次登录时自动执行的命令(.profile,可变)
环境文件:存放着所有希望在新shell启动时自动执行的命令(.bashrc,可变)
注销文件:存放着希望在注销时执行的命令(可选)
登录文件是设置PATH、PAGER等环境变量以及使用umask设置文件创建掩码的地方
环境文件是中,设置不能在环境中保存的自定义项,特别是shell选项、别名和函数