自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】使用Wake-on-lan配置Linux服务器远程开机

1、配置要求目的主机:处于关机状态的待开机服务器 源主机:控制目的主机开机的服务器,源主机处于开机状态 目的主机和源主机要处在同一局域网内2、配置目的主机开启wake-on-lan选项目的主机在BIOS里开启Wake On Lan 源主机安装wol工具2. 查看是否属于同一局域网# 在源主机ping一下目的主机# 能ping同则属于同一局域网ping 192.168.3.xx3. 查看目的主机是否开启了网络唤醒首先查看当前使用的网卡,记录IP和mac地址ifc.

2021-01-29 19:37:24 3979 1

原创 【Mac】Mac通过反向代理连接内网(教育网)服务器 + 免密登陆

一、申请服务器作为反向代理这里申请的是阿里云服务器(其他云服务器均可)二、配置阿里云反向代理服务器 + 内网服务器1、登陆阿里云服务器配置ssh打开 /etc/ssh/sshd_config, 将GatewayPorts设为yes 执行 sudo service sshd restart 重启sshd服务2、配置阿里云服务器的防火墙2.1 登录阿里云服务器的控制台, 将要映射的外网端口(如4501)加入安全组2.2 设置防火墙首先开放要映射的外网端口# 检查端口是否已开

2021-01-26 13:57:59 1681

原创 【Mweb】Mac上Mweb发布至印象笔记报错:Error Domain=com.evernote.sdk Code=-3000

一、Mweb发布至印象笔记报错,问题及原因:1、Mweb中无法发布笔记;在Mweb中删除原有的印象链接后,无法重新添加印象笔记发布链接原因:网络设置问题(本人出现的问题:连接教育网后出现无法发布和连接的错误,报错印象笔记的URL请求无响应) 解决方案:请关闭代理或者vpn,或者切换链接的网络2、切换网络并在Mweb中重新登陆添加印象笔记发布链接后,依旧无法发布,报错:Error Domain=com.evernote.sdk Code=-3000 "(null)"原因:在Mweb中登陆印象笔

2021-01-05 13:09:47 564 1

转载 【Lua】lua的全局变量、局部变量、函数闭包和非局部变量(upvalue)

Lua脚本语言的变量是弱类型的,即变量没有类型,值才有类型,同一名称的变量具体类型要看所赋值的类型,如下a=1 --整型a=1.0 --浮点型a="ab" --string型a={} --table型a=function() ... end --function型1、全局变量和局部变量,类似于shell脚本全局变量:顾名思义,其生命有效期是全局的,整个lua文件中都可以使用,可以在任意地方定义(函数参数除外),但有个原则,使用时必须是先定义好的,否则就是nil,请看下面的代...

2020-06-17 20:15:54 2597

转载 【C/C++】auto关键字的使用

一、C++98 auto早在C++98标准中就存在了auto关键字,那时的auto用于声明变量为自动变量,自动变量意为拥有自动的生命期,这是多余的,因为就算不使用auto声明,变量依旧拥有自动的生命期:int a =10 ; //拥有自动生命期auto int b = 20 ; //拥有自动生命期static int c = 30 ; //延长了生命期C++98中的auto多余且极少使用,C++11已经删除了这一用法,取而代之的是全新的auto:变量的自动类型推断。

2020-06-16 11:00:20 516

原创 【Linux】Shell脚本:while read line无法读取最后一行???

一、Shell脚本:while read line无法读取最后一行的问题今天利用shell脚本处理园区bucket信息时,发现在脚本中使用while read line循环逐行读取文件时总是无法处理到最后一行,脚本大致执行流程源码如下(红色部分为while循环,逐行读取命令行第一个参数指定的文件)。经过简单的查询学习后,将该问题的背景、原因、解决方案整理如下第二章节。 #!bin/bash while read line do data=`...line...` echo "${da

2020-06-12 17:05:38 5946

原创 【Linux】symbol lookup error: undefined symbol + nm指令定位错误

一、undefined symbol错误今天在运行模块执行文件时,出现了如下报错 "symbol lookup error"、"undefined symbol",提示 cos_getfile_mcd 可执行文件在加载 .so 文件时,出现了无法找到符号的错误,并给出了具体错误:_ZN20CCosGetfileTimerInfoC2Ev 符号未定义。那么如何定位该错误呢?一般可以先使用 ldd指令 去查看一下可执行文件的链接库,但是我的可执行文件是在加载调用.so文件的过程中出现报错,ldd指令

