一、什么是shell以及bash shell的优点
1、什么是shell
① shell:壳,命令解释器,负责解析用户输入的命令(处于操作系统与用户之间)
② type: 查看命令是file(外部命令)、alias(命令别名)还是builtin(内置命令)
③ 命令:(1)内置命令 (shell内置)。
(2)外置命令,在文件系统的某个目录下,有个与命令名称相同的文件。
④ 区别:shell为了完成自我管理和基本的管理,不同的shell内置不同的命令,但是大部分都差不多。
⑤ type -t 仅列出命令执行时的依据(以哪种方式执行)
type -a 列出当前命令可以如何执行(所有可执行的方式)
⑥ 环境变量:那命令怎么知道是那个路径下的命令呢?系统为了让用户在命令行快速方便地执行命令,用一种机制来实现,这种机制就叫做环境变量。(外部命令所在可执行目录的汇总)
(外部命令被存放在外部文件--可执行文件,存放的路径不一定相同)
2、shell的变量功能:变量简单说就是让某一个特定字符串代表不固定的内容。
① 设置变量:用“=”连接;等号两边不能有空格符;
② 变量名的规则:只能使用数字、字母和下划线,且不能用数字开头;)
③ 变量的赋值:name=’xiaoming de mei mei’(变量声明的过程就是申请内存使用的过程)
说明:echo $name:引用变量里的内容显示出来
$name:代表name是个变量
3、环境变量(不同用户的环境变量不同):定义当前用户工作环境属性的变量
① PATH:从哪些路径中查找用户键入的命令字符串所对应的的命令文件:echo $PATH
说明:从这几个目录找对应的命令可执行文件;目录顺序是常用的在前;
② su - 用户:切换用户的同时环境变量也改变
su 用户:切换用户但环境变量没改变(尽量不要用此方法切换)
③ 取消变量:unset 变量名称
4、查看当前系统支持的所有的合法的shell:
说明:/sbin/nologin (若将某个用户shell解释器设置在有nologin--不登陆的目录下,将无法登录也不能和系统交互)
5、shell中的快捷键:
① ctrl+d 输入已结束。在shell下相当于exit
说明:写邮件时:编辑完成后回车键不能退出,按ctrl+d后编辑完成并发送。
② ctrl+c 键盘中断请求,终止当前的命令
说明:若某条命令输入错误,不想执行,则可按ctrl+c后中断。
③ ctrl+s 暂停屏幕输出
④ ctrl+q 恢复屏幕输出
⑤ ctrl+l 清屏,相当于clear
⑥ ctrl+u 删除光标至行首的内容
⑦ ctrl+k 删除光标至行尾的内容
⑧ ctrl+a 跳到命令行行首
⑨ ctrl+e 跳到命令行行尾
⑩ ctrl+左右箭头 支持按单词跳动
6、/bin/bash优点:
① 命令与文件的补全功能
(1)Tab:自动补全完整命令与文件名
(2)Tab两下:可以列出所有可能匹配的选择
② 命令别名设置功能(添加指定命令别名:alias)
说明:l.==ls -d .* :查看当前目录以.开头的所有文件(隐藏文件)
a、临时生效(只在当前会话生效):alias 目标命令名称=’需要执行的命令’
alias hh=ls
b、删除指定的命令别名:unalias
c、当前用户永久有效:vim ~/.bashrc (进入目标用户的.bashrc文件写入命令)
写命令如: alias 目标命令名称=’ 需要执行的命令’
alias hh=ls
再source .bashrc 使其生效
d、所有用户均可用的命令别名:vim /etc/bashrc; /etc/bashrc
③ 命令记忆功能
history
命令历史--可以记1000条命令(命令历史文件为~/.bash_history)
n
列出目前最近的n条信息
-c
清除命令历史
-w
将命令历史保存至命令历史文件中
!!
执行上一个命令
!number
执行命令历史中第几条命令
7、通配符等等
shell中的通配符:bash中常用的通配符有”*“,”?“,”[]“
① * 表示匹配任意零个或多个字符(带有*前字符的文件)
② ? 表示匹配任意单一字符(带有?前字符并且后面还有字符的文件)
?? 表示匹配任意两个字符
③ [] 匹配任何包含在方括号内的单字符
二、shell中的引用
1、shell中的引用:在bash中有很多特殊字符,这些特殊字符就具有特殊含义。引用就是通知shell将这些特殊字符当作普通字符来处理。
①转义字符“\”:如果将\放到特殊字符前面,shell就忽略这些特殊字符的原有含义,把它们当作普通字符对待。
说明:*\*中前一个*表示匹配任意多个字符,\*表示将*转移为普通字符,则*\*表示匹配任意字符但是以*结尾的目录。
说明:命令后加\后回车即可换行,在>后面可继续输入命令,再次回车即可命令执行。
说明:想创建一个名为file 4的文件(中间有空格),则用\加空格转义空格即可创建。
②单引号:如果将字符串放到一对单引号之间,那么字符串中所有字符的特殊含义被忽略。强引用(则输入单引号内的字符)
③双引号:双引号的引用与单引号基本相同,包含在双引号内的大部分特殊字符可以当作普通字符处理,但是仍然有一些特殊字符保留自己的特殊含义,比如”$“和“\”以及“ ` ”
(双引号中,除了$ \ ` 其他所有特殊字符都不保留自己的特殊含义变成普通字符)
说明:`date`表示date命令先执行下
echo `date`表示date命令执行完后将它的结果打印在屏幕上。
三、命令帮助
1、①内部命令:cd ,type等
用法:help 命令
②外部命令:ls,mkdir等
用法:命令 --help
(命令手册manual)
用法:man 命令
2、man手册分段
NAME
命令名称及功能简要说明
SYNOPSIS
格式说明,用法说明,包括可用的选项
DESCRIPTION
命令功能的详尽说明,可能包括每一个选项的意义
OPTIONs
选项,说明每一个选项的意义
EXAMPLE
示例,举例说明
FILES
此命令相关的配置文件
AUTHOR
作者
REPORTING BUGS
bug反馈
COPYRIGHT
版权
SEE ALSO
参见
3、man手册章节
一般从1到9哪个章节先出现就显示哪个,如man mount就显示第8章节,那如何知道命令有哪些章节呢?用whatis read去查看。
(如:man read,man 2 read)
1
可执行程序或用户命令,/bin,/usr/bin,/usr/local/bin
2
系统内核可调用的函数与工具
3
c库调用
4
特殊文件,如设备文件,系统上的设备文件只是设备的访问入口,文件中不存储任何内容
5
文件格式,配置文件的格式说明,举例passwd
6
games游戏,休闲益智类的游戏使用帮助
7
杂项,不便归类的杂项,Miscellaneous
8
系统管理员可用的管理命令,/sbin,/usr/sbin,/usr/local/sbin
9
跟kernel有关的文件
4、man手册符号说明:
[]
表示可选内容
<>
必须提供的内容
a|b|c
多选一
…
同类内容可出现多个
{}
分组
①翻屏:
下翻一页
空格
上翻一页
b
下翻一行
回车
上翻一行
k
②查找关键字:
/关键字 向后
n 下一个
N 前一个
?关键字
N 下一个
n 上一个
③退出:q