自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(272)
  • 资源 (5)
  • 收藏
  • 关注

原创 Linux环境搭建 | 全能终端神器——MobaXterm

现今软件市场上有很多终端工具,比如:secureCRT、Putty、telnet,等等。secureCRT其实也是一款很强大的终端工具,良许也使用过它很长时间,但是,它毕竟是收费软件,在公司里不允许使用。而且在良许自己的电脑里一量输入大写,整个界面就乱了(原因未知,未深究),这是直接导致良许放弃它的原因。而Putty,它非常小巧,而且免费,在我们公司大量使用。但是良许不喜欢它的原因是它真的不好...

2018-12-05 19:32:21 34439 5

原创 Linux应用开发自学之路

 前言    在 「关于我 」那篇博文里,朋友们应该知道了我不是科班出身,是由机械强行转行到Linux应用开发方向。下面我就详细向大家介绍自己这一路上的转行历程,希望对大家有所启发。 我是学机械专业的,对于机械专业我还是很感兴趣,而且当年这个专业也是我自己选择的。本科时成绩没排第一,但也排专业前列。硕士时成绩一直是专业第一,还拿过国家奖学金。由此可见,我还是挺热爱机...

2018-06-09 21:33:27 53103 50

转载 五分钟通俗理解自动驾驶

这几年,自动驾驶这个概念非常火热,无论是百度还是谷歌,都做出了还不错的原型机,但是你真的知道什么是自动驾驶吗?

2022-07-15 18:11:54 1092

原创 良许跌宕起伏的2021年

大家好,我是良许,前码农,现创业者。时间飞逝,转眼就2021年年尾了,向各位「股东」们汇报一下良许的 2021 年。公众号运营至今,每年我都会写年终总结,前三次总结给大家放在下面了,各位看官们来帮我打打脸。2018年终总结:回顾2018,展望20192019年终总结:副业收入超过主业收入,我是怎么做到的?2020年终总结:万万没想到,良许也开挂了2018 年开号至今,公众号已运营 3 年半。前三年公众号的发展一路高歌猛进,顺风又顺水。而在今年,由于市场的突变,发展的势头有所放缓。正因为公众号的

2021-12-30 21:02:25 922

原创 [Git专题] 环境搭建

环境搭建在正式使用 Git 之前,首先应当安装 Git 并完成一些基础配置,本章内容就教大家在 Ubuntu 和 CentOS 上安装 Git 的方法。安装 Git 客户端如果你使用的是基于 Debian 的 Linux 发行版本,那么应当使用 apt-get 命令来完成安装操作,如下能查到 Git 版本即为安装成功:[jerry@CentOS ~]$ sudo apt-get install git-corepassword for ubuntu:[jerry@CentOS ~]$ git

2021-11-26 18:05:23 1457

原创 rm刷新了我的认知

大家好,我是良许。创建、删除和修改文件是用户在 Linux 系统中执行的非常常见操作。大家都知道,在 Linux 系统里使用 rm 命令删除单个文件时,几乎一瞬间就完成了。但是如果文件数量很大,那么删除操作就需要很长时间才能完成。你有没想过,删除 50 万个小文件,需要花费多少时间?我写这篇文章的目的,是为了找出在 Linux 中删除巨量文件的最快方法。通过测试发现,rm 命令简直弱爆了!我们将从一些简单的文件删除方法开始,然后比较不同方法完成文件删除任务的速度。看看哪种方式删除速度最快。1.

2021-11-23 19:53:01 5998 8

原创 图解固件、驱动、软件的区别

大家好,我是良许。不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢?我在朋友圈做了个小调查,发现居然很多人不清楚他们的关系,因此写下此文来给大家做个简单的科普。文字描述太抽象了,我们直接来看漫画吧。好了,看完漫画,我们再来看正规的解释是怎样的。简单来讲,固件、驱动程序和软件之间的根本区别在于它们的设计目的。固件是赋予设备硬件生命的程序驱动程序是操作系统和硬件组件之间的中间人软件可以间

