Linux
路漫漫其远,吾求索
晓看天色暮看云
展开
-
ubuntu 20.04 安装配置Samba服务
1,安装samba服务器sudo apt-get install samba samba-common2,配置需要共享的目录sudo chmod 777 /home/ -R3,添加samba用户4,配置sambasudo vi /etc/samba/smb.conf在末尾添加,工作组的话查看你自己电脑的Windows下的工作组名称5,重启samba服务sudo service smbd restart6,在Windows下访问samba服务在文件管理器上面输入Linux的i原创 2021-11-24 11:18:20 · 3124 阅读 · 0 评论 -
Linux系统挂载存储只读改成读写
1、mount:用于查看哪个模块输入只读,一般显示为[root@localhost ~]# mount/dev/cciss/c0d0p2 on / type ext3 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)/dev/cciss/c0d0p7 on /home type ext3 (rw)/dev/cciss/c原创 2021-10-21 17:37:23 · 2600 阅读 · 0 评论 -
Linux环境变量设置(临时+永久)
一:临时设置:直接使用export命令#export PATH=$PATH:/home/xyz/Tesseract/bintesseract可执行文件目录 #export export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/pi/Public/li其依赖库的路径 #export TESSDATA_PREFIX=/home/xyz/Tesseract/share其依赖的训练数据文件所在路径查看是否设置成功:export 或者 echo $PATH原创 2021-10-13 10:24:05 · 7290 阅读 · 0 评论 -
Linux加载动态库
查看某个程序使用了那些动态库,使用ldd命令查看ldd /bin/ls这么多so,是的。使用ldd显示的so,并不是所有so都是需要使用的,下面举个例子main.cpp#include <stdio.h>#include <iostream>#include <string>using namespace std;int main (){ cout << "test" << endl; return 0;}使原创 2021-10-11 17:01:24 · 734 阅读 · 0 评论 -
使用scp时记住密码,不需要每次都输入密码
当两台主机需要互相传文件时可以使用scp命令,但是每次都需要输入密码,但是当双方建立信用关系后,可以不用每次输入密码步骤:1,在主机1里面执行ssh-keygen -t rsa2,一路回车就可以,结果如下所示3,执行完会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub4,将主机1上的id_rsa.pub文件拷贝到主机2的root用户主目录下的.ssh目录下,并且改名为authorized_keys5,拷贝完重命名之后使用scp命令,就不需要输入密码1了...原创 2021-10-11 10:41:58 · 6238 阅读 · 2 评论 -
linux 进程参数文件 /proc/pid/cmdline
一:简介在proc根目录下,以数字命名的目录表示当前一个运行的进程,目录名为进程的pid。其内的目录和文件给出了一些关于进程的信息,可以看到如下所示文件:其中attr、fd、fdinfo、task为目录,cwd、root为指向目录的链接,exe为指向文件的链接,其余为一般文件。对于一些文件或目录的权限(查看或者修改的权限)是该进程的创建者才有,例如auxv等文件或目录只有创建该进程的用户才有查看或修改的权限,而其他一些文件则对所有用户可读权限。关于这些目录和文件的权限,结构体如下所示static原创 2021-09-28 10:32:12 · 1439 阅读 · 0 评论 -
/etc/shadow(影子文件)内容详解
一:简介用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。早期的 UNIX 密码放在 /etc/passwd 文件中,由于该文件允许所有用户读取,易导致用户密码泄露,因此从 /etc/passwd 文件中分离出来,并单独放到了此文件中。/etc/shadow 文件只有 root 用户拥有读权限,保证了用户密码的安全性。先看一下/etc/shadow里面存放的内容:sudo cat /etc/shadow文件中每行代表一个用户,使用 “:” 分隔,每行的用户信息有 9 个字段,格式如下原创 2021-09-23 14:42:49 · 12733 阅读 · 2 评论 -
Ubuntu 20.04 上安装 Visual Studio Code
1,Ubuntu 20.04 上安装 Visual Studio Codesudo apt updatesudo apt install software-properties-common apt-transport-https wget2,使用 wget 命令插入 Microsoft GPG key :wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -3,启用 Visual S原创 2021-09-23 10:35:28 · 477 阅读 · 0 评论 -
cat /proc/loadavg(平均负载)
/proc文件系统是一个虚拟的文件系统,不占用磁盘空间,它反映了当前操作系统在内存中的运行情况。cat /proc/loadavg是查看系统平均负载的命令前三个数字表示1 5 15分钟内的平均进程数第四个数值的分子表示正在运行的进程数,分母表示进程总数第五个数值表示最近运行的进程ID...原创 2021-09-18 15:18:28 · 1410 阅读 · 0 评论 -
Linux线程-互斥锁pthread_mutex_t
一:锁的创建:锁可以被动态或静态创建,可以用宏PTHREAD_MUTEX_INITIALIZER来静态的初始化锁,采用这种方式比较容易理解,互斥锁是pthread_mutex_t的结构体,而这个宏是一个结构常量,静态的初始化锁:pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;动态的初始化锁:int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t * att原创 2021-09-17 17:04:11 · 392 阅读 · 0 评论 -
Linux设置和清除环境变量
"" 设置环境变量export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/the/path/you/want/set export LD_LIBRARY_PATH=/the/path/you/want/set"" 查看设置echo $LD_LIBRARY_PATH"" 清除环境变量unset LD_LIBRARY_PATHPATH和LD_LIBRARY_PATH本质都是变量,所谓变量的意思就是由别人赋值产生的,直觉往往会让我们添加和减少这个变量本身的某些路径,实际原创 2021-09-10 17:04:31 · 1590 阅读 · 0 评论 -
linux中的sysconf系统调用
man一下sysconf,可以看一下这个函数的一些基本信息man 3 sysconf写一个简单的测试程序#include <stdio.h>#include <unistd.h>#define ONE_MB (1024 * 1024)int main(){ printf("The number of processors configured is :%ld\n", sysconf(_SC_NPROCESSORS_CONF)); p原创 2021-09-06 10:29:04 · 255 阅读 · 0 评论 -
经典排序算法
常见的排序方法大致可分为两类比较类排序:通过比较来决定元素间的相对次序,由于时间复杂度不能突破,因此也称非线性时间比较类排序非比较类排序:不能通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间算法复杂度一,冒泡排序核心思想:相邻两个元素比较,将较小的数字放到左侧,以此类推,这样最后那个元素就是最大的数算法描述:比较相邻的元素,如果第一个比第二个大,就交换它们两个,对每一对相邻元素作同样的工作,直到最后一对,这样最后面那个数就是最大的数,针对原创 2021-05-17 17:11:30 · 106 阅读 · 0 评论 -
grep命令进行多条件查询
1,grep 查找同时满足多个条件 (与)grep 'fail' a.txt | grep 'error'2,grep 查找满足多个条件中的一个 (或)grep 'fail\|error' a.txt原创 2021-03-29 17:38:43 · 10139 阅读 · 1 评论 -
shell中for循环的几种用法以及nohup &、 2>&1的基本说明
一:for循环的几种用法#!第一种写法 类似C、Javafor ((i=1; i<=100; i ++))do echo $i done#!第二种写法 in应用for i in {1..100} do echo $i done #!第三种写法 seq 使用for i in `seq 1 100` do echo $i done 二:bohup &、 2>&1的基本说明/dev/null 表示空设备文件0 表示stdin标准输入1原创 2021-03-23 15:00:43 · 1537 阅读 · 1 评论 -
mosquitto软件编程
使用mosquitto库函数前,要先初始化,使用之后要清除:int mosquitto_lib_init(void);int mosquitto_lib_cleanup(); /*新建客户端*/ struct mosquitto *mosquitto_new( const char *id,//用户自定义标识ID bool clean_session,//断开后是否保...原创 2020-03-21 21:12:49 · 581 阅读 · 0 评论 -
WIFI模块
【1】特点:内置802.11 b/g/n内置TCP/IP协议栈WiFi 2.4 GHz,支持 WPA/WPA2 安全模式支持AT远程升级及云端OTA升级支持 STA/AP/STA+AP 工作模式【2】开发模式:基于AT指令,需另接MCU,开发简单,成本略高基于SDK(FreeRTOS/NONOS),软件工程量大,以C语言为主,成本低,运行效率高基于开源引擎,语言众多,开发效率...原创 2020-03-20 21:43:36 · 366 阅读 · 0 评论 -
MQTT协议
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)一种针对移动终端设备的基于TCP/IP的发布/订阅协议可以连接大量的远程传感器和控制设备MQTT的特点是可以保持长连接,具有一定的实时性要保持长连接,那么就要不时地发送心跳包,这就不会省电特点:使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合有三种消息发布服务质量(QoS)...原创 2020-03-19 21:18:34 · 211 阅读 · 0 评论 -
Linux 设备树相关函数
一:设备树相关解析函数int of_property_read_string_index(struct device_node *np,const char *propname, int index,const char **out_string)功能:读字符串数组键值对中指定的字符串参数:@np 设备数中的设备节点@propname 属性名@index ...原创 2020-03-10 21:10:31 · 617 阅读 · 0 评论 -
Linux 根文件系统
一:什么是文件系统文件系统作用:管理磁盘上的文件nfs文件系统: 在不同机器、不同操作系统之间通过网络共享文件的技术应用: 在嵌入式Linux系统的开发调试阶段,可利用该技术在主机上建立基于nfs的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容虚拟文件系统(VFS) 为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统——VFS(V...原创 2020-03-10 20:57:23 · 496 阅读 · 0 评论 -
Linux 设备树基本简介
一:基本简介设备作用:提供设备信息设备树(Device Tree)是一种描述硬件的数据结构在操作系统引导阶段进行设备初始化的时候,数据结构中的硬件信息被检测并传递给操作系统设备树: 设备树源文件(xxxx.dts) —DTC—>>> 设备树二进制文件(xxxx.dtb)设备树基本语法:设备树的基本单元是节点(node),这些node被组织成树状结构,除了root no...原创 2020-03-09 21:18:42 · 484 阅读 · 0 评论 -
Linux 平台设备platform
今天学习了platform平台总线,用来对驱动进行管理和注册,平台设备是指处理器上集成的额外功能的附加设备,如Watch Dog,IIC,IIS,RTC,ADC等设备。这些额外功能设备是为了节约硬件成本、减少产品功耗、缩小产品形状而集成到处理器内部的。需要注意的是,平台设备并不是与字符设备、块设备和网络设备并列的概念,而是一种平行的概念,其从另一个角度对设备进行了概括。如果从内核开发者的角度来看,...原创 2020-03-06 20:39:23 · 360 阅读 · 0 评论 -
Linux中断处理机制
一:中断概述中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再返回去继续运行被暂时中断的程序。中断类型:...原创 2020-03-05 21:32:54 · 865 阅读 · 0 评论 -
Linux内核线程
一:内核线程简介Linux 内核线程(KERNEL THREAD)完全独立运行在内核空间,并且不能被切换到用户空间运行,也没有独立内核地址空间。除此之外,与普通的线程一样,可以被调度和抢占。二:头文件介绍#include <linux/errno.h>#include <linux/sched.h>#include <linux/thread.h>三...原创 2020-03-04 23:11:15 · 271 阅读 · 0 评论 -
Linux 五种Io模型
一:先介绍一下四个概念:同步,异步,阻塞,非阻塞。同步就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。比如,调用readfrom系统调用时,必须等待IO操作完成才返回。异步异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。比如:调用aio_read系统调用时,不必等IO操作完成就直接返回,...原创 2020-03-03 20:36:54 · 1880 阅读 · 1 评论 -
Linux定时器
内核定时器:定时触发定时器中断,执行定时器中断处理函数 <linux/timer.h>定时器数据类型是:struct timer_list { unsigned long expires; //定时器计数时间值 void (*function)(unsigned long); //定时器处理函数 unsigned long da...原创 2020-03-02 21:59:45 · 234 阅读 · 0 评论 -
Linux内核的同步互斥机制
一:什么是同步与互斥互斥与同步机制是计算机系统中,用于控制进程对某些特定资源的访问的机制。同步是指用于实现控制多个进程按照一定的规则或顺序访问某些系统资源的机制。互斥是指用于实现控制某些系统资源在任意时刻只能允许一个进程访问的机制。互斥是同步机制中的一种特殊情况。同步机制是linux操作系统可以高效稳定运行的重要机制。同步:强调的是顺序性 互斥:强调的是排他性竞态:多个执行单元同...原创 2020-02-28 21:41:51 · 523 阅读 · 0 评论 -
Linux操作方法集接口(read,write)
一:read,write<asm-generic/uaccess.h>应用层调用 read —>>> 应用层想读取数据 —>>> 这件事情是内核中驱动完成—>>> copy_to_user应用层调用 write —>>> 应用层想写取数据 —>>> 这件事情是内核中驱动完成—&g...原创 2020-02-27 20:41:07 · 576 阅读 · 0 评论 -
字符设备驱动代码的编写
字符设备驱动框架linux/cdev.h cdev结构体: 操作方法集 设备号(主设备号+次设备号) 围绕cdev结构体进行的一系列操作: 0.申请/注册设备号 1.分配cdev结构体 2.初始化结构体 3.添加cdev到内核 编写驱动程序的三种方法一:传统方法,优点简单缺点就是不易宽展,硬件更换了板子都要重新写代码重新比...原创 2020-02-26 21:02:11 · 175 阅读 · 0 评论 -
Linux内核模块
一:内核模块的使用加载内核模块命令:sudo insmod demo.ko查看内核模块:lsmod卸载内核模块:sudo rmmod demo原创 2020-02-25 20:19:01 · 220 阅读 · 0 评论 -
Linux驱动简介
Linux的驱动在本质上就是一种软件程序,上层软件可以在不了解硬件特性的情况下,通过驱动提供的接口,和计算机硬件进行通信。 系统调用是内核和应用程序之间的接口,而驱动程序是内核和硬件之间的接口。它为应用程序屏蔽了硬件的细节,故对应用程序而言,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。 Linux驱动程序只是内核的一部分,管理着系统的设备控制器和相应的设备。...原创 2020-02-24 20:18:15 · 852 阅读 · 0 评论 -
Linux下vi 编辑器模式
vi编辑器的使用(1)命令模式 刚进入vi编辑器的模式就是命令模式,命令模式主要用于对代码进行复制粘贴等操作 在其他模式下按下esc进入命令模式如何从命令模式切换到插入模式 键盘输入a i o A I Oa:在光标的后一个位置进入插入模式i:在光标的前一个位置进入插入模式o:在光标所在行的下一行(另起一行)进入插入模式A:在光标所在行的最后一个位置进入插入模式I:在...原创 2020-01-11 15:26:33 · 404 阅读 · 0 评论