c++复习

 

 paddlex 划分voc数据集;

 

 ValueError: Dataset MyDataset is not valid and cannot parse dataset type 'MyDataset' for automaticly downloading, which only supports 'voc' , 'coco', 'wider_face', 'fruit', 'roadsign_voc' and 'mot' currently

说明格式没有设置好,检查文件夹存不存在;

 

 

 1 apt-file

apt-get install apt-file

apt-file update    //更新列表
apt-file list packageName //查看包文件

2 查看deb包文件内容

dpkg-deb -c  packageName //deb扩展名包

dpkg -L  packageName //查看已经安装包内容
1、解压出包中的文件:dpkg -x xxx.deb 解压路径
     解压出包的控制信息:dpkg -e xxx.deb 解压路径

 

 

==========================================================---------

 

 

sc stop LxssManager

sc start LxssManager

重启wsl

 

===================================================

 

 

cudnn的安装包解压出来有三个deb安装即可;

 

复制当前行是最基本的操作,yy 这个大家基本上都熟悉。

粘贴

粘贴通过p(小写p)或者P(大写P,通过shift + p输入)来实现的。

deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main-security-updates-proposed restricted universe multiverse

 

 

如果遇到这样就把四个分支填平

 

====================================================

 

ubuntu ALL=(ALL) NOPASSWD:ALL

可以不用输入密码;

ctrl s,ctrl x 保存

规则讲解

sudoers文件的数据,每一行分为五个部分,我们用ABCDE来表示。
一般情况下是: A B = {©} {D} E
且C与D是可以省略的,我们用大括号扩起来方便大家注意到,但真正书写命令的时候不需要打括号。

    第一个部分A代表授权使用sudo的用户或者组
    第二部分B代表允许授权用户在哪些主机上使用这些权利
    第三部分C代表允许被授权用户提权到什么用户什么组级别的权限,如果省略就代表允许提权到任意用户级别。
    第四部分D代表当被授权用户是否需要输入自身密码来使用特权,若省略这代表需要输入密码
    第五部分E代表允许执行的命令,如果是all就代表允许执行所有命令

第一部分A

A表示的是哪个用户或者哪个用户组拥有执行sudo的权限,当A前面带有%的时候,代表的是用户组。
例如
admin all = (all) all
这行命令表示admin用户可以登陆到任意主机,并且可以提权到任意用户,并且可以执行任意命令,但需要输入用户admin到密码。
如果在admin前面加上%就会使得admin组的所有用户拥有这些权限,使用的时候需要输入对应用户的密码。而这一行命令典型的就是省略了第四个属性,也就是D,D代表的是密码。
第二部分B

B代表用户可以在哪些电脑上使用这些特权,这一个字段一般是主机名。
例如:jack mycomputer=/usr/sbin/reboot,/usr/sbin/shutdown
上面这行表示jack可以在mycomputer上提权到root用户,并且允许以root权限使用reboot与shutdown命令,但是需要输入jack的密码才可以。
第三部分C

代表的是允许提权到的目标用户与组,例如(root:root)的意思就是提权到root用户root组,也就是当前用户使用sudo命令的时候会获得与root用户root组相同的权限。
当C参数隐藏的时候,默认提权权限就是root。如果是all的话就是指的可以提权到任意用户任意权限。
第四部分D

这个参数是用来定义当目标用户使用sudo的时候,是否需要输入用户密码。如果为NOPASSWD:则表示不需要,否则为需要,注意字母后面带了冒号。
第五部分E

表示允许执行的命令。
————————————————
版权声明:本文为CSDN博主「Shanfenglan7」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41874930/article/details/109382667

******************************************


class A{
public:
void func(int val=1)
{
std::cout<<"A"<<std::endl;
std::cout<<val<<std::endl;

}
void test(){
func();
}
};

class B:public A{
public:
void func(int val=0){
std::cout<<"B"<<std::endl;
std::cout<<val<<std::endl;
}
};
int main() {

B * p=new B;
p->func();



B
0
}
================
class A{
public:
void func(int val=1)
{
std::cout<<"A"<<std::endl;
std::cout<<val<<std::endl;

}
void test(){
func();
}
};

class B:public A{
public:
void func(int val=0){
std::cout<<"B"<<std::endl;
std::cout<<val<<std::endl;
}
};
int main() {

B * p=new B;
p->test();

}


A
1
===============================

class A{
public:
virtual void func(int val=1)
{
std::cout<<"A"<<std::endl;
std::cout<<val<<std::endl;

}

virtual void test(){
func();
}
};

class B:public A{
public:
void func(int val=0){
std::cout<<"B"<<std::endl;
std::cout<<val<<std::endl;
}
};
int main() {

B * p=new B;
p->test();

}
B
1
==================================

 


 

 

 

 

 

 吧



posted on 2022-08-11 17:17  shenhshihao  阅读(149)  评论(0编辑  收藏  举报

导航