
Linux系统编程
文章平均质量分 69
Linux
sutneucoder
坚持记录,容易记住。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux中的service命令
在Linux系统中,service命令是用来启动、停止、重启以及查看系统服务状态的一个常用命令。服务,或称为守护进程,是在后台运行的进程,它们通常会监听某个端口,等待其他程序的请求。例如,MySQL、SSH、Docker和防火墙等都是作为服务运行的。原创 2024-12-16 20:12:52 · 723 阅读 · 0 评论 -
C语言setenv()原理
setenv()是通过修改进程内存空间的形式来修改环境变量,一般不会影响其他的进程,不过子进程除外。此处空间一般是固定大小,无法修改,如果有新的环境变量加入,会在堆上申请空间并存储。所以,对于测试或者其它的一些依赖修改环境变量的程序,可以在其内部调用setenv这类函数进行动态修改,不会影响系统配置文件,很友好。由于之前开发过程是通过修改~/.bashrc文件,控制环境变量,所以对于setenv()做一个学习研究。C/C++内存模型如下。setenv()定义在,设置或者更新环境变量。原创 2024-08-26 16:19:05 · 732 阅读 · 0 评论 -
syslog vsyslog的源码分析
syslog 和vsyslog是系统日志函数。ubuntu20.04系统下,其产生的日志会存储到/var/log/syslog文件中。原创 2024-08-21 17:59:10 · 1278 阅读 · 0 评论 -
阻塞IO 非阻塞IO 异步IO 同步IO
阻塞和非阻塞主要是指调用某个系统函数时,这个函数是否会导致进程进入阻塞状态而言的;a)调用一个函数,这个函数就卡在在这里,整个程序流程不往下走了,该函数卡在这里等待一个事情发生,这种情况下,操作系统会将该线程或进程挂起,不会消耗 CPU 资源,只有这个事情发生了,这个函数才会往下走,继续执行。这种函数,就认为是阻塞函数;accept();这种阻塞,并不好,效率很低;一般我们不会用阻塞方式来写服务器程序,效率低;b):不会卡住,充分利用时间片,执行更高;原创 2024-08-21 13:26:24 · 441 阅读 · 0 评论 -
linux信号集
信号可以由系统发送,也可以由其他进程或应用程序自身发送。Linux支持多种信号,每种信号都有一个唯一的整数编号和一个默认的动作。函数,进程可以指定对特定信号的处理方式,例如忽略信号、执行自定义的信号处理函数或执行默认动作。函数,进程可以创建一个信号掩码,用于暂时阻止某些信号的交付。等函数来初始化、填充、添加、删除信号或等待信号集中的信号。)是一个数据结构,用于表示信号集,即一组信号。函数,进程可以等待信号集中的任一信号的到来。类型的信号集来操作。函数,可以向进程或线程发送信号。Linux系统中,信号是。原创 2024-08-14 14:18:14 · 485 阅读 · 0 评论 -
【linux命令】grep搜索简单使用
grep是利用正则的文本搜索工具,把匹配的文本行打印出来。原创 2024-08-13 19:32:27 · 431 阅读 · 0 评论 -
SIGHUP信号
SIGHUP信号,代表 “挂起”(hang up)。在与终端有关的会话中,SIGHUP表示终端连接的丢失或关闭。原创 2024-08-13 13:07:26 · 701 阅读 · 0 评论 -
【ps命令】查看进程状态信息
ps命令 用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到。解析:从当前运行的进程中筛选出包含特定关键字的进程信息。原创 2024-08-07 11:30:16 · 697 阅读 · 0 评论 -
不知道服务器jenkins账户密码,利用自己账户和sudo登录jenkins账户
在服务器上不知道jenkins账户密码,只知道自己账户密码,如何登录jenkins账户。原创 2024-07-26 14:26:27 · 459 阅读 · 0 评论 -
如何自定义环境变量
至此,就成功了向环境变量中添加NMEDIA_LOG_METHOD,并设置为PRINT。本文简述向Linux系统中添加环境变量的方法。首先,比如环境变量的名字叫。输出应该显示为PRINT。原创 2024-07-22 15:45:30 · 228 阅读 · 0 评论 -
【命令scp】Linux不同主机之间拷贝指令scp
scp可以在不同主机之间拷贝文件。原创 2024-06-06 17:23:54 · 294 阅读 · 0 评论 -
【ssh命令】ssh登录远程服务器
命令格式:ssh 用户名@主机IP。然后输入密码,就可以登录进去了。原创 2024-06-06 17:09:21 · 1044 阅读 · 1 评论 -
linux系统ubuntu中在命令行中打开图形界面的文件夹
除了基本的浏览功能外,Nautilus 还允许用户进行文件的创建、删除、重命名、复制、粘贴等操作,以及管理文件权限、查看文件属性等多种文件管理功能。此外,它还支持通过插件扩展功能,如与压缩文件交互、预览文件内容等。并按回车执行时,它会默认打开当前用户的主目录(即 ~/ ,相当于 Windows 系统的“我的文档”或 macOS 的“个人”文件夹)。在 Linux 系统中,特别是使用 GNOME 作为桌面环境时,用户经常通过这个命令来打开文件浏览器界面以浏览、管理文件和目录。原创 2024-06-05 09:56:50 · 997 阅读 · 0 评论 -
【Linux系统编程(IPC)】无名管道,命名管道,消息队列,共享内存,信号,信号量,Socket
进程间通信:IPC(InterProcess Communication)微信的聊天也是属于进程间通信,是基于网络的。本篇的进程间通信基于单机的。A进程和B进程之间创建一个通道,A和B都能从中读写数据,这是真正意义上的进程间通信。进程间通信:● 单机版:A和B跑在同一个PC上● 多机版:A和B在不同的PC上(基于网络通信)进程间通信(IPC)的方式有:● 管道(无名管道和命名管道)● 消息队列● 信号量● 共享内存● Socket● Streams。原创 2024-03-30 23:35:06 · 1134 阅读 · 0 评论 -
Shell脚本基础(一)
Shell是使用C语言编写的,shell既是一种命令语言,又是一种程序设计语言。shell只需要解释器就能够执行。Linux下的shell解释器种类有很多。本篇文章就以Bash为准了,也就是 Bourne Again Shell。由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像,它同样也可以改为。原创 2024-03-24 10:46:49 · 701 阅读 · 0 评论 -
【Linux系统编程(进程编程)】exec族函数、system、popen
如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。如果 system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。execl函数就是,第一个参数是程序的path,最后一个参数是NULL。调用失败时,会设置errno并返回-1,然后从源程序的调用点接着往下执行。需求:实现功能,当父进程检测到输入为1时,创建子进程把配置文件的字段值修改掉。原创 2024-03-23 22:14:13 · 1262 阅读 · 0 评论 -
【Linux系统编程(进程编程)】进程的退出:父进程等待子进程的退出之僵尸进程与孤儿进程
对于三个终止函数(exit、_exit、_Exit),实现这一点的方法是,将其退出状态传递(exit status)作为参数传递给函数。建议使用exit,是对_exit或_Exit的封装,会对进程的缓冲区做些处理,而_exit或_Exit系统调用是直接退出。父进程不等待子进程退出,在子进程结束之前就结束了自己的“生命”,此时子进程叫做孤儿进程。Linux避免系统存在过多孤儿进程,init进程收留孤儿进程,变成孤儿进程的父进程。这里父进程退出后,新的父进程的进程id为1468而不是1。原创 2024-03-23 21:57:41 · 852 阅读 · 0 评论 -
【Linux系统编程(进程编程)】创建进程的场景,fork和vfork的使用及区别
(1)一个父进程希望复制自己,使父、子进程同时执行不同的代码段。这在网络服务进程中是常见的——父进程等待客户端的服务请求。当这种请求到达时,父进程调用fork,使子进程处理此请求。父进程则继续等待下一个服务请求到达。下边模拟一下网络请求,为每个请求创建一个服务进程。(现在还存在select poll epoll等IO多路复用技术,暂不展开)int main()pid_t pid;原创 2024-03-23 21:05:29 · 1262 阅读 · 0 评论 -
【Linux系统编程(线程编程)】讲讲线程的条件控制实现同步,顺便谈一谈线程死锁
在使用互斥变量、条件变量前都必须进行初始化,可以分别置为常量PTHREAD_MUTEX_INITIALIZER(只对静态分配的互斥量)、PTHREAD_COND_INITIALIZER(只对静态分配的条件变量),也可以通过调用pthread_mutex_init、pthread_cond_init函数进行初始化。这样,两个线程都想拿到对方手里的那把锁,谁都还不能解锁,导致线程死锁。让t1线程 中数据为3时打印信息,如果把下面程序中的条件和互斥量去掉,其实有可能打印不到,因为数据可能在其它线程中变化过去。原创 2024-02-29 21:52:00 · 887 阅读 · 0 评论 -
【Linux系统编程(文件编程)】C语言利用标准库实现对文件操作的基本方法
因为还有系统级调用。标准库就是字面意识,更加标准,哪个机器上都能用,可移植性更强。这两个函数值得研究一番,尤其对于不理解参数的同学。原创 2024-03-05 13:22:37 · 455 阅读 · 0 评论 -
C语言的面向对象
教材中称,C语言作为底层的面向过程的语言,不是面向对象的。实际上,内核源码中就有的思想,个人觉得就是可以把其作为对象使用,利用结构体和函数指针便能实现,不同于其它高级程序设计语言的OOP三大特性(继承、封装、多态),C语言实现的结构体作为对象来说,具有的是OOP中的两个特性(封装、多态),而不具备继承。多年前大一上刚学习时,也不知道这些专业名词,什么是OO,什么是OOP。后来的经过深入的学习才知道,C语言也可以做到面向对象,只不过没有那么完美罢了。多态特性可以利用结构体中的函数指针的再次赋值实现。原创 2024-03-14 10:23:49 · 436 阅读 · 0 评论 -
C语言的结构体数据或整型数据写入文件
编码过程中,重点要注意光标位置的变化,否则容易读错数据或不小心覆盖有用数据。只要光标位置正确,读/写时,填入合适的数据长度大小,就能实现功能。区别不大,就是多了一个大小,将数据大小调整为数组的总长度就好了。原创 2024-03-05 11:35:05 · 1313 阅读 · 0 评论 -
快速掌握正则表达式
限定符a*:a出现0次或多次a+:a出现1次或多次a?:a出现0次或1次a{6}:a出现6次a{2,6}:a出现2-6次a{2,}:a出现两次以上或运算符(a|b):匹配a或者b(ab)|(cd):匹配ab或者cd字符类[abc]:匹配a或者b或者c[a-c]:同上:匹配小写+大写因为字符以及数字[^0-9]:匹配非数字字符元字符\d:匹配数字字符\D:匹配非数字字符\w:匹配单词字符(英文、数字、下划线)\W:匹配非单词字符\s。原创 2023-09-12 21:16:28 · 828 阅读 · 0 评论 -
Editors(Vim)
之后,好处开始了:你将有足够的知识和肌肉记忆,使用新的编辑器可以节省你的时间。你可以在GitHub上查看人们的dotfile来获得灵感,例如,你的导师的Vim配置(Anish, Jon(使用neovim), Jose)。在不同的操作模式下,击键有不同的含义。在50分钟内讲完 vim 的所有功能是不可能的,所以我们将专注于解释 vim 的思想,教给您基础知识,展示一些更高级的功能,并为您提供掌握该工具的资源。vim 的设计理念是,程序员的大量时间花在阅读、导航和进行小的编辑上,而不是编写冗长的文本流。原创 2023-09-08 16:08:02 · 764 阅读 · 0 评论 -
Data Wrangling
好吧,我们的日志可能相当大,如果把它们都流到我们的计算机上,然后再进行过滤是很浪费的。例如,我们可以使用 ffmpeg 从我们的相机捕获图像,将其转换为灰度图像,压缩它,通过SSH将其发送到远程机器,在那里解压,复制,然后显示它。概括地说,这就是这篇文章的内容,具体地说,就是处理数据,无论是文本格式还是二进制格式,直到你得到你想要的。例如,正如在 lecture 中看到的,我可以使用以下命令从我的系统中卸载旧的Rust构建版本,方法是使用数据整理工具提取旧的构建名称,然后通过。事实上,我们完全可以不使用。原创 2023-08-09 15:20:02 · 415 阅读 · 0 评论 -
Linux系统 Ubuntu18.04安装的详细教程(提供18.04ubuntu镜像)
linux Ubuntu1804镜像下载安装、共享文件夹设置。文件下载:链接:https://pan.baidu.com/s/12bEdRBwO1YbLt23QKnrSrA提取码:h7as。原创 2023-01-01 21:00:01 · 6639 阅读 · 2 评论 -
初识Linux操作系统
文章目录1.认识Linux操作系统1.1 Linux系统的历史1.2 Linux的版权问题1.3Linux发行版本1.4 Linux系统的特点1.5 理解Linux体系结构1.5.1 Linux内核1.5.2 Linux Shell1.6安装虚拟机1.7Linux系统基本操作1.7.1启动shell1.7.2命令提示符1.7.3Shell命令格式1.7.4关机和重启命令1.7.5远程登录Linux思考思考答案1.认识Linux操作系统1.1 Linux系统的历史Linux系统是一个类似UNIX的操作系原创 2021-02-11 13:59:59 · 795 阅读 · 0 评论