2020-06-05 17:16:01 19956 3

原创 【Linux】shell 脚本中$$、$#、$?、$1等分别代表什么意思?

$0 当前脚本的执行名字 $n 当前脚本执行命令的第n个参数值,n = 1..9 $* 当前脚本执行命令的所有参数,此选项参数可超过9个 $# 当前脚本执行命令的输入参数个数 $$ 当前shell的PID(即脚本运行的当前进程号) $! 上一个执行指令的PID(后台运行的最后一个进程的进程ID号) $? 上一个执行指令的返回值(显示最后命令的退出状态,0表示没有错误,其他任何值表明有错误),如下所示...grep xxx a.txtecho $?...//就会 echo 上一条命令

2020-06-03 17:06:15 11524

原创 【Linux】“grep -v grep”命令的作用 + 为什么需要使用该命令

一、简介我们经常会在shell脚本中见到如下命令:"ps -ef | grep test_sever| grep -v grep | wc -l",各子命令其作用如下ps -ef 指令用来查询所有进程; grep test_server通过管道来过滤指定 test_server 进程; grep -v 是反向查询的意思,即过滤出不包含 -v 参数后指定字符的信息; grep -v grep 的作用是即反向过滤除结果集中包含 grep 的项; wc -l 是统计结果的行数整条指令的作用就..

2020-06-03 15:26:41 6467 1

原创 【C/C++】C语言中的__FILE__、__LINE__、#line、__func__关键字的作用

1、__FILE__用于指示本行语句所在源文件的文件名,如下(test.c):#include <stdio.h>void main(){ printf("%s\n", __FILE__);}=====>>GCC编译执行结果为:=====>> "test.c"=====>>Windows的VC6.0编译执行结果为:=====>> "c:\documents and settings\administrator\桌面\t

2020-06-02 15:55:59 1214

原创 【C/C++】scanf()、gets()、getchar()、getline()、cin.getine()、cin.get()处理输入流的区别

一、具体功能及区别1、scanf()scanf()函数用来接收多种格式的数据,不可以接收空格,遇到回车默认输入结束(不能处理回车符,将其看作再次输入的字符)。//不可接收空格//在控制台中输入“Hello World”时,char_array的值是Hellochar array[20] = {0};scanf("%s", array);//遇到回车默认输入结束,且将回车作为下一次输入的字符//在控制台中输入数字“5”然后按下回车键,此时ret_int的值是5,而ret_char的值

2020-06-02 14:48:07 593

原创 【C/C++】解决“两个类的头文件相互引用/超前引用”问题的方法

一、什么是超前引用?所谓超前引用是指一个类型在定义之前就被用来定义变量和声明函数。一般情况下C/C++要求所有的类型必须在使用前被定义,但是会存在一些特殊情况导致这种要求无法满足,例如//类A的头文件#ifndef _A_H_#define _A_H_#include "B.h"class A{public: int x; B b;}#enif//类B的头文件#ifndef _B_H_#define _B_H_#include "A.h"class ..

2020-05-29 22:38:30 3376 2

原创 【C/C++】fstream详解

一、C/C++对文件操作的实现C中对文件的操作是通过 FILE文件指针 和相关关函数来实现的。C++中是通过 fstream文件流来实现的,其包含ifstream、ofstream、fstream 三个类,通过定义这三个类的对象实现相对应的文件操作。二、C中的文件操作1、打开文件包括fopen()、freopen()、tmpfile() 三个函数,他们都会返回一个指向 FILE 对象的指针。该 FILE 对象包控制被打开文件相关联的流的所有信息,包括指向缓冲区的指针、文件位置指示器...

2020-05-28 20:51:34 8674

原创 【Linux】Shell脚本中使用变量替换Curl指令中的参数

一、shell中使用变量替换curl中的部分参数需要注意的是:shell脚本单引号中的变量也需要使用单引号括起来,使用双引号参数解析会不正确。这个问题折腾了我很久,切记!!!下面的例子完成的工作是:从 GARDEN_ID.txt 文件中通过 awk 命令获取指定的变量 Bucket_ID; 之后在curl 指令中使用Bucket_ID 变量替换部分参数; 对 curl 获取到的返回结果进行格式化处理,输出到目标文件中。Shell脚本中循环的使用请参考,Shell脚本中如何使用“循环”遍..

