shell 事例及巧(持续更新)

我觉得脚本应该简单而且能够让人用起来爽

1.脚本调试(.sh)

    将 -xv 添加到 #!/bin/bash 后面,像这样:  #!/bin/bash   -xv

    执行脚本的时候:xx.ntp,就会把脚本所包含的信息都打印出来

2.时间设置与显示

    a.格式化时间

        终端:#date

                           =>    Fri Mar 30 11:06:46 CST 2018

                #date "+%Y-%m-%d %H:%M:%S"

                            => 2018-03-30 11:07:24

        代码中:pope("date \"+%Y-%m-%d %H:%M:%S\"");

        b.时区关联

                在嵌入式板子上(pc上不同), 同步时间:date -s "2018-03-30 11:07:24",执行这个命令时会先读取/etc/TZ,假如 TZ=GMT-8,那么设置的时间就默认是东八区时间,显示时间时,命令date显示的是东八区时间,假如要显示其他时区的时间:由于date时会读区环境变量TZ,所以先给TZ赋值TZ=UTC+4,然后全局化export TZ,再 date就是指定时区的时间。


3.简单的命令:

       sed (可在后面加文件名,也可用于命令通道之后):

                sed -n '1p'            #显示第一行数据

                sed -n '2p'            #显示第二行

                sed -n '2,5p'        #显示第二行到第五行之间

                sed -n '3,$p'        #显示第三行到末行之间

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
    
route -n|sed -n '3p'
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0

route -n|sed -n '3,$p'
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0

            sed 's/girl/boy/'        #用boy替换girl

            sed 's/c//'                #用空代替字符'c',相当于去掉c

            sed 's/c/ /'                #用空格代替c

            sed 's/test/TEST/g'        #替换每一行的TEST

            sed 's/test/TEST/'        #只替换当前行


 


                

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是spark-shell的基础操作: 1. 启动spark-shell:在终端中输入spark-shell即可启动。 2. 加载数据:使用SparkContext的textFile方法加载文本数据,如: val data = sc.textFile("path/to/data") 3. 转换数据:使用Spark的转换操作对数据进行处理,如: val words = data.flatMap(line => line.split(" ")) 4. 操作数据:使用Spark的操作操作对数据进行操作,如: val wordCounts = words.map(word => (word, 1)).reduceByKey(_ + _) 5. 输出数据:使用Spark的输出操作将结果保存到文件或打印到控制台,如: wordCounts.saveAsTextFile("path/to/output") 6. 关闭spark-shell:在终端中输入:quit或使用Ctrl+D即可关闭spark-shell。 希望对您有所帮助,如有需要请随时联系我。 ### 回答2: Spark-shell是基于Scala编写的交互式的Shell,可以在命令行中输入Scala代码,对Spark进行操作。Spark-shell有助于快速调试和学习Spark,因为它允许用户像使用Scala REPL一样来执行和实验Scala代码。在这里,我们将讨论一些Spark-shell的基础操作。 1.打开Spark-shell 在Linux系统中,打开终端,输入spark-shell,打开Spark-shell。然后,控制台上会显示如下内容: 使用 “:help” 可以获取帮助 和 “:quit” 退出 Spark Shell 2.查看Spark的版本 在Spark-shell中,输入:sc.version,可以查看Spark的版本信息。 3.从文件加载数据 在Spark-shell中读取文件,可以使用sc.textFile(path)函数,该函数将文件加载到RDD中。 4.过滤数据 在Spark-shell中对RDD进行过滤,可以使用filter函数。例如,如果要过滤掉所有不是数字的项,可以使用以下代码: ``` val numbers = sc.textFile("path/to/file").filter(_.matches("\\d+")) ``` 5.操作数据 在Spark-shell中操作数据,通常需要使用map函数。该函数可以将RDD中的每个元素进行转换。例如,将RDD中的每个元素转换为大写,可以使用以下代码: ``` val upperCase = sc.textFile("path/to/file").map(_.toUpperCase()) ``` 6.计算从文件中读取的数字的平均值 在Spark-shell中计算数字的平均值,可以使用以下代码: ``` val numbers = sc.textFile("path/to/file").filter(_.matches("\\d+")) val sum = numbers.map(_.toInt).reduce(_+_) val count = numbers.count() val avg = sum.toDouble / count ``` 7.保存数据 在Spark-shell中,可以使用saveAsTextFile(path)函数把RDD中的内容保存到文件中。例如,以下是一个将结果保存到文件的示例代码: ``` val numbers = sc.textFile("path/to/file").filter(_.matches("\\d+")) val sum = numbers.map(_.toInt).reduce(_+_) val count = numbers.count() val avg = sum.toDouble / count avg.saveAsTextFile("path/to/output") ``` 这是一些Spark-shell的基础操作。掌握这些基础知识之后,您就可以开始编写更复杂的代码了。Spark-shell还有许多其他功能,如使用各种算子操作RDD、调用Spark的API、使用线程和调试Spark Shell等,可以在学习Spark的过程中继续了解和掌握。 ### 回答3: Spark是目前最受欢迎的大数据处理框架之一,它提供了可靠、高效和灵活的数据处理方案。Spark-shell是Spark的一个交互式Shell,它使得开发人员能够以交互式的方式从控制台使用Spark。 1.启动Spark-shell 要使用Spark Shell,首先需要安装Spark,并将其配置为您的系统路径。默认情况下,它会安装在/usr/local/spark目录下。要启动Spark-shell,请输入以下命令: /usr/local/spark/bin/spark-shell 2.创建RDD 通过Spark-shell,可以从HDFS或本地文件系统加载数据,创建RDD并开始处理数据。以下是在Spark-shell中创建RDD的示例: val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) 3.转换RDD Spark提供了各种各样的转换函数,用于转换和转换RDD。以下是一些常用的示例: // 将所有元素加倍 val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) val doubledRdd = rdd.map(x => x * 2) // 过滤偶数 val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) val filteredRdd = rdd.filter(x => x % 2 == 1) // 求和 val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) val sum = rdd.reduce((a, b) => a + b) 4.操作RDD 除了转换,Spark还提供了一系列操作函数,可用于操作RDD。以下是一些常用的示例: // 返回RDD中的元素数 val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) val count = rdd.count() // 返回RDD中的前N个元素 val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) val firstThree = rdd.take(3) // 按键聚合 val rdd = sc.parallelize(List(("a", 1), ("a", 2), ("b", 1))) val groupBy = rdd.groupByKey() 5.关闭Spark-shell 最后,当您完成Spark-shell的使用时,需要关闭Spark-shell。请按Ctrl + D退出Spark-shell命令行。 这些是在Spark-shell中的基本操作,它们可以帮助您开始处理大规模数据。另外,Spark提供了强大的API和生态系统,可帮助您执行更复杂的任务,例如机器学习和图形计算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值