【操作系统】Bash杂谈

【漏洞复现】用友NC-Cloud-反序列化-ResourceManagerServlet NC Cloud是用友公司推出的大型企业数字化平台。支持公有云、混合云、专属云的灵活部署模式。NC Cloud完全基于云原生架构,技术先进、性能稳定、自主安全可控,支撑大中型以及超大型集团企业N层多site混合云部署方案,支持整个系统高可用、弹性扩展、双/多活,以及快速灾备恢复能力等。用友-NC-Cloud ResourceManagerServlet 接口存在反序列化漏洞,使得攻击者可以通过构造特定的请求远程执行恶意代码。此漏洞可能导致攻击者获取系统权限、执行任意命令,严重威胁系统的机密性和完整性。 阅读详情

 

Bash杂谈

by tay

 

关于which命令:

如果两个重名的命令,而且都在$PATH环境变量之中,则按照$PATH变量的前后顺序来查找

如:

[root@fx_local2 ~]# echo $PATH

/bin/1:/bin/2:/bin/3

而两个名为abc的命令分别在/bin/1和/bin/2中,那么which abc则只显示/bin/1

 

如果;

1、立刻将当前的$PATH改为:/bin/2:/bin/1:/bin/3,则执行的abc会立刻变为/bin/2中的,而which命令也会变

2、将命令从其所在目录移走,则which命令会立刻变,但命令行必须注销或重新login

 

test -h file:

如果file是个连接文件、且存在(被连接的文件可以不存在),则$?为0

如果还想判断它是不是个坏连接,则再用 -e 即可,目录用 -d

 

时区相关:

TZ=EST date

$TZ 定义时区为EST,然后只给date (对系统没有影响)

TZ='Asia/Tokyo';export TZ

$TZ 定义时区为JST,当前系统的时区改变(当前shell)

zdump EST

输出以EST作为时区的当前时间

 

进制相关:

[root@fx_local2 ABS]# let a=2#111

[root@fx_local2 ABS]# echo $a

7

[root@fxstest2 ~]# echo $((2#111)) # 输出2进制的111的10进制形式

7

[root@fxstest2 ~]# echo " ibase=16;obase=2; FF" | bc # 输入是16进制,输出是2进制

11111111

 

Bash间接引用,“指针”:

[root@fx_local2 ~]# i=aaa

[root@fx_local2 ~]# p=i # 定义了一个到i的指针

[root@fx_local2 ~]# echo ${!p} # 输出指针的值,相当于:echo${i}

aaa # 相当于$i的值

[root@fx_local2 ~]# eval echo /$$p # 和这种写法等效

aaa

 

输出脚本的最后一个参数:

#!/bin/bash