2020-05-22 20:25:14 4815 1

原创 【Linux】Shell脚本中如何使用“循环”遍历“数组”中的元素(包括MySQL的常用指令介绍)

一、背景实习过程中,今天mentor突然让我拉取一下远端园区数据库中的部分信息,因为包含很多不同园区的数据信息而且要以园区为单位生成文件来对数据进行存放,因此自然是需要使用shell脚本来自动生成文件。起初我写了一个一次生成一个文件的脚本,但是因为园区数量众多,生成一个数据文件就去修改脚本中的园区ID变量显然过于复杂,于是乎想到了能不能在shell脚本中创建一个园区ID的数组 + 使用循环遍历数组元素,只需填写一次数组就能通过循环自动将所有的文件拉取并生成出来。本来在C/C++、Python、J

2020-05-21 20:27:41 11496

原创 【C/C++】拷贝构造函数——深拷贝和浅拷贝

一、拷贝构造函数1、构造函数用于初始化对象中的数据成员,无返回值类型并禁用return语句; 构造函数可以重载,因此一个类中可以有多个构造函数; 当类中显式的声明了构造函数后,不管该构造函数是否有参数,系统不会再生成默认的无参构造函数;2、拷贝构造函数负责由已知对象拷贝出新对象,其参数要求是一个类对象的const引用; 若类中未显式的声明拷贝构造函数,系统会自动生成一个默认的拷贝构造函数,并将类中所有的数据成员做浅拷贝; 当类中成员要做深拷贝时,默认的拷贝构造函数无用拷贝构造函数的.

2020-05-20 12:04:29 738

原创 【C/C++】String自带函数的使用

一、String的自带函数assign():为字符串赋值 append():向尾部追加字符串 at(index):返回当前字符串中index位置的字符 clear():清空字符串 erase(index, n):删除字符串从index开始的n个字符 empty():检测字符串是否为空 compare():比较字符串 substr():获取子串 find():函数可以在一个字符串中搜索一个子串或者一个字符 insert():将某个字符/字符串插入到当前字符串的某个位置 replace(

2020-05-20 11:35:20 1035

原创 【Linux】ipcs命令介绍

一、ICPSIpcs是Linux自带的用于查看共享内存、消息队列、信号量使用情况的工具,用于帮助定位多进程通信中出现的问题。二、命令介绍# 查看该命令的使用帮助ipcs -h以下命令中没有的请查看上图中的介绍。# 查看当前使用的共享内存、消息队列及信号量的所有信息ipcs -a# 查看与共享内存、消息队列相关的进程消息ipcs -p# 查看各个资源的使用总结信息,其中可以看到使用的信号量集的个数、信号量的个数,以及消息队列中当前使用的消息个数总数、占用的空间字节数.

2020-05-19 20:09:10 781

原创 【Linux】GDB调试CoreDump

1、背景介绍Core Dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIGSEGV信号,然后就会core dump)。造成CoreDump的原因主要如下。内存访问越界 多线程程序使用了线程不安全的函数。 多线程读写的数据未加锁保护。 非法指针 堆栈溢出2、调试命令# 查看是否开启dump core功能,为0表示未开启ulimit -c # 开

2020-05-19 19:33:18 349

原创 【Linux】Linux的五种I/O方式

一、背景在搞清楚Linux的五种I/O方式之前,我们首先需要弄清楚的是同步/异步、以及阻塞/非阻塞的概念,下面先用一个事例做一个简单的介绍。某一天你去银行办理某个业务,而这个时候有很多人在办理业务,因此你需要等待,现在有下面4种情况:你自己主动去排队(同步),然后排队过程中你担心会漏掉你,于是不玩手机不干其他事情只是专心的等待队伍前进(阻塞); 你自己主动去排队(同步),但是在这个过程中你觉得很无聊,于是开始边玩手机边等(非阻塞); 银行有一个排号机器可以帮你排号并播放到号提醒(异步),于是

2020-05-19 17:10:52 1017

原创 【C/C++】部分库函数整理

C++库函数查漏补缺string s2(s1, x, y);从s的x位置开始,连续y个字符赋值给s2if(str.find(“xxx”) != string::npos);string类提供了六种查找函数,每种函数以不同形式的 find 命名,这些操作全都制返回 string::size_type 类型的值,以下标形式标记查找匹配所发生的位置;或者返回一个名为 string::npos 的特殊值,说明查找没有匹配。 即字符串str中不存在字符串 “xxx”**int sigac

