自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 shell 正则表达式

正则表达式正则表达式在程序语言中很常见,本文也有利于其他语言中正则表达式的学习,用浅显易懂的例子帮助大家学习正则表达式什么是正则表达式正则表达式是用于描述字符排列和匹配模式的一种语法则它主要用于字符串的模式分割、匹配、查找及替换操作。正则表达式与通配符正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed 等命令可以支持正则表达式。通配符用来匹配符合条件的文件名,通配符是完全匹配。Is、find、cp 这些命令不支持正则表达式,所以只能使用 shell 己的通配符来

2021-08-21 19:53:22 154

原创 前言

文章目录C 语言的学习方法C 语言的主要内容C 语言的学习方法把学到的知识,进行系统的消化、吸收和总结,整理自己的学习笔记,尤其是相关视频等资料多编程,学习语言没有捷径,必须有一定代码量的积累学习初期,多读、多看一些优秀代码,甚至照着敲多对已有的代码进行完善和优化通过实际做项目,来不断提升自己的编程能力注意培养自己对编程的兴趣C 语言的主要内容Linux 系统的基本命令基础知识运算符、表达式和数据类型输入输出专题控制语句数组与指针函数...

2021-04-19 12:00:59 133

原创 Makefile 工程管理

文章目录Make 的原理及 Makefile 的基础知识Make 简介Makefile 基本结构Makefile 变量创建和使用变量Make 命令的选项及 Makefile 中的隐含规则Make 使用Makefile 的隐含规则`VPATH` 及嵌套的 Makefile`VPATH` 的用法嵌套的 Makefile本篇全面深入的讲解 make 项目管理工具,为后续阅读 U-Boot、内核等复杂源码及项目开发打下基础Make 的原理及 Makefile 的基础知识Make 简介工程管理器,顾名思义,是

2021-04-19 11:58:22 483

原创 SQLite

文章目录SQLite 基础SQLite 数据库创建 SQLite 数据库SQLite 常用命令介绍sqlite 命令sqlite3 的使用SQLite 编程接口`sqlite3_open``sqlite3_errmsg``sqlite3_close``sqlite3_exec``callback``sqlite3_get_table``sqlite3_free_table`SQLite 基础SQLite 数据库安装数据库:sudo apt-get install sqlite sqlite3su

2021-04-19 11:41:05 111

原创 UNIX 域套接字

文章目录UNIX域套接字UNIX域(流式)套接字UNIX域(用户数据报)套接字UNIX域套接字socket 同样可以用于本地通信创建套接字时使用本地协议 PF_UNIX(或 PF_LOCAL)。分为流式套接字和用户数据报套接字和其他进程间通信方式相比使用方便、效率更高常用于前后台进程通信本地信息结构体 sockaddr_un#include <sys/un.h> struct sockaddr_un{ __SOCKADDR_COMMON (sun_);

2021-04-19 11:35:14 126

原创 TCP/IP 网络程序设计——进阶篇

文章目录网络信息检索和套接字属性设置网络信息检索函数 `getsockopt` - get the socket options获取缓存大小网络属性设置网络超时检测网络超时网络超时检测广播和组播广播广播发送`setsockopt`广播发送示例广播接收组播网络地址组播发送组播接收加入多播组网络信息检索和套接字属性设置网络信息检索函数 getsockopt - get the socket options#include <sys/socket.h>int getsockopt(int so

2021-04-19 11:30:08 410

原创 TCP/IP 网络程序设计——基础篇