2021-11-22 20:45:02 3983

原创 一本神奇的电子书

大家好,我是良许。印象中,我们接触到的编程书籍都是这样的:这样的书籍,去除阅读属性之后,还可以用来垫电脑屏幕、垫桌脚、盖泡面、砸产品经理,实乃居家、旅行、自卫必备神器!这种书籍一般内页长这样:正是由于这类书籍枯燥无味,味如嚼蜡,使得它们自出厂以来,到读者手里多年,仍保持光亮如新,光彩照人,不用刻意维护也一直是一件称手的工具、武器。而且使用者的脑门也渐渐与武器一样锃亮闪人。但是,前几天良许在朋友圈批阅奏章的时候,偶然发现,江湖上居然流传一本以小说形式编写的技术书籍,顿时眼前一亮,发现新大陆!

2021-11-21 11:02:05 5214 4

原创 Linux系统查看磁盘可用空间的5个命令

大家好,我是良许。工作中,经常会遇到磁盘爆满的情况,尤其是一台服务器运行了 N 年之后,里面会充满各种各样垃圾文件,比如:编译产生的中间文件、打包的镜像文件、日志文件,等等。别问我怎么知道,我上家公司服务器就是这样的,我需要每天去删除一些没用的文件,才能腾出一些空间来工作。那如何查看 Linux 系统磁盘的可用空间呢?下面给大家介绍 5 个我工作中常用到的命令。df 命令df 命令是英文单词 disk-free 的缩写,用于查看 Linux 系统中的可用的和已经使用的磁盘空间。这个命令一般有以下几

2021-11-17 20:44:51 8862

原创 不自由的自由职业

大家好,我是良许,前码农,现在自由职业者。有关注我朋友圈的小伙伴都知道,就在上周,我刚刚结束了长达 35 天的「假期」。此言一出,立刻掀起了评论区留言狂潮,大家纷纷问我,你特么不是自由职业吗?哪来的假期?别急,请听我慢慢道来。这 35 天里,我的行程是这样的:广州出发 → 衡阳 → 郴州 → 长沙 → 福州 → 仙游 → 厦门 → 返回广州。是不是看起来挺爽,挺自由自在的?而且也非常符合大家心目中所想象的自由职业的样子?但这一切只是表面,真正的自由职业并没有大家所想象的那么自由。自由职业应该

2021-11-16 11:34:20 2510

原创 Linux系统僵尸进程详解

大安好,我是良许。本文我们将来讨论一下什么是僵尸进程,僵尸进程是怎么产生的,如何杀死一个僵尸进程。Linux中的进程是什么?讲到进程,我们要先了解一下另一个概念:程序。程序说白了就是躺在电脑硬盘上的一个文件而已(如同硬盘女神一样),在被 CPU 执行之前,它啥也做不了。当程序被执行之后,它运行的实例就称为进程 。一个程序可以对应多个进程。进程是系统的工作单元。系统由多个进程组成,其中有的是操作系统进程(执行系统代码),其他的是用户进程(执行用户代码)。所有这些进程都会并发执行,例如通过在单 C.

2021-11-14 21:13:44 1177

原创 Linux at命令详解

大家好,我是良许。生活中,我们有太多场景需要使用到闹钟,比如早上 7 点起床,下午 4 点开会,晚上 8 点购物,等等。在 Linux 系统里,我们同样也有类似的需求。比如我们想在凌晨 1 点将文件上传服务器,或者在晚上 10 点确认系统状态,等等。但我们不可能一直守在电脑前,毕竟我们也需要下班/睡觉,还要陪女朋友(new一个也行)。而且即使在上班期间,如果到点了还需要人工操作,未免效率太低了。at 命令就是为这个需求而诞生的。使用 at 命令,你可以在特定时间自动完成你所设定的任务,也可以实现自.

2021-10-29 20:19:46 1966

