![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 60
「已注销」
https://a-rounder.com
展开
-
Ubuntu 20.04下安装谷歌浏览器
适用于Debian系x64下载cd /tmp && wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb安装sudo dpkg -i google-chrome-stable_current_amd64.deb如果遇到缺依赖,执行命令自动补齐依赖sudo apt install --fix-broken...原创 2021-03-06 00:24:54 · 1406 阅读 · 0 评论 -
Ubuntu20.04添加Kali Linux源
前言一般Kali Linux的软件在Ubuntu下也是能正常使用的, 都是Debian系Linux(使用apt管理软件包), 从Debian衍生而来的. 对于我而言,使用Kali Linux的镜像, apt安装的软件更新,有时候甚至能安装最新的,减少了不少麻烦. 就比如目前我安装opencv, Debian的apt最新只能安装到3.4, Ubuntu最新能安装到4.2, Kali可以安装去年12月份才发布的4.5.1。 不使用Kali的镜像源,要安装新版的,就只能采用从github获取源码自己构建的方式,原创 2021-02-20 10:52:56 · 3147 阅读 · 0 评论 -
Ubuntu20.04添加和删除swap分区
前言:刚才在云服务器上编译安装OpenCV,已经到99%了,结果失败了,重复继续好几次都是进程被杀掉了,才注意了一下编译时的资源占用情况,云服务器的2GB运行内存基本都占满了.因此猜测是进程占用过高被系统杀掉了,之前在本地PC和树莓派4B(4G)上编译内存是够用的,倒是没遇到这种情况,也没关注,所以又特意再次在本地编译试验,发现最高占用时会差不多接近3GB. 所以更肯定判断是内存不够时系统杀掉高占用的进程导致构建OpenCV失败.然后马上为云服务器添加了4GB的swap文件,成功编译完. 特做以下纪录原创 2021-02-18 22:03:40 · 3513 阅读 · 3 评论 -
13 Linux 广播和组播
前言 (含目录)使用范围: 仅局域网原创 2021-01-30 01:51:00 · 125 阅读 · 0 评论 -
14 Linux 本地套接字 (可进程间通信)
前言 (含目录)#define UNIX_PATH_MAX 108struct sockaddr_un{ __kernel_sa_family_t sun_family; char sun_path[UNIX_PATH_MAX];}下面两个分别是服务端和客户端的示例源码/** * @name server.c * @author IYATT-yx * @brief 本地套接字TCP通信 - 服务器端 */#include <stdio.h>#include &l.原创 2021-01-31 11:10:08 · 107 阅读 · 0 评论 -
12 Linux UDP简单通信
前言 (含目录)下面分别是服务器端和客户端的源码, 基于UDP的简单通信/** * @name server.c * @author IYATT-yx * @brief 套接字UDP通信 - 服务器端 */#include <sys/socket.h>#include <stdio.h>#include <stdlib.h>#include <arpa/inet.h>#include <stdbool.h>#includ.原创 2021-01-30 01:18:10 · 91 阅读 · 0 评论 -
11 Linux I/O多路复用
前言 (含目录)先构造一张有关文件描述符的列表,将要监听的文件描述符添加到该表中.然后调用一个函数,监听该表中的文件描述符,直到这些描述符表中的一个进行I/O操作时,该函数返回. (该函数为阻塞函数) (函数对文件描述符的检测操作是由内核完成的)在返回时,它告诉进程有多少(或哪些)文件描述符要进行I/O操作.select/** * @brief 检测文件描述符引用的对象是否发生变化 * @param nfds 要检测的文件描述符中最大的fd + 1 (1024) * @para.原创 2021-01-28 01:03:14 · 110 阅读 · 0 评论 -
10 Linux TCP简单通信
前言 (含目录)原创 2021-01-26 23:00:57 · 128 阅读 · 0 评论 -
9 Linux 网络编程中的部分基础概念
前言 (含目录)网络应用程序设计模式C/S (client/server)优点1.协议选用灵活2.可以缓存数据缺点1.对用户安全构成威胁2.开发工作量大,调试困难* B/S (brower/server)优点跨平台缺点只能使用http...原创 2021-01-26 10:47:29 · 110 阅读 · 0 评论 -
8 Linux 线程
前言 (含目录)进程创建子线程后,父线程和子线程共用一个虚拟地址空间,但是各自在内核区中有独立的 PCB通过PID查该进程下的线程LWPps -Lf [PID]多进程和多线程比较:共享的资源多进程.text文件描述符内存映射区…多线程堆全局变量…线程更为节省资源创建进程时,子进程的代码和父进程一样; 而创建线程,则需要指定这个线程去执行一个具体的函数.// 创建线程int pthread_create(pthread_t *thread, c.原创 2021-01-22 02:11:30 · 116 阅读 · 0 评论 -
7 Linux 守护进程
守护进程特点后台服务进程独立于控制终端周期性执行某任务不受用户登录注销影响一般采用以d结尾的名字 (服务)进程组组长:第一个进程进程组ID:组长的ID会话 (多个进程组)创建会话:* 不能是进程组长* 创建会话的进程成为新进程组的组长* 部分Linux发行版需要root* 创建出的新会话会丢弃原有的控制终端* 一般步骤:fork()在\创建子进程,父进程死,子进程执行创建会话操作创建会话:setsid()获取所属会话ID:getsid()创建守护进程的模型for...原创 2021-01-21 21:29:27 · 99 阅读 · 0 评论 -
6 Linux 进程间通信(IPC)
/** * @author IYATT-yx * @brief 验证进程之间无法使用全局变量进行通信 */#include <stdio.h>#include <sys/types.h>#include <unistd.h>int num = 15;int main(void){ pid_t pid = fork(); if (pid > 0) { printf("父: %d\n", num);原创 2021-01-20 00:43:53 · 144 阅读 · 0 评论 -
5 Linux 进程初探
体验进程创建/** * @author IYATT-yx * @brief 创建进程 */#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(void){ // fork创建子进程,子进程的虚拟地址空间和父进程一样(pid不一样) // 不可确定父进程和子进程谁先执行 pid_t pid = fork(); // 父进程中fork的返回值原创 2021-01-19 00:34:27 · 107 阅读 · 0 评论 -
4 Linux 系统部分基础概念
程序未运行时,置于磁盘中的二进制文件进程启动运行后的程序,数据在内存中,占用CPU等系统资源并发在一个时间段内有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任何时刻点上只有一个程序在处理机上运行并行一组程序按独立异步的速度执行,每个时刻点程序都是一起执行的...原创 2021-01-18 00:45:41 · 136 阅读 · 1 评论 -
3 Linux 目录操作
文件重命名: rename 函数修改当前进程路径: chdir 函数获取当前进程路径: getcwd 函数创建目录: mkdir 函数/** * @author IYATT-yx * @brief 读目录 */#define _GNU_SOURCE#include <stdio.h>#include <dirent.h>#include <sys/types.h>#include <string.h>int main(int ar原创 2021-01-17 18:03:42 · 90 阅读 · 1 评论 -
2 Linux 文件属性
stat 与 lstatstat 命令的使用:struct stat{ // 文件的设备编号 dev_t st_dev; // 节点 ino_t st_ino; // 文件的类型和存取的权限 mode_t st_mode; // 链到该文件的硬链接数目 nlink_t st_nlink; // 用户ID uid_t st_uid; // 组ID gid_t st_gid; //原创 2021-01-16 23:30:51 · 202 阅读 · 0 评论 -
1 Linux 文件读写
未完…// Auther: IYATT-yx#include <stdio.h>#include <sys/stat.h>#include <sys/types.h>#include <fcntl.h>#include <unistd.h>int main(int argc, char **argv){ if (argc != 3) { printf("请指定两个参数,分别为 [源文件] [目标文件原创 2021-01-16 00:16:28 · 170 阅读 · 0 评论 -
0 Linux 前言
struct statstruct stat{ // 文件的设备编号 dev_t st_dev; // 节点 ino_t st_ino; // 文件的类型和存取的权限 mode_t st_mode; // 链到该文件的硬链接数目 nlink_t st_nlink; // 用户ID uid_t st_uid; // 组ID gid_t st_gid; // (设备类型)若此文件为设备文原创 2021-01-15 22:05:46 · 258 阅读 · 0 评论 -
Linux创建Cron定时任务
1.以当前用户创建crontab -e以指定用户身份创建sudo crontab -u <username> -e2.回车,默认以nano打开配置文件,然后在后面添加任务即可格式示例* * * * * <执行目标的绝对路径>: 每分钟运行0 * * * * <执行目标的绝对路径>: 每小时运行0 0 * * * <执行目标的绝对路径>: 每天零点运行0 7,15 * * * <执行目标的绝对路径>: 在每天的7:00和15原创 2021-01-09 00:15:37 · 529 阅读 · 0 评论 -
Ubuntu 20.04 新建普通用户
下面以只有root用户的Ubuntu为例创建普通用户 zhf1.以root用户登录系统,创建用户useradd zhf(可选) 修改默认终端,我这里创建的新用户默认使用sh,感觉不如bash好用,最主要就是没有命令Tab键补全vi /etc/passwd跳到末尾找到以刚创建的用户zhf开头的那行,将改行末尾的 /bin/sh 改为 /bin/bash保存退出2.创建zhf的用户目录并修改所属用户和用户组mkdir /home/zhf && chown zhf:zhf /h原创 2021-01-08 19:52:11 · 4741 阅读 · 0 评论 -
Ubuntu 20.04 server 切换中文语言
1.安装区域设置 (locales)Ubuntu 一般是预装了的, Kali Linux 和 Debian可能没有,就需要安装# 更新索引sudo apt update# 安装localessudo apt install locales2.区域设置sudo dpkg-reconfigure locales向下翻,在靠近末尾的位置找到 zh_CN.UTF-8 UTF-8 , 用 空格键 选中前面会添上 * ,然后回车键再次选择 zh_CN.UTF-8 , 然后回车完成设置3原创 2021-02-23 20:42:55 · 13222 阅读 · 0 评论 -
C++代码: Linux下获取基本设备信息
C++// Auther: IYATT-yx#include <iostream>#include <cstring>extern "C"{ #include <arpa/inet.h> #include <ifaddrs.h> #include <netinet/in.h>}int main(){ struct ifaddrs *ifAddrStruct = NULL; void *tm原创 2021-01-13 17:48:19 · 1536 阅读 · 3 评论