利用Linux中的Ruby命令进行高效编程 (linux ruby命令)

随着计算机技术的不断发展,现代程序员越来越注重效率和工作流程的优化。除了选择高效的编程语言和开发工具外,还有一种被忽视的利器——Linux中的Ruby命令。Ruby是一种高级、面向对象的编程语言,它的主要优点是简单、灵活和易于学习和使用。在Linux操作系统中,Ruby命令可以快速执行各种任务,从而提高编程效率。本文将探讨如何。

一、Ruby命令入门

Ruby命令可以通过终端来执行,首先需要在Linux中安装Ruby解释器。安装完成后,可以使用以下命令来检验是否成功:

“`

ruby -v

“`

该命令将显示安装的Ruby版本号,验证安装成功。

接下来,我们来了解几个常用的Ruby命令:

1. irb(Interactive Ruby Shell)

irb命令是一个交互式的Ruby解释器,它提供了一个快速的开发环境,可以用来测试Ruby代码在终端上的执行结果。使用以下命令启动irb:

“`

irb

“`

启动后,可以输入任何有效的Ruby代码并立即看到执行结果。例如,可以输入以下代码:

“`

puts “Hello, world!”

“`

这将在终端上输出“Hello, world!”。

2. ruby命令

ruby命令是使用Ruby编写的程序的主要执行方式。可以使用以下命令来运行一个Ruby程序:

“`

ruby program.rb

“`

其中“program.rb”表示要运行的Ruby程序的文件名。该命令将在终端上输出程序的执行结果。

3. gem命令

gem是Ruby的包管理器,它可以下载、安装和管理Ruby程序包及其依赖关系。可以使用以下命令来查看已安装的Ruby程序包:

“`

gem list

“`

这将列出所有已安装的Ruby程序包及其版本信息。

二、在Linux中利用Ruby进行高效编程

在Linux中,Ruby命令可以用来执行各种任务,从文本处理到网络编程,从而提高编程效率。

1. 文本处理

Ruby命令可以轻松处理和操作文本文件,例如:

– 查找文本文件中的特定行:

“`

ruby -ne ‘puts $_ if $_.include? “keyword”‘ file.txt

“`

其中“keyword”表示要查找的关键字,“file.txt”表示要处理的文本文件。该命令将输出含有关键字的每一行。

– 统计文本文件中的行数:

“`

ruby -e ‘puts File.readlines(“file.txt”).size’

“`

该命令将统计“file.txt”中的总行数并输出。

2. 系统管理

Ruby命令可以用于系统管理任务,例如:

– 查看Linux系统的内核版本:

“`

ruby -e ‘puts `uname -r`’

“`

该命令将输出当前Linux系统的内核版本。

– 关闭Linux系统的所有打开文件:

“`

ruby -e ‘Dir.entries(“/proc”).select{|f| f.to_i != 0}.each{|f| system(“cat /proc/#{f}/maps | grep -E “\(deleted\)|anon_inode” > /dev/null && system(“echo 1 > /proc/#{f}/fd/2”) }’

“`

该命令将关闭Linux系统中的所有打开文件。

3. 网络编程

Ruby命令可以用于网络编程,例如:

– 下载网页并保存为文件:

“`

ruby -e ‘require “open-uri”; File.open(“output.html”, “wb”).write(open(“http://example.com”).read)’

“`

该命令将下载“http://example.com”网页并保存为“output.html”文件。

– 监听端口并输出收到的请求:

“`

ruby -rsocket -e ‘s = TCPServer.new(1234); loop { c = s.accept; puts c.read; c.close }’

“`

该命令将在本地主机的1234端口上监听,当收到请求后,将请求内容输出到终端。

本文介绍了如何。通过简单地学习和使用Ruby命令,程序员可以轻松地处理文本文件、执行系统管理任务和进行网络编程。Ruby命令的主要优点是灵活和易于学习和使用,程序员无需深入了解Ruby语言的所有细节即可充分利用其功能。在编程过程中,使用Linux中的Ruby命令可以提高编程效率,从而更快地开发出优秀的软件产品。

相关问题拓展阅读:

命令行/终端下载指令大全(win + linux)

