自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

江南又一春

志当存高远,勤必争朝夕。

  • 博客(228)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux 进程上下文

进程

2022-07-31 12:09:54 462 1

原创 linux硬件基础

linux 硬件基础

2022-07-31 00:43:55 260

原创 makefile——library

管理程序库创建及更新程序库程序库作为必要条件

2022-05-16 22:12:43 297

原创 makefile——杂项

1.phony target2.empty target3.VPATH & vpath

2022-05-16 22:08:57 108

原创 makefile——pattern rule

1.变量与自动变量2.通配符

2022-05-16 22:06:05 206

原创 makefile——rule概览

1.makefile 的组成及作用makefile由一组rule(规则)组成,规则的语法如下:obj1 obj2 objN: prerequisite1 prerequisite2 prerequisite3 prerequisiteN(tab) commands一个规则由三部分组成obj 即目标部分。必要条件部分(或者说依赖,即生成目标文件的依赖文件)。commands 从必要条件生成obj 需要执行的 命令。这一组规则会生成一个叫dependency graph 的东西,可以翻译成

2022-05-16 22:02:38 651

原创 tab 替换空格

col [-xb]cat -A 可以看见 tab 以^I 形式存在col -x 则将tab 替换为空格cat file | col -x | cat -A| more

2022-02-20 12:03:15 455

原创 linux 统计 单词数量,统计文件行数,统计字符数量——wc 命令

wc [-lwm] -l 统计行数 (line) -w 统计单词书 (word) -m 统计字符数

2022-02-20 11:59:29 2238

原创 linux 双向重定向 : tee 命令

tee的用法如下:ll /home/jerry | tee 将ll 的数据流通过管道 传递给tee 程序,tee 会将它打印到屏幕上(不是常规用法)ll /home/jerry | tee myll 将ll 的数据流通过管道 传递给tee 程序,tee 会将它打印到屏幕上,同时存一份到 myll 文件中(如果已经存在文件内容,则会清空)tee -a 在文件中追加...

2022-02-20 11:55:30 414

原创 一行执行多条linux 命令

case 1. 各命令之间不存在依赖关系cmd1 ; cmd2; cmd3; ....case 2. 命令之间存在依赖关系:&&cmd1 && cmd2 && cmd3 每一个linux 命令执行完以后会产生一个返回值,成功的话会返回0,&& 的意思是只有cmd1 执行成功了,也就是cmd1 的返回值是1的情况下, 才会执行 cmd2,cmd2 执行成功了才会执行cmd3。case 3. 命令之间存在依赖关系:||cmd1 |

2022-02-20 11:41:10 589

原创 Linux输入输出重定向

Linux 输入输出重定向的示意图如上图所示。执行command 的时候,默认情况下,会将标准输出,标准错误都输出到屏幕上去标准输入默认是键盘输入,但是可以将文件定向到标准输入中,幻数为0标准输出可以理解为执行成功,返回正确的信息,幻数为1,默认输出至屏幕标准错误可以理解为执行失败,返回错误的信息,幻数为2,默认输出至屏幕1. 输出重定向1.1 输出重定向的时候有两种方式:(1)覆盖 单符号 < >(2)追加 双符号 << >>因此重定向.

2022-02-20 11:16:01 3855

原创 UINIX 高级环境编程杂项之限制

unix操作系统定义了许多常量和幻数,代码在不同平台间移植的时候,可以通过一些已有的技术确定这些常量和幻数的值。限制的分类:(1)编译时限制举栗子:例如 short 类型在编译时应该占多少个字节,这在编译时必须确定。如果在linux 下定义short 变量时,就应该遵循POSIX标准,其中限制了short 应该占多少个字节,或者给出了实现应该遵循的一个范围标准。(2)运行时限制举栗子:程...

2021-09-05 21:33:59 263

原创 C++学习笔记——引用变量、参数传递、返回值

1.引用变量(1)什么是引用变量?为什么要引入引用变量?(1)应用变量是已定义变量的一个别名。(2)引用变量的底部实际上有一根指针,引用的传递数据的速度与指针的传递数据速度一样快,都是四个字节。但是引用传递比指针传递更好用,因为它的形式更好。(2)如何定义引用变量?如下面的例子:int x; int &y=x; (3)引用变量与常规变量有什么不同之处?...

2021-09-05 21:33:39 374

原创 linux 进程间通信(一)、经典通信方式(管道、FIFO、信号)

1.常用的进程间通信方式介绍1.1 linux支持的经典的进程间通信无名管道有名管道(FIFO)信号1.2 system V 进程间通信由贝尔实验室研发的进程间通信方式。其特点为只能在本机的进程之间进行通信。1.3 网络IPC socket由加州伯克利分校研发的进程间通信方式。其特点为既可以进行本机的进程间通信,又可以跨越机器,进行不同pc机的进程间通信。2. 管道2.1 ...

