Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Linux基础知识之bash脚本编程初级-变量与算术运算

Linux基础知识之bash脚本编程初级-变量与算术运算

什么是变量?变量最初来源于数学,指的是非固定的值可变化的数通常用拉丁字母表示。在计算机中变量它依旧指的是可变化的数,只不过表现形式有些变化。它指的是变量名+所指向的内存空间。以下实验环境均在CentOS7.2进行变量的特点变量分强类型变量,与弱类型变量强类型变量:变量需事先声明且需提前定义其变量存储格式弱类型变量:不需事先声明,不需定义变量存储格式。bash把所有变量统统视作字符型;bash中的变量无需事先声明,相当于,把声明和赋值过程同时实现。变量名的命...
Linux bash脚本编程初级-逻辑运算与测试

Linux bash脚本编程初级-逻辑运算与测试

引言前面介绍了bash编程的基础变量与算术表达式,本文介绍在脚本中的进阶知识:测试在bash中测试大体分两部分:条件测试、组合测试。而条件测试有分:数值测试、字符串测试、文件测试。组合测试则有两种表达方式。具体是什么表达方式在文章中会有具体展示。 本文实验环境为CentOS7.2Linux中为什么要学习测试(判断)?当我第一次学习这部分内容时,觉得好难,好不爽。可是这又是想要继续学习Linux必须要掌握的...
C++程序员如何转Java

C++程序员如何转Java

忙里偷闲,到了这个时间终于得空写一篇早想写的文章。其实本文的标题有些不太准确,C++程序员写Java代码不是说就非得转行写Java,抛弃C++,而只是多了一个选择而已。两种语言各有优势,这里我们且不谈语言之争,就假设有朋友需要这样一种角色转变,写了多年的C++,一时间突然有项目需要用Java来写。 Java语言较C++语言语法上有很多的相似之处,但是本质上是有区别的。一个合格的C++程序员在他写下每一行代码的时候心中必然会有整个程序运行起来以后,代码中的...
JavaScript代码模块化的正规方法

JavaScript代码模块化的正规方法

RequireJS-CommonJS-AMD-ES6 Import/Export详解为什么起了一个这个抽象的名字呢,一下子提了四个名词分别是:RequireJS,CommonJS,AMD,ES6,答案是因为现实很骨感,我们必须很勇敢才能正视这一段悲催的往事。如今的JavaScript平台正值如日中天,大家可能会忽略他的过去和弊端,这些弊端中一直被人诟病的就是JavaScript的包管理,比如类似Java中的import,其实理论上来讲这种基本元素的缺失大大...
非对称技术栈实现AES加密解密

非对称技术栈实现AES加密解密

正如前面的一篇文章(见 http://www.linuxidc.com/Linux/2016-08/134695.htm ) 所述,https协议的SSL层是实现在传输层之上,应用层之下,也就是说在应用层上看到的请求还是明码的,对于某些场景下要求这些http请求参数是非可读的,这就要求在前端和后端不同的技术栈上完成信息的加密解密。当然我们通常完成这样专业的功能都会考虑使用相应的框架或者程序库来完成功能,前端或者NodeJS平台通常是JavaScript语言...
JavaScript的三种工业化调试方法

JavaScript的三种工业化调试方法

软件工程中任何的语言如果想要写出健壮的代码都需要锋利的工具,当然JavaScript也不例外,很多朋友刚入门的时候往往因为工具选的不对而事半功倍,JavaScript同样需要软件调试技术,希望本文总结的三种工具会对大家的学习有所帮助。任何语言的学习都离不开实践,不写代码是永远学不会编程的,当然javascript也不例外,很多人推荐直接浏览器调试,个人觉得这个推荐应该是非常初级的,比如Chrome, Firefox确实提供了实用的前端调试工具,但是个人认为...
使用node-inspector调试NodeJS代码

使用node-inspector调试NodeJS代码

任何一门完备的语言技术栈都少不了健壮的调试工具,对于NodeJS平台同样如此,笔者研究了几种调试NodeJS代码的方式,通过对比,还是觉得node-inspector的调试方式比较方便,而且和前端JavaScript代码的调试具有一致的体验,不仅健壮,而且方便。安装完成NodeJS后执行如下指令可以完成node-inspector安装。>npm install -g node-inspectornode-inspector安装完成以后运行如下指令启动...
VS Code - Debugger for Chrome调试JavaScript的两种方式

VS Code - Debugger for Chrome调试JavaScript的两种方式

一直想写一篇VS Code - Debugger for Chrome相关的文章,没想到一直拖到了今天。VS Code 开源以后确实在社区得到了很多人的支持,当中很多优点想必不用我多说,今天讨论的主题是Debugger for Chrome这个插件的使用。在网上简单找了一下,没有找到这个主题讲的特别好的文章,于是笔者写了这篇文章。说实话,看了如下这篇文章,对于如何上手可能很多人还是一知半解,觉得说的不够透彻,因为关于如何new instance和attac...
C语言中字符串处理函数介绍

C语言中字符串处理函数介绍

C语言中字符串处理函数介绍下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数)。所有的C语言编译系统中一般都提供这些函数。1、puts函数——输出字符串的函数一般的形式为puts(字符串组)作用:将一个字符串输出到终端。如,char一个string,并赋予初值。调用puts(string);进行字符串的输出。2、gets函数——输入字符串的函数一般的形式:gets(字符数组)作用:从终端...
C#7.0中有哪些新特性?

