鸟哥私房菜笔记
鸟哥私房菜笔记 ~
原站地址:鸟哥私房菜
第十章:认识与学习BASH
1、通过 cat /etc/shells 命令可以查看当前系统有多少我们可以使用的shells
|
|
2、通过 cat /etc/passwd 命令可以查看登录用户使用的是哪一个shell在工作
|
|
3、bash中可以通过「上下键」输入历史指令,这是因为历史指令存放在 ~/.bash_history 文件中,但是只有用户退出登录后才会记录到 ~/.bash_history ,登录时所输入的指令记录在内存中。
4、通过type可以知道指令是否为内部指令
|
|
例如:
|
|
5、如果指令太长,可以通过 \ 来进行多行拼接
|
|
6、环境变量 能不能在任何目录下执行某个指令,与PATH这个变量有很大的关系。例如你下达ls这个指令时,系统就是通过PATH这个变量里面的内容所记录的路径顺序来搜寻指令的!如果在搜寻完PATH变量内的路径还找不到ls这个指令时,就会显示「command not found」的错误信息了。 常用的环境变量有:PATH、HOME、MAIL、SHELL等。 在linux下执行:
|
|
在Mac下执行:
|
|
7、变量相关
- 变量赋值:myName=Harrison
- 若该变量需要在其他子程序执行,则需要以export来使变量变成环境变量:export myName
什么是『子程序』呢?就是说,在我目前这个shell的情况下,去启用另一个新的shell,新的那个shell就是子程序啦!
- 使用declare可以将环境变量变成变量:declare myName
- 取消变量:unset myName
- $ 表示关于本shell的PID
|
|
- ? 表示上个执行指令的返回值:一般来说,如果成功的执行某指令,则会返回一个0,如果执行过程发生错误,就会返回「错误代码」
|
|
8、bash环境的设置 开始介绍bash的设置前,我们一定要先知道的就是login shell与non-login shell!重点在于有没有登入(login) 啦!
login shell:取得bash时需要完整的登入流程的,就称为login shell。举例来说,你要由tty1 ~ tty6登入,需要输入使用者的帐号与密码,此时取得的bash就称为「login shell」啰; non-login shell:取得bash界面的方法不需要重复登入的举动,举例来说,(1)你以X window登入Linux 后, 再以X的图形化介面启动终端机,此时那个终端界面并没有需要再次的输入帐号与密码,那个bash的环境就称为non-login shell了。(2)你在原本的bash环境下再次下达bash这个指令,同样的也没有输入帐号密码, 那第二个bash(子程序)也是non-login shell。
login shell与non-login shell环境设置读取的资料是不一样的。login shell只会读取/etc/profile和~/.bash_profile 或 ~/.bash_login 或 ~/.profile;而non-login shell只会读~/.bashrc
/etc/profile:这是系统整体的环境设置,你最好不要修改这个档案,同时在该文件中还会调用其他环境配置文件,具体可查看鸟哥私房菜的10.4.3;想要为系统设置别名或函数可以在
/etc/bashrc中设置 ~/.bash_profile:属于使用者个人设置,你要改自己的资料,就写入这里