博客系統筆記總結 2( Linux 相關)

Linux 基本使用和程序部署

image-20250218185323384

基本命令

文件操作

顯示當前目錄下的文件

ls:顯示當前目錄下的文件

ll:以列表的形式展示,包括隱藏文件

image-20250218185641586
進入目錄 && 顯示當前路徑

cd:進入目錄(后面跟相對路徑或者絕對路徑)

./ 表示當前目錄 …/ 表示上級目錄

pwd : 顯示當前路徑

image-20250221233737652

image-20250221233943658

創建文件夾 && 創建文件

mkdir : 創建文件夾(后面跟文件名)

mkdir -p : 創建多級目錄

? image-20250222002359182

touch : 創建文件(后面跟文件名)

上傳 && 下載

rz : 上傳文件

sz : 下載(后面跟文件名)

image-20250221235048192

上傳文件 也可以將 要上傳的文件 直接拖到終端里。

查看文件內容

cat : 查看文件(后面跟文件名)直接打開全文。退出后文件內容仍顯示在屏幕上。

more : 查看文件(后面跟文件名)顯示一頁。退出后文件內容仍顯示在屏幕上。 按空格進入下一頁,按 b 進入上一頁。按 ctrl + c 結束。

結束的一些套路:

? ctrl + c 結束。

? 兩次 ctrl + c 。

? exit

? 文件相關:

? :q!

? :q

less : 查看文件 (后面跟文件名)顯示一頁。退出后文件內容不留在屏幕上。 page up / page down 翻頁。

/ : 進入文件后,按 / 進行搜索(/ 后面跟你要搜索的內容)

:q : 退出文件

head : 查看文件,查看開頭 n 行,head 后面跟數字 可以手動指定 查看行數。

tail : 查看文件,查看最后 n 行,head 后面跟數字 可以手動指定 查看行數。

刪除文件

rm : 刪除文件

rm -r : 刪除多級目錄,目錄里面的文件也會刪掉。

? image-20250222002548767

編輯文件內容

vi : 進入文件

i : 進入編輯模式

ESC : 退出編輯模式

:w : 保存

:q : 退出

:wq : 保存并退出

:q! : 強制退出

:wq! : 強制保存并退出

復制文件

cp [文件名] [目的地] : 復制文件。

image-20250222115700914

移動文件

mv [文件名] [目的地] : 移動文件。這條命令也可以達到重命名的效果。下圖表示把 cat.jpg 重命名為 cat2.jpg。

image-20250223202841186

查找文件

grep [要找的文件] [在哪個文件中找] : 查找文件

? image-20250223203316519

grep 不僅僅能查文件,它最主要的功能是查找。想查什么用它就對了。

進程相關

查看當前系統上運行的進程

ps [參數] : 查看當前系統上運行的進程

ps aux : 查看所有進程。(顯示內容更多)

ps aux : grep “進程名”

ps aux : grep “進程 id”

ps -ef : 查看所有進程。(顯示一部分內容)

管道簡單介紹

| : 表示把 “|” 前面命令的輸出,作為"|"后面命令的輸入。

例:輸入 ps -ef | grep “redis” 這條命令前半部分的含義是 查看當前系統上運行的所有進程。后半部分的含義是 查找 帶 “redis” 的文件。 組合起來就是 查找當前系統上運行的進程名字帶 “redis” 的進程。輸出:

image-20250223204120735

查看系統網絡狀態

netstat [參數] : 查看系統網絡狀態

image-20250223205211734

搭建 Java 部署環境

apt 介紹

apt 是啥呢?它就跟手機上的應用商店一樣,你可以在上面下載各種軟件。

在 linux 中主要有兩種下載軟件包的方法,一個是去官網下載,另一個就是用 apt 下載。

需要注意的是:在使用大多數 apt 命令時,必須要以 sudo 權限的用戶身份運行。

sudo apt list : 列出 apt 中所有的包。可以使用 grep 命令過濾輸出。

sudo apt-get update : 更新軟件包數據庫。一般在安裝軟件之前,都需要先更新一下 apt 數據庫。

sudo apt install 包名稱 : 添加軟件包

sudo apt remove 包名稱 : 刪除軟件包,不會刪除配置文件。

sudo apt purge 包名稱 : 刪除軟件包,會刪除配置文件,一般推薦使用這個刪。

? image-20250223212156353

