【Linux】bash shell的优点以及在linux中获取帮助

一、什么是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