原创 人人都写过的5个Bug!

大家好,我是良许。计算机专业的小伙伴,在学校期间一定学过 C 语言。它是众多高级语言的鼻祖,深入学习这门语言会对计算机原理、操作系统、内存管理等等底层相关的知识会有更深入的了解,所以我在直播的时候,多次强调大家一定要好好学习这门语言。但是,即使是最有经验的程序员也会写出各种各样的 Bug。本文就盘点一下学习或使用 C 语言过程中,非常容易出现的 5 个 Bug,以及如何规避这些 Bug。这篇文章主要面向初学者,老鸟可以忽略哈(其实不少老鸟依然还会犯这些低级错误哦)~1. 变量未初始化当程序启动时.

2021-10-28 11:00:04 949

原创 [Git系列] Git 基本概念

版本控制系统版本控制系统是一种帮助软件开发者实现团队合作和历史版本维护的软件,一个版本控制系统应具备以下列出的这几个基本功能:允许开发者并发工作;不允许一个开发者覆写另一个开发者的修改;保存所有版本历史。版本控制系统可以分为如下两类:集中式版本控制系统;去中心式(分布式)版本控制系统。Git 是一种分布式版本控制系统。在这一章里,我们将着重介绍分布式版本控制系统,特别是重点介绍 Git。分布式版本控制系统集中式版本控制系统是用一个中央服务器存储所有文档并在此中央服务器上实现团队.

2021-10-25 18:05:32 937

原创 wget命令8种实用用法

大家好,我是良许。wget 是一个可以从网络上下载文件的免费实用程序,它的工作原理是从 Internet 上获取数据,并将其保存到本地文件中或显示在你的终端上。这实际上也是大家所使用的浏览器所做的,例如 Firefox 或 Chrome,其实在内部也是调用了 wget 程序进行数据下载。本文介绍 8 个 wget 命令常见使用方式,希望对小伙伴们有所帮助。1. 使用 wget 命令下载文件你可以使用 wget 命令来下载指定链接的文件。默认情况下,下载的文件将保存到当前工作目录中的同名文件中。$

2021-10-22 12:31:06 1931 2

原创 重磅!微信官方恢复了个人红包封面的制作入口,限时开放!!.md

前两天微信开放了个人红包封面,引起了大家欢呼雀跃~可惜……没几个小时,因为一个不可描述的原因,官方小程序下架了……但是,现在好消息来啦,官方又恢复个人红包封面制作啦~本文教你如何制作红包封面,免费,不花钱。快去制作属于自己的红包封面吧。今年过年发红包就靠它了!关键词:微信红包封面个人免费制作iOS 更新到最新版安卓用户再耐心等等要知道,之前制作红包封面都要审核的非常耗时、也不一定审核通过。难度很大,对红包的封面素材要求很高。如果不是UI专业的,很难搞定。但是,这次,免费!只

2021-02-07 17:05:28 1586 1

原创 Linux安装软件时90%的人会遇到这个报错,如何解决?

提示 Could not get lock /var/lib/dpkg/lock 报错?有些小伙伴在使用 apt 包管理器更新或安装软件时,可能会遇到过诸如以下的错误提示:E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend

2020-10-19 19:41:11 1714 2

原创 Linux系统编程—信号捕捉

前面我们学习了信号产生的几种方式,而对于信号的处理有如下几种方式:默认处理方式;忽略;捕捉。信号的捕捉,说白了就是抓到一个信号后,执行我们指定的函数,或者执行我们指定的动作。下面详细介绍两个信号捕捉操作参数:signal和sigaction。##signal函数函数原型:sighandler_t signal(int signum, sighandler_t handler);其中,sighandler定义是这样的:typedef void (*sighandler_t)(int);函

2020-10-17 18:44:42 936 1

原创 Linux系统编程 —线程同步概念

