- 博客(331)
- 资源 (8)
- 收藏
- 关注
原创 如何在ubuntu 18.04中升级python 3.6到3.7
这意味着当我们运行python3时,它将作为python3.6执行,但我们希望将其作为python3.7执行。请记住,选择号可能会有所不同,因此请选择适用于Python 3.7的选择号。使用命令python3 -V,可发现输出为python 3.6.8, 使用以下步骤升级python3 至python 3.7。4)至此,Python 3.7已安装在您的Ubuntu系统上,可以使用了。5)将Python 3.6和Python 3.7添加到更新替代项。6)更新Python 3以指向Python 3.7。
2024-03-20 23:11:08 594
原创 ubuntu root登陆桌面及ssh失败
1,在终端中输入如下命令,打开文件将打开的文件中第三行语句前加#,如下注释掉语句 “#auth required pam_succeed_if.so user!2,保存并退出,继续在终端执行将打开的文件中第三行语句前加#, 如下注释掉语句 “#auth required pam_succeed_if.so user!3,保存并退出。在终端继续执行将打开的文件中“mesg n 2> /dev/null || true” 改为4,保存并退出。5,重启电脑,即可以root用户登录。
2024-03-09 10:44:20 436
原创 博客摘录「 Nginx—Linux系统配置Nginx代理服务器的详细步骤(一)」2023年12月1日
设置正向代理服务器,当然前提是要知道正向代理服务器的。
2024-02-25 20:36:31 365
原创 Linux的expect工具完成命令行参数传递及可执行文件注入shell脚本
a.out每次只能得出一个结果,且需要根据提示,手动输入不同的参数。注:__EOF__需要顶头编写。
2024-02-20 20:56:00 528
原创 gdb调试std::list和std::vector等容器的方法
GDB中print方法并不能直接打印STL容器中保存的变量,其实只要http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt这个文件保存为~/.gdbinit 就可以使用它提供的方法方便调试容器。2.3、添加“set auto-load safe-path ./”到./.gdbinit文件中,相当于禁用了安全路径的保护;指定启动文件:~/.gdbinit,下面的方法任选其一。/.gdbinit文件中,使该文件可以被加载;
2024-01-27 14:37:49 867
原创 Linux的ps简单实现
原理:遍历下的/proc/%s/task/%s/status所有文件,两个%s都为pid号。注:多线程下,只打印一个pid/task下的所有目录,即可收集各个线程对应的信息。
2023-12-11 22:24:03 266
原创 __attribute__((__used__)) 和 __attribute__((__section__(“*“ “*“)))的使用
C语言注册函数和调用函数。见:haproxy代码。
2023-11-06 20:23:35 376
原创 Docker容器内用户与宿主机用户同名不同ID的问题
注:在Docker容器中,ubuntu用户登陆,不要使用sudo去修改ubuntu的uid和gid,会提示:“sudo: unknown uid 1000: who are you?”,发生骑驴找驴的问题。使用宿主机的同名用户登陆Docker容器,执行文件修改操作,提示:Permission denied.影响:会导致使用ubuntu的同名用户进入Docker容器后,修改文件和创建目录等操作没有权限。(1)在Docker容器中,使用root账户,修改ubuntu用户的uid和gid。
2023-10-24 20:17:33 487
原创 Qt Creator使用Clang Format方法
习惯性的想格式化代码,发现Qt Creator默认居然是没有代码格式化的,只有一个缩进。Qt Creater中有个插件:beautifier,在"帮助->关于"插件中,开启“Beautifier”即可(会提醒需要重启Qt creator)。注:Qt Creator安装包中不包含这个格式化工具,它的作用是调用格式化工具进行格式化。官方的说支持三种外部格式化工具:Artistic Style、ClangFormat、Uncrustify 。这里仅以 ClangFormat 来说明:ClangFormat
2023-08-31 12:45:19 966
原创 ubuntu 18.04 radius 服务安装配置
缺点:每次新增用户都需要重启服务端服务,且用户新增用户方式不友好,需要修改/etc/freeradius/3.0/users文件。解决方案:radius + 数据库。注:注意tab对齐。
2023-07-09 16:59:22 1223
原创 在Ubuntu中安装和设置samba
1、安装Samba服务2、配置samba2.1 先备份sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak,以防改错,修改配置文件时建议养成备份的好习惯,改错了还能恢复.2.2 sudo vim /etc/samba/smb.conf 修改配置,添加共享,可直接加到文件尾4、添加samba用户添加samba用户,用于其他人或设备认证,这里添加的用户需要在系统账号中存在,否则添加失败。
2023-06-11 08:12:52 7269
原创 关于python的第一行代码的理解
usr/bin/env python3 这种用法是为了防止操作系统用户没有将 python3 装在默认的 /usr/bin 路径里。/usr/bin/python3 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python3 解释器;/usr/bin/env python3 会去环境设置寻找 python3 目录,推荐这种写法。/usr/bin/python 被忽略,等同于注释。/usr/bin/python 指定解释器的路径。
2023-05-08 15:39:09 1024 1
原创 centos 7修改用户名
1、使用root用户进行修改devel用户名为test。2、修改sudoers中,devel为test。3、修改设备的用户名dev-1为tst-1。
2023-04-15 17:04:14 2596
原创 Qt has modification time xxx s in the future
现象:编译Qt程序时,提示warning: File ‘/opt/Qt5.12.8/5.12.8/gcc_64/mkspecs/linux-g++/qmake.conf’ has modification time 716043631 s in the future。发现设备上的Qt目录的时间戳都是2045年,由于安装Qt时,系统没有安装ntp,导致系统没有同步时间,因此安装后的Qt文件都是2045年。(1)在unbuntu上安装ntp,获取正确的时间。(2)批量更新目录的时间戳。
2022-10-15 21:18:54 933
原创 error: ‘make_unique‘ is not a member of ‘std‘
【代码】error: 'make_unique' is not a member of 'std'
2022-09-21 21:12:25 1744
原创 ubuntu程序崩溃时没有生成coredump文件的解决办法
ubuntu程序崩溃但没有生成core文件1、下载工具:2、开启产生core3、如果程序发生了core dump,使用coredumpctl list查看有没有产生core文件。4、查看core文件的压缩包5、使用liblz4-tool提供的命令解压lz4文件。
2022-06-01 09:28:50 2272
原创 c++ priority_queue的简单使用
1、priority_queue<float, vector< float>, less< float>> 注:默认是less#include <iostream>#include <queue>#include <vector>using namespace std;void test_1(void){ cout << endl << "test_1: " << endl;
2022-04-19 10:20:25 885
原创 【shell】 =~的使用
如下:read -p "need compile OEM installatoin package?yes/[no]" IS_OEMif [[ "Yes" =~ $IS_OEM || "yes" =~ $IS_OEM ]]then ...fineed compile OEM installatoin package?yes/[no]yneed compile OEM installatoin package?yes/[no]Yneed compile OEM install
2022-03-31 16:23:33 13326 2
原创 Linux系统中通过流量定位进程
问题:系统的虚拟网卡有一个莫名的流量一直存在,不知道是系统中的什么进程发出的?目标:根据流量的dst+dport查找对应的进程。1、在系统中,使用tcpdump工具,锁定流量的目的IP地址(11.178.11.150:80)。#sudo tcpdump -i tun0 -n09:04:47.452332 IP 111.111.111.100.32980 > 111.178.11.150.80: Flags [S], seq 2183603593, win 64240, options [mss
2022-03-22 09:45:55 959
原创 c++ 移动语义与拷贝
移动语义:传统 C++ 通过拷贝构造函数和赋值操作符为类对象设计了拷贝/复制的概念,但为了实现对资源的移动操作, 调用者必须使用先复制、再析构的方式,否则就需要自己实现移动对象的接口。 试想,搬家的时候是把家里的东西直接搬到新家去,而不是将所有东西复制一份(重买)再放到新家、 再把原来的东西全部扔掉(销毁),这是非常反人类的一件事情。传统的 C++ 没有区分『移动』和『拷贝』的概念,造成了大量的数据拷贝,浪费时间和空间。 右值引用的出现恰好就解决了这两个概念的混淆问题,例如:移动语义:~/tes
2022-03-09 10:53:42 867
原创 c++ lambda的按值访问和按引用访问
$ cat test2.cpp#include <iostream>using namespace std;void lambda_test(void){ int x = 2; int y = 10; auto lambda = [x, &y] { //此处x = 2,会影响测试1和测试2中的x。 cout << "x: " << x << endl; cout <&l
2022-03-02 09:52:27 661
原创 c++中关于默认值的设置
测试代码:$ cat test4.cpp#include <iostream>using namespace std;void func(int a, int b, int c = 10);void func2(int a, int b, int c);int main(int argc, char *const argv[]){ func(1, 2); func(1, 2, 3); func2(1, 2); //oops !!!!! fun
2022-02-28 10:30:42 1559
原创 cmake CMAKE_CXX_COMPILER_VERSION 检查失败
1、CMakeLists.txt文件:$ cat ../CMakeLists.txtcmake_minimum_required(VERSION 2.8)project(MyTinySTL)# versionset(MyTinySTL_VERSION_MAJOR 2)set(MyTinySTL_VERSION_MINOR 0)set(MyTinySTL_VERSION_PATCH 0)set(MyTinySTL_VERSION "${MyTinySTL_VERSION_MAJOR}.${
2022-02-19 12:54:39 3015
原创 c++ map用法
#include <iostream>#include <map>using namespace std;class Test_t { private: int a; public: Test_t(int a) { this->a = a; } ~Test_t() { cout << "des
2022-02-16 10:45:21 310
原创 Qt使用命令行编译pro
1、无pro文件的情况下:该情况下,一般是纯代码编写程序,写好程序后,需要生成pro文件后,才能编译。生成pro文件的方法:$ qmake -project注: 生成pro文件后,需要手动在pro文件的最后添加一行代码:greaterThan(QT_MAJOR_VERSION, 4):QT +=widgets2、有pro文件的情况下:该情况下,是已经根据代码((纯命令行程序或带图形化界面程序))生成pro文件,使用Qtcreator可正常编译,但想通过shell脚本替代Qtcreator进
2022-01-21 10:12:28 3313
原创 多线程的条件变量使用
上面的例子来自《Linux环境高级程序设计》- 黄茹,会出现死锁等待的情况,如下两个例子中,一个是对上面的问题的优化,另一个用于熟悉条件变量的使用。#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <string.h>#include <unistd.h>pthread_mutex_t mutex;pthread_cond_t empty;pthr.
2021-10-20 11:18:04 150
原创 centos7安装mariadb
参考:https://www.cnblogs.com/yhongji/p/9783065.html# yum install mariadb-server# yum install mariadb-devel问题:cannot find -lmysqlclient;(1)先确认一下是否已安装mariadb-devel,执行:# rpm -qa | grep mariadbmariadb-server-5.5.68-1.el7.x86_64mariadb-5.5.68-1.el7.x86_64
2021-10-11 20:10:38 271
原创 c++从一个map复制到另一个map
$ cat test_map.cpp#include <iostream>#include <map>using namespace std;class Test { public: int a; int b; Test(int a, int b) { this->a = a; this->b = b; }
2021-08-09 17:04:43 10206
原创 使用PuTTY上传和下载文件
使用PuTTY(C:\Program Files\PuTTY)上传或下载文件;双击运行该psftp.exe,可使用open打开远程主机、cd改变远程目录、lcd改变本地目录、ls查看远程文件列表、put上传文件、get下载文件等命令login in and upload file:psftp> open 192.168.3.13login as: [email protected]'s password:Remote working directory is /home/user
2021-08-07 10:05:18 10411
原创 Linux下Perf的使用
Perf安装:Perf的源代码,一般都是内置在linux内核源码的tool目录下的。一般如下是可以的:sudo apt-get install linux-sourcecd /usr/srccd tools/perfmake && make install
2021-07-25 23:25:43 221
原创 centos8安装汇编环境
nasm安装官网:https://www.nasm.us/su -c 'curl https://www.nasm.us/nasm.repo | tee /etc/yum.repos.d/nasm.repo'yum install nasm注:su -c command : 切换到root用户并执行command。tee: 用于重定向到文件
2021-07-25 10:30:59 284
原创 Linux 配置6rd过程
3.2 Linux的配置步骤:三台Linux虚拟构建网络拓扑。#配置CE设备ip address add 192.168.110.27 dev eth0ip link set eth0 upip tunnel add kali006rd mode sit local 192.168.110.27ip tunnel 6rd dev kali006rd 6rd-prefix 2012:db8::/32 6rd-relay_prefix 192.168.147.136/32ip link set k
2021-05-13 14:45:11 568
原创 vim之vundle
1、vim: Vundlehttps://linux.cn/article-9416-1.html如何在 Linux 上使用 Vundle 管理 Vim 插件1.1 添加插件,以vim-dasm为例:#vim ~/.vimrc添加这一行:[…]Plugin ‘vim-dasm’[…]1.2 安装插件::PluginInstall1.3 安装完毕之后,键入下列命令,可以删除高速缓存区缓存并关闭窗口::bdelete1.4 搜索可以使用的插件::PluginSearch1.5 要
2021-03-31 09:55:53 613
原创 Linux 读写锁,自旋锁、互斥锁
读写锁:分为读锁和写锁。当一个进程获取到写锁时,其它进程就不能获取到读锁和写锁,并一致等待。当一个进程获取到读锁时,其它进程也可以获取到读锁。自旋锁:当一个进程获取到自旋锁时,同一时间其它没有抢到自旋锁的进程一致等待,且其cpu一直被占用。由于某些进程一直占有CPU,处理性能会高。互斥锁:当一个进程获取到自旋锁时,同一时间其它没有抢到互斥锁的进程将sleep,释放cpu资源。消耗CPU资源较少。...
2021-02-01 19:25:09 263
原创 TAILQ练习的一个例子
queue.h:/* * List definitions. */#define LIST_HEAD(name, type) \struct name { \ struct type *lh_first; /* first element */
2021-01-30 17:25:27 188
原创 使用函数发送命令行
$ cat test.c#include <stdio.h>#include <string.h>int run_and_get_output(const char* cmd, char *output, int max_len){ char buffer[1000] = {0}; int len = 0; int copy_len = 0; FILE *pipe = NULL; pipe = popen(cmd, "r");
2020-11-13 21:21:49 353 1
原创 在Linux上创建tun/tap设备
tun/tap的作用及区别TUN 设备是一种虚拟网络设备,通过此设备,程序可以方便地模拟网络行为。TUN 模拟的是一个三层设备,通过它可以处理来自网络层的数据,更通俗一点的说,通过它,我们可以处理 IP 数据包。TAP 设备是一个二层设备,它比 TUN 更加深入,通过 /dev/tapX 文件可以收发 MAC 层数据包,即数据链路层,拥有 MAC 层功能,可以与物理网卡做 bridge,支持 MAC 层广播。TAP 设备与 TUN 设备工作方式完全相同,区别在于:(1)TUN 设备是一个三层设备,它
2020-10-06 08:32:05 6595
the java programming language fourth editionArnoldGoslingHolmes06
2014-08-30
vivi-boot loader
2014-08-30
BootLoader技术内幕
2014-08-30
ascii-码表
2014-08-30
国嵌_嵌入式Linux入门班实验手册
2014-08-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人