2021-09-05 21:33:26 504

原创 (二)计算机体系结构

第一部分 IO基础知识计算机系统软件体系结构采用一种层的结构,有人说过一句名言:“Any problem in computer science can be solved by anther layer of indirection.”“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决”0.计算机的体系结构图1.操作系统概念...

2021-09-05 21:33:08 157

原创 (三)文件操作之一——文件IO

IO课程--文件操作 文件操作部分中分为文件IO和标准IO,文件IO底层应用较多,标准IO上层应用叫做。-文件IO中需要学习的函数: open()/creat()、close()、read()、write()、lseek()(定位文件)1、文件描述符 (1)概念:文件描述符是文件IO 的操作对象。普通用户识别一个文件是通过路径和文件名,而内核...

2021-09-05 21:32:44 91

原创 解决Pycharm无法显示matplotlib绘图问题(ubuntu环境)

1.首先,确保环境(虚拟环境)中已经安装了matplotlib模块首先切换到虚拟环境中,然后安装安装命令:conda install matplotlib2.确定你的pycharm 使用的环境是你的虚拟环境(1)在pycharm中添加虚拟环境pycharm默认使用的环境可能并不是你想用的虚拟环境:如图在file->settings 里面可以找到配置虚拟环境的窗口。点1,...

2021-09-04 23:46:05 7306 1

原创 C++听课笔记之一(候捷主讲)

01_导读本课程目标:1、泛型编程(Generic Programming)和面向对象(Object-Oriented Programming)虽然分属不同的思维,但它们正是C++技术主流。因此,本课程也探讨template(模板)。2、深入探讨面向对象之继承关系所形成的对象模型(Object Model),包括隐藏域底层的this指针、vptr(虚指针)、vtbl(虚表),virtu...

2021-09-04 23:45:42 123

原创 C++听课笔记之二(候捷主讲)

06_namespace同一个企业两个独立的工作小组进行项目开发时,难以避免类、全局变量、函数重名的现象。为解决这个问题,C++发明了命名空间机制。也就是独立的工作小组可以将所有关于类、函数、变量的命名放在一个命名空间内(封装起来)。这样即使和企业的其他的工作有组在命名上有冲突,也不会引起编译器歧义。07_template 模板类 在设计类中某些数据的类型不确定时, 可以将...

2021-09-04 23:45:27 62

原创 安装linux系统

本人由于近期需要在linux环境下进行一些开发工作,而正在使用的系统为windows10 操作系统,故需装双系统以完成开发,在此将安装的过程做一个记录,以便他人借鉴。一、安装需要具备的条件安装主要分为以下几个条件ufi启动模式的windows10操作系统(你需要查看自己的电脑是否为uefi启动模式在运行中输入msinfo32,找到BIOS,看后缀是否为uefi)ubuntu18.4...

2021-09-04 23:43:59 226

原创 关于IO流的理解

存储的目标(比如一个文件)当做水池,链接水池和外界的是水管,这个水管往水池里灌水,或者把水池里的水泵出来,形成“流”。往里灌水(写文件)时,对于水管(流)来说,是“将水管里的水输出到水池里”,此时对于流来说是输出流;往外排水(读文件)时,对于水管(流)来说,是“将水池里的水输入到水管里”,此时对于流来说是输入流。一开始总是站在水池的角度,总是想不明白,站在水管的角度就明白了。...

2021-09-04 23:43:12 46

转载 解决github反应慢问题

1,CDN,Content Distribute Network,可以直译成内容分发网络,CDN解决的是如何将数据快速可靠从源站传递到用户的问题。用户获取数据时,不需要直接从源站获取,通过CDN对于数据的分发,用户可以从一个较优的服务器获取数据,从而达到快速访问,并减少源站负载压力的目的。2,为什么访问速度慢、下载慢?答:github的CDN被某墙屏了,由于网络代理商的原因,所以访问...

2021-09-04 23:42:04 386

原创 杂项之《unix 高级环境编程》中的概念理解

1、目录目录是一个包含目录项的文件。2、目录项逻辑上,可以认为每个目录项包含一个文件名,同时包含该文件的属性信息。3、文件属性文件属性是指文件的类型文件的大小文件的所有者文件的权限(其他用户是否可以访问)文件的最后修改时间注意:stat 和 fstat函数返回一个文件属性的 结构(这个结构的作用是描述文件的信息。)目录项逻辑上与实际磁盘存储是不同的。大多数的unix文...

2021-09-04 23:41:36 107

原创 linux磁盘分区