##同步概念同步,指对在一个系统中所发生的事件之间进行协调,在时间上出现一致性与统一化的现象。但是,对于不同行业,对于同步的理解略有不同。比如:设备同步,是指在两个设备之间规定一个共同的时间参考;数据库同步,是指让两个或多个数据库内容保持一致,或者按需要部分保持一致;文件同步,是指让两个或多个文件夹里的文件保持一致,等等。但是,在软件编程或者通信行业中所说的同步与生活中大家印象中的同步概念略有差异。“同”字应是指协同、协助、互相配合。主旨在协同步调,按预定的先后次序运行。注意,这里是指按照预定次序执行

2020-10-16 20:03:12 805

原创 超好用的UnixLinux 命令技巧 大神为你详细解读

1、删除一个大文件我在生产服务器上有一个很大的200GB的日志文件需要删除。我的rm和ls命令已经崩溃,我担心这是由于巨大的磁盘IO造成的,要删除这个大文件,输入:> /path/to/file.log # 或使用如下格式 : > /path/to/file.log # 然后删除它 rm /path/to/file.log 2、如何记录终端输出?试试使用script命令行工具来为你的终端输出创建输出记录。script my.terminal.sessio 输入命令:ls da

2020-10-15 21:23:04 931

原创 在Linux命令行内的大小写转换

在编辑文本时大小写常常是需要注意的地方,大小写的转换是很枯燥而繁琐的工作,所幸,Linux 提供了很多能让这份工作变得容易的命令。接下来让我们看看都有哪些完成大小写转换的命令。tr 命令tr (translate) 是能运用在命令行或者脚本上的最简单的大小写转换命令之一。例如如果你想要让一串字符串全部是大写字母,你可以用如下所示的命令完成这个内容:$ echo hello alvin | tr [:lower:] [:upper:]HELLO ALVIN以下为该命令应用在脚本上的例子,写入文件dep

2020-10-14 19:00:39 3568 1

原创 来,你们想要的打卡功能

前言​ 你的世界多数情况下充满了混沌和单调,你的身体虽然不胖但并不会让你感觉到那么有力量;你的过往乏善可陈,充斥着很多伤心与 自我否定,你过往的未来也没有惊喜在场。你想要一场新生,想要一次脱胎换骨,没有行动,一切都是空想,依旧忍受痛苦与弱小。一点一滴的积累,才能感受飞轮转起来时的酣畅淋漓,才会有气势如虹的力量 ,一点一滴的积累就是需要一个打卡的功能。打卡在生活中还是应用挺多的,比如上班打卡,健身打卡,学习打卡...等等实际上打卡功能开发是挺容易的,让我们来一起实现它吧,让我们自己用着自己开

2020-10-13 20:47:49 2346 1

原创 tmpwatch命令清除旧文件

我们知道系统里面常常会有一些忘记删除的长时间不用而且确实没有用处的文件,如果不去处理,这些无用的文件会越来越多,浪费许多系统资源。在不知道文件名的情况下,很难去检查某一目录下到底是哪些文件长时间没有被访问,同时删除这些文件。我们今天就介绍一款非常实用的工具来完成这一工作————tmpwatchtmpwatch 是什么tmpwatch 能够循环地删除指定目录下指定时间内没有被访问的文件,这一命令常常用于清理临时文件目录,比如 /tmp 或者 /var/tmp 这类目录。它只清除指定目录下的空目录、普通文

2020-10-12 19:19:21 538 1

原创 Linux基础入门 vim常用命令详解

介绍vim是一个文本编辑程序没有菜单,只有命令,且命令繁多命令行模式下相关命令移动光标​ h: ← 左移​ l: → 右移​ j: ↓ 下移​ k: ↑ 上移​ gg: 光标移动文件开头​ G: 光标移动到文件末尾​ 0: 光标移动到行首​ $: 光标移动到行尾​ 123G:跳转到第123行删除字符​ x: 删除光标后一个字符,相当于 De

2020-10-11 16:43:17 702

原创 Linux系统编程—管道