echo ${!#}

 

关于$0与软连接:

如果以连接的形势执行脚本,则$0表示连接文件的文件名

 

合并stdout和stderr的三种等价的方法,第一种首选:

&>/dev/null

>&/dev/null

>/dev/null 2>&1

[root@fx_local2 test]# ls none &>/dev/null

[root@fx_local2 test]# ls none &>tmp.txt 

[root@fx_local2 test]# cat tmp.txt

ls: none: No such file or directory

[root@fx_local2 test]# (time uptime) &>tmp.txt

[root@fx_local2 test]# cat tmp.txt

 12:09:09 up 11 days,  3:04, 4 users,  load average: 1.59,1.57, 1.55

 

real   0m0.002s

user   0m0.001s

sys    0m0.001s

 

内置变量$REPLY:

[root@fx_local2 ~]# read

ABC

[root@fx_local2 ~]# echo $REPLY

ABC

 

vim列块选取:

快捷键: ctrl + v

 

得到当前终端的长宽:

[root@fxstest2 Shell2]# stty size

64 140

[root@fxstest2 Shell2]# tput lines

64

[root@fxstest2 Shell2]# tput cols

140

 

显示一个文本文件中以AAA开头 到 以BBB开头 之间的行

sed -n '/^AAA/,/^BBB/p' txt

 

 

Gtk弹出确认窗口

zenity --info --text 'hello world !!!'

 

linux系统自带的字典,45427个单词

/usr/share/dict/linux.words

 

ping一个网段,看回显,用nmap

nmap -sP -n 172.27.205.0/24

 

awk数组排序

[root@fxstest1 ~]# echo -e "20/n3/n10/n56/n75/n1" | awk'{a[i++]=$1}END{asort(a);print a[i]}'

75

 

tail命令相关

tail -f /tmp/ttt | sed '/xxx/Q'

当出现“xxx”字符之后,再“xxx”不再出现时,tail命令则退出

tail --pid=PID 指定tail命令的pid

 

通过时间戳得到当前时间

date -d "00:00:00 1970-01-01 UTC +1156523905 sec"

 

screen命令

第1步:screen -Ss1 新开一个“终端”,执行一些命令在前台执行,如:sleep 1000000

第2步:ctrl + a +d 切换回原来那个终端,此时sleep将继续执行

第3步:ctrl + dlongout

第4步:重新登录,发现sleep还在执行

第5步:screen -rs1,切换到前台执行的sleep那个终端

 

利用二进制做排列组合

类似于linux系统的文件权限管理,

100 = 4

010 = 2

001 = 1

000 = 0

这样,4、2、1、0这四个十进制数(作为mark),通过加和,可以排出8种情况

即:

7 = 4 + 2 + 1

6 = 4 + 2 + 0

5 = 4 + 0 + 1

4 = 4 + 0 + 0

3 = 0 + 2 + 1

2 = 0 + 2 + 0

1 = 0 + 0 + 1

0 = 0 + 0 + 0

同理,8、4、2、1、0可以排出16种情况

 

显示两个字符所在行,之间的行

 

[root@fxstest1 ~]# seq 9 | sed -n '/3/,/8/p'

3

4

5

6

7

8

[root@fxstest1 ~]# seq 9 | sed -n '/3/,/8/p' | sed '1d;$d'

4

5

6

7

 

关于grep、awk的buffer的问题

 

tail -f a.txt | grep --line-buffered "^1" >>b.txt&

对于tail -f 这种不停增加的,只有加上 --buffered 参数,

这样才能将a.txt文件中的,以1开头的行,不停的追加到b.txt文件中

 

对于awk是这样:

tail -f a|awk '/^1/{print;fflush()}' >>b &

sed和awk处理文件一例

原格式

192.168.0.1&1=99&2=100

192.168.0.2&1=100&3=111

192.168.0.3&1=99&2=1&3=111

192.168.0.4&1=99&3=111&4=110

192.168.0.5&1=99&2=111&3=66&4=100&5=44

处理后

192.168.0.1  99    100   0      0    0

192.168.0.2  100  0     111  0    0

192.168.0.3  99    1     111  0    0

192.168.0.4  99    0     111  110  0

192.168.0.5  99    111   66    110  44

awk -F'[&=]''BEGIN{for(j=1;j<=6;j++)a[j]=0}{for(k=2;k<NF;k+=2)a[$k]=$(k+1);print$1"/t"a[1]"/t"a[2]"/t"a[3]"/t"a[4]"/t"a[5];for(j=1;j<=6;j++)a[j]=0}'urfile

sed -r's/&//n1/n2/n3/n4/n5/&/;:a;s//n(.)(.*)&/1=([^&]+)//t/3/2/;ta;s//n./b//t0/g

处理之后发现sed 比 awk 在这种处理上效率要快好多

 

awk汇总去重文件一例

转换前

china www.example.com 192.168.0.1 80

usa www.example.com 192.168.0.1 80

china www.example.com 192.168.0.1 81

usa www.example.com 192.168.0.1 81

china www.example.com 192.168.0.1 82

usa www.example.com 192.168.0.1 82

 

转化后

china,usa www.example.com 192.168.0.1 80

china,usa www.example.com 192.168.0.1 81

china,usa www.example.com 192.168.0.1 82

 

awk '{if(a[$3" "$4" "$5]!~ $1) a[$3" "$4" "$5]=a[$3" "$4""$5]","$1;if(b[$3" "$4""$5] !~ $2)b[$3" "$4" "$5]=b[$3""$4" "$5]"|"$2}END{for (i in a) {printsubstr(a,2)" "substr(b,2)" "i}}'

 

本文原创自无线技术运营空间: http://wireless.qzone.qq.com 及http://blog.youkuaiyun.com/wireless_tech (专注无线技术运营——无线技术(操作系统/数据库/WEB前端/负载均衡/系统容灾/系统安全/短信接入/WAP接入/3G等)、无线业务运营、无线开放平台、统计分析(用户行为分析/数据挖掘)、CP合作,联系我们:1780551083@qq.com)

 

滑块逆向及流程分析 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 阅读详情

相关推荐

LC整流滤波电路DIY:电感电容配合,手把手搭建低纹波直流电源

在直流电源设计中,整流滤波是连接交流输入与稳定输出的关键环节。常见的电容滤波虽然简单,但在大负载下纹波抑制能力有限,电感抵抗电流突变、电容抵抗电压突变,二者组合构成的LC滤波能有效降低输出电压纹波,同时减小开机浪涌电流。在工频线性电源、功放电源等对噪声敏感的场景中,LC滤波常作为稳压前的平滑缓冲。本文以一套完整DIY项目为线索,介绍整流桥后串联功率电感、并联滤波电容的电路构成,结合实际计算与波形测试,讨论电感量估算、电容选取、谐振风险、饱和电流等工程问题,并给出上电测试和故障排查方法。通过搭建与调试,可直观

weixin_29168813的博客 375

函数中申请的指针退出函数时_Bash函数用法(3):使用函数名作为函数指针,在函数内cd的影响...

本系列文章介绍在 Linux Bash shell 中使用函数的一些实例,包括下面的内容:定义函数的格式从函数中返回内容使用函数名作为函数指针函数内执行cd命令的影响声明函数内的变量为局部变量获取传入函数的所有参数使用函数名作为函数指针在 bash 中,可以通过如下的方式来达到类似C语言函数指针的效果。假设有一个 test.sh 脚本,内容如下:#!/bin/bash# 注意$1后面有一个分号';...

weixin_39616503的博客 160

adb 通信协议分析以及实现 (三) (Adb 网络通信部分解析)

这篇文章说下adb 和adb 服务进程之间通信的socket 协议。  adb 服务进程启动之后,会监视本地的5037 端口,使用的是TCP 协议,所以adb 发送的命令其实就是往本地的5037 端口发送数据,做过网络编程的都知道,本机可以用127.0.0.1 ip地址。 有了ip 地址和端口号socket 通信就没问题 1)  命令发送方式      

