timeline

Linux中.bashrc与.bash_profile的对比

六月ゝ 毕业季﹏ 提交于 2020-08-15 08:38:26
如果你平时在命令行上花费了大量时间,那么你可能会萌生出希望定制 Shell 环境的想法。今天本文就和大家讲解该如何实现你们的这个想法。其实可以通过创建别名、向环境变量 $PATH 添加新目录或更改 Shell 提示符的外观以实现在命令行上节约时间。 在你寻找解决方法的过程中可能会看到过一些教程,比如说将配置文件放在 .bashrc 或者 .bash_ profile 中,亦或是将配置放在另一个可以通过 Bash Shell 读取和执行的文件中。 接下来,我将向大家讲解 Bash 启动文件以及 .bashrc 和 .bash_ profile 之间的区别: Interactive Login 和 Non-Login Shell Bash 被调用时,会从一组启动文件中读取并执行命令,至于读取哪些文件取决于 Shell 是作为交互式登录调用还是作为非登录 Shell 调用。 其实, Shell 可以是交互式的,也可以是非交互式的。简单一点地说,交互式 Shell 是一种读写用户终端的 Shell ,而非交互式 Shell 完全是与终端无关的 Shell 。 值得注意的是,交互式 Shell 可以是登录 Shell ,也可以是非登录 Shell 。 有几种情况可以调用登录 Shell ,一种是当用户通过 ssh 或本地方式远程登录到终端,还有就是使用 --login 选项启动 Bash

程序员轻松绘图神器

冷暖自知 提交于 2020-08-15 08:25:00
我们程序员在工作生活中,有很多场合下需要绘制图表,比如PPT里的图表,学习笔记的一些助记图,还有最常见的,工作中大量使用的流程图。 在 Window 下,我们有很多好用的工具,比如 Visio 、 EA 等等。这些软件也很好用,但都有个缺点,那就是太复杂。我们需要一定的美工基础,还要学很多软件操作,才能画出一张很简单的流程图。 而且,更要命的是,一旦需求发生变动,很不好修改,往往牵一发而动全身。所以经常在听到需求变更的时候,良许就脊背一凉…… 后来,在大神的介绍下,良许开始使用一个神器。这个神器不需要你懂美工,也不太需要懂软件操作,绘图的过程跟你写软件的过程差不多,短短的几行代码,就能把你头脑里的想法表现出来。 而且,不用担心布局,不用担心修改,甚至都不用鼠标,也给制作出相当精美的作品! 这个神器就是: dot 命令! 这个神器还有个图形界面版,叫 Graphviz ,但良许习惯了命令行,一般是在命令行下完成的。 我们先来看下它能做什么。以下几个图片选自它的官网: 这只是其中的几张图而已,更多图片可以去它的官网查看: http://www.graphviz.org 这个软件非常强大,如果掌握得好的话,可以画出非常好看的作品,而且还不怕产品经理改需求。但是,在大多数情况下,我们不太需要用到它的高级功能,往往一些很基础的功能就可以应付我们工作中的 80% 以上的需求了。

Flutter性能优化实践 —— UI篇

白昼怎懂夜的黑 提交于 2020-08-13 23:07:00
原作者:唯鹿 来源:掘金 1.前言 flutter_deer这个项目开源也近一年了,目前收获了3100+的star,这无疑是对这个项目的最大认可。虽然从功能和UI看来和一年前的没什么区别。不过这期间我不断在优化它,希望它的性能和体验越来越好。这篇集中整理了deer在UI流畅上的优化细节,以实践为主,源码为辅。分享出来,希望对你有所启发和帮助。 既然要优化,那么首先就要掌握定位问题、分析性能问题的方法,这样才可以对比优化前后的效果。具体方法这里我就不详细介绍了,可以参考官方文档,或是看这个视频:Flutter 的性能测试和理论。 在官方文档中,性能分析需要确保 使用真机并在profile模式下运行 。不过我们可以使用debug模式来寻找卡顿,因为我觉得它可以放大你的“问题”。 下面正式进入正题。(为了显得口语化一点,我会将Flutter的构建(build)用“刷新”表示。本篇源码基于Flutter SDK版本 1.17.0) 2.控制刷新范围 我们使用setState方法就可以轻松刷新页面,但是要尽力控制刷新范围。我举一个例子: 在注册账户时,通常需要获取验证码。这时会有一个倒计时功能,那么我们就需要每隔一秒刷新一下这个倒计时数字并显示出来。 如果这个倒计时的逻辑处理你放在了注册页面,那么每当setState时都是一整个页面的刷新。而这整页刷新显然是不必要的。而它并不会让你感知到卡顿

