Ubuntu小練習

文章目錄

  • 一、遠程連接
    • 1、通過putty連接
    • 2、查看putty運行狀態
    • 3、通過Puuty遠程登錄Ubuntu
    • 4、添加新用戶
      • 查看是否添加成功
    • 5、用新用戶登錄遠程Ubuntu
    • 6、使用VNC遠程登錄樹莓派
  • 二、虛擬機上talk聊天
  • 三、Opencv
    • 1、簡單安裝版(適合新手安裝)
    • 2、打開VScode
      • 特效說明:

一、遠程連接

1、通過putty連接

sudo apt update
sudo apt install openssh-server

2、查看putty運行狀態

sudo systemctl status ssh

請添加圖片描述

3、通過Puuty遠程登錄Ubuntu

在這里插入圖片描述

4、添加新用戶

在這里插入圖片描述

查看是否添加成功

cat /etc/passwd | grep -E 'classmate1|classmate2'

在這里插入圖片描述

5、用新用戶登錄遠程Ubuntu

在這里插入圖片描述

  1. X 窗口協議與 VNC-viewer 協議的差異
    X 窗口協議:
    用于在本地顯示遠程圖形界面,依賴于 X11 轉發。
    適合運行單個圖形程序,性能較高。
    VNC 協議:
    提供完整的遠程桌面訪問,支持多用戶同時連接。
    適合需要完整桌面環境的場景,但性能可能較低。

6、使用VNC遠程登錄樹莓派

在這里插入圖片描述

二、虛擬機上talk聊天