1.为什么要分区?数据的安全性:因为每个分区槽的数据是分开的!所以,当你需要将某个分区槽的数据重整时,例如你要将计算机中Windows 的 C 槽重新安装一次系统时, 可以将其他重要数据移动到其他分区槽,例如将邮件、桌面数据移动到 D 槽去,那么 C 槽重灌系统并不会影响到 D 槽! 所以善用分区槽,可以让妳的数据更安全。系统的效能考虑:由于分区槽将数据集中在某个磁柱的区段,例如上...

2021-09-04 23:40:58 260

原创 C++学习笔记——几个特殊的成员函数

我们设计的类中,C++可能会给我们默认添加一些函数:默认构造函数 默认析构函数 拷贝构造函数 拷贝赋值函数 地址运算符函数 移动构造函数(C++11) 移动赋值函数(C++11)下面来分别讲一下这几个函数的功能、这些函数在什么情况下被调用以及是否应该重载这些函数。1.默认构造函数如果程序员定义的类中没有提供任何构造函数,编译器将会自动为类添加一个构造函数。编译器添加的这...

2021-09-04 23:38:39 211

原创 C++学习笔记——操作符函数、函数接口设计

1.什么是操作符重载,什么是操作符函数?在C++中,允许对各种运算符进行重新定义,也就是定义过的操作符实际是一个函数,而这种重新定义操作符就叫做操作符重载,重新定义操作符的函数叫操作符函数。2.设计函数时,首先考虑,将函数设计成全局函数还是成员函数?设计任何一个函数时都可以有两种考虑,将函数设计成全局函数或将函数设计成成员函数。将函数设计成成员函数还是全局函数依需要而定,二者没有...

2021-09-04 23:37:45 302

原创 代码浏览与补全之ctags

1. ctags 简介ctags 是一个外部程序,通过它扫描代码库,可以生成代码中关键字的索引,生成的索引以tags文件形式存在。它的作用包括浏览代码时基于关键字跳转写代码时基于关键字自动补全2. ctags 安装2.1 查看本地是否安装了ctagsubuntu 默认应该是已经安装了ctags的ctags -version2.2 ubuntu 安装ctags如果系统中没有安装ctags 可以通过下面的命令进行安装:sudo apt-get install exuberant-cta

2021-08-22 22:49:38 490

原创 硕士论文word技巧总结

一、基本操作第一步:列章节结构列出文章整体框架,章节条都不要打上数字,设置多级列表时会自动生成。第二步:设置章、节、条、正文格式设置字体(包括中英文)、字号、段落缩进等。第三步:设置多级列表(1)选中标题格式(2)定义新的多级列表(3)在弹出的对话框点更多(4)选择将级别链接到样式(5)章节条标题编号以后设置为空格(6)如果设置节标题,则勾选正规形式编号二、页眉页脚第一步:分节,将正文、目录页之前等分成多个小节。各个小节取消与上一个小节的关联。第二步:正文设置页眉页

2021-06-03 08:20:33 184

原创 第二十二章、软件安装 RPM, SRPM 与 YUM(一)