一个骚命令防止你的文件被误删除!

我的未来我决定 提交于 2020-08-13 08:32:03
大家好,我是良许。 文件是我们在电脑里最珍贵的财富,我们经常工作了老半天,然后出来的成果就只是一个文件而已。特别是程序员,我们写了半天的代码,结果也就是一个个代码文件而已。 但是,我们都有过这样惨痛的经历——工作了老半天,结果不小心把文件删除了…… 这时候,你的心情是怎样的?痛苦?自责?无奈? 今天良许就给大家介绍一个命令,它将给你的重要文件加一把锁,防止误删除或误修改,为你的宝贝文件保驾护航! chattr命令简介 这里我们需要使用到一个命令是: chattr ,这个命令在大部分的 Linux 发行版里都有,所以对于它的安装就不赘述了。它的基本用法如下: $ chattr 操作符 属性 文件名 对于操作符,有以下三种: + :给文件增加属性 - :去除文件属性 = :设置文件的仅有属性 注意,这里讲的属性不是文件对应的系统属性,而是 chattr 给文件赋予的属性。本文要讲的属性有以下两个: a - 允许给文件追加内容 i - 保护模式(不允许删除或修改) 但是,它的属性可以设置很多,有兴趣的小伙伴可以去看下它的 man 手册。 $ man chattr 防止文件被误删除或修改 假如我们现在有个国宝级重要文件 file.txt ,现在我们使用 chattr 对它进行保护。在这里,我们给文件增加 +i 属性: $ sudo chattr +i file.txt 然后,我们可以使用

time line 的制作

折月煮酒 提交于 2020-08-12 09:12:40
<bar title='专题列表'></bar> <view class='pageContent' style="padding-top:{{statusBarHeight}}px"> <view class="timeline"> <block wx:for="{{subjectList}}" wx:for-item="timeItem" wx:for-index="timeIndex" wx:key="timeIndex"> <view class="timeline-item"> <view class="header"> <view class="subject-node"></view> <view class="subject-time">{{timeIndex}}</view> </view> <view class="content"> <block wx:for="{{timeItem}}" wx:for-item="subItem" wx:for-index="subIndex" wx:key="subIndex"> <view class="subject-img" catchtap="toSubjectDetail" data-id="{{subItem.id}}"> <image mode="widthFix" src="{{subItem

将Git分支合并到master中的最佳(最安全)方法是什么?

懵懂的女人 提交于 2020-08-12 00:54:32
问题: A new branch from master is created, we call it test . 从 master 创建了一个新分支,我们称之为 test 。 There are several developers who either commit to master or create other branches and later merge into master . 有几个开发人员要么致力于 master 要么创建其他分支,然后合并成 master 。 Let's say work on test is taking several days and you want to continuously keep test updated with commits inside master . 假设 test 工作需要花费几天的时间,并且您希望通过 master 内的提交来不断更新 test 。 I would do git pull origin master from test . 我会做 git pull origin master 从 test 。 Question 1: Is this the right approach? 问题1: 这是正确的方法吗? Other developers could have easily worked

fiddler常见的应用场景

随声附和 提交于 2020-08-11 20:58:14
在移动互联网时代,作为软件测试工程师,fiddler绝对是值得掌握并添加进技术栈里的工具之一。 那么,fiddler在日常的测试工作中,一般都有哪些常见的应用场景呢? 根据以往工作经验,大概有如下4类应用场景: 辅助定位bug; 构建模拟测试场景; APP弱网模拟测试; 前端性能分析及优化; 1、辅助定位bug 合格的软件测试工程师,不仅仅需要能够发现bug,还需要能透过bug表象,分析出问题根本原因,从而提升bug的解决效率,突显bige。 通过fiddler可以抓取request和response,通过对参数进行分析,可以定位是前端问题还是后台问题。 例如:在APP界面输入数据,点击下一步时,提示错误;这时候不能判断问题的根本原因在哪里,是前端页面作限制导致?还是前端request的参数问题,又或者是后台程序挂了? 这个时候就可以通过fiddler抓包,分析request、response来判断问题根本原因所在。 (往往有些测试就是直接把APP页面报错信息截个图就提缺陷了,而没有去作bug定位,这样的缺陷又往往被开发人员所抱怨) 1.1、实例--APP抓包 前提:APP、fiddler在同一局域网 1.1.1、fiddler设置 Tools>Options>Connections,勾选Allow remote computers to connect,同时记住fiddler