JDK 安裝

  1. sudo apt-get update : 更新軟件包數據庫。一般在安裝軟件之前,都需要先更新一下 apt 數據庫。

  2. 查找 JDK 包

    apt list | grep “jdk”

  3. 安裝 JDK

    sudo apt install openjdk-17-jdk

  4. 查看是否安裝完成

    java -version

    image-20250224184837084

MySQL 安裝

  1. 查找安裝包

    apt list | grep “mysql-server”

  2. 安裝 MySQL

    sudo apt install mysql-server

  3. 查看 MySQL 狀態

    sudo systemctl status mysql

MySQL 安全相關設置

你按照好 MySQL 之后,默認的 MySQL 設置是不安全的,為了保證數據安全,我們需要做如下設置。

運行: sudo mysql_secure_installation

運行后會彈出如下文字:

image-20250224191054651

這是在讓你選擇密碼的安全級別,數字 0、1、2 分別表示低中高,我們選 2。

這是在問你是否要刪除默認用戶,根據自己需求選擇。

image-20250224191318192

這是在問你,這臺機器上的 MySQL 是否只在當前機器上運行。

image-20250224191601231

選 Y,表示別的機器無法遠程連接你的 MySQL數據庫。

MySQL 默認會生成一個 test 數據庫,這是在問你要不要刪除。

image-20250224192036249

這是在問是否讓你的設置生效。

image-20250224192138808

設置密碼
  1. 連接 MySQL 服務器

    sudo mysql

  2. 使用 alter user 命令修改密碼

    alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘密碼’;

設置完成密碼后,后續再進入 MySQL 的命令:

mysql -u用戶名 -p密碼

MySQL 卸載
  1. 停止 MySQL

    sudo systemctl stop mysql

  2. 卸載 MySQL

    sudo apt-get remove --purge mysql-server mysql-client mysql-common

  3. 刪除 MySQL 配置文件和數據

    sudo rm -rf /etc/mysql /var/lib/mysql

  4. 清理殘留文件和目錄

    sudo apt-get autoremove

    sudo apt-get autoclean

  5. 檢查是否有殘留

    dpkg --list | grep -i mysql-*

  6. 移除相關包

    apt-get purge mysql*

  7. 驗證卸載結果

    mysql --version

部署 Web 項目到 Linux

什么是部署?

把程序安裝到生產環境上,這個過程就稱為部署。

  • 開發環境(dev):開發人員使用的環境。
  • 測試環境(test):測試人員使用的環境。
  • 生產環境(prod):真實用戶使用的環境。

環境配置

數據準備

把之前的數據庫建表的腳本,放在服務器上運行,建立同樣的表結構。

配置文件修改

程序部署到服務器,通常需要修改配置文件。比如:關閉日志打印,修改密碼等等。

當然可以在你的開發環境上修改好,之后在送到服務器上。但是這樣很不方便,需要改來改去。

為了方便部署,我們可以為不同的平臺 創建各自的配置文件。

image-20250224193513828

dev 表示開發環境。 prod 表示生產環境

這么多配置文件,到底哪個文件會生效呢?

答: 只有 application.yml 生效,其余配置文件都不會生效。

如何讓其他配置文件生效呢?

我們在 application.yml 中輸入如下代碼:

image-20250224193914120

此時 application-prod.yml 就會生效啦。

需要注意的是 application-名稱.yml 是固定格式,必須這樣寫!!!

但是這樣還是很麻煩,還需要手寫 prod。

我們可以進一步的把它設置成變量。

打開 pom 文件,按照如下設置:

image-20250224195615327

application.yml 中這樣設置:

image-20250224195707341

刷新 Maven。

設置好了,那該怎么選擇用哪個呢?

image-20250224200022000

打包

先檢查你的 pom 文件中是否有以下配置。

image-20250224200714798

沒有的話在 里面加上。

	<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build>

如果沒有該插件,那么你打的包中不會有第三方依賴的東西。也就是這些:

image-20250224200948235

都做好以后,點擊右側的 Maven,點擊 package。

image-20250224201056215

打好的文件在:

image-20250224201952480

image-20250224202248504

如果顯示:

image-20250224202429751

去下載對應的包即可:

apt install lrzsz

完成!

image-20250224202531176

啟動 .jar 包

java -jar 包名

但是這樣啟動后,一旦你把命令框關掉,你的程序也就關掉了。

