Linux
文章平均质量分 54
结合理论和实践,逐步精进Linux技术
编码小哥
嵌入式系统研发工程师
展开
-
Linux环境常用的一些网络相关的命令
示例:telnet www.example.com 80(尝试通过80端口连接服务器)示例:nc -zv www.example.com 80(尝试通过80端口连接服务器)示例:nslookup www.example.com(查询域名对应的IP地址)示例:dig www.example.com(执行DNS查询并显示详细信息)示例:curl http://www.example.com(获取网页内容)示例:wget http://www.example.com(下载网页内容)原创 2024-09-11 07:06:31 · 534 阅读 · 0 评论 -
如何设计项目架构
设计项目架构是软件开发过程中的关键步骤之一,它涉及到如何组织系统的各个部分以及它们之间的交互方式。良好的架构设计能够提高系统的可维护性、扩展性和性能。原创 2024-09-07 14:02:12 · 508 阅读 · 0 评论 -
OpenWrt安装快速入门指南
如果你已经配置了5GHz Wi-Fi并刚刚启用它,但5GHz Wi-Fi似乎无法启动,请考虑以下事项: 如果你的设备支持支持大于100的信道,则你的OpenWrt设备必须首先扫描这些信道上的气象雷达,然后才能实际使用这个信道。在配置的第一个 Wi-Fi网络上,转到“设备配置”并打开“高级设置”选项卡:在“国家/地区代码”字段中,选择正确的代码,安装你的 OpenWrt设备。这是关于如何启用 Wi-Fi 网络的基本说明,如何正确配置你的国家/地区代码,以便你的 Wi-Fi网络符合你所在国家/地区的法律法规。原创 2024-07-17 06:56:05 · 790 阅读 · 0 评论 -
linux环境下C代码调试方法有哪些
4. 编辑器选择:虽然gdb是一个命令行工具,但你也可以选择图形界面的编辑器或集成开发环境(IDE),如Visual Studio Code,通过配置可以使用GCC C++ 编译器和GDB调试器进行代码的编辑、编译和调试。在CentOS中,可以通过yum命令来安装这些工具。2. 生成可调试文件:通过在编译命令中加入`-g`选项,可以生成带有调试信息的可执行文件,这是后续使用调试器进行调试的前提。9. 性能分析:如果需要对程序的性能进行分析,可以使用性能分析工具,如gprof,来识别程序中的瓶颈。原创 2024-04-30 23:52:00 · 310 阅读 · 0 评论 -
基于UDP的网络编程
【代码】基于UDP的网络编程。原创 2023-12-29 06:00:00 · 989 阅读 · 0 评论 -
硬链接与软链接
我们都知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据与元数据。用户数据,即文件数据块 ,数据块是记录文件真实内容的地方。而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux中,元数据中的 inode号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们原创 2017-06-11 20:19:53 · 275 阅读 · 0 评论 -
【解答】关于Linux内核的一些疑问
此后这个方向上的研究导致了九号计划的出现,这是一个新的分布式操作系统。GNU的命名是"GNU's Not Unix"的递归缩写,因为它的设计与Unix相似,但并不包含具有著作权的Unix代码。尽管GNU计划下有许多项目和工作被完成,如核心的gcc和glibc,但由于缺少操作系统内核,原定的内核叫HURD一直未能完成。在一些错误修复修订后,它们可以达到“生命周期结束”,这意味着内核维护者将不再发布此内核版本的错误修复,或者它们可以投入“长期”维护,这意味着维护者将在更长的时间内为这个内核修订版提供错误修复。原创 2023-11-26 14:15:46 · 125 阅读 · 0 评论 -
Android应用程序举例
4. 同步Gradle,然后在模拟器或真实设备上运行应用程序。您应该看到屏幕上显示“Hello Android 12!首先,确保您已经安装了Android Studio并创建了一个新的项目。一个简单的Android应用程序的模板,你可以根据您的需求进行修改和扩展。原创 2023-11-25 10:13:29 · 95 阅读 · 0 评论 -
memset和bzero性能分析
首先,我们需要了解bzero和memset的功能。bzero是一个宏,用于将一块内存区域的内容设置为0。它的原型如下:其中,s是要设置的内存区域的起始地址,n是要设置的字节数。memset是一个函数,用于将一块内存区域的内容设置为指定的值。它的原型如下:其中,s是要设置的内存区域的起始地址,c是要设置的值(以整数形式表示),n是要设置的字节数。接下来,我们可以通过以下代码来比较bzero和memset的性能:运行结果:1MB512KB256KB128KB。原创 2023-11-19 12:16:58 · 364 阅读 · 0 评论 -
Linux磁盘管理
df和 du是 Linux 系统中常用的磁盘管理命令,用于查看磁盘空间使用情况。1. df命令:df命令用于显示磁盘文件系统的总空间和可用空间。常用选项如下:-h:以人类可读的格式显示(如 K、M、G)-T:显示文件系统类型-i:显示 inodes 信息-x:排除指定文件系统示例:df -h输出示例:2. du命令:du命令用于估算文件或目录占用的磁盘空间。常用选项如下:-h:以人眼可读的格式显示(如 K、M、G)-s:仅显示总计,不显示子目录大小。原创 2023-11-17 07:30:24 · 113 阅读 · 0 评论 -
几种实用的struct用法
然后,我们定义了一个名为update_student_info的函数,它接受一个指向Student结构体的指针作为参数,以及新的姓名、年龄和成绩。然后,我们定义了一个名为get_student_info的函数,该函数返回一个指向Student结构体的指针。然后,我们可以使用student_ptr访问Student结构体的成员变量,并进行相应的操作。上面的代码定义了一个名为Student的结构体,并在声明结构体变量student的同时进行了初始化。// 定义一个函数,返回一个指向Student结构体的指针。原创 2023-11-16 07:47:36 · 211 阅读 · 0 评论 -
事件驱动和表驱动(C语言版)
事件驱动和表驱动是两种不同的编程方法,它们在C语言中有不同的应用。原创 2023-11-15 22:56:42 · 341 阅读 · 0 评论 -
Linux常用的包管理工具
Linux系统中有两个常用的包管理工具,分别是yum和apt。原创 2023-11-07 07:53:05 · 192 阅读 · 0 评论 -
统计Linux系统的内存和CPU使用信息
这段代码定义了两个函数get_memory_info和get_cpu_info,分别用于获取内存和CPU使用信息。原创 2023-11-02 23:24:52 · 92 阅读 · 0 评论 -
获取Linux系统的MAC地址和IP地址
这段代码定义了两个函数`get_mac_address`和`get_ip_address`,分别用于获取MAC地址和IP地址。printf("MAC地址: %s。printf("IP地址: %s。原创 2023-11-02 23:19:32 · 316 阅读 · 0 评论 -
Linux内核目录主要有哪些
1. arch: 这个目录包含了所有与硬件体系相关的代码,每个硬件平台都有自己独立的子目录,如x86、arm、powerpc等。5. fs: 这个目录包含了虚拟文件系统的代码,以及各种文件系统的实现,如ext2、ext3、ntfs等。4. drivers: 这个目录包含了所有设备驱动程序的代码,如声卡、显卡、网卡、磁盘控制器等。14. security: 这个目录包含了安全相关的代码,如访问控制列表、安全模块等。9. kernel: 这个目录包含了内核的核心部分,如调度器、内存管理、中断处理等。原创 2023-10-31 23:57:30 · 183 阅读 · 0 评论 -
分析排序算法的时间复杂度和空间复杂度
希尔排序的时间复杂度约为O(n^1.3),空间复杂度与插入排序一样为O(1)。选择排序需要进行n-1趟选择,每一趟需要找出最小(大)的元素并交换位置,故时间复杂度为O(n^2)。快速排序的时间复杂度为O(nlogn),空间复杂度为O(logn)。快速排序的效率高于归并排序,但在最坏情况下的时间复杂度为O(n^2)。堆排序的时间复杂度为O(nlogn),空间复杂度为O(1)。归并排序的时间复杂度为O(nlogn),空间复杂度为O(n),因为需要额外使用一个与原序列同样大小的辅助数组。时间复杂度:O(n^2)原创 2023-04-26 07:28:17 · 2534 阅读 · 0 评论 -
为什么Linux可以成功?
此外,Linux的开源代码和免费软件许可证,使得软件库得到了广泛的发展和扩展,这让Linux成为了一个非常强大和灵活的操作系统。随着Linux操作系统的改进和用户界面的优化,越来越多的人们选择Linux作为他们普通电脑的操作系统。Linux的”开源、自由和灵活“的特性作为最大的卖点,吸引了众多程序员和技术爱好者加入到Linux的开发和推广中来。Linux的成功来自多方面因素的融合:不断优化的开放源代码、稳定的基础技术、适应不同应用的灵活性以及更重要的开源文化。此外,Linux拥有适用于各种用途的不同版本。原创 2023-03-26 23:20:45 · 691 阅读 · 0 评论 -
关于Linux
1.什么是Linux?Linux是操作系统Unix的克隆,由Linus Torvalds在一个松散的网络黑客团队的协助下从头开始编写。它的目标是符合POSIX和单一UNIX规范。它具有现代成熟Unix中所期望的所有功能,包括真正的多任务处理、虚拟内存、共享库、按需加载、共享的写时拷贝可执行文件、适当的内存管理以及包括IPv4和IPv6在内的多级网络。虽然Linux最初是为基于32位x86的PC(386或更高版本)开发的,但今天它也运行在多种其他处理器体系结构上,包括3...原创 2021-12-17 22:31:45 · 149 阅读 · 0 评论 -
(收藏版)Linux常用命令整理
1.man 【查找某个命令的使用帮助】2.vim/vivim/vi file【打开文件】按Esc键,结合如下命令,进行编辑:i 【进入编辑状态】:%s/aa/bb/g【将文件file中所有的aa替换成bb】:r file 【读取文件file的内容】编辑结束后,按Esc退出编辑状态,结合如下命令根据需要进行保存或者不保存:wq【保存退出】:q!【不保存退出】:w【保存文件】:wq!【保存退出】:x【保存退出】:x!【保存退出】3.lsls -a 【显示目录下所有文件】ls原创 2023-01-31 23:18:59 · 197 阅读 · 0 评论 -
关于openwrt
OpenWrt不是一个单一且不可更改的固件,而是提供了一个完全可写的文件系统及软件包管理。可以不使用供应商提供的应用程序选择和配置,而是通过使用软件包来定制设备以适应任何应用程序。对于开发人员来说,OpenWrt是一个构建应用程序的框架,OpenWrt是一个为嵌入式设备(通常是无线路由器)开发的高扩展度的GNU/Linux发行版。与许多其他路由器的发行版不同,OpenWrt是一个完全为嵌入式设备构建的功能全面、易于修改的由现代Linux内核驱动的操作系统。在实践中,对于普通用户来说,可以定制需原创 2022-12-31 17:27:45 · 188 阅读 · 0 评论 -
linux系统删除指定目录
(1)#!/bin/shfind -size 0 -exec mv {} ~/tmp ;删除本目录下大小为0的文件(2)rm -rf ls|egrep -v 'www'删除当前目录下的所有文件和目录,排除www目录原创 2021-07-31 22:47:32 · 276 阅读 · 0 评论 -
查看Linux系统/内核信息
root@user-virtual-machine:/home# uname -aLinux user-virtual-machine 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 x86_64 x86_64 GNU/Linuxroot@user-virtual-machine:/home# uname -r4.4.0-210-generic原创 2021-12-10 09:51:50 · 661 阅读 · 0 评论 -
ping 外网不通怎么办
今天发现的问题:解决办法:依次找到虚拟机的编辑-->虚拟网络编辑器-->WMnet8模式-->NAT设置-->网关IP将这个文件/etc/sysconfig/network-scripts/ifcfg-ens33中的DNS加上上述网关IP,重启网络systemctl restart network,返回网页内容ok...原创 2021-02-01 23:43:15 · 860 阅读 · 0 评论 -
判断大小端的几种方法
#include /*1. 利用不同的数据类型占用空间不同*/int main(){ short int x; char y,z; x = 0x1122; y = ((char *)&x)[0]; //低地址 z = ((char *)&x)[1]; //高地址 printf("y=%x\n",y);原创 2017-06-11 21:20:20 · 702 阅读 · 0 评论