Linux下diff命令用法详解

徘徊边缘 提交于 2020-08-11 17:33:56
大家好,我是良许。 我们在平时工作的时候,经常要知道两个文件之间,以及同个文件不同版本之间有何异同点。在 Windows 下,有 beyond compare 这个好用的工具,而在 Linux 下,也有很多很强大的工具,良许之前也写过一篇文章介绍: Linux下9种优秀的代码比对工具推荐 这些比对工具其实都是基于 diff 命令,下面就详细介绍一些 diff 命令的用法。 diff 命令是一个分析文件信息的命令,可以打印出文件之间的差异。它可以逐行地比较两个文件的内容,也可以递归地比较文件夹的内容。 diff 命令的输出内容可以让我们知道要使两个文件相同需要做哪些修改,这对于我们的工作很有帮助。 在开始前,我们先用文件编辑器创建两个内容相同的文件。这里我们使用的是 nano 。 $ nano diffsample1 输入内容: 发布 优质的 技术文章 使用 Ctrl + X 和 Y 保存并退出。 创建第二个文件: $ nano diffsample2 输入同样的内容并保存退出。 需要注意的是,空格和 Tab 对两个文件是否完全相同会有影响。 使用 diff 命令查看两个文件是否有差异: $ diff diffsample1 diffsample2 这时 diff 命令没有输出任何信息,说明这两个文件的内容是完全相同的。 现在我们对 diffsample2 做一些修改,将 文章 改为

Nexus Repository Manager 2.x command injection vulnerability (CVE-2019-5475) bypassed twice

纵然是瞬间 提交于 2020-08-11 01:27:46
Author: Badcode and Longofo@Knownsec 404 Team Date: 2020/02/09 Chinese Version: https://paper.seebug.org/1260/ Foreword At the beginning of September 2019, we responded to the Nexus Repository Manager 2.x command injection vulnerability (CVE-2019-5475). The general reason and steps for recurrence are on Hackerone . It was announced that after emergency response to this vulnerability, we analyzed the patch to fix the vulnerability and found that the repair was incomplete and could still be bypassed. This article records two bypasses of the vulnerability. Although the fix version was released

最短路 || 最长路 || 次短路

三世轮回 提交于 2020-08-09 06:59:18
如题,这篇博客就讲一讲最短路以及其它 乱七八糟 的处理路径的问题 至于邻接表,邻接矩阵,有向边和无向边等基础概念之类的这里就不过多阐述了,不会的话建议先在其他dalao的博客或者书上面学习(请多谅解) 最短路 首先讲最短路,因为最短路比较基础,而且在图论中也应用较多,在学习了最短路只会就可以继续往后面学习了,如果您已经学习过了,可以直接跳到后面的最长路和次短路中 最短路,在一个图中,求一个地方到另一个地方的最短路径。联系到我们之前学过的 广度优先搜索 中,也可以处理类似的问题,所以我们先想一想广度优先搜索的一些思想—— 队列 。所以在接下来的最短路算法中,或多或少的会涉及到队列 单源最短路径 单源最短路径,就是指在一个图中,给你一个起点(起点固定),然后终点不是固定的,求起点到任意终点的最短路径。这里会涉及到3种算法,以下用$dis[]$表示起点到任意终点的最短距离 1. Bellman-Ford算法 时间复杂度:O(nm) 给定一个图,对于图中的某一条边(x,y,z),x和y表示两个端点,z表示连接两条边的边权,如果有所有边都满足dis[y]≤dis[x]+z,则dis[]数组的值就是要求的最短路径 这个算法的流程就是基于以上的式子进行操作的: 1.扫描所有的边,如果有 d[y]>d[x]+z ,则 d[y]=d[x]+z (这也被叫做松弛操作) 2.重复以上的操作