
Linux开发实战
Linux系统应用开发实战及经验分享!
大王算法
主要做机器人,操作系统,算法及AI方面的研发工作,有感兴趣的朋友可以私信加我好友,一起探讨交流!
展开
-
git fatal: detected dubious ownership in repository 解决方法
【代码】git fatal: detected dubious ownership in repository 解决方法。原创 2023-02-28 22:37:40 · 452 阅读 · 0 评论 -
Gitee 提交代码报错:LFS only supported repository in paid enterprise.: exit status 1
Git LFS操作指南中可以知道,出现这个问题主要是因为Git LFS(Large File Storage ,大文件存储)是GitHub开发的一个Git的扩展,用于实现对大文件的支持。目前码云(Gitee.com)已经支持 Git LFS功能,目前改功能针对付费企业开放。如个人活非付费企业有这方面使用需求,可通过git@oschina.cn联系支持。执行完,OK,可以push大文件到远程仓库。原创 2022-11-30 21:39:47 · 6464 阅读 · 4 评论 -
OpenHarmony IPC通讯详解
IPC(Inter-Process Communication)与RPC(Remote Procedure Call)机制用于实现跨进程通信,不同的是前者使用Binder驱动,用于设备内的跨进程通信,而后者使用软总线驱动,用于跨设备跨进程通信。IPC和RPC通常采用客户端-服务器(Client-Server)模型,服务请求方(Client)可获取提供服务提供方(Server)的代理 (Proxy),并通过此代理读写数据来实现进程间的数据通信。原创 2022-11-30 21:30:05 · 4312 阅读 · 0 评论 -
OpenHarmony命令行工具hdc_std使用总结
hdc_std,与hdc相似,但它是OpenHarmony提供的用于开发人员调试的命令行工具,专门用在个人电脑与开发板之间的交互,并且这个开发板是需要运行OpenHarmony标准版(standard)系统的,所以在hdc后面加了std后缀以示区分。正常情况,应该打开cmd窗口就可以运行hdc_std命令了,如果找不到,在系统环境变量path中添加hdc_std所在路径,例如,作者的hdc_std工具所在目录为。简言之,手机上调试用的是hdc,开发板上调试用的是hdc_std,一个不开源,一个开源。原创 2022-11-30 21:29:40 · 6070 阅读 · 0 评论 -
虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。 模块“Upgrade”启动失败。 未能启动虚拟机的解决方案
虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。模块“Upgrade”启动失败。分析:该虚拟机环境之前使用的VMware版本与你所使用的VMware版本不一致。大概率你使用的是刚从别人电脑里拷过来的虚拟机环境。比如从移动硬盘里拷出来的虚机环境,以前用的是VMware19,而我的是VMware18。就把数字改为18,就可以了。把数字改为自己电脑上对应的VMware版本即可。原创 2022-11-30 21:29:13 · 3233 阅读 · 1 评论 -
关于虚拟机提示选择“我已移动该虚拟机”或“我已复制该虚拟机”
表示打开复制后的虚拟机的网卡的物理地址是新生成的,这样怎么开机都不会有网卡问题,所以VMware本身也是建议不知道的就选这个选项。表示打开后,虚拟机的网卡的mac地址不变,如果复制的是本地的虚拟机,复制前的虚拟机和复制后的虚拟机同时开机会造成网络冲突。1.我已移动该虚拟机。2.我已复制该虚拟机。原创 2022-11-30 21:28:48 · 5210 阅读 · 2 评论 -
Repo、Git常用命令总结
18、已经add但是未commit的修改。4、查看git 仓库当前状态。11、 查看项目中所有的修改。12、查看某个提交的修改信息。1、 查看本地和远程的分支。9、查看所有仓库修改未提交。10、 切换到另外一个分支。3、重新加载远程仓库信息。5、查看未修改的详细信息。8、 创建一个新的分支。7、将修改保存成文件。14、检查patch。原创 2022-10-24 21:45:00 · 3614 阅读 · 0 评论 -
tar命令中参数 cvf,xvf,cvzf,zxvf的区别
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。4、*.bz2 用 bzip2 -d或者用bunzip2 解压。3、*.tar.gz和*.tgz 用 tar –xzf 解压。2、*.gz 用 gzip -d或者gunzip 解压。6.将某一类型的文件做成归档文件、备份某一类型的文件。5、*.tar.bz2用tar –xjf 解压。7、*.tar.Z 用tar –xZf 解压。1、*.tar 用 tar –xvf 解压。6、*.Z 用 uncompress 解压。原创 2022-09-30 22:03:13 · 11919 阅读 · 0 评论 -
Ubuntu20.04换为清华的镜像源
安装过程:Ubuntu 的软件源配置文件是 /etc/apt/sources.list。在修改之前,先将系统自带的该文件做个备份,将该文件替换为清华源官网提供的内容,即可使用 TUNA 的软件源镜像。第一步:切换到root账户:sudo -s第二步:进行源备份cp /etc/apt/sources.list /etc/apt/sources.list.bak第三步:进行源列表的修改,将sources.list中的内容提换如下:# 默认注释了源码镜像以提高 a原创 2022-04-30 22:09:28 · 17925 阅读 · 2 评论 -
Linux select()函数详解
一.Select 函数详细介绍 Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发 生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。 可是使用Select就可以完成非阻塞(所谓非阻塞方式non-block,就是进程或线程执行此函数时不...原创 2020-06-27 22:27:35 · 1069 阅读 · 0 评论 -
Linux pthread_cond_signal函数使用总结
pthread_cond_signal的作用是什么? pthread_cond_signal函数的作用是发送一个信号给另外一个正在处于阻塞等待状态的线程,使其脱离阻塞状态,继续执行.如果没有线程处在阻塞等待状态,pthread_cond_signal也会成功返回。 pthread_cond_wait()用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。pthread_cond_wait()...原创 2020-06-27 22:28:35 · 18953 阅读 · 4 评论 -
Linux内核线程优先级的三种调度策略
Linux内核三种调度策略: (1).SCHED_OTHER 分时调度策略(2).SCHED_FIFO 实时调度策略,先到先服务。一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃。 (3).SCHED_RR实 时调度策略,时间片轮转。当进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾。放在队列尾保证了所有具有相同优先级的RR任务的调度公平。int pthread_create(pthread_t *thread, const pthread_...原创 2020-06-27 22:28:12 · 4480 阅读 · 0 评论 -
Linux 互斥量、线程锁使用总结
在多线程编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。 每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻, 只能有一个线程访问该对象。 互斥锁也叫线程锁,线程锁可以保证,在任意时刻,只有一个线程访问该对象。同一时间只有一个线程访问数据。互斥量(mutex)就是一把锁。多个线程只有一把锁一个钥匙,谁上的锁就只有谁能开锁。当一个线程要访问一个共享变量时,先用锁把变量锁住,然后再操作,操作完了之后再释放掉锁,完成。 当另一个...原创 2020-06-27 22:27:50 · 597 阅读 · 0 评论 -
Linux 下编译使用Glog
一.什么是glog,什么是autogen.shglog是google开发的c++环境的日志组件。开发人员只需要使用autogen.sh,这个脚本会完成所有的automake以及autoconf的操作,虽然其中m4文件定义的宏非常重要,但是不需要开发人员完全读懂。二.下载gloghttps://github.com/google/glog三.autogen.sh 的使用在linux下面的...原创 2019-10-31 22:20:51 · 2706 阅读 · 0 评论 -
Centos7 编译安装openCv4.1.1
1.安装准备 操作系统,这里使用的是Centos7.2。2.软件准备 由于本人安装的版本较新,编译和依赖库也需要高版本,所以需要安装更新部分依赖库,但由于部分库目前Centos不支持yum源安装,所以使用手动安装,例如Cmake 3.5,Ffmpeg。3.操作步骤3.1 编译方式介绍本文采用的编译方式:源代码+C Make。3.2 Openc...原创 2019-10-31 22:19:58 · 4001 阅读 · 0 评论 -
Linux下实现一个父进程程序创建多个子进程
由于程序的需要,我们需要在一台服务器上启动多个相似的子进程,如何做呢?有两种可以尝试一下:1.循环创建:#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/wait.h> #define child 10 int ma...原创 2019-10-31 22:22:02 · 7615 阅读 · 0 评论 -
LinuxC++实现绑定线程到CPU上实现
Linux 下,我们一般绑定线程到cpu核上使用pthread_setaffinity_np函数,其原型定义如下: 可以看出,各参数的意义与sched_setaffinity相似。#define _GNU_SOURCE /* See feature_test_macros(7) */#include <pthread...原创 2019-10-31 22:22:49 · 967 阅读 · 0 评论 -
Linux C++实现绑定进程到指定CPU上运行实现
很多时候,我们由于处理效率要求,需要绑定固定进程或者线程到固定CPU上运行,以提高算法和程序运行效率。使用sched_setaffinity系统调用可以实现。sched_setaffinity可以将某个进程绑定到一个特定的CPU。#define _GNU_SOURCE /* See feature_test_macros(7) */#include ...原创 2019-10-31 22:22:40 · 1624 阅读 · 1 评论 -
Linux C++程序下把进程/线程绑定到指定cpu核上运行
在大数据量的数据图像处理过程中,我们通常需要提升处理效率和性能,意识优化算法,而是充分利用服务器的硬件资源,如CPU和GPU。 平时应用程序在运行时都是由操作系统管理的。操作系统对应用进程进行调度,使其在不同的核上轮番运行。 对于普通的应用,操作系统的默认调度机制是没有问题的。但是,当某个进程需要较高的运行效率时,就有必要考虑将其绑定到单独...原创 2019-10-31 22:21:40 · 5849 阅读 · 0 评论 -
服务器性能配置要点总结
一般来说,服务器性能主要由三部分决定:1.服务器的硬件配置2.服务器操作系统3.应用程序服务器硬件配置主要有: 图 1.0 服务器集群(1).CPU 一般来说CPU的数量越多,主频越高,那么服务器的性能也就会越好。在实际测试过程中,如果在大压力下持续观察CPU的使用率很低,那...原创 2018-04-15 20:55:43 · 34644 阅读 · 0 评论 -
Linux下的数据监控工具
1. Vmstat Vmstat,virtual memmory statistics(虚拟内存统计),主要是对操作系统的内存信息、进程状态、cpu活动等进行监视,但是它不能对某个进程进行深入的分析。 Procs中r列表示运行和等待CPU时间片的进程数,如果r值长期大于CPU个数,说明CPU资源不够用啦,可以适当增加CPU数量。 Procs中b列表示当前等待资...原创 2018-04-16 21:12:08 · 917 阅读 · 0 评论 -
服务器性能优化的8种常用方法
1.使用内存数据库 内存数据库,其实就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多。 但...原创 2018-04-15 21:01:34 · 38269 阅读 · 3 评论 -
Linux Shell实现数据库定时备份
数据备份在日常开发中是经常要做的事情,备份数据库是非常必须的,但是往往手动备份的效率都比较低,遇到需要周期性备份的数据和文件,我们就可以借助Shell大显身手了,Shell定期备份mysql数据库的例子: 首先,确定mysql的目录:/usr/local/mysql/bin/ 备注:主要实现每天凌晨1点开始备份2个月内的数据原创 2017-04-04 19:33:21 · 647 阅读 · 0 评论 -
Linux Crontab命令使用详解
在我们的日常工作中,如金融行业的定时批处理业务,系统定时日志生成,数据库文件的定时入库,日终交易文件服务器上传备份等等,都会用到这个命令,现在总结一下它的常用方法和参数配置,与大家分享。(也不是最全的,如有补充和建议,欢迎留言,也可以加入我们的IT技术交流群 62775887).一. Crontab介绍 crontab命令的功能就是让系统在指定的时间,去执行某个指定的工作,原创 2016-06-02 09:16:32 · 6809 阅读 · 0 评论 -
Linux信号系统详解
代码对应linux kernel v0.11[Linux信号系统简介] 在Linux系统中,信号机制是在软件层次上对中断机制的一种模拟。一个进程接收到信号之后,有相应的信号的处理程序,而一个进程也可以给另外一个(或一组)进程发送信号。在内核版本的0.11版本中,每个进程都有一个结构体sigaction的数组,类似于系统的中断描述表(也被称为中断向量表),这个数组可以转载 2016-10-30 20:48:33 · 1003 阅读 · 0 评论 -
linux信号量解析
信号量一.什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。二.信号量的分类在学习信号量之前,我们必须先知道——Linux提供两种信号量:(1) 内核信号量,由内核控制路径使用(2) 用户态进程原创 2016-10-30 20:48:10 · 876 阅读 · 0 评论 -
数据库迁移之-Oracle 与MySQL互相转换
理论上来说, MySQL 已经被Oracle 收购, 这两者之间的Migrate 应该比较容易, 但实际的迁移还是有一些问题, 以下就说一说一些实现的方式和问题。方式一:手动方式导入导出手动的方式导入, 就是操作步骤会比较繁琐一些。 对Table 的结构和数据:1. 使用 SQL Developer 把 oracle 的 table 的schema 和 Data(.sql 和 .x原创 2017-05-31 21:22:37 · 31852 阅读 · 2 评论 -
简析操作系统线程,进程和协程
一、概念 1、进程 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等)比较大,但相对比较稳定安全。 2、线程 线程是进程的原创 2017-03-31 12:38:43 · 1574 阅读 · 0 评论 -
Linux常用命令整理
linux 基本命令整理: ls (list 显示当前目录下文件和目录 ls -l 详细显示 =ll )[root@linux ~]# ls [-aAdfFhilRS] 目录名称 [root@linux ~]# ls [--color={none,auto,always}] 目录名称 [root@linux ~]# ls [--full-time] 目录名称 参数:原创 2017-03-31 12:47:41 · 634 阅读 · 0 评论 -
linux用tar 解压tar文件报错
出现的问题:用tar 解压 tar.bz2文件出错debian:/usr/src# tar jxf linux-2.6.26.tar.bz2tar: bzip2: Cannot exec: No such file or directorytar: Error is not recoverable: exiting nowtar: Child returned stat原创 2017-03-31 12:35:27 · 5827 阅读 · 0 评论 -
linux执行sh脚本报错的解决办法
在我们的最小化安装的linux下,执行sh脚本文件不生效,报错如下: 解决方法如下: 安装成功后再次执行:执行成功!!!原创 2017-03-31 12:37:39 · 7884 阅读 · 0 评论 -
Centos配置Nginx负载均衡详解
在日常网络数据开发中,我们对服务器的处理能力要求很高,但是在服务器有限的情况下,怎么才能更好的利用服务器资源,使得我们的服务器最大限度发挥自己的作用,负载均衡是一种很好的办法。 哪什么是Nginx负载均衡呢? Nginx是一个轻量级的、高性能的WebServer,他主要可以干下面两件事:(1).作为http服务器(和apache的效果一样)(2).作为反向代原创 2016-07-15 10:11:21 · 5644 阅读 · 0 评论 -
Linux find文件查找命令与grep文件内容查找命令详解
在我们日常跨系统开发和服务部署上,Linux find文件查找命令与grep文件内容查找命令是经常用的,现整理了一下这两种命令的常用方法和参数设置,与大家共享!(也不是最全的,如有补充和建议,欢迎留言). 在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,原创 2016-06-01 15:33:17 · 4038 阅读 · 0 评论 -
Linux目录详解
Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录,如下图: /bin 二进制可执行命令/dev 设备特殊文件/etc原创 2016-04-08 11:21:50 · 1348 阅读 · 0 评论 -
你可能不知道的51个Linux经典命令!
1.删除0字节文件代码如下:find -type f -size 0 -exec rm -rf {} \;2.查看进程按内存从大到小排列代码如下:ps -e -o "%C : %p : %z : %a"|sort-k5 -nr3.按cpu利用率从大到小排列代码如下:ps -e -o "%C : %p : %z : %a"|sort-nr4.打印说cach原创 2016-04-08 13:50:02 · 8350 阅读 · 0 评论 -
Linux虚拟机常用命令
一.Linux虚拟机常用命令# virsh list //查看已打开虚拟机列表# virsh list --all //查看所有虚拟机列表# virsh version //查看virsh版本号# virsh start node1 //启动node1虚拟机原创 2016-04-07 10:29:17 · 20469 阅读 · 0 评论 -
Linux系统管理命令大全
对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。熟悉了Linux常用的文件处理命令以后,这一讲介绍对系统和用户进行管理的命令。 df 1.作用 df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。 2.格式df [options] 3.主要参数-s原创 2016-04-07 10:38:12 · 6261 阅读 · 0 评论 -
Linux企业运维高效技巧心得及分享
随着Linux在企业中的不断飞速的应用,为了企业中更好的运维,熟悉日常运维的技巧能更好的满足企业的发展,同时让我们的运维更加轻松,不再觉得运维是苦逼的活,真正去锻炼去成长去磨练。那我们需要注意什么呢:1) Linux行业目标 我们要明白学习Linux运维的目的,相信大家都是为了能找到一份非常好的工作,一个高薪的工作,不断的练习,不断的成长。通过工作,让我们的生活更加的完整原创 2016-03-21 13:29:23 · 985 阅读 · 0 评论 -
20个命令行工具监控 Linux 系统性能
译文出自:Linux story-FOREST 对于每个系统管理员或网络管理员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作。我已经有5年 Linux 管理员的工作经历,知道如何监控系统使其保持正常运行。为此,我们编写了对于 Linux/Unix 系统管理员非常有用的并且最常用的20个命令行系统监视工具。这些命令可以在所有版本的 Lin翻译 2016-03-21 14:00:50 · 1311 阅读 · 0 评论 -
Linux防火墙和端口设置常用命令
一、 查看端口和防火墙状态:#netstat -lnt |grep 801) 开启80端口命令:/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT2) 保存配置命令:/etc/rc.d/init.d/iptables save3) 重启服务命令:/etc/rc.d/init.d/iptab原创 2016-04-05 11:07:54 · 12153 阅读 · 0 评论