当前位置: 首页 > backend >正文

Linux 管道命令及相关命令练习与 Shell 编程、Tomcat 安装

2.实验目的

掌握 Linux 管道命令及相关命令(cut、sort、wc、uniq、tee、tr、split)的使用方法。

学会使用 Shell 编程实现基本的计算器功能。

掌握在 CentOS 7 系统中安装 Tomcat 的方法。

  1. 实验内容

1. Linux 管道命令及相关命令练习

1.1 管道命令

定义:管道命令将一个命令的输出作为下一个命令的输入,格式为 命令A | 命令B。

示例:

使用 ls -al /etc | less 浏览 /etc 目录的详细内容。

使用 cat file.txt | grep "keyword" 查找文件中包含特定关键词的行。

1.2 cut 命令

功能:从文件或输入中提取特定字符或字段。

示例:

提取文件中每行的第 5 个字符:head -2 file.txt | cut -c5

提取以 : 分隔的第 1 和第 2 个字段:head -2 file.txt | cut -d ':' -f1,2

1.3 sort 命令

功能:对文件内容进行排序。

示例:

按字符串排序:sort file.txt

去重排序:sort -u file.txt

按数值排序:sort -n file.txt

按倒序排序:sort -r file.txt

1.4 wc 命令

功能:统计文件的字节数、单词数、行数。

示例:

统计文件的行数、单词数和字节数:wc file.txt

仅统计行数:wc -l file.txt

统计多个文件:wc file1.txt file2.txt

1.5 uniq 命令

功能:去除重复行,通常与 sort 命令结合使用。

示例:

去重:sort file.txt | uniq

统计每行出现的次数:sort file.txt | uniq -c

1.6 tee 命令

功能:将命令输出同时写入文件和标准输出。

示例:

将输出保存到多个文件:sort file.txt | uniq | tee output1.txt output2.txt

1.7 tr 命令

功能:替换或删除文件中的字符。

示例:

替换字符:echo "hello" | tr 'h' 'H'

删除字符:echo "hello123" | tr -d '0-9'

1.8 split 命令

功能:将大文件分割成多个小文件。

示例:

按字节分割:split -b 10k largefile.txt

按行数分割:split -l 1000 largefile.txt

  1. 实验过程描述

创建一个测试文件 file.txt,并输入一些内容。

echo -e "apple\nbanana\napple\norange\nbanana" > file.txt

# 示例:使用 cut 命令提取第 1 和第 2 个字段

cat file.txt | cut -d ':' -f1,2

# 示例:使用 sort 命令排序

sort file.txt

# 示例:使用 uniq 命令去重

sort file.txt | uniq

# 示例:使用 tee 命令将输出保存到多个文件

sort file.txt | uniq | tee output1.txt output2.txt

2. Shell 编程实现计算器功能

2.1 编写 Shell 脚本

创建一个名为 calculator.sh 的脚本文件。

编写脚本实现以下功能:

提供用户选择运算符(+、-、*、/、sqrt、square、cube)的提示。

根据用户输入的运算符和操作数,计算并输出结果。

脚本示例:

#!/bin/bash

echo "欢迎使用 Shell 计算器"

echo "请选择运算符:+ - * / sqrt square cube"

read operator

echo "请输入第一个数字:"

read num1

if [[ "$operator" == "sqrt" || "$operator" == "square" || "$operator" == "cube" ]]; then

    num2=$num1

else

    echo "请输入第二个数字:"

    read num2

fi

case $operator in

    +)

        result=$(echo "$num1 + $num2" | bc)

        ;;

    -)

        result=$(echo "$num1 - $num2" | bc)

        ;;

    *)

        echo "未知运算符"

        exit 1

        ;;

esac

echo "结果是:$result"

操作步骤:

使用文本编辑器创建 calculator.sh 文件,并复制上述脚本内容。

nano calculator.sh

将上述脚本内容粘贴到文件中,保存并退出。

赋予脚本执行权限:

chmod +x calculator.sh

运行脚本:

./calculator.sh

根据提示输入运算符和数字,观察结果是否正确。

# 示例输入

请选择运算符:+ - * / sqrt square cube

+

请输入第一个数字:

10

请输入第二个数字:

5

# 示例输出

结果是:15

  1. 在 CentOS 7 系统中安装 Tomcat

3.1 安装 JDK

