一、什么是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
本文深入探讨了Shell的概念,Bash shell的优点,包括命令与文件的补全功能、命令别名设置、命令记忆功能以及shell中的引用和特殊字符处理。同时,文章详细介绍了如何使用帮助命令和man手册获取Linux命令的详细信息。
1086

被折叠的 条评论
为什么被折叠?