文章目录预备知识SocketIP 地址端口号字节序系统调用TCP 服务器、客户端TCP 服务器端流程TCP 客户端流程网络编程相关 APISocket地址相关的数据结构`bind()``listen()``accept()` 函数`connect()``send()``recv()``read()`/`write()`套接字的关闭`shutdown()` 的 `howto` 参数`TCP 通讯程序设计 - 实例编写`解决 bind 冲突UDP 服务器、客户端UDP 服务器端流程UDP 客户端流程`sendt

2021-04-19 11:25:47 654

原创 Internet 与 TCP/IP 协议

文章目录Internet 历史OSI 模型与 TCP/IP 协议体系结构网络的体系结构OSI 开放系统互联模型OSI 模型七层结构TCP/IP 协议族的体系结构TCP/IP 与 OSI 参考模型的对应关系TCP/IP 协议TCP/IP 协议族TCP/IP 协议通信模型数据的封装与传递过程发送端:数据打包接收端:数据解包TCP/IP 结构TCP/IP 协议下的数据包TCP 和 UDP 协议UDP 和 TCPTCP/IP 协议的特点TCP 传输UDP 协议的特点UDP 传输思考Internet 历史计算机与

2021-04-19 11:17:17 1177

原创 注意点

父进程需要关闭 acceptfd(确保 acceptfd 的引用计数会变为 0,否则父进程不关闭的话始终占用引用计数)、子进程需要关闭 sockfd关于父子进程并发,那么父进程和子进程共用同一端口及 IP 地址。当父进程的监听套接字封装完毕后,此连接套接字的套接字对(套接字对是唯一标识一个网络上的每个 TCP 链接)可以表示为 {*:21 , *:*},第一个 *(通配符)表示任意本地端口(也就是说如果服务器是多宿的话,那么此主机可能拥有多个服务器 IP 地址,要么指定一个,要么指定任意),第二对*.

2021-04-19 11:09:21 159

原创 GDB 调试工具

文章目录调试器 -- Gdb 调试流程gdb 调试流程gdb 的使用切记点gdb 调试Coredump 故障分析调试器 – Gdb 调试流程首先使用 gcc 对 test.c 进行编译,注意一定要加上选项 -g# gcc -g test.c -o test 生成符号表# gdb testgdb 调试流程查看文件 (gdb) l设置断点 (gdb) b 6查看断点情况 (gdb) info b运行代码 (gdb) r查看变量值 (gdb) p n单步运行(gdb) n(gd

2021-04-19 10:58:11 74

原创 GCC 编译器

文章目录GNU 工具部分相关资源GCC 简介GCC 编译器的版本编译器的主要组件GCC 的基本用法和选项GCC 的错误类型及对策GCC 使用实例GCC 编译过程,分为四个步骤GNU 工具编译工具:把一个源程序编译为一个可执行程序调试工具:能对执行程序进行源码或汇编级调试软件工程工具:用于协助多人开发或大型软件项目的管理,如 make、CVS、Subvision其他工具:用于把多个目标文件链接成可执行文件的链接器,或者用作格式转换的工具。部分相关资源http://www.gnu.org/

2021-04-18 19:55:13 126

原创 进程间通讯

文章目录Linux 下进程间通信概述无名管道管道创建与关闭 create pipe - `pipe`管道的读写FIFO信号通信信号发送与捕捉信号的处理 ANSI C signal handling - `signal`共享内存IPC对象共享内存实现共享内存举例消息队列典型的基于 `msq` 的 CS 模型消息队列举例信号灯`sem` 函数信号灯的典型应用进程间通讯方式比较Linux 下进程间通信概述进程间通信:进程在用户空间内是相互独立的,无法在用户空间内进行通信。但是它们都可以访问内核,那么它们可

2021-04-18 19:44:23 277

原创 Linux 线程

文章目录Linux 线程线程基础多线程编程create a new thread - `pthread_create`terminate calling thread - `pthread_exit`Linux 线程同步和互斥信号量线程间同步线程间同步 - P/V 操作Posix Semaphore API线程同步示例互斥锁线程间互斥Posix Mutex API条件变量Linux 线程线程基础每个用户进程有自己的地址空间系统为每个用户进程创建一个 task_struck 来描述该进程该结构体中

2021-04-18 19:43:02 92

原创 进程

文章目录进程基础进程相关的基本概念进程与程序Linux 下的进程结构Linux 系统中的进程类型进程运行状态进程的模式调度进程进程的相关系统调用create a child process - `fork`execute a file - `execl`, `execlp`, `execle`, `execv`, `execvp`, `execvpe``exit` 和 `_exit`wait for process to change state - `wait` 和 `waitpid`守护进程守护进程**

2021-04-18 19:41:18 270

原创 LINUX 时间编程

文章目录核心理论函数学习 - 时间操作获取日历时间 `time` - get time in seconds获取本地时间 `localtime` - transform date and time to broken-down time or ASCII思考核心理论时间类型Coordinated Universal Time(UTC):世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。Calendar Time:日历时间,是用“从一个标准时间点(如

2021-04-18 19:38:57 153

原创 标准 IO 库

介绍不仅在 UNIX 系统,在很多操作系统上都实现了标准 I/O 库标准 I/O 库由 ANSIC 标准说明标准 I/O 库处理很多细节,如缓存分配、以优化长度执行 I/O 等,这样使用户不必关系如何选择合适的块长度标准 I/O 在系统调用函数基础上构造的,它便于用户使用标准 I/O 库及其头文件 stdio.h 为底层 I/O 系统调用提供了一个通用的接口文件指针FILE 指针:每个被使用的文件都在内存中开辟一个区域,用来存放文件的有关信息,这些信息是保存在一个结构体类型的变量中,该结

2021-04-18 19:37:26 185

原创 文件 IO

open/close打开文件 open and possibly create a file or device - open#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags)int open(const char *pathname, int flags, mode_t mode)DESCRIPTION

2021-04-18 19:34:30 123

原创 UNIX 文件基础

系统调用和库函数系统调用:用户空间进程访问内核的接口把用户从底层的硬件编程中解放出来极大的提高了系统的安全性使用户程序具有可移植性是操作系统的一部分库函数:库函数为了实现某个功能而封装起来的 API 集合提供统一的编程接口,更加便于应用程序的移植是语言或者应用程序的一部分库函数不一定都包括系统调用输入和输出文件描述符顺序分配的非负整数内核用以表示一个特定进程正在访问的文件其他资源(socket、pipe 等)的访问标识标准输入、标准输出和标准出错0、1

2021-04-18 19:32:54 58

原创 Debian 使用

文章目录Based Ubuntu versionDebian 中科大源替换Based Ubuntu versionYou can find the Debian version on which your Ubuntu version is based in the file: /etc/debian_versionFrom 10.04 up to 19.04:UbuntuDebian19.04 discobuster / sid - 1018.10 cosmicbus

2021-04-18 19:26:04 280

原创 Ubuntu 使用

文章目录窗口拖动:`alt` + 右击SSHD 服务器搭建SAMBA 服务器搭建Ubuntu18.04 从英文界面更改为中文界面增加 Swap 分区在 Ubuntu 16.04 上Swap 介绍检查系统的交换信息检查硬盘驱动器分区上的可用空间创建 swap 文件启用交换文件永久保留交换文件调整你的交换设置双系统安装 Ubuntu 后无法进入 Windows 的解决方法常用 APT 包文章目录窗口拖动:`alt` + 右击SSHD 服务器搭建SAMBA 服务器搭建Ubuntu18.04 从英文界面更改为中文

2021-04-18 14:28:49 227

原创 Linux 使用

忘记 root 密码的解决办法重启系统后出现 GRUB 界面在引导装载程序菜单上,用上下方向键选择你忘记密码的那个系统键入 e 来进入编辑模式。下来你可以看到如下图所示的画面,然后你再用上下键选择最新的内核(这里是第二行,kernel …),然后继续按 e 键。然后在编辑界面 rhgb quiet 后面加”空格”,然后键入 single,或者直接输入数字的 1 并回车确定。回车后,按 b 键启动进入单用户模式,在这里修改 root 的密码。这样重启之后 root 密码就已经被修改了!.

2021-04-17 20:29:54 55

原创 软件包管理

文章目录Linux 软件安装管理概述流行的两种软件包管理机制软件包的类型源码包二进制包和脚本安装包软件包的命名软件包管理工具分类`dpkg` 相关命令APT 工作原理软件管理相关工作管理软件包修复软件包依赖关系更新软件包安装软件包卸载软件包清理软件包缓冲区查询软件包信息获取软件包安装状态`add-apt-repository ``apt-key``man apt/apt-get`总结与思考RPM 命令管理RPM 包的来源RPM 包命名原则安装命令RPM 包查询yum 在线管理yum 源文件光盘 yum 源搭

2021-04-17 20:24:31 895

原创 Linux shell 脚本编程

文章目录shell 脚本的基础知识shell 变量位置变量shell 脚本-说明性、功能性、测试语句说明性语句(注释行)常用功能性语句(命令)`read` 命令`expr` 命令`shift` 命令测试语句 `test`shell 终端相关命令shell 分支语句条件测试语句(两路分支)`if…then…fi``if…then…else…fi``if…then…elif…then…else…fi`多路分支语句 `case…esac`shell 循环语句循环语句 `for` 的用法循环语句 `while` 的

2021-04-17 20:13:22 247

原创 VI 编辑器的使用

文章目录VI编辑器-概述熟悉 vi 的三种模式及模式切换命令熟练使用 vi 的拷贝和粘贴命令熟练使用 vi 的保存和退出命令熟练使用 vi 的光标命令熟练使用 vi 的查找命令熟练使用 vi 的替换命令vi 的文本编辑使用 vi 分析源代码总结与思考思考VI编辑器-概述Visual Interface(可视化接口)编辑source insightVCgetit – 记事本vivim类似 Windows 中的记事本,vi 是 Linux 中最基本的编辑器。但 vi 编辑器在系统管理、服务

2021-04-17 20:11:13 945

原创 理解 Linux 文件权限

文章目录Linux 安全性`/etc/passwd` 文件`/etc/shadow` 文件添加新用户删除用户修改用户用户登录查看命令使用 Linux 用户组`/etc/group` 文件解码文件权限使用文件权限符号修改安全设置Linux 安全性/etc/passwd 文件/etc/passwd 文件是系统能够识别的用户清单。用户登陆时,系统查询这个文件,确定用户的 UID 并验证用户口令linux:x:1000:1000:linux,,,:/home/linux:/bin/bash登陆名经过加

2021-04-17 20:09:04 159

原创 使用 Linux 环境变量

文章目录设置环境变量设置本地环境变量设置全局环境变量常用 shell 环境变量变量数组使用命令别名查看与设定别名别名永久生效与删除别名命令生效顺序设置环境变量设置本地环境变量shell 允许用户建立变量存储数据,但不支持数据类型(整型、字符、浮点型),将任何赋给变量的值都解释为一串字符Variable=valuecount=1echo $countDATE=`date`echo $DATE在 shell 编程中通常使用全大写变量,方便识别$ COUNT=1 等号两边不能加空格变量

2021-04-17 20:07:07 73

原创 程序、磁盘、打包、网络相关命令

文章目录监控程序进程查看实时进程监控停止进程监控磁盘空间介质挂载使用 `df` (disk free)命令使用 `du` 命令操作数据文件搜索数据压缩数据归档数据Linux 网络配置管理网络配置基础配置 IP 地址网络相关命令`ifconfig` 命令配置动态 IP 地址动态 IP 的获取过程Linux 网络配置文件`ping` 命令管理 DNS 服务器地址`nslookup` 命令总结与思考Linux 分区管理Linux 查看分区监控程序进程查看编译程序上的两个进程程序的一次执行过程就是一个进程

2021-04-17 18:07:07 172

原创 了解 shell

shell 基本命令shell 简介随着各式 Linux 系统的图形化程序的不断提高,用户在桌面环境下,通过点击、拖拽等操作就可以完成大部分的工作。然而,许多 Ubuntu Linux 功能使用 shell 命令来实现,要比使用图形界面交互,完成的更快、更直接。英文单词 shell 可直译为“贝壳”。“贝壳”是动物作为外在保护的一种工具。可以这样认为,Linux 中的 shell 就是 Linux 内核的一个外层保护工具,并负责完成用户与内核之间的交互。命令是用户向系统内核发出控制请求,与交互的

2021-04-17 17:57:02 215

原创 Linux 系统安装

虚拟机的安装Vmware 简介Vmware 是一个虚拟 PC 的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的 PC,以此来实现在一台机器上真正同时运行两个独立的操作系统。Vmware 官方网站 http://www.vmware.comVmware主要特点:不需要分区或重新开机就能在同一台 PC 上使用两种以上的操作系统本机系统可以与虚拟机系统网络通信可以设定并且随时修改虚拟机操作系统的硬件环境(内存不能超过主机的 50%)快照建议的 Vmware

2021-04-17 17:40:07 112

原创 Linux 介绍

Linux 介绍Linux 的发展Unix 的起源Unix 家庭树什么是 Linux?各种 Linux 发行版本开源软件简介Linux 应用领域Linux 与 Windows 的不同字符界面的优势Linux 体系结构Linux 操作系统的组件Linux 内核Linux 内核版本Linux 的发展Unix 的起源1969 年,由 Ken Thompson 在 AT&T 贝尔实验室与 MIT 实现的。使用的是汇编语言。1970年,Ken Thompson 和 Dennis Ritchie 是使

2021-04-17 17:37:01 664 7

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除