![](https://img-blog.csdnimg.cn/78a29e70fe8b4837bc7a24ce11d48754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux&操作系统实践相关
文章平均质量分 52
Liunx操作系统相关知识
操作系统实践过程中遇到的问题以及解决方案
Alkali!
本科:NUAACCST16191
硕士:SEUCSE220
展开
-
docker直接下载太慢,更换国内靠谱镜像源
说明,国内源更换成功。原创 2024-03-12 23:13:57 · 2143 阅读 · 0 评论 -
linux 查看指定用户的指定进程
【代码】linux 查看指定用户的指定进程。原创 2024-03-06 22:50:04 · 515 阅读 · 0 评论 -
在做了frp的实验室服务器不同端口间传输文件
实验室有两台服务器,使用的是一个IP,两个端口,给人看上去是一台服务器的两个端口,实际是两台服务器。现在我需要从一个端口传输一个文件夹到另外一个端口,实际上是从一个机器传输到另外一个机器。原创 2024-02-21 14:29:19 · 745 阅读 · 0 评论 -
如何判断从本机上传到服务器的文件数据内容是一致的?用md5加密算法!
最近在帮导师做横向,我想把整个项目环境放到服务器中,需要把一个很大的数据文件传到服务器,传上去很方便,但是涉及到文件的压缩上传和服务器内解压环节,不是太确定文件在本机和服务器的数据内容是否一致。可以利用md5算法,全称是Message-Digest Algorithm 5,即信息摘要算法。假定本机是windows环境,服务器为linux环境。原创 2023-11-12 15:02:02 · 914 阅读 · 2 评论 -
sudo 找不到命令 command not found 解决方案
有时候我们普通用户可以用的命令,用 加权限之后却报错 command not found:原因在于, 这个脚本仅存在于该用户的环境变量中:当使用 时,系统会使用 这个文件中规定的该用户的权限和环境变量,而这个脚本在 环境变量目录中当然是找不到的。解决方法是使用脚本文件的路径,而不是仅仅通过脚本名称:...原创 2022-07-14 11:00:58 · 16744 阅读 · 1 评论 -
后台运行程序方法
每一个命令行终端都是一个 shell 进程,你在这个终端里执行的程序实际上都是这个 shell 进程分出来的子进程。正常情况下,shell 进程会阻塞,等待子进程退出才重新接收你输入的新的命令。加上&号,只是让 shell 进程不再阻塞,可以继续响应你的新命令。但是无论如何,你如果关掉了这个 shell 命令行端口,依附于它的所有子进程都会退出。而这样运行命令,则是将cmd命令挂到一个systemd系统守护进程名下,认systemd做爸爸,这样当你退出当前终端时,对于刚才的cmd命令就完全没有影响了。比较原创 2022-07-14 00:37:44 · 746 阅读 · 0 评论 -
Linux文件系统
参考文章:https://labuladong.github.io/algo/5/34/bin 是 Binary 的缩写,存放着可执行文件或可执行文件的链接(类似快捷方式)Linux 不按后缀识别文件类型,/bin 目录中的文件都是可执行的二进制文件,而不是文本文件。与 /bin 类似的是 /sbin 目录,System Binary 的缩写,这里存放的命令可以对系统配置进行操作。普通用户可能可以使用这里的命令查看某些系统状态,但是如果想更改配置,就需要 sudo 授权或者切换成超级用户。这里是系统启动需原创 2022-07-13 20:03:38 · 343 阅读 · 0 评论 -
串行查找和并行查找:生产者消费者的应用,以及线程池的使用
串行查找和并行查找1. 串行查找 job10/sfind.c功能要求代码实现#include <stdio.h>#include <string.h>#include <stdlib.h>#include <dirent.h>#include <sys/stat.h>#include <unistd.h>void find_file(char *path, char *target){ //在单个普通文件中查原创 2022-05-25 20:12:46 · 311 阅读 · 0 评论 -
多线程再再体验:(基于条件变量实现信号量)使用信号量解决生产者、计算者、消费者问题,使用信号量实现 ping-pong 问题
理论知识https://www.nuaalab.cn/courses/pthread/条件变量解决问题的回顾https://blog.csdn.net/weixin_45798993/article/details/124523701基于条件变量实现信号量typedef struct { //信号量 int value; //信号量的值 pthread_mutex_t mutex; //互斥量,对信号量的访问本身也得是互斥的,所以需要一个原创 2022-05-08 10:01:05 · 358 阅读 · 0 评论 -
多线程再体验:使用条件变量解决生产者、计算者、消费者问题,使用条件变量实现 ping-pong 问题
理论知识https://www.linuxmooc.com/courses/pthread/job8/pc.c: 使用条件变量解决生产者、计算者、消费者问题题目思路由题意可以的如下条件:生产者之间互斥写共享缓冲区buffer1buffer1buffer1消费者之间互斥读共享缓冲区buffer1buffer1buffer1生产者与消费者之间互斥访问共享缓冲区buffer1buffer1buffer1消费者之间互斥写共享缓冲区buffer2buffer2buffer2计算者之间互斥读共原创 2022-05-01 14:38:39 · 391 阅读 · 0 评论 -
Windows C++ 多线程编程示例
/*题目:主线程创建两个辅助线程,辅助线程1使用选择排序算法对数组的前半部分排序,辅助线程2使用选择排序算法对数组的后半部分排序,主线程等待辅助线程运行結束后,使用归并排序算法归并子线程的计算结果开发工具:DEV windows平台语言:C++*/#include <windows.h>#include <iostream>using namespace std; #define MAX 100 //数组空间最大值int array[MAX]; //待排原创 2022-04-26 09:48:59 · 5102 阅读 · 0 评论 -
多线程初体验——使用2个线程根据莱布尼兹级数计算PI、多线程排序
2022.04.24job7/pi1.c: 使用2个线程根据莱布尼兹级数计算PI要求莱布尼兹级数公式: 1 - 1/3 + 1/5 - 1/7 + 1/9 - … = PI/4主线程创建1个辅助线程主线程计算级数的前半部分辅助线程计算级数的后半部分主线程等待辅助线程运行結束后,将前半部分和后半部分相加代码#include<stdio.h>#include<pthread.h>#define NUMBER 1000000double worker_res原创 2022-04-24 12:53:39 · 590 阅读 · 0 评论 -
linux c编程注意事项与易错总结
c语言中的字符串常量是只读的,不可写!可以先把它复制到字符数组中,然后我们对字符数组进行操作子函数里面的指针指向一个子函数中的局部变量,说不定在某个地方这个局部变量销毁了,那指针也没意义了。这里的某个地方,比如主函数调用子函数后返回了主函数...原创 2022-04-03 10:45:16 · 830 阅读 · 0 评论 -
Linux下c语言实现文件重定向功能
要求:job5增加文件重定向功能代码#include<stdio.h>#include<unistd.h>#include<sys/types.h>#include<sys/wait.h>#include<string.h>#include<sys/stat.h>#include<fcntl.h>char op[100],t[100],p[100],r[100],q[100];int st[10];原创 2022-03-27 18:41:15 · 4121 阅读 · 0 评论 -
c语言实现ls指令简易功能 打印文件目录
没什么好说的,直接上源码#include<stdio.h>#include<dirent.h>#include<string.h>#include<unistd.h>int main(int argc,char *argv[]){ DIR *dir; char path[255]; if(argc==1) //当前目录 { getcwd(path,sizeof(path)); dir=opendir(path); }原创 2022-03-22 11:30:55 · 1072 阅读 · 0 评论 -
c语言实现tree指令简易功能 打印文件目录结构
开门见山,上源码代码#include<stdio.h>#include<dirent.h>#include<string.h>#include<unistd.h>void T(DIR *dir,int depth,char path[]){ char tmp[255]; //路径备份 if (dir==NULL) return; //递归边界 while(1) { struct dirent *de=readdir(dir);原创 2022-03-22 08:32:12 · 1134 阅读 · 1 评论 -
git 基本概念与使用
基本概念git版本管理工具就是将代码的多个历史版本,用一棵树的形式维护,每次创建一个新的版本,都会在树上新开一个结点。(支持多分支)工作区:仓库的目录。工作区是独立于各个分支的。暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。每次是工作区将要存的东西一点一点的存到暂存区,最后在从暂存区存在版本库版本库:存放所有已经提交到本地仓库的代码版本版本结构:树结构,树中每个节点代表一个代码版本。常用命令git config --global user.原创 2022-03-06 18:46:47 · 472 阅读 · 0 评论 -
ssh使用
登录基本用法远程登录服务器:ssh user@hostnameuser:用户名hostname:IP地址或域名第一次登录时会提示:The authenticity of host '123.57.47.211 (123.57.47.211)' can't be established.ECDSA key fingerprint is SHA256:iy237yysfCe013/l+kpDGfEG9xxHxm0dnxnAbJTPpG8.Are you sure you want to c原创 2022-03-05 15:40:59 · 777 阅读 · 0 评论 -
shell中$()和${}的区别
$()用于命令替换将括号内命令的执行结果赋值给变量${}用于变量替换一般情况下,$ var与$ {var}是没有区别的,但是用${ }会比较精确的界定变量名称的范围原创 2022-03-04 23:51:19 · 523 阅读 · 0 评论 -
linux shell 语法
概论shell是我们通过命令行与操作系统沟通的语言。shell是解释性的语言,不需要编译。shell脚本可以直接在命令行中执行,也可以将一套逻辑组织成一个文件,方便复用。Terminal中的命令行可以看成是一个“shell脚本在逐行执行”。Linux系统中一般默认使用bash,所以接下来讲解bash中的语法。文件开头需要写#! /bin/bash,给操作系统指明bash为脚本解释器。而用解释器执行,不需要权限注释变量定义变量等号两边不能有空格,不然会报错使用变量第原创 2022-03-03 09:59:34 · 926 阅读 · 0 评论 -
linux tumx和vim 编辑环境
tumx功能(1) 分屏(2) 允许断开Terminal连接后,继续运行进程结构一个tmux可以包含多个session,一个session可以包含多个window,一个window可以包含多个pane。session : 会话window :窗口pane:小窗口(最小单位,每个pane里面都会打开一个shell交互,即一个shell对话框)操作(1) tmux:新建一个session,其中包含一个window,window中包含一个pane,pane里打开了一个shell对话原创 2022-03-02 15:14:59 · 229 阅读 · 0 评论 -
linux常用文件管理命令
ctrl c1)取消命令,并且换行(换行并清空)或者2)终止某个正在执行的进程ctrl u清空本行命令tab键可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项(如果系统发现只有一种方案,就会为你自动补全)方向键“上”显示历史命令,可以适当偷懒,用之前打过的命令放在现在的命令位置ls:列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件ls -l : 查看当前文件(夹)的详细信息ls -hl : 查看当前文件(夹)的详细信息(人性化的.原创 2022-03-01 09:44:30 · 488 阅读 · 0 评论