2020-05-14 22:10:44 231

原创 【leetcode】90-子集 II【C/C++】

题目描述解题思路:这类题首先想到的就是递归 + 回溯。重点在于跳过重复元素的处理,我一开始是考虑的在每一次遍历剩余元素进行递归调用中直接跳过前面的重复节点仅处理重最后一个重复节点。结果发现这样会存在一个问题,例如【1、2、2】,结果集中就不会存在【1、2、2】、【2、2】,因为在每次遍历剩余元素中,我是直接先跳过重复节点,这样第一个2就被跳过了,后续的递归也都不会有第一个2存在的子...

2020-03-23 15:25:34 160

原创 【Linux】Tmux报错:sessions should be nested with care, unset $TMUX to force

Tmux开启报错:#--> tmux#--> error: sessions should be nested with care, unset $TMUX to force错误原因:已经打开了一个tmux 会话,然后在这个tmux会话中试图打开另一个tmux会话;这种嵌套的,一层套一层的,在虚拟会话中声明活着打开另一个虚拟回话,是不好的。解决方式:直接在命...

2020-01-17 11:03:59 7199

原创 【Mac】Mac终端下使用Corkscrew + SSH通过代理连接内网服务器

问题:对于通过代理访问内网服务器,我们需要通过http代理访问代理服务器,再访问内网服务器。而mac不支持xshell从而无法为SSH连接增加代理,所以选择corkscrew工具。解决步骤:1、通过Homebrew包管理工具(Homebrew的安装和使用见链接)安装corscrewbrew install corkscew# 无需sudo2、修改~/.ssh/config ...

2020-01-17 10:49:27 5987

原创 【Linux】ssh连接内网服务器速度缓慢

问题描述:使用SSH命令行或者 xshell工具 连接内网服务器,卡在如下图状态很久才能连接上。故障原因:1、ssh登录过程中用到了DNS解析服务和GSSAPI认证(GSSAPI是一种用于在网络应用中执行强加密认证的ITEF 标准,在支持SSH V2的服务器上都是默认开启的) 2、默认情况下,GSSAPIAuthentication在服务器端和客户端都激活的。如果DNS服务出...

2020-01-15 17:06:02 842

原创 【leetcode】81-搜索旋转排序数组【C/C++】