1.RPM简介1. 相比于Tarball软件包,采用二进制文件形式安装软件的优点?二进制文件安装形式比较简单二进制形式安装软件,厂商已经根据不同的硬件环境将不同的系统软件已经进行了编译。因此,用户只要下载对应硬件的软件版本,就无须再次编译该软件就能直接安装了。这对于新手来说尤其重要,因为Tarball形式安装软件需要具备一定的基础才能正确的安装。软件的管理变得容易通过二进制形式安装软件的另外一个好处是软件管理比较容易,因为二进制形式安装软件配套了相应的软件管理机制,例如RPM(centos

2021-05-04 03:00:35 107

原创 第二十一章 软件安装:原始码与Tarball

1. 软件安装1. Linux系统下安装软件的方式有哪几种?通过Tarball 源码安装通过 二进制文件安装linux 下的软件大都进行了GPL的授权,即开放了源码,因此可以通过下载源码,进行编译的方式来安装软件。这种方式的优点是比较灵活,即可以根据使用者的需求去更改源码。另外,相比于直接闭源软件,开源软件的安全性更好,因为所有使用者都可以阅览源码,因此可以及早发现软件漏洞以及进行修复。2. 什么是Tarball?Tarball包含的内容?Tarball 安装的一般步骤?通过源码形式安装软件

2021-05-01 02:29:30 523 1

原创 第六章 链接

1. 链接概述1.1 链接的时机编译时加载时运行时1.2 理解连接器的意义构造大型程序(连接器使得分离编译变为可能)避免错误(例如错误定义全局变量)理解作用域规则的实现利用共享库2. 编译驱动程序编译系统一般提供编译器驱动程序,它用来在用户需要时调用:语言预处理器(cpp)编译器(cc1)汇编器(as)连接器(ld)2.1 程序编译过程一个简单的main.c 调用 sum.c 执行加法运算的程序的编译过程main.c -> mian.osum.c -

2020-12-24 09:51:02 72

原创 word常用技巧

1. 上标注、下标快捷键上标快捷键:ctrl+shift+“=”下标快捷键:ctrl+“=”

2020-12-08 22:43:32 72

原创 利用ssh协议搭建git远程服务

需求:(1) 公网服务器搭建git服务,放代码裸库。(2) 本地机器通过ssh协议push/pull 代码。2. 客户端(1)根据已有的代码生成 裸代码库git clone --bare 4GConverge 4GConverge.git所谓的裸代码库是指没有工作区的git仓库,类似于只有.git文件夹。(2) scp 将裸代码库放到 服务器上(3) 生成 SSH公钥可以先看一下自己机器上是否已经存在SSH公钥 cd ~/.ssh #查看id_dsa.pub 文件是否存在,如

2020-11-29 21:49:38 625

原创 《跟我一起写Makefile》记录(一)

声明:本文记录本人看网络上关于Makefile的文档《跟我一起写Makefile》(陈皓 写),其中主要讲述了GUN Make 自动化编译工具的运用。本人以linux/C++角度学习Make,博文中加入了一些我个人的一些理解。1.编译、链接、中间文件、库文件编译: 将C++源码 使用g++编译器 生成 .o 文件的过程称为编译。链接: 将多个.o文件 生成一个可执行程序的过程称为链接。中间文件: 从源代码 到最后的可执行文件中间的 文件形态称为中间文件。比较典型的有.o 文件库文件: 将多个.o

2020-11-29 16:28:24 97

原创 linux命令行模式登陆

设置linux默认登陆模式开机以命令模式启动,执行:systemctl set-default multi-user.target开机以图形界面启动,执行:systemctl set-default graphical.targetlinux命令行模式登陆乱码修改/etc/default/locale命令:sudo vim /etc/default/locale1将下面这两行LANG=zh_CN.UTF-8LANGUAGE=zh_CN:zh替换为LANG="en_US.UTF-

2020-11-18 17:10:43 1104

原创 ubuntu 安装 flush插件

ubuntu 安装 flush插件sudo apt-get install flashplugin-installer

2020-11-15 21:16:41 329

原创 为什么要划分子网?

为什么我们要划分子网?(1)减少网络流量。子网定义了一个网络最大的广播空间(受限广播),可以减少网络流量(2)提高网络性能。如果不划分子网,那么我们的网络将是一个巨大的、扁平的网络空间,这将导致网络性能下降。(寻址变慢了)(3)便于网络管理。分层次的网络可以更加方便网络管理员对于网络的管理,就类似于学校要分年级,年级要分班。子网掩码可以将地址分成两部分:网络部分,主机部分。受限广播地址: 不会被路由,只能在本网络内传播。直接广播地址: 会被路由,将会在整个网络域内传播。IPv6 不再使用广播概

2020-11-14 17:19:39 14005

原创 vim常用操作及配置

使用vim 需要设置的常用配置/etc/vimrc 中追加:set nuset ts=4set expandtabset softtabstop=4set shiftwidth=4set fileencodings=utf-8,gbkcolorscheme ron常用快捷键ctrl + v 列选中v 行选中ctrl + o 跳转到上次跳转出ctrl + shift + c 复制ctrl + shift + v 粘贴vsp + 文件名 开多屏ctrl + w + w 切屏s

2020-11-07 16:53:46 155

转载 参考

任务可以分成两种,一种是同步任务(synchronous),另一种是异步(asynchronous)。同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有"任务队列"通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。(1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。(2)主线程之外,还存在一个"任务队列"(task q.

2020-06-15 19:13:02 173

原创 shell 编程入门

1. 定义变量1.1 常用的系统变量$HOME 用户的主目录$PWD 当前目录$SHELL 执行的shell解释器的目录$USER 用户名1.2 自定义变量1.2.1 定义变量变量名=变量值注意:shell脚本语言 变量不需要指定类型。等号两侧不可以有空格。变量名的标识符规则和c语言一样。默认的变量类型为字符串类型,不可以进行四则运算。如果变量中有空格存在,则需要使用单引号或者双引号将变量值引起来。1.2.2 撤销变量unset 变量名1.2.3 定义静态变

2020-06-14 22:14:36 773

正则表达式必知必会v_1.0.pdf

正则表达式必知必会v_1.0.pdf

2022-01-02

空空如也

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

TA关注的人

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