Shell 的基础知识

Posted shandong123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell 的基础知识相关的知识,希望对你有一定的参考价值。

1.Bash特性

查看linux支持的shell脚本类型

# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

       最早sh就叫sh,也叫bsh,发展来自与B语言,之后出现了Csh,它类似于c语言,在csh的基础之上出现了ksh,但是ksh为商业版,所有在Linux系统出现后,就开发了bash,集合了sh,csh以及ksh的优点;

        现在最新的shell编译器也有zsh,但是使用较少;

                1. 因为Linux是多用户,多进程的;所以每个用户应用的程序是相同的,但是进程是不一样的;进程可以理解为同一程序的克隆;它支持每个用户对自己的bash进程进行修改,但是实际上使用的bash程序都是一样的; Linux系统如何来区分每个用户的bash进程能,这就是通过pid来进行区分;

                 2 bash的特性:命令行的处理:ctrl+a ctrl+e ctrl+u ctrl+l ctrl+w ctrl+k

                    Ctrl+u   删除光标前的字符

                    Ctrl+k   删除光标后的字符

                    Ctrl+w   以空格为分隔符,去删除文件

                    Ctrl+r    进入一个交互界面,搜索最近一次使用的命令(要输入string)

                    命令历史:history

                                       -c

                                       -d 500

                                       -d 500 10

                                       -w            //保存到家目录的.bash_history文件中去,这样的话,即使重启,或者-c清楚,也会保留history的命令记录

                     命令别名

                                        alias

                                        unalias

                     命令的替换

                                        $(命令)  

                                        # echo "today is $(date)"和``实现的功能相同

                                        # echo "today is `date`"

                                        ``:强制转意

                     Tab键的应用

                                           1 补全命令

                                           2 补全路径

                            当输入后需要补全的命令或者路径不是唯一的时候,所有选项都会显示出来;

                            当需要显示的选项过多时,会提示;

                           

文件的通配符

                                                        *

                                                        ?

                                                        []

                                                        ^

 

2.正则表达式

                      \ //转意字符

                      ^ //以什么开头

                      $ //以什么结尾

                     [] //匹配在[]内某个字符,指定范围,[^0-9] 代表取反

                     [ - ] //输入[ - ]所标记的范围字符

                     . //某一个任意字符

                     * //0个或者多个任意的字符

                    n,m//匹配前一个字符或表达式n次到m次

                    n,//最少n次

                    n //只有n次

                    ,m//最多m次

                    Grep “^\\$”  文件名  //以$开头

3.扩展正则表达式

              + //匹配前一个字符或一次以上

              ? //匹配前一个字符或表达式0次一次

              |  //或

           ()//分组

以上是关于Shell 的基础知识的主要内容,如果未能解决你的问题,请参考以下文章

Linux 基础知识 | shell知识

Linux 基础知识 | shell知识

Shell基础知识

Shell-- 基础知识

shell基础知识

Shell基础知识