在我们渗透测试的过程中,通常会需要向目标主机传送一些文件,来达到提权,维持控制等目的。因此当不方便进行直接传输时,同时目标主机是能有网络连接的,那么此时就可以通过本地下载这种方法来达到文件传输的目的。此篇文章,我会对互联网上针对win与linux大部分的下载指令来做一个汇总,可能会有疏漏,但汇总的都是经常会用的。

这款工具功能很丰富,可以充当某种功能完备的GUI下载管理器,它拥有一款理想的下载管理器所需要的所有功能,比如它可以恢复下载,可以下载多个文件,出现某个连接问题后,可以重新尝试下载,你甚至可以管理更大的下载带宽。

直接下载:

后台下载:

如果互联网连接出现中断,恢复下载:

从某个密码保护的ftp软件库下载文件:

Curl是另一种高效的下载工具,它可以用来上传或下载文件,只要使用一个简单的命令。它支持暂停和恢复下载程序包,并支持数量最多的Web协议,可预测下载完成还剩余多少时间,可通过进度条来显示下载进度。它是所有Linux发行版的内置工具。

直接下载:

借助-o选项,提供名称,下载文件会以该名称保存;如使用-O选项,文件就会以原始名称保存。

这是wget的出色替代者,是一款轻量级下载实用工具。它实际上是个加速器,因为它打开了多路http连接,可下载独立文件片段,因而文件下载起来更快速。

直接下载:

这是一种开源命令行下载加速器,支持多个端口,你可以使用更大带宽来下载文件,是一款易于安装、易于使用的工具。

直接下载:

Perl是一门很吊的语言,使用它基本可以实现任何事情,用它实现文件下载也很简单。

执行脚本文件是这样:

Python也是很受欢迎的主流脚本语言,代码清晰且简洁:

Ruby是一个面对对象的语言,Metasploit框架就是用它来实现的,当然他也可以实现像下载文件这样的小任务。

执行脚本文件是这样;

PHP作为一种服务端脚本,也可以实现下载文件这种功能。

执行脚本文件是这样:

一般情况下攻击者使用FTP上传文件需要很多交互的步骤,下面这个 bash 脚本,考虑到了交互的情况,可以直接执行并不会产生交互动作。

当然根据实际情况也可以进入交互终端:

攻击者的电脑上输入:

这个命令会将file的内容输出到本地的1234端口中,然后不论谁连接此端口,file的内容将会发送到连接过来的IP。

目标电脑上的命令:

这条命令将连接攻击者的电脑,接受file内容保存。

PowerShell 是一种winodws原生的脚本语言,对于熟练使用它的人来说,可以实现很多复杂的功能。

下面这两条指令实现了从Internet网络下载一个文件。

可以应用到: Windows Server 2023, Windows Server 2023 R2, Windows Server 2023 with SP1, Windows Server 2023 with SP2

文件下载并执行如下:

在1998年Visual Basic最终标准在windows上确定。下面的代码可以实现下载文件,虽然它的长度比Powershell长多了。

在windows中Cscript指令可以允许你执行VBS脚本文件或者对script脚本做一些设置。在windows 7中这个指令并不是必须要用到。但是在windows XP中需要使用这条指令,如下所示:

在Windows Vista以及以后的版本中默认有FTP,可以使用以下命令运行:

上传:

下载:

Bitsadmin是Windows命令行工具,用户可以使用它来创建下载或上传的任务。只能命令下载到指定路径上,win7以上:

mshta

内容如下:

依赖于WScript.shell这个组件:

Regsvr32命令用于注册COM组件,是 Windows 系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。

WinXP及以上系统的regsvr32.exe在windowssystem32文件夹下;2023系统的regsvr32.exe在winntsystem32文件夹下。

test.data内容:

还可以利用

生成sct文件:

Windows shares可以加载一个驱动器,然后用命令来复制文件。

加载远程驱动:

当需要把一个exe文件放到目标计算机上时,Nishang可以使用PowerShell允许你把一个exe转换成hex,然后把hex再转换成原来的exe文件:

把exe转成hex文件输入:

打开evil.txt文件,复制内容,然后通过RDP的剪贴板复制进目标计算机,把hex文件还原成exe文件输入:

1.MSXSL.EXE

msxsl.exe是微软用于命令行下处理XSL的一个程序,所以通过他,我们可以执行JavaScript进而执行系统命令。

2.pubprn.vbs在Windows 7以上版本存在一个名为PubPrn.vbs的微软已签名WSH脚本,其位于

3.esentutl.exe/extrac32.exe

4.desktopimgdownldr.exedesktopimgdownldr.exe 位于 Win10 的 system32 文件夹中,原本用于设置锁定屏幕或桌面背景图像的。

普通用户可以用:

这样来下载文件。

可以把C:ProgramData来改成一个普通用户可写的目录。

下载的文件存放于:

管理员用户会多写一个注册表项,所以管理员更好的命令是:

作者:肖洋肖恩、

原文链接:

Linux中对一行内文字如何进行修改

sed是一个很好的文件处理工具,本身是一悉橡个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法

sed命令行格式为:

sed ‘command’ 输入文本

常用选项:

n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。

e∶直接在指令列模式上进行 sed 的动作编辑;

f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;

r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)

i∶直接修改读取者陆宴的档案内容,而不是由萤幕输出。

常用命令:

a ∶新增, a 的后首银面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;

i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~

s ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

举例:(假设我们有一文件名为ab)

删除某行

# sed ‘1d’ ab#删除之一行

# sed ‘$d’ ab#删除最后一行

# sed ‘1,2d’ ab#删除之一行到第二行

# sed ‘2,$d’ ab#删除第二行到最后一行

  显示某行

. # sed -n ‘1p’ ab#显示之一行

# sed -n ‘$p’ ab#显示最后一行

# sed -n ‘1,2p’ ab#显示之一行到第二行

# sed -n ‘2,$p’ ab#显示第二行到最后一行

  使用模式进行查询

# sed -n ‘/ruby/p’ ab #查询包括关键字ruby所在所有行

# sed -n ‘/\$/p’ ab#查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义

  增加一行或多行字符串

# cat ab

Hello!

ruby is me,welcome to my blog.

end

# sed ‘1a drink tea’ ab #之一行后增加字符串”drink tea”

Hello!

drink tea

ruby is me,welcome to my blog.

end

# sed ‘1,3a drink tea’ ab #之一行到第三行后增加字符串”drink tea”

Hello!

drink tea

ruby is me,welcome to my blog.

drink tea

end

drink tea

# sed ‘1a drink tea\nor coffee’ ab #之一行后增加多行,使用换行符\n

Hello!

drink tea

or coffee

ruby is me,welcome to my blog.

end

  代替一行或多行

# sed ‘1c Hi’ ab #之一行代替为Hi

Hi

ruby is me,welcome to my blog.

end

# sed ‘1,2c Hi’ ab#之一行到第二行代替为Hi

Hi

end

  替换一行中的某部分

  格式:sed ‘s/要替换的字符串/新的字符串/g’ (要替换的字符串可以用正则表达式)

# sed -n ‘/ruby/p’ ab | sed ‘s/ruby/bird/g’ #替换ruby为bird

  # sed -n ‘/ruby/p’ ab | sed ‘s/ruby//g’#删除ruby

插入

# sed -i ‘$a bye’ ab#在文件ab中最后一行直接输入”bye”

# cat ab

Hello!

ruby is me,welcome to my blog.

end

bye

删除匹配行

sed -i ‘/匹配字符串/d’ filename (注:若匹配字符串是变量,则需要“”,而不是‘’。记得好像是)

替换匹配行中的某个字符串

sed -i ‘/匹配字符串/s/替换源字符串/替换目标字符串/g’ filename

用sed:

echo “/*123*/ABC” | sed ‘s#/\*.*\*/##’

由于*号在正则中有特殊含义(表示重复尘型前面一个字符0次或多次)滚散,要表示*字符本身,要在前派备猜面加\转义。

linux ruby命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux ruby命令,利用Linux中的Ruby命令进行高效编程,命令行/终端下载指令大全(win + linux),Linux中对一行内文字如何进行修改的信息别忘了在本站进行查找喔。


数据运维技术 » 利用Linux中的Ruby命令进行高效编程 (linux ruby命令)