`

shell

 
阅读更多

ll -h

[ -f "$file" ] 判断$file是否是一个文件 

[ $a -lt 3 ] 判断$a的值是否小于3,同样-gt和-le分别表示大于或小于等于 

[ -x "$file" ] 判断$file是否存在且有可执行权限,同样-r测试文件可读性 

[ -n "$a" ] 判断变量$a是否有值,测试空串用-z 

[ "$a" = "$b" ] 判断$a和$b的取值是否相等 

[ cond1 -a cond2 ] 判断cond1和cond2是否同时成立,-o表示cond1和cond2有一成立 

要注意条件测试部分中的空格。在方括号的两侧都有空格,在-f、-lt、=等符号两侧同样也有空格。
如果没有这些空格,Shell解释脚本的时候就会出错。

脚本中的引号


``---反引号 执行系统命令

''---单引号,字符串,引号内的所有变量和特殊字符都屏蔽
如:echo 'hello $res !!!'
打印hello $res !!!
""---双引号,字符串,可以包含所有变量和特殊字符串
如:echo "hello $res !!!"
打印hello 5 !!!
echo "Hi, ${res}s"
Hi,5s
二.
比较操作

-eq 数值相等
-ne 数值不相等
-gt 大于
-lt 小于
-le 小于等于
-ge 大于等于

if [ $? -ge 2 ];then
 
 return -1
fi

三.文件判断

-b  文件存在并为块文件
-c  文件存在并为字符文件
-d  文件存在且为目录
-e  路径指定的文件或目录存在

四.特定变量参数&位置变量参数

$0    当前脚本的文件名
$#    当前脚本的参数个数     
$*    以一个单字符串显示所有向脚本传递的参数,表示整个参数列
$$    脚本运行的当前进程PID 
$!     后台运行的最后一个进程的PID 
$?    显示最后命令的退出状态。0表示没有错误,其他任何值均表
              明有错误

例子:

#!/bin/sh

help()
{
   cat << HELP
   This is a generic command line parser demo.
   USAGE EXAMPLE: cmdparser -l hello -f -- -somefile1 somefile2
HELP
   exit 0
}

while [ -n "$1" ]; do
case $1 in
   -h) help;shift 1;; # function help is called
   -f) opt_f=1;shift 1;; # variable opt_f is set
   -l) opt_l=$2;shift 2;; # -l takes an argument -> shift by 2
   --) shift;break;; # end of options
   -*) echo "error: no such option $1. -h for help";exit 1;;
   *) break;;
esac
done

echo "opt_f is $opt_f"
echo "opt_l is $opt_l"
echo "first arg is $1"
echo "2nd arg is $2"

#echo "$0     $#     $*     $$     $!     $?"
echo " where one is : $#"
echo "where second is:$*"
echo "where three is :$$"
echo "where foure is :$!"
echo "where fif is :$?"

五: read read命令接收标准输入(键盘)的输入,或其他文件描述符的输入


防火墙
查看配置
display current-configuration


ike pear 认证 加密

255.255.255.255
255.255.255.0


迁移方案
第一步:先迁移一台nginx,通过代理,代理到互联机房,通知部分客户切换新的ip
第二步:将lottery,数据库服务器整体搬迁


PSTN:泛指共公电话网,电话,移动电话等
ISDN:综合业务数字网(Integrated Services Digital Network,ISDN)
是一个数字电话网络国际标准,是一种典型的电路交换网络系统。

LNS(被用户最终得到访问的服务器资源)

  LNS表示L2TP网络服务器(L2TP Network Server),
是PPP端系统上用于处理L2TP协议服务器端部分的设备。
它作为L2TP隧道的另一侧端点,是LAC的对端设备,是被LAC进行隧道传输的PPP会话的逻辑终止端点。

LAC(可以在上面配置本地认证或者外部认证)
LAC全称为L2TP访问集中器(L2TP Access Concentrator)。
LAC位于远程拨号用户和LNS设备之间,负责远程拨号用户和LNS设备彼此间的数据转发。
从LAC向LNS转发数据需要先利用L2TP协议在两个设备之间建立隧道,
LAC和远程拨号用户间仍使用PPP链路。


linux sed,awk
linux之sed用法
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行
替换、删除、新增、选取等特定工作,下面先了解一下sed的用法
sed命令行格式为:
         sed [-nefri] ‘command’ 输入文本        

常用选项:
        -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。
	但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
        -e∶直接在指令列模式上进行 sed 的动作编辑;
        -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
        -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
        -i∶直接修改读取的档案内容,而不是由萤幕输出。       

常用命令:
        a   ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
        c   ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
        d   ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
         i   ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
         p  ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
         s  ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

举例:(假设我们有一文件名为ab)
     删除某行
     [root@localhost ruby] # sed '1d' ab              #删除第一行 
     [root@localhost ruby] # sed '$d' ab              #删除最后一行
     [root@localhost ruby] # sed '1,2d' ab           #删除第一行到第二行
     [root@localhost ruby] # sed '2,$d' ab           #删除第二行到最后一行

  显示某行
.    [root@localhost ruby] # sed -n '1p' ab           #显示第一行 
     [root@localhost ruby] # sed -n '$p' ab           #显示最后一行
     [root@localhost ruby] # sed -n '1,2p' ab        #显示第一行到第二行
     [root@localhost ruby] # sed -n '2,$p' ab        #显示第二行到最后一行

  使用模式进行查询
     [root@localhost ruby] # sed -n '/ruby/p' ab    #查询包括关键字ruby所在所有行
     [root@localhost ruby] # sed -n '/\$/p' ab        #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义

  增加一行或多行字符串
     [root@localhost ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     [root@localhost ruby] # sed '1a drink tea' ab  #第一行后增加字符串"drink tea"
     Hello!
     drink tea
     ruby is me,welcome to my blog. 
     end
     [root@localhost ruby] # sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea"
     Hello!
     drink tea
     ruby is me,welcome to my blog.
     drink tea
     end
     drink tea
     [root@localhost ruby] # sed '1a drink tea\nor coffee' ab   #第一行后增加多行,使用换行符\n
     Hello!
     drink tea
     or coffee
     ruby is me,welcome to my blog.
     end

  代替一行或多行
     [root@localhost ruby] # sed '1c Hi' ab                #第一行代替为Hi
     Hi
     ruby is me,welcome to my blog.
     end
     [root@localhost ruby] # sed '1,2c Hi' ab             #第一行到第二行代替为Hi
     Hi
     end

  替换一行中的某部分
  格式:sed 's/要替换的字符串/新的字符串/g'   (要替换的字符串可以用正则表达式)
     [root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby/bird/g'    #替换ruby为bird
   [root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby//g'        #删除ruby

     插入
     [root@localhost ruby] # sed -i '$a bye' ab         #在文件ab中最后一行直接输入"bye"
     [root@localhost ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     bye
分享到:
评论

相关推荐

    B shell与 C shell的区别

    B shell与 C shell的区别 B shell和C shell都是Linux操作系统中的shell类型,它们之间存在一些关键的区别。 首先,让我们从B shell开始。B shell,全称为Bourne shell,是UNIX最初使用的shell。它在每种UNIX上都...

    Shell编程中文手册.pdf

    本手册涵盖了 Shell 编程的基础知识,包括 Shell 概述、Shell 解析器、Shell 脚本入门、Shell 中的变量等。 Shell 概述 Shell 是一种命令行接口,允许用户与操作系统进行交互。学习 Shell 编程可以让开发者更好地...

    LinuxShell脚本学习基础视频

    资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...

    C语言中文网shell脚本教程

    **C语言中文网shell脚本教程** 这是一份关于Shell脚本编程的离线学习资料,包含了一系列HTML文件,旨在帮助用户深入理解并掌握Linux Shell脚本编程技术。以下是其中涉及的一些关键知识点: 1. **Shell命令的本质**...

    Shell脚本中获取进程ID的方法

    提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为...

    Windows Shell 编程.pdf

    Windows Shell 编程.pdf 看过一些对windows 外壳的扩展程序,在使用上一般都是直接利用windows的外壳API做一些工作,因为外壳操作需要一些比较专业的知识,因此,大部分编程人员特别是使用集成编程环境的程序人员对...

    SHELL十三问,PDF

    此外,Shell并非固定不变的,用户可以根据个人需求选择不同的Shell类型,常见的Shell包括Bourne Shell (`sh`)、Bourne-Again Shell (`bash`)、C Shell (`csh`)、T C Shell (`tcsh`) 和 Korn Shell (`ksh`)等。...

    大数据技术之Shell.docx

    "大数据技术之Shell" 本资源是关于大数据技术中的 Shell 技术的详细文档,涵盖了 Shell 的概述、Shell 脚本入门、变量等方面的知识点。 章节 1:Shell 概述 Linux 提供的 Shell 解析器有多种,包括 /bin/sh、/bin...

    shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)

    《LINUX与UNIX Shell编程指南》是一本专为初学者设计的shell编程教程,它深入浅出地介绍了在Linux和UNIX系统中如何使用Shell进行高效自动化任务处理。Shell编程是Linux和UNIX系统中的核心技术,它允许用户通过命令行...

    在MCU上运行的简单控制台shell

    为了方便地与这些设备交互并进行调试,开发人员常常会实现一个控制台shell,它允许通过串口或其他通信接口发送命令到MCU并接收响应。本文将深入探讨如何在MCU上运行的简单控制台shell及其相关知识点。 **控制台...

    linux_shell实例精解

    Linux Shell是Linux操作系统中的一种命令解释器,它提供了一个用户与操作系统内核交互的界面,使得用户可以通过文本命令行执行各种操作。Shell脚本则是一种编程语言,它允许用户编写包含一系列命令的程序,实现自动...

    Visual Studio 2013 Shell 下载

    ### Visual Studio 2013 Shell 知识点解析 #### 一、Visual Studio Shell 概述 在软件开发领域,Visual Studio Shell 是一个极为重要的工具。它由微软推出,旨在为开发者提供一个灵活且可扩展的基础平台。通过这个...

    shell脚本与Makefile区别.docx

    "shell脚本与Makefile区别" shell 脚本和 Makefile 是两个不同的工具,它们都用于自动化构建和编译过程,但是它们有很大的不同之处。本文将详细介绍 shell 脚本和 Makefile 的区别。 首先,shell 脚本和 Makefile ...

    放在U盘根目录就可运行的EFI shell

    EFI Shell是一种基于EFI(Extensible Firmware Interface)标准的操作系统环境,它允许用户在UEFI固件上执行命令行工具和应用程序。EFI是Intel提出的一种新型固件接口,用于替代传统的BIOS,提供更强大、更灵活的...

    Linux 下 Shell的工作原理

    Linux中的Shell是一个至关重要的组成部分,它是用户与操作系统交互的接口,扮演着命令解释器的角色。在Linux系统中,默认的Shell通常是Bash(Bourne-Again SHell),它继承了Bourne shell的功能并增加了许多扩展特性...

    shell 13问 简体中文版.pdf

    ### shell 13问知识点详解 #### 一、Shell是什么? **知识点1:Shell的定义与作用** - **定义**:Shell是一种用户与计算机系统之间的交互界面,它充当了一个命令解释器的角色,能够将用户的命令转化为系统能识别的...

    U盘版EFI SHELL

    "U盘版EFI SHELL" 是一种用于UEFI(统一可扩展固件接口)环境的实用工具,它允许用户在没有操作系统的情况下通过U盘启动计算机并执行命令行操作。UEFI Shell是UEFI环境中的一种命令行接口,它提供了一系列内置的命令...

    Shell源码(Shell源码)

    Shell是Unix和Linux操作系统中的命令解释器,它提供了一个用户与操作系统内核交互的界面,允许用户通过输入命令来执行系统功能。Shell不仅是一个命令行接口,还是一个强大的编程语言,用户可以编写脚本来自动化一...

Global site tag (gtag.js) - Google Analytics