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.pswp.cn/news/918285.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918285.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918285.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

藍牙基礎:FIFO(First-In-First-Out)緩存區

在藍牙通信中,FIFO(First-In-First-Out,先進先出)緩存區是解決數據傳輸中“速度不匹配”和“時序異步”問題的核心機制,廣泛應用于藍牙芯片內部、協議棧各層級及主從設備交互中。其核心作用是臨時存儲數據,…

國內外主流源代碼平臺與高效開發指南

摘要 本文旨在為您提供一份實用的源代碼獲取與開發指南。我們將首先梳理國內外最主流的源代碼托管平臺,并重點介紹如何利用這些平臺上的開源項目。接著,本文將為您規劃一條針對初學者的“最快最性價比”的開發路徑,從環境配置、項目管理到實…

任務進度狀態同步 萬能版 參考 工廠+策略+觀察者設計模式 +鎖設計 springboot+redission

文章目錄概要效果解釋狀態流轉說明設計AI任務實體類AI任務狀態枚舉AI模型枚舉基礎實體類簡單字典接口工廠策略模式 接口設計AiJobProcessorAiJobProcessorFactory觀察者模式AI任務相關的EventMyEventListenerMyEventPubLisherRedissonConfig定時任務實現ReplicateJobProcessorR…

printf函數格式化輸出攻略

目錄 一、基本用法 二、占位符 基本用法 常用占位符 字符串占位符示例 多占位符示例 注意事項 三、占位符列表 基本數據類型占位符 浮點數占位符 特殊類型占位符 長度修飾符 使用示例 注意事項 四、輸出格式 1、限定寬度 基本用法 左對齊輸出 浮點數寬度限制…

AI小智單片機esps32-s3燒錄教程

1. 下載代碼到本地 代碼地址:https://github.com/78/xiaozhi-esp32 2. vscode安裝環境 安裝一下這個插件 3. esp32-s3通過數據線連接電腦 【圖片】 4. vscode選擇對應配置 如果是用自己的服務還得改下地址 5. 點擊構建 6. 點擊燒錄

socket編程中系統調用send()詳細講解

在 socket 編程中,send() 是用于在已連接的套接字上發送數據的系統調用,主要用于 TCP 協議(也可用于 UDP,但需配合連接操作)。它負責將用戶態的數據傳遞到內核緩沖區,再由內核協議棧(如 TCP/IP&…

Eclipse JSP/Servlet:深入解析與最佳實踐

Eclipse JSP/Servlet:深入解析與最佳實踐 引言 Eclipse JSP/Servlet 是 Java 企業版(Java EE)的核心技術之一,它為 Web 開發者提供了一個強大的平臺來構建動態和交互式的 Web 應用程序。本文將深入探討 Eclipse JSP/Servlet 的概念、工作原理以及最佳實踐,幫助開發者更好…

CNB私有化部署Dify(零成本)教程

本篇文章介紹一下如何進行dify的私有化部署的過程:dify定位是開源的LLM應用平臺,搭建自己的這個AI應用,而我們非常熟悉的這個coze實際上是通過搭積木一樣搭建AI應用,我選擇從dify開始進行了解學習 1.前置準備 我們需要有這個騰訊云…

imx6ull-驅動開發篇16——信號量與互斥體

目錄 前言 信號量 概念與特性 信號量 API 函數 互斥體 概念與特性 互斥體 API 函數 前言 Linux 內核提供的幾種并發和競爭的處理方法,我們學習了: 驅動開發篇14——原子操作 驅動開發篇15——linux自旋鎖 本講我們就繼續學習:信號…

Bug 記錄:SecureRandom.getInstanceStrong()導致驗證碼獲取阻塞

問題描述: 在發送驗證碼到郵件中,接口調用時卡在生成驗證碼階段,導致驗證碼功能完全不可用; 經排查開發環境一切正常,測試環境會重現此問題;問題分析: 現象: 代碼卡在 SecureRandom.…

商派小程序商城(小程序/官網/APP···)的范式躍遷與增長再想象

2025年,品牌官方商城應該如何定義?—— 還是一套“電商貨架”?在商派看來,現如今“品牌官方商城”則需要重新定義,結合不同品牌企業的業務發展需求,也就有著更多豐富的定義和組合想象——如,商城…

基于串口實現可擴展的硬件函數 RPC 框架(附完整 Verilog 源碼)

本文介紹如何使用簡單的串口協議搭建一個支持寄存器讀寫與硬件函數調用的通用交互框架,適用于 FPGA 調試、嵌入式接口、中小型控制系統等場合。 特性: 輕量協議、30 個32位寄存器、函數調用、狀態反饋,源碼清晰易擴展。💡 背景與目…

jenkins-飛書通知機制

一. 目標: 觸發構建和結束后,自動觸發到飛書工作群,發布同學只需要關注消息即可,而無需人工盯梢。 二. 實現方式: 1. 機器人配置: 創建一個群, 配置機器人: 保管好下面的webhoo…

GoLand 項目從 0 到 1:第五天 —— 角色權限中間件實現與事務控制

第五天核心任務:權限校驗鏈路閉環 第五天的開發聚焦于權限控制的核心實現,完成了角色權限中間件的開發,實現了接口級別的權限校驗,并基于事務控制確保用戶權限操作的數據一致性。通過這部分工作,系統的權限管理從設計階段正式進入可運行階段,為后續業務模塊的安全接入提…

【工具變量】地級市固定資產投資數據(2000-2023年)

數據簡介:地級市固定資產投資是衡量地方經濟發展活力與動能的重要指標,其規模、結構及增速不僅反映區域產業布局和政策導向,也直接影響基礎設施完善、產業升級和民生改善。清晰展現長期經濟發展脈絡,助力捕捉經濟增長與波動規律。…

Kotlin初體驗

前言: 在當今的軟件開發領域,隨著技術的不斷發展,開發者總是在尋找更高效、更簡潔的編程語言來提升開發效率并減少代碼中的潛在問題。而 Kotlin,作為一門現代的編程語言,逐漸贏得了越來越多開發者的青睞,尤…

五十五、【Linux系統nginx服務】nginx安裝、用戶認證、https實現

一、Nginx 核心功能全景圖 #mermaid-svg-j5M1WUQFrtyrWjAD {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-j5M1WUQFrtyrWjAD .error-icon{fill:#552222;}#mermaid-svg-j5M1WUQFrtyrWjAD .error-text{fill:#552222;s…

AtCoder Beginner Contest 418

文章目錄A Im a teapotB Youre a teapotC FlushD XNOR OperationE TrapeziumF Were teapotsG Binary OperationAtCoder Beginner Contest 418A I’m a teapot Takahashi is a teapot. Since he is a teapot, he will gladly accept tea, but will refuse any other liquid. Det…

多級緩存詳解

多級緩存 傳統緩存: 傳統緩存策略一般是請求到達Tomcat后,先查詢Redis,如果未命中則查詢數據庫。 這種模式下請求一定要經過Tomcat處理,Tomcat的性能就成為了整個系統的瓶頸;并且Redis的緩存也有過期時間,一…

接口自動化-JSON Schema

目錄 1.介紹 2.安裝 3.使用 3.1type關鍵字 3.2最大值最小值 3.2.1minimum 、 maximum 3.2.2 exclusiveMinimum 、exclusiveMaximum 3.3字符串特殊校驗 3.4數據約束 3.5對象約束 3.6必須屬性 3.7依賴關系 4.總結 1.介紹 JSON Schema 是一個用來定義和校驗 JSON 的…