题目如下:解题思路:参考leetcode-33题,这道题实际上时间复杂度要求为O(lgn),因此需要用二分法,但不同之处在于有重复元素需要处理(直接二分会对诸如:[3、1、1],目标值1——得不到正确结果)。代码如下:class Solution {public: bool search(vector<int>& nums, int target...

2020-01-15 11:59:00 185

原创 【leetcode】80-删除排序数组中的重复项【C/C++】

题目如下:解题思路:本题刚开始的第一想法就是构建同一个空数组,再建立一个索引表(hash表),遍历每个元素并记录元素的访问次数,对不超过两次的元素则加入数组。但是题目明确要求不使用额外的数组空间,在O(1)的额外空间下完成。因此看了一下评论区的思路,发现只需要遍历一次,并维护一个结果集数组的长度即可。在遍历的过程中,当结果集数组长度小于2或者当前元素不等于当前结果集数组中倒数第二个...

2020-01-15 09:27:49 139

原创 【leetcode】79-单词搜索【C/C++】

题目如下:解题思路:本题首先想到的思路就是遍历每一个元素进行深度优先搜索DFS,当找到符合条件的字符顺序即返回。在一次DFS搜索过程中,对已经遍历过的元素我们需要将其标记为已搜索状态; 但在DFS前后需要注意的是,必须要保证执行前后程序面对问题的状态是相同的,因此当前问题缩小为子问题时所做的对当前问题状态产生影响的事情应该全部失效,那么就需要在回溯时还原现场从而避免出现下图的...

2020-01-14 15:12:54 286

原创 【leetcode】78-子集【C/C++】

题目如下:解题思路:方法一:本题因为数组无重复元素,那么子集一共就有 2^nums.size() 种情况。因此采用位运算,从数字 0 到2^nums.size() - 1,分别对每一个数进行二进制位运算,将对应位为 1 对应的数组元素加入临时数组,每处理完一个数就将当前临时数组加入结果集,并清空临时数组。代码如下:class Solution {public: ...

2020-01-13 10:28:11 130

原创 【Linux】Git常用命令

相关命令查看当前库的用户名和邮箱命令:git config user.name git config user.email设置当前库的用户名和密码git config user.name "Sallenkey" git config user.email "[email protected]"设置全局的用户名和密码git config --global user.name ...

2019-11-15 10:05:17 91

原创 【Linux】通过xshell从远端服务器“下载/上传”文件或文件夹

1、如果是文件夹针对文件夹,需要先做压缩操作,因为用于传输的lrzsz工具不支持文件夹的传输。# tar -zvcf cntr.tar.gz cntrMig///当前在~目录下,需要传输~/cntrMig/文件夹//先对其执行压缩操作2、通过lrzsz工具进行文件传输首先在Linux上需要安装安装lrzsz工具包(如果没有安装请执行以下命令,安装完的请跳过),安装完毕即可...

2019-11-11 21:10:45 4509 4

原创 【leetcode】77-组合【C/C++】

题目如下:解题思路:DFS+ 剪枝 + 回溯 。注意进入每一层时的剪枝条件。代码如下:class Solution{public: vector<vector<int>> combine(int n, int k){ vector<vector<int>> res; //存放结果 ...

2019-11-04 10:01:33 126

原创 【leetcode】75-颜色分类【C/C++】

题目如下:解题思路:方法一、直接采用插入排排序或快速排序即可。代码如下:插入排序class Solution {public: //插入排序 void sortColors(vector<int>& nums) { for(int i = 1; i < nums.size(); i++){ ...

2019-11-01 13:06:22 165

原创 【leetcode】74-搜索二维矩阵【C/C++】

题目如下:解题思路:方法一:二维数组有序,因此可以从右上角开始找,那样每次只需左移或者下移,即 row++ 或 col-- ,最大时间复杂度为O(m+n) 。代码如下:class Solution {public: //从右上角开始,要么往下走,要么往左走,最坏时间复杂度O(m+n) bool searchMatrix(vector<vector&...

2019-10-31 16:14:06 312

原创 【leetcode】73-矩阵置0【C/C++】

题目如下:解题思路:第一想法是利用O(m+n)的额外空间,第一遍遍历矩阵,确定哪些行、列需要置0,第二遍置0。实际上只需要 O(1) 的额外空间即可,用matrix第一行和第一列记录该行该列是否有0,作为标志位但是对于第一行,和第一列要设置一个标志位,为了防止自己这一行(一列)也有0的情况。代码如下:class Solution {public: //关键思...

2019-10-30 10:37:14 161

原创 【C/C++】getline函数详解

为什么需要getline函数?虽然可以使用 cin 和 >> 运算符来输入字符串,但它可能会导致一些需要注意的问题。当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符); 一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。以下面的语句为例,可以输入 "Mark" 或 "Twain",但不能输入 "Mark Twa...

2019-10-29 16:08:24 340

原创 【leetcode】71-简化路径【C/C++】

题目如下:解题思路:本题思路较为简单,采取入栈的方法。先只考虑"/"之间的字符串:当遇到不是"."和".."时的字符串,则将当前元素入栈; 当遇到".."且栈不为空时,则出栈顶部元素; 其他情况不做处理。问题的关键在于如何识别一个和多个"/",利用string流的办法,先把"/"替换成空格,之后将string绑定到一个istringstream中,通过类似 cin 的方法...

2019-10-29 16:02:07 256

原创 【C/C++】istringstream的使用

istringstream的功能与使用C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件。istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格的串流的输出操作。 strstream类同时可以支持C风格的串流的输入...

2019-10-29 15:18:09 583 1

原创 【leetcode】70-爬楼梯【C/C++】

题目如下:解题思路:典型的动态规划题目,dp[n] = dp[n-1] + dp[n-2]。代码如下:class Solution {public: //典型的动态规划题,dp[n] = dp[n-1] + dp[n-2] int climbStairs(int n) { if(n == 1 || n == 2) //注意n为1和2的处理...

2019-10-28 11:30:13 149

原创 【leetcode】69-平方根【C/C++】

题目如下:解题思路:先指数增加,确定sqrt(x)的大致范围; 借着对已经确定的范围采用二分法,找到 x 的平方根。代码如下:class Solution {public: int mySqrt(int x) { long long res = 1; //指数增加,找出sqrt(x)的大致范围 while(res *...

2019-10-28 11:19:03 191

空空如也

空空如也

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

TA关注的人

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