在這里插入圖片描述

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <signal.h>
#include <pwd.h>#define SOCKET_PATH "/tmp/talk_socket_"
#define MAX_CLIENTS 5
struct message {char sender[32];char text[256];
};
int server_fd;
char current_user[32] = {0};void cleanup() {char path[128];snprintf(path, sizeof(path), "%s%s", SOCKET_PATH, current_user);unlink(path); // 刪除套接字文件close(server_fd);
}void handle_signal(int sig) {printf("\nCleaning up before exit...\n");cleanup();exit(0);
}void run_server(const char *username) {struct sockaddr_un addr;int client_fd;struct message msg;// 設置套接字路徑char path[128];snprintf(path, sizeof(path), "%s%s", SOCKET_PATH, username);// 創建套接字if ((server_fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {perror("socket error");exit(EXIT_FAILURE);}// 綁定套接字memset(&addr, 0, sizeof(addr));addr.sun_family = AF_UNIX;strncpy(addr.sun_path, path, sizeof(addr.sun_path)-1);unlink(path); // 確保路徑可用if (bind(server_fd, (struct sockaddr*)&addr, sizeof(addr)) == -1) {perror("bind error");exit(EXIT_FAILURE);}// 監聽if (listen(server_fd, MAX_CLIENTS) == -1) {perror("listen error");exit(EXIT_FAILURE);}printf("Waiting for incoming messages as [%s]...\n", username);while (1) {// 接受連接if ((client_fd = accept(server_fd, NULL, NULL)) == -1) {perror("accept error");continue;}// 接收消息if (read(client_fd, &msg, sizeof(msg)) > 0) {printf("\n[Message from %s]: %s\n", msg.sender, msg.text);printf("Reply to %s> ", msg.sender);fflush(stdout);}close(client_fd);}
}void send_message(const char *target_user, const char *username) {struct sockaddr_un addr;int fd;struct message msg;void send_message(const char *target_user, const char *username) {struct sockaddr_un addr;int fd;struct message msg;// 設置目標套接字路徑char path[128];snprintf(path, sizeof(path), "%s%s", SOCKET_PATH, target_user);// 創建套接字if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {perror("socket error");exit(EXIT_FAILURE);}// 連接目標memset(&addr, 0, sizeof(addr));addr.sun_family = AF_UNIX;strncpy(addr.sun_path, path, sizeof(addr.sun_path)-1);if (connect(fd, (struct sockaddr*)&addr, sizeof(addr)) == -1) {perror("connect error");printf("User %s is not available or not running talk\n", target_user);exit(EXIT_FAILURE);}// 發送消息strncpy(msg.sender, username, sizeof(msg.sender)-1);printf("Enter message (Ctrl+D to end): ");fgets(msg.text, sizeof(msg.text), stdin);if (write(fd, &msg, sizeof(msg)) == -1) {perror("write error");}close(fd);
}int main(int argc, char *argv[]) {if (argc < 2) {fprintf(stderr, "Usage: %s <username> [target_user]\n", argv[0]);fprintf(stderr, "Server mode: %s yourname\n", argv[0]);fprintf(stderr, "Client mode: %s yourname target_user\n", argv[0]);exit(EXIT_FAILURE);}// 獲取當前用戶名strncpy(current_user, argv[1], sizeof(current_user)-1);signal(SIGINT, handle_signal);signal(SIGTERM, handle_signal);if (argc == 2) {// 服務端模式run_server(argv[1]);} else {// 客戶端模式send_message(argv[2], argv[1]);}return 0;
}

三、Opencv

1、簡單安裝版(適合新手安裝)

1、打開Terminal輸入以下命令

sudo apt update
sudo apt install python3-opencv libopencv-dev

2、驗證安裝是否成功

# 檢查Python環境
python3 -c "import cv2; print(cv2.__version__)"# 檢查C++開發環境
pkg-config --modversion opencv4

在這里插入圖片描述
如圖所示,安裝的是4.2.0。這個方法安裝的Opencv版本較老,可以選擇去官網下載較新的版本安裝,只不過我這里嘗試了很久沒有安裝成功,并且每次最后都會導致虛擬機卡死

2、打開VScode

1、創建一個新的python文件
案例測試


import cv2# Load an image from file
image = cv2.imread('example.jpg')# Check if the image was successfully loaded
if image is None:print("Error: Could not load the image. Please check the file path.")
else:# Apply a grayscale effectgray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# Apply a Gaussian blur effectblurred_image = cv2.GaussianBlur(image, (15, 15), 0)# Display the original imagecv2.imshow('Original Image', image)# Display the grayscale imagecv2.imshow('Grayscale Image', gray_image)# Display the blurred imagecv2.imshow('Blurred Image', blurred_image)# Wait for a key press and close the windowscv2.waitKey(0)cv2.destroyAllWindows()

以下是一個示例代碼,添加了一些簡單的圖像特效(如將圖像轉換為灰度圖像和應用高斯模糊):

import cv2# Load an image from file
image = cv2.imread('example.jpg')# Check if the image was successfully loaded
if image is None:print("Error: Could not load the image. Please check the file path.")
else:# Apply a grayscale effectgray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# Apply a Gaussian blur effectblurred_image = cv2.GaussianBlur(image, (15, 15), 0)# Display the original imagecv2.imshow('Original Image', image)# Display the grayscale imagecv2.imshow('Grayscale Image', gray_image)# Display the blurred imagecv2.imshow('Blurred Image', blurred_image)# Wait for a key press and close the windowscv2.waitKey(0)cv2.destroyAllWindows()

特效說明:

  1. 灰度圖像:使用 cv2.cvtColor 將彩色圖像轉換為灰度圖像。
  2. 高斯模糊:使用 cv2.GaussianBlur 對圖像進行模糊處理,參數 (15, 15) 控制模糊的程度。
    如下圖所示
    在這里插入圖片描述
    同樣這個也可以通過C++實現,但是我嘗試了很久,被各種配置困了很久還么解決,就用的Python

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

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

相關文章

996引擎-疑難雜癥:Ctrl + F9 編輯好的UI進入游戲查看卻是歪的

Ctrl F9 編輯好UI后&#xff0c;進入游戲查看卻是歪的。 檢查Ctrl F10 是否有做過編輯。可以找到對應界面執行【清空】

WinForm真入門(5)——控件的基類Control

控件的基類–Control 用于 Windows 窗體應用程序的控件都派生自 Control類并繼承了許多通用成員,這些成員都是平時使用控件的過程最常用到的。無論要學習哪個控件的使用&#xff0c;都離不開這些基本成員&#xff0c;尤其是一些公共屬性。由于 Conlrol 類規范了控件的基本特征…

RAG(檢索增強生成)系統,提示詞(Prompt)表現測試(數據說話)

在RAG(檢索增強生成)系統中,評價提示詞(Prompt)設計是否優秀,必須通過量化測試數據來驗證,而非主觀判斷。以下是系統化的評估方法、測試指標和具體實現方案: 一、提示詞優秀的核心標準 優秀的提示詞應顯著提升以下指標: 維度量化指標測試方法事實一致性Faithfulness …

Appium的學習總結-Inspector參數設置和界面使用(5)

環境搭建好后&#xff0c;怎么使用呢&#xff1f; 環境這里使用的是&#xff1a; Appium的Server端GUI 22版本 Inspector需要單獨下載安裝&#xff0c;GUI里并沒有集成。 &#xff08;使用Appium v1.22.0,查看元素信息需要另外安裝下載Appium Inspector&#xff09; 操作&…

I/O進程3

day3 五、進程 7.函數接口 7.1創建子進程 pid_t fork(void);功能&#xff1a;創建子進程返回值&#xff1a;成功&#xff1a;在父進程中&#xff1a;返回子進程的進程號 >0 在子進程中&#xff1a;返回值為0&#xff1b; 失敗&#xff1a;-1并設置errno 特點 1.子進程幾乎…

k8s 1.24.17版本部署(使用Flannel插件)

1.k8s集群環境準備 推薦閱讀: https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 1.1 環境準備 環境準備:硬件配置: 2core 4GB磁盤: 50GB操作系統: Ubuntu 22.04.04 LTSIP和主機名:10.0.0.231 master23110.0.0.232 worker23210.0…

網絡編程—TCP/IP模型(UDP協議與自定義協議)

上篇文章&#xff1a; 網絡編程—Socket套接字&#xff08;TCP&#xff09;https://blog.csdn.net/sniper_fandc/article/details/146923783?fromshareblogdetail&sharetypeblogdetail&sharerId146923783&sharereferPC&sharesourcesniper_fandc&sharefro…

GNSS有源天線和無源天線

區別 需要外部供電的就是有源天線&#xff0c;不需要外部供電的是無源天線。 無源天線 一般就是一個陶瓷片、金屬片等&#xff0c;結構簡單&#xff0c;成本低廉&#xff0c;占用空間及體積小&#xff0c;適合于強調緊湊型空間的導航類產品。 不需要供電&#xff0c;跟設備直…

網絡編程—TCP/IP模型(IP協議)

上篇文章&#xff1a; 網絡編程—TCP/IP模型&#xff08;TCP協議&#xff09;https://blog.csdn.net/sniper_fandc/article/details/147011479?fromshareblogdetail&sharetypeblogdetail&sharerId147011479&sharereferPC&sharesourcesniper_fandc&sharef…

基于金字塔視覺變換的類引導網絡高分辨率遙感圖像高效語義分割

Class-Guidance Network Based on the Pyramid Vision Transformer for Ef?cient Semantic Segmentation of High-Resolution Remote Sensing Images 摘要 多分類語義分割中類之間的小差異和類內的大變化是全卷積神經網絡的“編碼器-解碼器”結構沒有完全解決的問題&#…

基于人工智能的高中教育評價體系重構研究

基于人工智能的高中教育評價體系重構研究 一、引言 1.1 研究背景 在科技飛速發展的當下&#xff0c;人工智能技術已廣泛滲透至各個領域&#xff0c;教育領域亦不例外。人工智能憑借其強大的數據處理能力、智能分析能力和個性化服務能力&#xff0c;為教育評價體系的創新與發…

DeepSeek在互聯網技術中的革命性應用:從算法優化到系統架構

引言:AI技術重塑互聯網格局 在當今快速發展的互聯網時代,人工智能技術正以前所未有的速度改變著我們的數字生活。DeepSeek作為前沿的AI技術代表,正在多個互聯網技術領域展現出強大的應用潛力。本文將深入探討DeepSeek在搜索引擎優化、推薦系統、自然語言處理以及分布式系統…

數字游戲(繼Day 10)

主體: #include<stdio.h> #include<time.h> #include<stdlib.h>#include"mygetch.h"#define MAX 51 //定義測試字母的最大長度void help() {printf("\n****************************************");printf("\n*輸入過程中無法退出…

談談模板方法模式,模板方法模式的應用場景是什么?

一、模式核心理解 模板方法模式是一種??行為設計模式??&#xff0c;通過定義算法骨架并允許子類重寫特定步驟來實現代碼復用。 如同建筑圖紙規定房屋結構&#xff0c;具體裝修由業主決定&#xff0c;該模式適用于??固定流程中需要靈活擴展??的場景。 // 基礎請求處理…

2024 Jiangsu Collegiate Programming Contest H

記錄一下為數不多的網絡流 #pragma GCC optimize(3,"Ofast","inline") #include<bits/stdc.h> #include <execution> using namespace std; using i64 long long; using i128 __int128;template <typename T>struct MCFgraph{struct …

Hadoop序列化與反序列化

一、Hadoop序列化概述 &#xff08;一&#xff09;什么是序列化和反序列化 序列化&#xff1a;序列化是將對象&#xff08;如Java中的類實例&#xff09;轉換為字節序列的過程。在Hadoop中&#xff0c;數據在分布式系統中傳輸或者存儲到磁盤時&#xff0c;需要將數據對象序列…

FreeRTOS臨界區

在FreeRTOS中&#xff0c;臨界區通過關閉可管理的中斷來保護共享資源&#xff0c;具體關閉的中斷層級由configMAX_SYSCALL_INTERRUPT_PRIORITY宏定義決定。以下是關鍵點解析&#xff1a; 中斷優先級分類&#xff1a; 高優先級中斷&#xff1a;數值低于configMAX_SYSCALL_INTERR…

cdw2: TypeScript

一、javascript的問題 二、初識typescript https://mp.weixin.qq.com/s/wnL1l-ERjTDykWM76l4Ajw 三、類型 二進制&#xff1a;ob開頭&#xff0c;八進制&#xff1a;0o開頭&#xff0c;十六進制&#xff1a;0x開頭 開發中不這樣寫 這樣寫 匿名函數的參數最好不要…

Qt中的元對象系統

Qt的元對象系統(Meta-Object System)提供了對象間通信的信號和槽機制、運行時類型信息和動態屬性系統。 元對象系統基于以下三個方面&#xff1a; (1).QObject類&#xff1a;為可以利用元對象系統的對象提供了基類。 (2).Q_OBJECT宏&#xff1a;用于啟用元對象功能&#xff0c;…

深入理解重排(Reflow)與重繪(Repaint),寫出高性能 CSS 動畫

在前端開發中&#xff0c;CSS 動畫是提升用戶體驗的重要手段&#xff0c;但很多開發者在使用動畫時并不了解瀏覽器背后的渲染機制&#xff0c;導致動畫卡頓甚至影響整體性能。本文將帶你深入理解 CSS 中的兩大核心概念 —— 重排&#xff08;Reflow&#xff09; 與 重繪&#x…