▋**1. 管道的概念**管道,又名「无名管理」,或「匿名管道」,管道是一种非常基本,也是使用非常频繁的IPC方式。1.1 管道本质管道的本质也是一种文件,不过是伪文件,实际上是一块内核缓冲区,大小4K;管道创建以后会产生两个文件描述符,一个是读端,另一个是写端;管道里的数据只能从写端被写入,从读端被读出;1.2 管道原理管道是内核的一块缓冲区,更具体一些,是一个环形队列。数据从队列的一端写入数据,另一端读出,如下图示:1.3 管道的优点简单1.4 管道的缺点只能单向通信,如果

2020-10-10 19:17:01 497

原创 Linux系统编程—有名管道

▋**1. 管道的概念**管道,又名「无名管理」,或「匿名管道」,管道是一种非常基本,也是使用非常频繁的IPC方式。1.1 管道本质管道的本质也是一种文件,不过是伪文件,实际上是一块内核缓冲区,大小4K;管道创建以后会产生两个文件描述符,一个是读端,另一个是写端;管道里的数据只能从写端被写入,从读端被读出;1.2 管道原理管道是内核的一块缓冲区,更具体一些,是一个环形队列。数据从队列的一端写入数据,另一端读出,如下图示:1.3 管道的优点简单1.4 管道的缺点只能单向通信,如果

2020-10-09 21:27:09 535

原创 Linux系统编程 —共享内存之mmap

共享内存概念共享内存是通信效率最高的IPC方式,因为进程可以直接读写内存,而无需进行数据的拷备。但是它没有自带同步机制,需要配合信号量等方式来进行同步。共享内存被创建以后,同一块物理内存被映射到了多个进程地址空间,当有一个进程修改了共享内存的数据,其余的进程均可看见所修改的内容,反之亦然。mmap函数函数原型:void *mmap(void *adrr, size_t length, int prot, int flags, int fd, off_t offset);返回值:成功:返回创建

2020-10-08 19:37:53 786

原创 Linux系统编程—信号集操作函数

先来回顾一下未决信号集是怎么回事。信号从产生到抵达目的地,叫作信号递达。而信号从产生到递达的中间状态,叫作信号的未决状态。产生未决状态的原因有可能是信号受到阻塞了,也就是信号屏蔽字(或称阻塞信号集,mask)对应位被置1。阻塞信号集和未决信号集均是由内核维护的,整个过程如下图示:我们有时需要屏蔽某个信号,就需要去修改阻塞信号集。那么,我们该如何修改阻塞信号集?系统提供的一个方法是,我们先创建一个跟阻塞信号集一样的集合,再利用它去修改阻塞信号集。系统提供了一系列的信号集设定函数。这些函数如下所示:s

2020-10-07 11:53:44 458

原创 Linux系统编程 —时序竞态

##时序竞态什么是时序竞态?将同一个程序执行两次,正常情况下,前后两次执行得到的结果应该是一样的。但由于系统资源竞争的原因,前后两次执行的结果有可能得到不一样的结果,这个现象就是时序竞态。##pause函数函数原型:int pause(void);函数作用:进程调用pause函数时,会造成进程主动挂起(处于阻塞状态,并主动放弃CPU),并且等待信号将其唤醒。返回值:我们知道,信号的处理方式有三种:1. 默认动作;2. 忽略处理;3. 捕捉。进程收到一个信号后,会先处理响应信号,再唤醒paus

2020-10-05 17:04:04 424

原创 Linux系统编程 —线程属性

