linux
文章平均质量分 55
云归而-暝
这个作者很懒,什么都没留下…
展开
-
shell 【bash】脚本模块化实践
起因众所周知bash是个相当自由的语言,一个函数echo字符串直接就给你运行了,如果时网络上那分分钟就给你注入了。不过还好,没人用bash写网络应用。最近搭建openvpn,自己写了个脚本,但是bug不断。于是想分几个模块写,于是去网上找bash如何导入其他脚本。结果发现bash导入其他脚本非常简单粗暴。所有脚本的变量函数都混在一起,感觉非常不爽。于是就自己写了个导入逻辑。遇到的问题期间试过好几种方法都效果不好。最开是想到的是用 export ,主脚本当作库脚本的子shell。这样就可以屏蔽库脚本的原创 2022-03-11 21:27:37 · 652 阅读 · 0 评论 -
VLAN 虚拟局域网 搭建
建立虚拟局域网环境 vmware12第一台centos 7虚拟机作路由器,另外两台作两个局域网里的机器。网络设置如下,Vmnet8和NAT模式和互联网连接用于和外界通信,地址为192.168.8.0/24 ,Vmnet1,Vmnet2分别作两个局域网的网卡,子网地址分别为192.168.1.0/24 ,192.168.2.0/24创建三个虚拟机,LAN1带网卡VMnet1,LAN2带网卡VMnet2。route虚拟机带网卡VMnet1、VMnet2、VMnet8。LAN1 初始情况LAN原创 2022-03-07 12:58:33 · 2908 阅读 · 0 评论 -
WSL2 【ubuntu20.04】+ Mysql8.0.27远程登陆
获取windows和wsl局域网ip在wsl 里运行如下脚本可以获得。#!/bin/shwsladdr=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}')winaddr=$(cat /etc/resolv.conf|grep nameserver|awk '{print $2}')echo 'windows ip:'$winaddrecho 'ubuntu ip:'$wsladdr安装mysqlsudo apt-get install原创 2021-12-04 21:02:01 · 1227 阅读 · 0 评论 -
原生c语言实现模板函数
普通的堆排序#include <stdio.h>void swap(int *a, int *b) { int t = *a; *a = *b; *b = t;}void adjust_heap(int *heap, int s, int e) { for (int n;; s = n) { if ((n = 2 * s + 1) + 1 < e && heap[n + 1] < heap[n]) n++; if (n >原创 2021-10-25 22:22:01 · 438 阅读 · 0 评论 -
VScode go语言环境
本文以CentOS 实验安装go#!/usr/bin/env bashcd /tmp && wget https://studygolang.com/dl/golang/go1.15.linux-amd64.tar.gztar -C /usr/local -xzf go1.15.linux-amd64.tar.gzecho 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc如果你不用ide的话,下面的步骤其实都不用原创 2021-10-17 13:25:01 · 48 阅读 · 0 评论 -
VsCode 搭建远程linux内核开发环境
环境ssh ,g++/gcc , gdb ,makevscode远程连接服务器安装Remote ssh连接服务器选第一个,感觉没啥关系右下角Open ConfigHostName 填ip然后就像打开本地文件一样打开服务器里的文件搭建c/c++ 环境安装c/c++ 插件搭建普通c/c++开发环境经典hello,World#include<stdio.h>int main(){ printf("%s","Hello,World\n");原创 2021-10-14 17:38:28 · 1254 阅读 · 0 评论 -
jshell 兼容linux【运行java脚本】
问题原链接像如下脚本是无法运行的原因是java不支持#作注解#!/usr/bin/env jshell -sSystem.out.println("Hello World")/exit虽然也不是完全无法运行,但是报错很扎眼。原链接里改成java注释的方法并不能很好解决问题我通过改一下解释程序让jshell也可以用#注释#!/bin/bashtmp=`mktemp`cat $1 | sed 's/^[[:space:]]*#.*$//' > $tmpecho '/exit' &g原创 2021-09-20 12:44:24 · 153 阅读 · 0 评论 -
vscode快速渲染uml,助力源码阅读。
vscode快速渲染uml目的为什么要用VSCOde 生成 uml 类图。用idea不香吗?idea生成一个类的uml类图还是很不错的。但是当时生成整个项目或则某个包下的uml就不方便了。也有可能是我不知道方便的办法。安装插件具体安装方式百度 vscode plantumlbash 过滤出类windows 下可以用git自带的bash。或则用wslfind . -name '*.java' | xargs cat | \awk -vRS='{' 'match($0,/public\s+((c原创 2021-09-11 15:56:50 · 3380 阅读 · 0 评论 -
Vscode配置 Scala和sbt配置
安装插件全家桶简单粗暴。如果你不想安这么多你就把带java和scala的安了就行了配置通俗易懂的配置maven-local是本地仓库路径加 file://剩下的就是镜像了[repositories] local maven-local: file:///home/lifuquan/.m2/repository nexus: http://maven.aliyun.com/nexus/content/groups/public/ typesafe: http://repo.typ原创 2021-08-28 13:23:20 · 3222 阅读 · 1 评论 -
tar增量备份linux
tar -g 可以实现增量备份,但是如果第一次比第二次备份时少了一些文件那解压恢复时就会有问题。被删除了的文件还会存在。于是我写了一些脚本用于管理和恢复时删除这些不该存在的文件。目录结构├── backup│ ├── backup@2021-07-30_16-08-43.tar.gz│ ├── backup@2021-08-03_12-50-23.tar.gz│ ├── .backup-snapshot│ ├── .date│ ├── e2021-07-30_16-08-原创 2021-08-03 13:46:52 · 468 阅读 · 0 评论 -
# bash 的 try catch
最近写了下shell. 深感if else 繁琐。参考了下csdn某位博主。结果代码没用。于是我自己写了个模板。等我写博文时翻到他引用的stackoverflow链接时才发现。他少了&& 。 :)我的模板:( :) || { case $? in *) perror $? ;; esac}stackoverflow模板set -e { # try command1 && #s原创 2021-08-01 18:21:45 · 472 阅读 · 0 评论