linux
文章平均质量分 76
Blueeyedboy521
Java架构师,微服务,前端Vue,人工智能,C/C++嵌入式编程
展开
-
linux入门到精通-第十一章-进程间通信(有名管道)
管道,由于没有名字,只能用于亲缘关系的进程间通信。为了克服这个缺点,提出了命名管道(FIFO),也叫有名管道、FIFO文件。**命名管道(FIFO)**不同于无名管道之处在于它提供了一个路径名与之关联,以 FIFO 的文件形式存在于文件系统中,这样,即使与 FIFO 的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过 FIFO 相通信,因此,通过 FIFO 不相关的进程也能交换数据命名管道 (FIFO)和无名管道 (pipe) 有一些特点是相同的,不一样的地方在于。原创 2024-04-09 08:00:00 · 929 阅读 · 0 评论 -
linux入门到精通-第十章-进程和程序(2)
在每个进程退出的时候,内核释放该进程所有的资源、包括打开的文件、占用的内存等。但是仍然为其保留一定的信息,这些信息主要指进程控制块PCB的信息 (包括进程号、退出状态、运行时间等)。父进程可以通过调用wait或waitpid得到它的退出状态,同时彻底清除掉这个进程。wait() 和 waitpid() 函数的功能一样,区别在于wait() 函数会阻塞,waitpid()可以设置不阻塞,waitpid()还可以指定等待哪个子进程结束。原创 2024-04-07 07:45:00 · 754 阅读 · 0 评论 -
linux入门到精通-第十章-进程和程序
我们平时写的 C 语言代码,通过编译器编译,最终它会成为一个可执行程序,当这个可执行程序运行起来后(没有结束之前),它就成为了一个进程。程序是存放在存储介质上的一个可执行文件,而进程是程序执行的过程。进程的状态是变化的,其包括进程的创建、调度和消亡。程序是静态的,进程是动态的。演程序就类似于剧本(纸),进程类似于戏(舞台、演员、灯光、道具…),同一个剧本可以在多个舞台同时上演。同样,同一个程序也可以加载为不同的进程(彼此之互不影响)。在Linux系统中,操作系统是通过进程去完成一个一个的任务,原创 2024-04-02 07:30:00 · 546 阅读 · 0 评论 -
linux入门到精通-第九章-文件操作(2)
dup() 和 dup2() 是两个非常有用的系统调用,都用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。这个过程类似于现实生活中的配钥匙,钥匙相当文件描述符,锁相当于文件,本来一个钥匙开一把锁,相当于,通过旧的钥匙复制了一把新的钥匙,这样的话,旧的钥匙和新的钥匙都能开启这把锁。原创 2024-01-08 18:30:00 · 463 阅读 · 0 评论 -
linux入门到精通-第六章-gdb调试器
GNU工具集中的调试器是GDB (GNU Debugger),该程序是一个交互式工具,工作在字符模式。除gdb外,linux下比较有名的调试器还有xxgdb,ddd, kgdb,ups。GDB主要帮忙你完成下面四个方面的功能1.启动程序,可以按照你的自定义的要求随心所欲的运行程序。2.可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3.当程序被停住时,可以检查此时你的程序中所发生的事4.动态的改变你程序的执行环境。原创 2023-12-26 08:00:00 · 871 阅读 · 0 评论 -
linux入门到精通-第七章-Makefile使用
一个工程中的源文件不计其数,其按类型、功能、模块分别放在若千个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个shell脚本一样,其中也可以执行操作系统的命令。Makefile带来的好处就是一”自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。原创 2023-11-20 08:00:00 · 315 阅读 · 0 评论 -
linux入门到精通-第五章-动态库和静态库
静态链接动态链接所谓“程序库”,简单说,就是包含了数据和执行码的文件。其不能单独执行,可以作为其他执行程序的一部分来完成模型功能。库的存在可以使得程序模块化,可以加快程序的再编译,可以实现代码重用,可以使得程序便于升级。程序库可分入静态库(static library)和共享库(shared library)。原创 2023-11-03 18:45:00 · 177 阅读 · 0 评论 -
linux入门到精通-第四章-gcc编译器
编辑器vi、记事本)是指我用它来写程序的 (编辑码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。就是说,我们用编辑器编写程序,由编译器编译后才可以运行!编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。gcc (GNU Compiler Collection,GNU 编译器套件是由 GNU 开发的编程语言编译器。原创 2023-10-17 19:00:00 · 1170 阅读 · 1 评论 -
linux入门到精通-第一章-文件目录
Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰 Linus Torvalds为尝试在英特尔x86架构上提供自由的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些 Minix 黑客提供了协助,而如今全球无数程序员正在为该计划无偿提供帮助。Linux是开源的Unix是收费的。原创 2023-10-10 08:00:00 · 91 阅读 · 0 评论 -
linux入门到精通-第二章-常用命令和工具
command:命令名,相应功能的英文单词或单词的缩写[-options]: 选项,可用来对命令进行控制,也可以省略,[]中括号代表可选。一个横杆后面跟单词缩写,两个横杆后面是跟完整单词parameter1…: 传给命令的参数,可以是零个一个或多个。原创 2023-09-04 08:00:00 · 114 阅读 · 0 评论 -
Ubuntu20.04安装redis的c++操作库hiredis
我们这里先了解一下hiredis的基本接口,笔者都加了注释。由于上面下载的不是源码,所以不需要如下操作。由于上面下载的不是源码,所以不需要如下操作。由于上面下载的不是源码,所以不需要配置。原创 2023-07-12 08:50:45 · 564 阅读 · 0 评论 -
gdb定位段错误Segmentation fault (core dumped)
当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。我们可以认为 core dump 是“内存快照”,但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时 dump 下来,例如寄存器信息(包括程序指针、栈指针等)、内存管理信息、其他处理器和操作系统状态和信息。原创 2023-06-26 08:00:00 · 2010 阅读 · 0 评论 -
ubuntu安装Espeak实现tts文字转语音
*用途:**可识别多语言的朗读软件能读中文:相对英文,更适合朗读中文可以在程序中被调用——提供c++接口及库支持词的识别和安装简单,安装文件少,依赖库少,移植方便源码32981行espeak_1.36.orig.tar.gz,只有1M多,源码及数据(多语言规则)相对比较平滑能处理多音字有windows,linux系统版本支持ubuntu 8.04系统自带espeak。原创 2023-01-25 07:00:00 · 3871 阅读 · 5 评论 -
Centos把Python2.7卸载了,导致yum不可用, bash: /usr/bin/yum: /usr/bin/python: 坏的解释器: 没有那个文件或目录
整个思路是这样的,没有了Python2.7,我就需先把Linux服务器依赖的Python2.7的包重新安装上,再看有没有其他问题。该处理过程也适用于 yum因python版本无法使用的问题,不同的版本类型的机器,切记把机器版本号替换一下就可以了.强制安装rpm包,不考虑依赖关系【之前这里没添加–nodeps --force,导致安装一直提示缺少依赖】下载yum依赖包,同python2一样,根据自己系统版本选择对应的rpm包。3、安装完成后,输入命令验证安装是否成功。安装完成之后,输入命令查看安装是否成功。原创 2022-09-19 20:45:00 · 2522 阅读 · 1 评论 -
shell脚本中语法
shell脚本语法原创 2022-08-02 19:04:34 · 208 阅读 · 0 评论 -
linux下设置frp开机启动
https://github.com/fatedier/frp/releases/download/v0.37.0amd版本:https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz三、服务端部署1.配置修改frps.ini2.运行三、客户端部署1、配置2、后台运行nohup ./frps -c frps.ini &打开目录2、修改配置重点是frpc的路径,以及原创 2022-07-07 19:22:57 · 4171 阅读 · 0 评论 -
c/c++调用system获取返回值
在 c/c++ 程序中,可以使用 system()函数运行命令行,但是只能得到该命令行的 int 型返回值,并不能获得显示结果。例如system(“ls”)只能得到0或非0,如果要获得ls的执行结果,则要通过管道来完成的。首先用popen打开一个命令行的管道,然后通过fgets获得该管道传输的内容,也就是命令行运行的结果。C/C++ 程序中调用命令行命令并获取命令行输出结果...原创 2022-06-28 16:58:16 · 6696 阅读 · 3 评论 -
linux下常用命令
df查看磁盘使用进程管理ps 显示当前进程状态类似于window的任务管理器jps jdk自带进程杀死进程vi/vim 命令三种工作模式(Command mode)命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能此模型下,不能自由进行文本编辑(insert mode)也就是所谓的编辑模式,插入模式,需要输入才能开始编辑此模式下,才可以对文本内容进行自由编辑(Last line mode)以 开始,通常用于文件的保存,退出。 退出 保存 保存退出原创 2022-06-22 23:07:51 · 219 阅读 · 0 评论 -
shell发送http请求并解析返回值json中字段的值
目录一、方案一:1、适用场景2、解析3、命令解释(1)第一个sed命令的意思是将json数据中的“,”替换为换行符“\n”,这样该串数据就变为每一行一个字段的内容,即按逗号分隔数据串。(2)第二个grep命令的意思是查找“code”关键字,并单列出来。(3)第三个sed命令的意思是将(2)中的结果再次按冒号“:”进行分隔。(4)第四个sed命令的意思是将(3)中的结果,删除第一行内容,即删除“code”行。(5)最后一个sed命令的意思是将最后的花括号“}”用空字符替换,最终得到我们想要的值,当然本示例中c原创 2022-05-31 14:27:09 · 3345 阅读 · 0 评论 -
苹果mac系统删除._文件
java项目find . -name '._*.java' -type f -deletefind . -name '._.*' -type f -delete原创 2022-05-17 14:13:52 · 1721 阅读 · 0 评论 -
linux通过NFS挂载远程目录,挂在宿主机目录,linux下共享文件夹
目录一、概述二、在宿主机上开发共享目录1、下载NFS服务器2、配置nfs服务器3、重启nfs服务器或者ubuntu三、在目标机上挂载共享目录四、测试1、在宿主机上新建test.txt2、在目标机查看一、概述通过以下两台机器实现192.168.0.44(宿主机)192.168.0.127(目标机)目录映射:宿主机(/usr/local/rv1126/oem/app/web)> 目标机(/oem/app/web)二、在宿主机上开发共享目录1、下载NFS服务器# 安装nfs-kernel原创 2022-05-12 10:39:24 · 999 阅读 · 0 评论 -
Linux硬盘空间占用排查及Docker磁盘空间占用排查解决
一、linux系统占用1、查询全局磁盘占用# 查看总磁盘占用量df -hl2、查看某个文件夹下每个文件大小ls -l# 按照M显示ls -l --block-size=m3、查看某个文件夹下所有文件大小# 查看当前文件du -sh .# 查看指定文件夹du -sh /home/*二、docker磁盘占用1、首先查看每个容器cpu内存等使用情况docker stats2、查看整个docker占用情况docker system df# 或df -Th /var/l原创 2022-04-21 15:33:12 · 3964 阅读 · 0 评论 -
linux下自动对时功能gettime.sh
#!/bin/shcd /userdatamount -o remount,rw /#echo "nameserver 114.114.114.114" > /etc/resolv.conf#rm -rf beijingwget -q http://time.tianqi.com/beijingchmod 777 beijingyearStr=`cat ./beijing | grep nyear | grep -v day`yearS=${yearStr#*=}year=${ye原创 2022-04-13 23:09:34 · 405 阅读 · 0 评论 -
linux下shell脚本中根据名称查找进程id
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`:`pwd`/libs:`pwd`/exec/0.3.8/export RUI_BITRATE=1024export RUI_FRAME_SKIP=2在这里插入代码片方法一 pidoftarge=`pwd`/"exec/0.3.8/attest"targe_server=`pwd`/server/nginxkill -9 `pidof $targe`kill -9 `pidof $targe_serv原创 2022-03-28 10:43:23 · 6907 阅读 · 0 评论