在之前的章节中,我们在调用pthread_create函数创建线程时,第二个参数(即线程属性)都是设为NULL,即使用默认属性。一般情况下,使用默认属性已经可以解决我们开发过程中的大多数问题。但是,有时项目中我们对线程会有些特殊的要求,比如修改线程栈的大小,直接调用线程的库函数无法满足需求,在这种情况下我们可以直接对线程属性进行设置。类型pthread_attr_t是一个结构体,主要包括如下属性:作用域(scope)、栈尺寸(stack size)、栈地址(stack address)、优先级(prio

2020-10-03 14:00:15 403

原创 git 一个可以提高开发效率的命令:cherry-pick

各位码农朋友们一定有碰到过这样的情况:在develop分支上辛辛苦苦撸了一通代码后开发出功能模块A,B,C,这时老板过来说,年青人,我们现在先上线功能模块A,B。你一定心里一万只草泥马奔腾而过,但为了混口饭吃必须得按老板的意思办事啊。怎么办?一个办法就是,重新建一个分支,然后再把功能模块C回退,留下功能模块A,B。这种做法不是不行,但是有更好的办法,那就是git所提供的cherry-pick功能。cherry-pick类似于一个定制化的merge,它可以把其它分支上的commit一个个摘下来,合并到当前

2020-09-29 20:17:30 512 1

原创 Linux系统编程 —互斥量mutex

##互斥量mutex前文提到,系统中如果存在资源共享,线程间存在竞争,并且没有合理的同步机制的话,会出现数据混乱的现象。为了实现同步机制,Linux中提供了多种方式,其中一种方式为互斥锁mutex(也称之为互斥量)。互斥量的具体实现方式为:每个线程在对共享资源操作前都尝试先加锁,成功加锁后才可以对共享资源进行读写操作,操作结束后解锁。互斥量不是为了消除竞争,实际上,资源还是共享的,线程间也还是竞争的,只不过通过这种“锁”机制就将共享资源的访问变成互斥操作,也就是说一个线程操作这个资源时,其它线程无法操

2020-09-27 21:05:32 1031

原创 Linux系统编程 —读写锁rwlock

读写锁是另一种实现线程间同步的方式。与互斥量类似,但读写锁将操作分为读、写两种方式,可以多个线程同时占用读模式的读写锁,这样使得读写锁具有更高的并行性。读写锁的特性为:写独占,读共享;写锁优先级高。对于读写锁,掌握了这12个字就足矣了。Linux环境下,读写锁具有以下三种状态:读模式下加锁状态 (读锁)写模式下加锁状态 (写锁)不加锁状态虽然读写锁有读锁、写锁、不加锁三种状态,但其实它只有一把锁,而非三把。前文提到,读写锁的特性为:写独占,读共享;写锁优先级高。具体来讲:读写锁是“写模

2020-09-26 17:48:41 476

原创 Linux系统编程—条件变量

条件变量是用来等待线程而不是上锁的,条件变量通常和互斥锁一起使用。条件变量之所以要和互斥锁一起使用,主要是因为互斥锁的一个明显的特点就是它只有两种状态:锁定和非锁定,而条件变量可以通过允许线程阻塞和等待另一个线程发送信号来弥补互斥锁的不足,所以互斥锁和条件变量通常一起使用。当条件满足的时候,线程通常解锁并等待该条件发生变化,一旦另一个线程修改了环境变量,就会通知相应的环境变量唤醒一个或者多个被这个条件变量阻塞的线程。这些被唤醒的线程将重新上锁,并测试条件是否满足。一般来说条件变量被用于线程间的同步;当条件

2020-09-25 20:08:26 552 2

原创 Linux系统编程—信号量

大家知道,互斥锁可以用于线程间同步,但是,每次只能有一个线程抢到互斥锁,这样限制了程序的并发行。如果我们希望允许多个线程同时访问同一个资源,那么使用互斥锁是没有办法实现的,只能互斥锁会将整个共享资源锁住,只允许一个线程访问。这种现象,使得线程依次轮流运行,也就是线程从并行执行变成了串行执行,这样与直接使用单进程无异。于是,Linux系统提出了信号量的概念。这是一种相对比较折中的处理方式,它既能保证线程间同步,数据不混乱,又能提高线程的并发性。注意,这里提到的信号量,与我们所学的信号没有一点关系,就比如J

2020-09-23 19:34:49 441

原创 Linux系统编程—进程间同步

我们知道,线程间同步有多种方式,比如:信号量、互斥量、读写锁,等等。那进程间如何实现同步呢?本文介绍两种方式:互斥量和文件锁。##互斥量mutex我们已经知道了互斥量可以用于在线程间同步,但实际上,互斥量也可以用于进程间的同步。为了达到这一目的,可以在pthread_mutex_init初始化之前,修改其属性为进程间共享。mutex的属性修改函数主要有以下几个:主要应用函数:pthread_mutexattr_t mattr 类型: 用于定义互斥量的属性pthread_mutexattr_i

2020-09-21 22:12:03 542

原创 linux后台执行命令:&与nohup的用法

大家可能有这样的体验:某个程序运行的时候,会产生大量的log,但实际上我们只想让它跑一下而已,log暂时不需要或者后面才有需要。所以在这样的情况下,我们希望程序能够在后台进行,也就是说,在终端上我们看不到它所打出的log。为了实现这个需求,我们介绍以下几种方法。我们以下面一个test程序来模拟产生大量log的程序,这个程序每隔1秒就会打印一句“Hello world!”:#include #include #include int main(){ fflush(stdout);

2020-09-20 17:56:32 1733

原创 如何在GitHub上大显身手?

码农朋友们都知道,gitHub是一个面向开源及私有软件项目的托管平台,上面托管了众多的优秀的项目,比如linux内核源码、git源码、机器学习框架tensorflow等等。当然,除了这些顶尖项目外,还有海量的高手开发的优秀项目。所有的这些项目,我们都可以为它贡献代码。那么,要如何为这些项目贡献代码呢?我们下面以实例来讲解。比如说,现在gitHub上有个很牛逼的项目githubTest,它的作者是Alvin,项目地址如下:https://github.com/yychuyu/githubTest现在H

2020-09-19 19:32:24 438

原创 如何在GitHub上大显身手?

码农朋友们都知道,gitHub是一个面向开源及私有软件项目的托管平台,上面托管了众多的优秀的项目,比如linux内核源码、git源码、机器学习框架tensorflow等等。当然,除了这些顶尖项目外,还有海量的高手开发的优秀项目。所有的这些项目,我们都可以为它贡献代码。那么,要如何为这些项目贡献代码呢?我们下面以实例来讲解。比如说,现在gitHub上有个很牛逼的项目githubTest,它的作者是Alvin,项目地址如下:https://github.com/yychuyu/githubTest现在H

2020-09-19 19:29:22 405

原创 Linux里隐藏的计算器,你知道它的奥秘吗?

Linux里隐藏的计算器,你知道它的奥秘吗?大家都知道,windows下有个计算器工具,我们在工作生活中经常使用到它。但是,你可知Linux下也同样有个计算器吗?当然,良许说的是命令行下的计算器工具,而不是界面型的计算器。良许是Linux应用开发工程师,平时基本是在命令行下工作,所以对于界面类的操作良许也不是非常擅长。启动计算器启动这个命令行计算器很简单,只需在终端下输入bc即可。bc是英语basic calculator的缩写。退出计算器也很简单,只需输入quit即可。选项当然,这个计算器也

2020-09-18 20:36:08 421

Linux操作系统教学视频

Linux操作系统教学视频,讲述Linux的基本操作,适合初学者入门

2018-04-30

QT界面开发2016版视频

QT界面开发2016版视频,讲得比较通俗易懂,比较适合初学者。

2018-04-30

国嵌视频课件ppt(01-05全)

国嵌视频课件ppt(01-05全),完整版,适合新手入门学习,比较基础

2017-11-05

张正友和tasi的标定源程序

张正友和tasi的标定源程序,欢迎大家一起学习交流

2013-06-03

自己编写的直线拟合程序

自己编写的程序,一起学习交流,高手多多指导!!

2013-01-25

空空如也

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

TA关注的人

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