在Linux和类Unix系统中,screen命令是一个非常强大的终端复用器,它允许用户在一个单一的物理终端上启动多个会话,并在它们之间进行切换。使用screen,你可以在一个会话中运行程序,然后断开连接,之后又重新连接到同一个会话,程序会继续运行。
以下是一些基本的screen命令和选项:
screen:启动一个新的screen会话。
screen -S <session_name>:创建一个名为<session_name>的新会话。
screen -r <session_name>:重新连接到名为<session_name>的会话。
screen -r -D <session_name>:重新连接到会话,如果会话不存在,则创建它。
screen -ls:列出所有现有的screen会话。
screen -x <session_name>:将当前终端窗口附加到指定的会话。
Ctrl-A D:从当前会话中分离,即使会话中有活动的程序,它们也会继续运行。
Ctrl-A \:切换到下一个会话。
Ctrl-A Ctrl-A ...
Linux
未读在Linux系统中,查看硬盘占用情况可以通过多种命令行工具来完成。以下是一些常用的命令:
df 命令: df(Disk File System)命令用于显示文件系统的磁盘空间使用情况。使用-h参数可以以易读的格式(如MB、GB)显示信息。
1df -h
du 命令: du(Disk Usage)命令用于估算文件或目录的磁盘空间使用量。结合-h参数也可以以易读的格式显示,而-s参数可以提供指定目录的总大小。
1du -sh /path/to/directory
ncdu 命令: ncdu(NCurses Disk Usage)是一个基于文本的用户界面工具,用于交互式地查看磁盘使用情况。它需要单独安装。
1ncdu /path/to/directory
lsblk 命令: lsblk 命令列出所有可用的块设备(如硬盘驱动器和分区)及其挂载点。
1lsblk
fdisk 命令: fdisk 是一个磁盘分区表操作工具,也可以用来查看磁盘分区信息。
1sudo fdisk -l
iostat 命令: iostat 命令用于监视系统输入/输出设备负载,包括磁盘。
1iost ...
Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。
lsof
lsof(list open files)是一个列出当前系统打开文件的工具。
lsof 查看端口占用语法格式:
1lsof -i:端口号
实例
查看服务器 8000 端口的占用情况:
123# lsof -i:8000COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEnodejs 26993 root 10u IPv4 37999514 0t0 TCP *:8000 (LISTEN)
可以看到 8000 端口已经被轻 nodejs 服务占用。
lsof -i 需要 root 用户的权限来执行,如下图:
更多 lsof 的命令如下:
123456789lsof -i:8080:查看8080端口占用lsof abc.txt:显示开启文件abc.txt的进程lsof -c abc:显示abc进程现在打开的文件lsof -c -p 1234:列出进程号为1234的进程所打开的文件lsof -g gid:显示归属gid的进 ...
linux查看内存多大的方法
1、*执行free -h,显示内存单位*
**
2、执行free -m
free -m 以 MB 为单位,显示内存使用情况。
free 命令用来显示系统内存状态,包括系统物理内存、虚拟内存(swap 交换分区)、共享内存和系统缓存的使用情况,其输出和 top 命令的内存部分非常相似。
free -m命令输出列表中,第一行显示的是各个列的列表头信息,各自的含义如下所示:
total 是总内存数;
used 是已经使用的内存数;
free 是空闲的内存数;
shared 是多个进程共享的内存总数;
buffers 是缓冲内存数;
cached 是缓存内存数。
Mem 一行指的是内存的使用情况;-/buffers/cache 的内存数,相当于第一行的 used-buffers-cached。+/buffers/cache 的内存数,相当于第一行的 free+buffers+cached;Swap 一行指的就是 swap 分区的使用情况。
可以看到,系统的物理内存为 7741 MB,已经使用了 5623 MB,空闲 1560 MB。而 swap 分区总大小为 ...
Linux
未读复制或移动文件到另一个目录
1、将一个文件夹下的所有内容复制到另一个文件夹下
123cp -r /home/packageA/* /home/cp/packageB/或cp -r /home/packageA/. /home/cp/packageB/
这两种方法效果是一样的。
2、将一个文件夹复制到另一个文件夹下
1cp -r /home/packageA /home/packageB
运行命令之后packageB文件夹下就有packageA文件夹了。
3、删除一个文件夹及其下面的所有文件
1rm -r /home/packageA
4、移动一个文件夹到另一个文件夹下面
123mv /home/packageA /home/packageB/或mv /home/packageA /home/packageB
这两种方法效果是一样的。
如果是移动文件夹下的所有文件的话就可以文件夹后面跟上 /*
1mv /home/packageA/* /home/packageB/
线程的基本概念
线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。
好处 :
(1)易于调度。
(2)提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。
(3)开销少。创建线程比创建进程要快,所需开销很少。。
(4)利于充分发挥多处理器的功能。通过创建多线程进程,每个线程在一个处理器上运行,从而实现应用程序的并发性,使每个处理器都得到充分运行。
从用户的角度来看,进程是正在运行的程序实例,而线程是进程中真正执行任务的基本单位。也就是说一个运行的程序至少包含一个进程,一个进程至少包含一个线程,线程不能独立于进程而存在。
进程
进程(Process)是操作系统分配资源的基本单位,一个进程拥有的资源有自己的堆、栈、虚存空间(页表)、文件描述符等信息。从编程的角度来理解进程,可以把它看作是一个类或一个 PCB(Process Contro ...
a山东省计算机网络重点实验室,山东省计算机科学中心(济南国家超级计算机中心),齐鲁工业大学(山东科学院),济南250014,中国b北京邮电大学网络空间安全学院,北京100876,中国c公共大数据国家重点实验室,贵州大学计算机科学与技术学院,贵阳550025
0 Abstract
漏洞检测是维护网络空间安全的有效手段。机器学习方法由于其准确性和自动化的优势,在软件安全领域引起了人们的广泛关注。然而,目前的研究主要集中在训练数据和测试数据属于同一域的域内漏洞检测上。由于应用场景、编码习惯等因素,不同软件项目中的漏洞可能服从不同的概率分布。当机器学习方法应用于一个全新的项目时,这种差异会影响它们的性能。为了解决这个冷启动问题,我们提出了一个使用图嵌入和深度域自适应(VulGDA)的跨域漏洞检测框架。它以多种跨域方式工作,包括零样本方式,即目标域中没有标记数据可用于训练。将VulGDA分解为图嵌入和域自适应。在图嵌入阶段,我们将源代码中的样本转换为图表示,其中元素根据其语法和语义关系直接连接。然后,我们将来自图中定义的邻居和边的信息聚合为实值向量。通过图形嵌入,VulGDA提取了全面的漏洞特征 ...
1.torch.nn简介
1.1torch.nn相关库的导入
12345678#环境准备import numpy as np # numpy数组库import math # 数学运算库import matplotlib.pyplot as plt # 画图库 import torch # torch基础库import torch.nn as nn # torch神经网络库import torch.nn.functional as F
1.2 torch.nn概述
Pytorch提供了几个设计得非常棒的模块和类,比如 torch.nn,torch.optim,Dataset 以及 DataLoader,来帮助程序员设计和训练神经网络。
nn是Neural Network的简称,帮助程序员方便执行如下的与神经网络相关的行为:
创建神经网络
训练神经网络
保存神经网络
恢复神经网络
包括五大基本功能模块
torch.nn是专门为神经网络设计的模块化接口
nn构建于auto ...
Pytorch
未读一、张量的基本操作
Pytorch 中,张量的操作分为结构操作和数学运算,其理解就如字面意思。结构操作就是改变张量本身的结构,数学运算就是对张量的元素值完成数学运算。
常使用的张量结构操作:维度变换(tranpose、view 等)、合并分割(split、chunk等)、索引切片(index_select、gather 等)。
常使用的张量数学运算:标量运算、向量运算、矩阵运算。
二、维度变换
2.1 squeeze vs unsqueeze 维度增减
squeeze():对 tensor 进行维度的压缩,去掉维数为 1 的维度。用法:torch.squeeze(a) 将 a 中所有为 1 的维度都删除,或者 a.squeeze(1) 是去掉 a中指定的维数为 1 的维度。
unsqueeze():对数据维度进行扩充,给指定位置加上维数为 1 的维度。用法:torch.unsqueeze(a, N),或者 a.unsqueeze(N),在 a 中指定位置 N 加上一个维数为 1 的维度。
squeeze 用例程序如下:
12345a = torch.rand(1,1,3,3)b ...
Pytorch
未读torch.mean()
mean()函数的参数:dim=0,按行求平均值,返回的形状是(1,列数);dim=1,按列求平均值,返回的形状是(行数,1),默认不设置dim的时候,返回的是所有元素的平均值。
torch.pow()
功能: 实现张量和标量之间逐元素求指数操作, 或者在可广播的张量之间逐元素求指数操作.
torch.stack()
官方解释:沿着一个新维度对输入张量序列进行连接。 序列中所有的张量都应该为相同形状。
注:python的序列数据只有list和tuple。
浅显说法:把多个2维的张量凑成一个3维的张量;多个3维的凑成一个4维的张量…以此类推,也就是在增加新的维度进行堆叠。
outputs = torch.stack(inputs, dim=?) → Tensor
torch.clamp()
torch.clamp(input, min, max, out=None) → Tensor
将输入input张量每个元素的夹紧到区间 [min,max][min,max],并返回结果到一个新张量。
torch.bmm()
计算两个tensor的矩阵乘法, ...