下载并安装 JDK 15.0.1。

配置 Java 环境变量。

操作步骤:

下载 JDK 安装包:

wget https://download.oracle.com/java/technologies/javase-jdk15-downloads.html#license-lightbox

由于 Oracle 官方网站的链接可能需要登录或接受协议,建议手动下载后上传到服务器。

解压安装包:

tar -zxvf jdk-15.0.1_linux-x64_bin.tar.gz

将解压后的文件移动到 /usr/local/java 目录:

mkdir /usr/local/java

mv jdk-15.0.1 /usr/local/java/

修改配置文件 /etc/profile,添加以下内容:

export JAVA_HOME=/usr/local/java/jdk-15.0.1

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

使配置生效:

source /etc/profile

验证 JDK 是否安装成功:

java -version

如果输出 JDK 的版本信息,则表示安装成功。

3.2 安装 Tomcat

下载并安装 Tomcat 9.0.41。

配置 Tomcat。

操作步骤:

下载 Tomcat 安装包:

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.102/bin/apache-tomcat-9.0.102.tar.gz

解压安装包:

tar -zxf apache-tomcat-9.0.102.tar.gz

将解压后的文件移动到 /usr/local/tomcat 目录:

mkdir /usr/local/tomcat

mv apache-tomcat-9.0.102 /usr/local/tomcat

启动 Tomcat:

cd /usr/local/tomcat/apache-tom

5.实验结论及心得

实验结论:

成功掌握了 Linux 管道命令及相关命令的使用,包括 cut、sort、wc、uniq、tee、tr 和 split,这些命令对于处理文本数据非常有用。

学会了使用 Shell 编程实现基本的计算器功能,这有助于理解 Shell 脚本的基本语法和逻辑结构。

掌握了在 CentOS 7 系统中安装 Tomcat 的方法,包括安装 JDK 和配置 Tomcat 环境。

心得体会:

通过这次实验我发现 Linux 命令行是一个强大的工具,可以高效地处理文件和数据。

Shell 编程提供了一种自动化任务和简化复杂操作的方法,这对于系统管理和日常任务非常有用。

安装和配置服务器软件(如 Tomcat)需要对系统环境有深入的理解,同时也需要耐心和细致的操作。

http://www.xdnf.cn/news/17407.html

相关文章:

  • 基于Ubuntu20.04的环境,编译QT5.15.17源码
  • Lua语言元表、协同程序
  • JavaWeb(苍穹外卖)--学习笔记17(Apache Echarts)
  • LightGBM 与 GBDT 在机器学习中的性能与特点比较
  • Graph-R1:一种用于结构化多轮推理的智能图谱检索框架,并结合端到端强化学习
  • 【最后203篇系列】031 构建MCP尝试
  • Docker Compose 部署高可用 MongoDB 副本集集群(含 Keepalived + HAProxy 负载均衡)
  • 从零学习three.js官方文档(二)——图元
  • 去除Edge微软浏览器与Chrome谷歌浏览器顶部出现“此版本的Windows不再支持升级Windows 10”的烦人提示
  • JavaWeb(苍穹外卖)--学习笔记18(Apache POI)
  • 安全引导功能及ATF的启动过程(五)
  • 数据结构:栈和队列(Stack Queue)基本概念与应用
  • AI编程插件对比分析:CodeRider、GitHub Copilot及其他
  • 云服务器最新版MySQL 安装步骤
  • 第4章 程序段的反复执行1 for语句P115练习题(题及答案)
  • Matlab系列(004) 一 Matlab分析正态分布(高斯分布)
  • cuOpt_server错误分析
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘fastai’问题
  • 面试题-----Spring Cloud
  • LLM 的向量的方向表示语义,向量长度表示什么
  • 强化学习笔记:从Q学习到GRPO
  • 1.JavaScript 介绍
  • Linux系统编程Day10 -- 进程管理
  • 分治-快排-面试题 17.14.最小k个数-力扣(LeetCode)
  • 在 Vue 中动态引入SVG图标的实现方案
  • Horse3D引擎研发笔记(三):使用QtOpenGL的Shader编程绘制彩色三角形
  • 第十九天-输入捕获实验
  • Redis面试题及详细答案100道(01-15) --- 基础认知篇
  • synchronized和RentrantLock用哪个?
  • LangChain-Unstructured 基础使用:PDF 与 Markdown 处理解析