zoukankan      html  css  js  c++  java
  • 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次一次

                  |  //或

               ()//分组

  • 相关阅读:
    类型构造器
    WIN32画图窗口
    WIN32创建进程CreateProcess
    WIN通过消息实现互斥同步CreateEvent和SetEvent
    WIN32生产消费经典同步但是以消耗时间为代价
    WIN32互斥体CreateMutex以及限制多开
    WIN32临界区线程锁EnterCriticalSection和LeaveCriticalSection
    GetThreadContext和SetThreadContext
    远程线程注入
    EnumProcessModules 使用 获取进程的路径
  • 原文地址:https://www.cnblogs.com/shandong123/p/11319581.html
Copyright © 2011-2022 走看看