C#7.0中有哪些新特性?

以下将是 C# 7.0 中所有计划的语言特性的描述。随着 Visual Studio “15” Preview 4 版本的发布,这些特性中的大部分将活跃起来。现在是时候来展示这些特性,你也告诉借此告诉我们你的想法!C#7.0 增加了许多新功能,并专注于数据消费,简化代码和性能的改善。或许最大的特性就是元祖和模式匹配,元祖可以很容易地拥有多个返回结果,而模型匹配可以根据数据的“形”的不同来简化代码。我们希望,将...
Linux下的权限掩码umask

Linux下的权限掩码umask

权限掩码umask 我们都知道在linux下创建一个文件或者目录之后是可以通过chmod等命令进行权限设置,来达到给当前用户、用户组用户以及其他用户分配不同的访问权限。那么,我们新创建的目录和文件本身也是有它的默认权限的,这个默认权限是什么,就是由权限掩码umask所确定的。它的功能可以说与chmod刚好相反的,代表默认拿走的也就是说不要的权限。 所以说,umask是用来指定"目前用户在新建文件或者目录时候的权限默认值"。那我们 如何得知或者设...
进程控制块的task_struct结构

进程控制块的task_struct结构

》进程控制块 在linux中进程信息存放在叫做进程控制块的数据结构中,每个进程在内核中都有?个进程控制块(PCB)来维护进程相关的信息,Linux内核的 进程控制块是task_struct结构体。在Linux中,这个结构叫做task_struct。 task_struct是Linux内核的一种数据结构,它会被装载到RAM?并且包含着进程的信息。每个进程都把它的信息放在 task_struct 这个数据结构?, task_struct 包含了这些内容...
AVL树的插入操作(旋转)图解

AVL树的插入操作(旋转)图解

AVL树的概念 在说AVL树的概念之前,我们需要清楚二茬搜索树的概念。对于二叉搜索树,我们知道它可以降低查找速率,但是如果一个二叉搜索树退化成一棵只剩单支的搜索树,此时的查找速率就相当于顺序表中查找元素,效率变低,时间复杂度由原来的O(logN)变为O(N)。 此时就有了AVL(高度平衡二叉搜索树),从它的名字就能知道它也是一棵二叉搜索树,只是它在插入元素的时候,每插入一个新节点的时候就会调整整棵树的结构,从而来保证这课搜索树的平衡,即每一个节点...
二叉搜索树的插入与删除图解

二叉搜索树的插入与删除图解

一、二叉搜索树(BSTree)的概念 二叉搜索树又被称为二叉排序树,那么它本身也是一棵二叉树,那么满足以下性质的二叉树就是二叉搜索树: 1、若左子树不为空,则左子树上左右节点的值都小于根节点的值 2、若它的右子树不为空,则它的右子树上所有的节点的值都大于根节点的值 3、它的左右子树也要分别是二叉搜索树 ===================================================================...
面试题之判断栈的入栈和出栈序列的合法性

面试题之判断栈的入栈和出栈序列的合法性

完整题目是这样的:给我们两个序列,第一个序列表示栈的压入顺序,然后让判断第二个序列是不是是否是该栈的弹出序列。现设第一个序列为[1,2,3,4,5],第二个序列为[3,2,5,4,1],可以看出这个出栈顺序是合法的,那么我们怎么通过程序来验证呢? 既然是判断栈的出栈顺序,那么我们肯定得有一个辅助栈,来帮助我们做这样的题。我们把第一个序列中的数字一次压入栈中,压入的过程中按照第二个序列的顺序依次从栈中弹出数字。 我采用的是用vector来存放两...
Java多线程-线程通信

Java多线程-线程通信

线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。1.通过共享对象通信2.忙等待3.wait(),notify()和 notifyAll()4.丢失的信号5.假唤醒6.多线程等待相同信号7.不要对常量字符串或全局对象调用 wait()通过共享对象通信线程间发送信号的一个简单方式是在共享对象的变量里设置信号值。线程 A 在一个同步块里设置 boolean 型成员变量 hasDataToProcess 为 true,线程...
Java多线程-线程创建

Java多线程-线程创建

Java 线程类也是一个 object 类,它的实例都继承自 java.lang.Thread 或其子类。 可以用如下方式用 java 中创建一个线程,执行该线程可以调用该线程的 start()方法:Tread thread = new Thread();thread.start();在上面的例子中,我们并没有为线程编写运行代码,因此调用该方法后线程就终止了。编写线程运行时执行的代码有两种方式:一种是创建 Thread 子类的一个实例并重写 run 方法,...
<< 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 >>