一、实验内容和要求:
看word
二、实验软件环境
根据自己情况而定
三、步骤和截图
1.在Linux下,安装git,使用git管理大作业相关的代码、配置文件等,要求有能反映大作业过程的git提交记录。
首先下载git
直接 sudo apt-get(或yum) install git 一了百了(如果愿意下载源码自己编译也行,自行搜索)
you@you:~$ git --version
- 配置用户名和用户邮件(name随意,邮箱要有,什么邮箱也随意)
-
you@you:~$ git config --global user.name "ZZK" you@you:~$ git config --global user.email "Youreamil@email.com" you@you:~$ git config --list user.name=ZZK user.email=Youreamil@email.com
- 配置Git的私钥和公钥.密码为空(密钥也可以不为空,为了简单方便,我直接设置成空)
- 上github打开设置(我是用的github,不一定是github,仓库随意,用的舒服就好)
- 进入个人设置点击 new ssh key
- linux上打开id_rsa.pub文件,复制密钥到github上
- 测试是否连接(如图,已经连接上了)
- github创建项目,将远程仓库与本地仓库连接起来(把本地已有的同名Git仓库和GitHub上的仓库关联起来)
- 我们在本地新建了一个名为Linux的文件夹
- 根据github给出的提示进行操作
-
echo "# Linux" >> README.md git init git add README.md git commit -m "first commit" git branch -M main git remote add origin https://github.com/Zzkyou/Linux.git git push -u origin main
- 之后只需要将文件复制到Linux文件中执行git add 跟git commit 就可以直接push了
2.在Linux下,利用 socket 技术编写程序,包含客户端和服务端,实现两者之间的信息传递。
- docker安装,docker安装很简单 ,b站搜索,很多教程。
- 使用docker启动虚拟机 并配置java环境
-
you@you:~$ docker run -id --name=C1 -p 5209:5209 centos #端口映射要注意 you@you:~$ docker run -id --name=C2 -p 5210:5209 centos
-
进入centos镜像中
-
将java安装文件拷贝到镜像中
-
you@you:~$ ls javaflie/ jdk-8u161-linux-x64.tar.gz SocketService.class you@you:~$ docker cp javaflie/jdk-8u161-linux-x64.tar.gz C1:/root
-
[root@9f67c7a141fd /]# ls root anaconda-ks.cfg anaconda-post.log jdk-8u161-linux-x64.tar.gz original-ks.cfg
-
获取C1的ip
-
编写服务端的代码
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class SocketService { //搭建服务器端 public static void main(String[] args) throws IOException{ SocketService socketService = new SocketService(); //1、a)创建一个服务器端Socket,即SocketService socketService.oneServer(); } public void oneServer(){ try{ ServerSocket server=null; try{ //下面是端口,端口可以和客户端代码里面的端口一样 server=new ServerSocket(5209); //b)指定绑定的端口,并监听此端口。 System.out.println("Service enable Success"); //创建一个ServerSocket在端口5209监听客户请求 }catch(Exception e) { System.out.println("No Listen:"+e); //出错,打印出错信息 } Socket socket=null; try{ socket=server.accept(); //2、调用accept()方法开始监听,等待客户端的连接 //使用accept()阻塞等待客户请求,有客户 //请求到来则产生一个Socket对象,并继续执行 }catch(Exception e) { System.out.println("Error."+e); //出错,打印出错信息 } //3、获取输入流,并读取客户端信息 String line; BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream())); //由Socket对象得到输入流,并构造相应的BufferedReader对象 PrintWriter writer=new PrintWriter(socket.getOutputStream()); //由Socket对象得到输出流,并构造PrintWriter对象 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //由系统标准输入设备构造BufferedReader对象 System.out.println("Client:"+in.readLine()); //在标准输出上打印从客户端读入的字符串 line=br.readLine(); //从标准输入读入一字符串 //4、获取输出流,响应客户端的请求 while(!line.equals("end")){ //如果该字符串为 "bye",则停止循环 writer.println(line); //向客户端输出该字符串 writer.flush(); //刷新输出流,使Client马上收到该字符串 System.out.println("Service:"+line); //在系统标准输出上打印读入的字符串 System.out.println("Client:"+in.readLine()); //从Client读入一字符串,并打印到标准输出上 line=br.readLine(); //从系统标准输入读入一字符串 } //继续循环 //5、关闭资源 writer.close(); //关闭Socket输出流 in.close(); //关闭Socket输入流 socket.close(); //关闭Socket server.close(); //关闭ServerSocket }catch(Exception e) {//出错,打印出错信息 System.out.println("Error."+e); } } }
- 编写客户端代码
-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; import java.net.URL; public class SocketClient { // 搭建客户端 public static void main(String[] args) throws IOException { try { // 1、创建客户端Socket,指定服务器地址和端口 //下面是你要传输到另一台电脑的IP地址和端口 Socket socket = new Socket("172.17.0.2", 5209); System.out.println("Client enable Success"); // 2、获取输出流,向服务器端发送信息 // 向本机的52000端口发出客户请求 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 由系统标准输入设备构造BufferedReader对象 PrintWriter write = new PrintWriter(socket.getOutputStream()); // 由Socket对象得到输出流,并构造PrintWriter对象 //3、获取输入流,并读取服务器端的响应信息 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 由Socket对象得到输入流,并构造相应的BufferedReader对象 String readline; readline = br.readLine(); // 从系统标准输入读入一字符串 while (!readline.equals("end")) { // 若从标准输入读入的字符串为 "end"则停止循环 write.println(readline); // 将从系统标准输入读入的字符串输出到Server write.flush(); // 刷新输出流,使Server马上收到该字符串 System.out.println("Client:" + readline); // 在系统标准输出上打印读入的字符串 System.out.println("Service:" + in.readLine()); // 从Server读入一字符串,并打印到标准输出上 readline = br.readLine(); // 从系统标准输入读入一字符串 } // 继续循环 //4、关闭资源 write.close(); // 关闭Socket输出流 in.close(); // 关闭Socket输入流 socket.close(); // 关闭Socket } catch (Exception e) { System.out.println("can not listen to:" + e);// 出错,打印出错信息 } } }
-
将代码分别拷贝到镜像中
-
分别启动java程序
-
启动成功,测试是否能通信
-
通信成功
2.Hugo
hugo下载上官网下载deb文件
sudo dpkg -i hugo*.deb #安装hugo
在你想要创建站点的文件夹(我是在用户名下面的hugo文件夹下)创建一个站点(如my-website)
mkdir themes# themes用来管理主题
hugo new site my-website #创建站点
进入站点可以看到用于构建Hugo站点的目录结构和主配置文件:
archetypes/ config.toml content/ data/ layouts/ public/ static/
ln -s ../themes . #建立符号链接用于管理主题
cd ~/hugo/my-website git init # 让站点可以使用git
拉取主题,拉取你喜欢的主题
git submodule add "主题的html" themes/"主题名的文件" #如下
打开confit.toml文件,将主题加入,还有将baseURL修改为自己linux机的ip(这里我主题使用了另外一个,与上图示例不同,但无影响,只要themes文件中存在该主题就行)
为网站创建新页面
# 在 my-website目录下
hugo new about.md
创建第一篇文章
hugo new post/My-First-Post.md
这时候你就可以在md文件中写你的内容了
建立和服务网站
hugo server --bind=0.0.0.0 --baseUrl=http://your_domain_or_IP/
就可以开启hugo自带的服务器了,端口是1313
浏览器输入 http://your_domain_or_IP:1313 就可以看见你的网页
当你更新完代码后,需要输入
安装nginx,(自行搜索,教程太多了)
之后再my-website下 执行 hugo 命令,生成public文件,然后将ngnix中html的文件替换为public文件中的内容,刷新浏览器就可以看见自己的博客了。文章来源:https://www.toymoban.com/news/detail-790958.html
部分知识选自网络,如有侵权,通知删之文章来源地址https://www.toymoban.com/news/detail-790958.html
到了这里,关于Linux期末大作业的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!