讓你的程序在后臺啟動
nohup java -jar 程序包名 &

查看滾動日志

tail -f 日志名稱 

常見問題

  1. 無法訪問

    輸入以下命令來查看端口號是否啟動。

    netstat -nltp|grep 端口號
    

    image-20250224213345028

    輸入以下命令來查看所有 java 程序

    ps -ef|grep java
    
  2. 確認端口號是否開放

  3. 確認程序是否可以正常訪問

    curl http://127.0.0.1:8080/blog_login.html

  4. 確認防火墻是否打開(默認是關閉的狀態)

    sudo ufw status
    

    如果防火墻打開了,還需要再打開防火墻的端口號。如果不知道防火墻怎么弄,上網查資料,或者找云服務器的客服。

  5. 服務器未啟動

    1. 查看端口號是否正確
    2. 查看日志

殺掉進程

  1. 查找進程 id

    在日志上直接找

    image-20250224214554806

    用命令查找:

    netstat -nltp|grep 8080
    

    或者

    ps -ef|grep java
    
  2. 殺掉進程

    kill 進程id
    


本文到這里就結束啦~

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70636.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70636.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70636.shtml

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

相關文章

開源基準測試模擬器:BlueROV2 水下機器人的控制

拜讀An Open-Source Benchmark Simulator: Control of a BlueROV2 Underwater Robot 非常感謝Esben Uth的幫助。 本文介紹了在 Simulink? 中實現的常用且低成本的遙控潛水器 &#xff08;ROV&#xff09; BlueROV2 的仿真模型環境&#xff0c;該環境已針對水下航行器的基準控…

Unity打包APK報錯 using a newer Android Gradle plugin to use compileSdk = 35

Unity打包APK報錯 using a newer Android Gradle plugin to use compileSdk 35 三個報錯信息如下 第一個 WARNING:We recommend using a newer Android Gradle plugin to use compileSdk 35This Android Gradle plugin (7.1.2) was tested up to compileSdk 32This warning…

HTML5特殊字符

HTML中常用的特殊符號一般都以“&”開頭&#xff0c;以“;”結束。

本地大模型編程實戰(23)用智能體(Agent)實現基于SQL數據構建問答系統(2)

本文將用 智能體(Agent) 實現對 SQLite 數據庫的查詢&#xff1a;用戶用自然語言提出問題&#xff0c;智能體也用自然語言根據數據庫的查詢結果回答問題。 本次將分別在英文、中文環境下&#xff0c;使用 qwen2.5 、 MFDoom/deepseek-r1-tool-calling:7b 以及 llama3.1 做實驗。…

nodejs npm install、npm run dev運行的坎坷之路

1、前面的種種都不說了&#xff0c;好不容易運行起來oap-portal項目&#xff0c;運行idm-ui項目死活運行不起來&#xff0c;各種報錯&#xff0c;各種安裝&#xff0c;各種卸載nodejs&#xff0c;卸載nvm&#xff0c;重裝&#xff0c;都不好使。 2、甚至后來運行npm install會…

gotool在線工具集

1. 包含各種 sql 處理 2. 包含 json 處理 3. 包含 圖片處理 4. 跨平臺傳輸 gotool

猿大師播放器:智慧交通Web網頁低延遲播放監控RTSP H.265視頻解決方案

在智慧城市建設加速推進的今天&#xff0c;智慧交通作為城市"神經系統"正面臨前所未有的發展機遇。據統計&#xff0c;2023年全國交通視頻監控設備保有量已突破4500萬臺&#xff0c;日均產生的視頻數據量超50PB。但在這些龐大數字背后&#xff0c;行業卻普遍面臨著&q…

Web自動化之Selenium控制已經打開的瀏覽器(Chrome,Edge)

在使用selenium進行web自動化或爬蟲的時候,經常會面臨登錄的情況,對于這種情況,我們可以利用Selenium控制已經打開的瀏覽器&#xff0c;從而避免每次都需要重新打開瀏覽器并進行登錄的繁瑣步驟。 目錄 說明 啟動瀏覽器 注意 --user-data-dir說明 代碼設定 代碼 改進代…

【Alertmanager】Alertmanager告警路由,告警靜默,告警抑制,高可用的實現

