Shell在/etc/shells中
Bash:Bourne-again Shell的缩写
GNU计划的一个组件
与Unix的Bourne Shell完全兼容
Bash优点
Bash支持命令行输入、操作历史查询、快捷键、使用变量等功能。
支持通配符、别名、串操作、文件测试、整形算术运算
可以交互使用,或者作为脚本语言
超过60个shell变量
Bash缺点
资源型敏感,对CPU负担重的程序
复杂的大项目
需要灵活的处理文件程序(逐行)
需要图形用户界面的程序
需要直接与系统硬件打交道的程序
需要访问I/O端口和网络套接字的程序
需要使用库或
Bash快捷键
Ctrl + d:输入已结束 在shell下相当于一个exit
Ctrl + c:键盘中断请求
Crtl + z:挂起
Ctrl + s & Ctrl + q:暂停/恢复屏幕输出
Ctrl + l:清屏 相当于clear
Tab:自动补完命令行与文件名 列出所有可能的选
Ctrl + a:光标移到行首
Ctrl + e:光标移到行尾
Ctrl + k:从光标所在处删除到行结尾
Ctrl + u:删除整行
Esc + f:光标移到下一个单词的开始处
Esc + b:光标移到前一个或当前单词的开始处
连续按TAB键,可以看现在可以使得命令
Shell在/etc/shells中
顺序
Bash命令优先级
Alias
Keyword
Functions
Builtin
$PATH
builtin:BASH内置命令
Help cd /man cd查看内置命令
Bash的操作环境
主要设置文件
全局设置:/etc/profile
/etc/bashrc
用户设置:~/.bashrc
~/.bash_profile
Bashrc
定义别名
其他设置文件
~/.bash_logout
~/.bash_history
/etc/profile.d/*.sh
.bash_logout离开系统时的操作
一般会写history -c清除历史操作和clear操作
Bash各设置文件的执行顺序
Start /etc/profile
Start /etc/profile.d/*.sh
Stop /etc/profile.d/*.sh
Stop /etc/profile
Start ~/.bash_profile
Start ~/.bashrc
Start /etc/bashrc
Stop /etc/bashrc
Stop ~/.bashrc
Stop ~/.bash_profile
Env:用来列出环境变量
Set:Bash还有与操作系统有关变量,以及用户自定义的变量。Set显示全部变量
Stty:设置tty终端,控制backspace删除等功能
Unset a删除SET中的项
Stty intr ""取消Ctrl+C功能
退出终端停止生效
/etc/DIR_COLORS控制颜色
Set选项
-f 使路径名替换无效
-n 读取命令,但不执行(用来对脚本进行语法检查)
-o optionname 设置指定的选项:emacs,ignoreof,vi
-v 在命令被读取时打印命令(调试脚本时有用)
-x 在替换被应用之后打印命令(调试脚本和检查shell替换时有用)
-C 不允许shell在重定向中损坏文件
PS1命令提示符:
\d 可显示出[星期 月 日]的日期格式,如:“Mon Feb 2”。
\H 完整的主机名。
\h 主机名在第一个小数点前的名字,如www后面省略。
\t 显示时间,为 24 小时格式的[HH:MM:SS]。
\T 显示时间,为 12 小时格式的[HH:MM:SS]。
\A 显示时间,为 24 小时格式的[HH:MM]。
\@ 显示时间,为 12 小时格式的[am/pm]样式 。
\u 目前使用者的账号名称,如root。
\v BASH的版本信息。
\w 完整的工作目录名称,由根目录写起的目录名称,家目录会以~ 替代。
\W 调用basename函数的工作目录名称,所以仅会列出最后一个目录名。
\# 下达第几个指令。
\$ 提示字符。root时是#,否则就是$。
PS1='[\h]\$'
\w带路径,比较常用
Bash的启动
Shell的自动启动
无论何时登录或者打开终端,shell都会自动启动
Shell的多层关系
有时用户想运行一个不同的shell或者同一个shell的另外一个实例。由于shell“另外一个程序”,所以新的shell可以从现有的shell上启动。新的shell被看作是原有shell的子shell。当子shell退出时,就由原来的shell继续控制。
Bash-locale
Locale显示影响显示结果的语系变量
/etc/sysconfig/i18n配置文件
图形界面也可以修改
System-config-language
LANG=C 设置成英文
LANG=en_US.UTF-8
Bash - declare
declare或typeset 就是宣告变量的类型,不加参数
就是列出当前所有,和set命令输出一样。
-a 将后面的变量定义成数组(array)类型
-i 将后面的变量定义成整形(integer)类型
-x 将后面的变量定义成环境变量
-r 将后面的变量定义成readonly类型
-x 使值成为环境变量
或者
Bash - export
export 变量名 自定义变量转换成环境变量
export 查看环境变量
Bash - history
在bash中输入history指令可以查询用户的过往操作
history记录在内存中而定。
history表在用户logout时会记录入用户主目录下的.bash_history文件中,在下次login时载入。
写在/etc/profile中
Bash – history 如何使用history?
使用 ! 来调用历史命令
!!:重复执行上一条命令
!ex:重复执行上一条以ex为开头的命令
!N:重复执行上一条在history表中记录号码为N的命令
!-N:重复执行前面第N条命令
可以用快捷键来调用历史命令
Ctrl + r:在history表中查询某条历史命令
fc命令:把之前的命令在编辑器中编辑,退出编辑器的时候执行
Esc + .和Alt + .:之前被键入的命令行的最后一个标记可以用上面提到的2个组合键中的任何一个来恢复
Bash - alias
在shell下键入alias可以查询当前alias列表。
用户可以alias来为一条命令取一个简单的别名
用户也可以用unalias来取消一条别名记录。
alias记录在shell中总是先执行。
Bash - ulimit
ulimit与文件系统及程序的限制相关
-H hard limit
-S sort limit
-a 列出所有的限制额
-f 可以建立的做大文件大小
-u 点用户可以使用的最大进程数量
-n 打开文件的最大个数
Unalias vi
Ulimit -n是必改项
Bash欢迎信息
进入系统时的:/etc/motd
登录系统是的:/etc/issue /etc/issue.net