inforecovvery的博客 2869

shell中的指针-变量的间接引用

#!/bin/bash a=abcd abcd=1234 echo "a = $a" eval a=\$$a echo "now a = $a" # ./test.sh  a = abcd now a = 1234

小石头的专栏 3549

CAD制图

CAD制图可以提高设计效率和准确性,并方便文档的存档和交流,是现代工程设计中不可或缺的一部分。·CAD三维开发是指使用计算机程序和工具来创建、编辑和操作三维模型、图形和设计的过程。它在工程、建筑、制造和游戏等领域广泛应用。CAD三维开发可能涉及到复杂的图形算法、性能优化、并行计算等方面的内容,因此需要深入学习和实践,以提高开发的效率和质量。

RZer的博客 1644

5分钟搞定Unity+Visual Studio开发环境配置(含C#游戏开发工作负载)

本文提供了一份详细的Unity与Visual Studio开发环境配置指南,帮助开发者在5分钟内完成C#游戏开发工作负载的设置。从Unity Hub安装到Visual Studio关键组件选择,再到常见问题排查,全面覆盖环境搭建的各个环节,显著提升游戏开发效率。

weixin_29014237的博客 247

linux 中的指针

1.指针的算数运算与关系运算是如何实现的? 第一种形式是:指针+-整数 标准定义这种形式只能用于指向数组中某个元素的指针,并且这类表达式的结果类型也是指针。这种形式也适用于使用malloc函数动态分配获得的内存。 对一个指针加1使它指向数组中的下一个元素,加5使它向右移动5个元素的位置,依次类推。把一个指针减去3使它向左移动3个元素的位置。 第二种类型的指针运算具有如下的形式

ys5858588的博客 1677

【破局之道】LangChain4j 0.31.0 + Java 8 + Spring Boot:在“过时”环境中构建本地大模型应用的实战指南

本文为使用Java 8和Spring Boot等“过时”技术栈的团队提供了构建本地大模型应用的实战指南。通过采用LangChain4j 0.31.0这一兼容版本,结合Ollama部署本地大模型,开发者无需升级JDK即可在现有项目中快速集成AI能力,实现智能问答、文档摘要等功能,为传统项目注入创新活力。

t4y5u6i7o的博客 557

linux高级编程四shell编程/指针

================= main 函数传参 =================== 1.int main(int argc, const char *argv[]) 1.argc:给main函数传参字符串的个数 argv[0]:执行文件的名字 argv[1]:main函数传参中main函数后面的第一个字符串 ... =

2412

《拉依达的嵌入式\驱动面试宝典》—计算机硬件篇(一)

《拉依达的嵌入式\驱动面试宝典》 整合了所有我认为可能遇到的技术面试问题。所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到全网独一无二。学习或者转行到嵌入式、驱动开发领域学习的不二之选

拉依达不拉跨的博客 767

系统架构设计师重难点知识脑图

大家都知道现在的软考自从变成机考后,越来越难了,教程上的内容不仅全还细,几乎任何内容都有可能考,出题老师主打一个出其不意,比如2024年5月考试,连UML时序图的片段都考,这。软件工程、系统架构基础知识、系统质量属性与架构评估、软件架构的演化和维护、信息系统架构设计、层次式架构设计、云原生架构设计、面向服务架构设计、安全架构设计、大数据架构设计等。所以对于教程上的任何知识点,都需要去记忆。因此我在这里制作了一个脑图,将所有知识点集中在一个脑图中,通过首词组句法,记忆背诵,通过一个个的展开节点,加强记忆。

分享技术干货和灵感、推荐新书和好玩的项目、分享Java面试题 1100

bash 和 sh 的一点儿区别

持续更新。。。目前了解这么多: 一、发现二者的区别: 同样的 shell 脚本,使用 sh xxx.sh 和 bash xxx.sh 调用执行时结果不同,使用 sh 时会输出许多匪夷所思的结果,而使用 bash 时就完全按照预期。 二、二者区别 1、sh 是 bash 的软链接 fxw@fxw-Lenovo:~ $ which sh /bin/sh fxw@fxw-Lenovo:~ ...

路漫漫其修远兮,吾将上下而求索。 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

linux bash的命令,Linux Bash 命令行杂谈

1. 什么是 shell、bash 和命令行1.1 shell从结构和功能上,可以把 Unix/Linux 操作系统分成操作系统内核、shell、 库函数和应用软件几个层次。其中操作系统内核可称为严格意义上的操作系统,它控制硬件系统资源,实现基本的操作系统功能 (比如运行新程序、打开文件、读写文件、分配内存等),提供程序运行环境。内核通过系统调用为 shell、库函数、应用程序提供直接访问内核功能...

weixin_34790851的博客 1017

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

模拟面试:Shell和Bash到底是什么关系?它们是同一个东西吗?

今天,我们不聊枯燥的八股文,也不搞压力面,我们来一场别开生面的“技术茶话会”。我们的议题,就藏在下面这个经典的、让无数萌新挠头的面试问题里:是不是感觉似曾相识?别慌,今天我们就以一篇超长的“优快云风格”技术杂谈,把这个问题的里里外外、前世今生掰开了、揉碎了,讲得明明白白、生动有趣。我们会模拟一场真实的面试对话,穿插各种脑洞大开的比喻,保证你听完之后,不仅能完美回答这个问题,还能在茶余饭后成为朋友圈里的“Linux梗王”。准备好了吗?我们的模拟面试,现在开始!场景:极客科技公司,一间摆着绿植、挂着代码艺术画

小李独爱秋的博客 1303

Reverse Shell 杂谈

昨天有个小伙伴在群里问在 macOS 下如何实现 bash 反弹 shell,因为 Mac 中没有 `/dev/tcp` 目录。借着这个问题,就来简单谈谈反弹 shell 的那些事。

有价值炮灰 1427

DOS的命令、Linux的shell和window下的cmd杂谈

1.定义 DOS、Window、Linux都是操作系统;操作系统分为核心(Kernel)和外壳(shell)。 操作系统可以分成核心(kernel)和Shell(外壳)两部分。Window系统中的桌面即explorer.exe(资源管理器)是图形shell,而cmd就是命令行shell;Linux的shell,按照ABS(《Advance Bash-Scripting guide 》)的解

jiubugeinifo的专栏 5667

Linux杂谈

 Linux一般有四个主要部分:内核、Shell、文件结构和实用工具。 1. Linux内核  内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。它从用户那里接受命令并把命令送给内核去执行。 2. Linux Shell  Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。  实际上Shell是一个命令解释器,它解

armman的专栏 669

回忆曾经写过的第一个Bash脚本

这盘文章,算是杂谈吧,想谈谈我对于Linux操作系统的灵魂之笔 Bash的理解。

jin的专栏 1857

docker杂谈

Docker 项目的目标是实现快速轻量级的操作系统虚拟化解决方案。容器是在操作系统层面实现虚拟化,直接复用本地主机的操作系统,而传统虚拟机则是在硬件层面实现。Docker的生命周期包含三个部分,镜像,容器,仓库,我们可以把镜像,容器想像成java的类和对象,即容器是由镜像实例化而来的。也就是说我们想使用装有相关软件的镜像,首先要把镜像创建成容器。使用docker run命令已经创建一个docker...

steven_one7的博客 232

Git使用杂谈——安装和上传代码到码云

文章目录前言Git安装Git初始化Git提交本地代码本地仓库关联到远端仓库注册码云本地端操作方法一,先下载,再上传方法二,先创建,再上传。Git SSH公钥与码云关联用处获取SSH公钥关联到码云Q&AQ:输入码云的账号密码输入错了?Q:我想在IDE中使用Git并且想把它上传到码云怎么办?总结 前言 早就听说了Git的大名,它是使用在多人协作的版本控制上,优点啥的我只听说过,没有切身感受到,...

许帅的博客 1101

shell、cmd、dos和脚本语言杂谈

问题一:DOS与windows中cmd区别 在windows系统中,“开始-运行-cmd”可以打开“cmd.exe”,进行命令行操作。 操作系统可以分成核心(kernel)和Shell(外壳)两部分,其中,Shell是操作系统与外部的主要接口,位于操作系统的外层,为用户提供与操作系统核心沟通的途径。在windows系统中见到的桌面即explorer.exe(资源管理器)是图形shell,而

zhuyongxin_6688的博客 887

Linux 【杂谈】基础知识(二)

本文主要是讲解在Linux指令阶段,一些比较重要的是又比较琐碎的相关知识。本文对标的是【Linux 第三讲 --- 基础指令(三)-优快云博客】 【Linux 第四讲 --- 基础指令(四)-优快云博客】中出现的新的概念。我们都知道Windows以图形化界面为交互方式,而Linux以命令行界面为交互方式。Windows和Linux的交互方式虽然不同,但本质上是一样的,图形化界面和命令行界面都是为了让用户进行相关操作,而图形化界面和命令行界面就是我们所说的“外壳程序”。而Shell 是用户与操作系统内核(

hi0_6的博客 1094

shell、cmd、dos和脚本语言杂谈(转)

问题一:DOS与windows中cmd区别 在windows系统中,“开始-运行-cmd”可以打开“cmd.exe”,进行命令行操作。 操作系统可以分成核心(kernel)和Shell(外壳)两部分,其中,Shell是操作系统与外部的主要接口,位于操作系统的外层,为用户提供与操作系统核心沟通的途径。在windows系统中见到的桌面即explorer.exe(资源管理器)是图形shell,...

weixin_30716141的博客 79

[编程杂谈] 参数化你的应用

应用级别   Application Arguments平台级别   System Properties系统级别   Environment Variable具体如何选择看要看场景及个人喜好。比如如果选择在系统级别来配置参数,那么应用的就能很好的进行多实例的部署,甚至无缝部署在不同的云平台。

robbywt的博客 1143

Linux操作系统简介:了解Linux的核心概念

Linux作为一款开源、多用户、多任务的操作系统内核,自1991年林纳斯·托瓦兹(Linus Torvalds)首次发布以来,已发展成为全球最流行的操作系统之一。本文将从Linux的核心概念出发,系统介绍其设计理念、体系结构、运行机制及关键特性,帮助读者构建对Linux操作系统的完整认知框架。

鸽芷咕的博客 1万+

第1讲 MySQL架构杂谈

mysqld --no-defaults命令,并在后面追加命令行选项来配置,如下。然后用mysql命令启动--basedir:软件安装目录--datadir:数据目录--user:用户名--pid-file:PID文件--socket:socket设置文件--port:服务器暴露的端口--prompt:修改提示符。

2301_82031572的博客 402

【杂谈】-Linux系统编程涉及的一些相关概念

系统软件位于底层,直接与内核和核心系统库接口相连。系统软件包括你的外壳程序(shell)和文本编辑器、编译器和调试器、核心工具以及系统守护进程。这些组件完全基于内核和C库的系统软件。许多其他软件(如高级GUI应用程序)主要存在于更高层次,偶尔才会深入到低层。

视觉与物联智能 954
上一篇: 【经验总结】巧用awk:如何把多行日志变成一行
下一篇: 【经验总结】Bash Pitfalls(原创翻译)
wireless_tech
博客等级 码龄16年 23粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值