?? 歡迎大家來到景天科技苑?? ???? 養成好習慣,先贊后看哦~???? ?? 作者簡介:景天科技苑 ??《頭銜》:大廠架構師,華為云開發者社區專家博主,阿里云開發者社區專家博主,CSDN全棧領域優質創作者,掘金優秀博主,51CTO博客專家等。 ??《博客》:Python全…

Vue3 + Vite + TS,使用 配置項目別名屬性:resolve

使用 resolve 配置全局項目路徑別名 1.優化了開發中單頁面引用其他模塊的路徑復雜性 2.妥妥解決了&#xff0c;組件復用當中提高開發效率 // 不使用配置 import { useStore } from ../../../stores // 使用配置 可根據開發者需求任意定義&#xff0c;較多 import { useStore…

Linux主機用戶登陸安全配置

Linux主機用戶登陸安全配置 在Linux主機上進行用戶登錄安全配置是一個重要的安全措施&#xff0c;可以防止未經授權的訪問。以下是如何創建用戶hbu、賦予其sudo權限&#xff0c;以及禁止root用戶SSH登錄&#xff0c;以及通過ssh key管理主機用戶登陸。 創建用戶hbu 使用具有…

基于 SpringBoot Vue 的生鮮商城系統設計和實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論…

設計模式-結構性模式

結構型模式主要關注類或對象的組合&#xff0c;旨在通過識別簡單的結構關系來設計更復雜的結構。以下是幾種常見的結構型設計模式&#xff1a; 1. 適配器模式&#xff08;Adapter Pattern&#xff09; 將一個類的接口轉換成客戶端所期望的另一個接口&#xff0c;使得原本由于接…

VantUI官網更新2025,移動端前端開發

Vant 2 - Mobile UI Components built on Vue https://vant-ui.github.io/vant/v2/#/zh-CN/quickstart Vant 4 - A lightweight, customizable Vue UI library for mobile web apps. https://vant-ui.github.io/vant/#/zh-CN Vant Weapp - 輕量、可靠的小程序 UI 組件庫,微…

《我的AUTOSAR之路》Det 解析

Det 解析 1. 引言和功能概述2. Errors2.1 開發錯誤(Development Errors)2.2 運行時錯誤(Runtime Errors)2.3 臨時故障(Transient Faults)3 錯誤查詢默認錯誤追蹤器(Default Error Tracer,DET) 1. 引言和功能概述 默認錯誤追蹤器(DET):該規范描述了默認錯誤追蹤器(…

電腦連接示波器顯示波形

通過網線連接示波器和電腦&#xff0c;將示波器波形顯示在電腦上直接復制圖片至報告中&#xff0c;以下是配置步驟。 一、設備 網線&#xff0c;Tektronix示波器&#xff0c;電腦 二、使用步驟 1.用網線連接電腦和示波器 2.電腦關掉WiFi&#xff0c;查看IPv4網關地址&#xf…

npm i 失敗權限問題

安裝完node之后, 測試全局安裝一個最常用的 express 模塊進行測試 失敗&#xff0c;但是用管理員權限打開cmd 安裝就成功。 報錯如下&#xff1a; npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and …

上海創智學院(測試)算法筆試(ACM賽制)部分例題

1.第一個題&#xff0c;大概題目意思是求n句話中最長的單詞和最短的單詞 這個題目做的有點磕巴&#xff0c;好幾年沒有寫過c/c了&#xff0c;連string的復制都不會寫了&#xff0c;哈哈哈&#xff0c;太笨了 后面一點點撿起來&#xff0c;還是寫出來了&#xff0c;本身沒啥&…

編寫一個程序,輸出 “Hello, World!“(Python版)

編寫一個程序&#xff0c;輸出 "Hello, World!" 在 Python 中&#xff0c;輸出 “Hello, World!” 的程序非常簡單。你只需要使用 print 函數即可。以下是代碼示例&#xff1a; print("Hello, World!")將這段代碼保存為一個 .py 文件&#xff08;例如 hel…

python實戰項目58:采集蜻蜓FM熱門音頻top排行榜

python實戰項目58:采集蜻蜓FM熱門音頻top排行榜 一、采集流程介紹二、數據接口采集三、使用xpath提取頁面數據1、抓包,找到數據接口2、發送請求,獲取數據3、提取數據4、保存數據一、采集流程介紹 蜻蜓FM熱門音頻top排行榜的鏈接為: https://m.qingting.fm/rank/,首頁如下圖…