程序是由指令+数据组成的。换言之,程序是对读入的数据进行处理,再输出数据。数据的输入(Input),输出(Output),简称为IO,在没有指定输入输出的情况下,默认为标准输入和标准输出。打开的文件都有一个文件描述符(fd: file descriptor)表现为一个数字 标准输入:keyborad(键盘), 文件描述符:0 标准输出:monitor(显示屏), 文件描述符:1 标准错误输出:monitor, 文件描述符:2 I/O重定向:改变标准输入与输出的默认位置 标准输出重定向 输出重定向
为了加快对磁盘上文件的读写速度,位于内存中的文件数据不会立即同步到磁盘上,因此关机之前需要先进行 sync 同步操作。
bash中0,1,2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)
之前在网上看到很多师傅们总结的linux反弹shell的一些方法,为了更熟练的去运用这些技术,于是自己花精力查了很多资料去理解这些命令的含义,将研究的成果记录在这里,所谓的反弹shell,指的是我们在自己的机器上开启监听,然后在被攻击者的机器上发送连接请求去连接我们的机器,将被攻击者的shell反弹到我们的机器上,下面来介绍分析几种常用的方法。
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
在Linux中, 标准输入 是标准输入流,这接受文本作为其输入,我们看到的stdin就是标准输入流之意(也称为输入重定向)。从命令到shell的文本输出是通过 标准输出 (标准输出)流,stdout就是标准输出流之意(也称为输出重定向),来自命令的错误消息通过发送 标准错误 (标准错误)流,比如stderr就是标准错误流之意(也称为错误重定向)。
在这一篇中,我们介绍了一点关于输入输出重定向和管道的基础知识,本篇将继续重定向的话题。 在开始前,先说一说shell中的引用。
1.快捷启动vagrant搭建的虚拟机并进入系统(vargant up && vagrant ssh),创建一个.txt文件,写入以下命令
黑入服务器很少会是通过账号密码的方式进入,因为这很难破解密码和很多服务器都做了限制白名单。
将命令的输出重定向到文件或将其通过管道传递到另一个命令时,你可能会注意到错误消息已打印在屏幕上。 在Bash和其他Linux Shell中,执行程序时,它使用三个标准I/O流。每个流由一个数字文件描述符表示: 0-stdin,标准输入流。 1 -stdout,标准输出流。 2 -stderr,标准错误流。 文件描述符只是代表打开文件的数字。 输入流通常通过在键盘上输入来向程序提供信息。 程序输出进入标准输出流,错误消息进入标准错误流。默认情况下,输入流和错误流都打印在屏幕上。 重定向标准输出流 重定向是一种
在Unix-like系统中,I/O流的重定向是常见的操作,它可以改变命令输出的去向。在Shell中,有三种主要的I/O流:
exec 是一个在Bash Shell脚本中使用的命令,它允许您替换当前进程的内容,包括进程ID和文件描述符。使用exec命令可以实现一些有用的功能,例如替换脚本当前的Shell进程、切换到不同的命令解释器、重定向标准输入输出等。本文将详细介绍如何在Bash Shell脚本中使用exec命令,并提供一些常见的用例和示例。
我知道如何使用tee将 aaa.sh 的输出(标准输出)写入 bbb.out,同时还在终端中显示:
ls -al > list 将结果写入list文件中,list没有将创建
对于文件描述符就先知道这些就可以了,具体的使用会在重定向中来说,重定向就是对文件描述符的操作
大家在做渗透测试的时候,遇到linux的服务器,想反弹shell回来本地溢出提权,怎么办?上传反弹脚本?当然可以,简单来说就是A主机可以通过执行B主机上的命令并且把返回值都返回到A上。今天再告诉大家几种方法
将命令的输出重定向到文件,或将其通过管道传递到另一个命令时,你可能会注意到错误消息会被打印在屏幕上。
15.1 理解输入和输出 现在知道两种显示脚本输出的方法 1)在显示器屏幕上显示 2)将输出文件重定向到文件中 15.1.1 标准文件描述符 Linux系统将每个对象当做文件处理。这包括输入和数出进程。 Linux用文件描述符来标识每个文件对象。 它是一个非负整数,可以唯一标识会话中打开的文件。 每个进程一次最多可以有九个文件描述符 bash shell保留的前3个文件描述符(0、 1、 2) 1.STDIN 标准输入(0) STDIN文件代表shell的标准输入。 对终端界面来说,标准输入是键盘。 she
原文链接:https://rumenz.com/rumenbiji/linux-nohup.html
了解Linux怎样处理输入和输出是非常重要的。一旦我们了解其原理以后,我们就可以正确熟练地使用脚本把内容输出到正确的位置。同样我们也可以更好地理解输入重定向和输出重定向。
很明显默认是用户的目录,虽然可以手工去指定目录然后右键开启gitbash就能到指定的目录,但是很麻烦,比如我的网站目录是在D:\wwwroot,每次去切换好累啊。
Linux下的标准输入、输出、重定向、管道 在Linux系统中,有4个特殊的符号,<, ‘>’, ‘|’, ‘-‘,在我们处理输入和输出时存在重要但具有迷惑性的作用。 默认Linux的命令的结果都是输出到标准输出,错误信息 (比如命令未找到或文件格式识别错误等) 输出到标准错误,而标准输出和标准错误默认都会显示到屏幕上。 >表示重定向标准输出,> filename就是把标准输出存储到文件filename里面。标准错误还是会显示在屏幕上。 2 >&1 表示把标准错误重定向到标准输出。Linux终端用2表示标准
获取当前bash窗口的进程id [root@CentOS6 shell]# echo $$1586 查看当前进行的所有进程id [root@CentOS6 shell]# ps -efUID
来源 | https://dablelv.blog.csdn.net/article/details/79985071
上面的是一个典型的反弹shell的语句,但是这种不能实时地在攻击机输入,攻击机输出,只能在靶机输入东西,然后在攻击机看到
nohup 的作用可以将程序以忽略挂起信号(SIGHUP)的方式运行。常见的用法是和& 命令一同使用,将命令放置到后台运行,即使终端挂掉,进程会忽略挂起信号,继续运行。鸟哥Linux私房菜完整版
kali Linux (内外:192.168.5.139) Centos8 (腾讯云:123.6.44.67)
变量 #!/bin/bash # 变量 echo "01_变量.sh" # 变量定义与赋值,等号两边不能用空格分开 name=hahahaha echo $name echo 也使用 {} 输出为 ${name} # 一些特殊变量 test_func() { echo "function name is $FUNCNAME" } test_func echo $HOSTNAME echo $HOSTTYPE echo $MATCHTYPE echo $LANG echo $PWD # echo $
tee命令的默认行为是覆盖指定的文件,与>运算符相同。 要将输出附加到文件,请使用-a(--append)选项调用命令:
把多个 Linux 命令适当地组合到一起,使其协同工作,以便更加高效地处理数据。要做到这一点,就必须搞明白命令的输入重定向和输出重定向的原理。
在使用Linux运行程序的时候,常常遇到需要耗费一定时间才能完成的文件,如果在前台运行,此时坐在电脑前的你只能被迫打开其他软件进行摸鱼。
在学习大数据开发时,shell的特殊符号也是基础的重要组成部分。把特殊符号牢记在心,对我们的工作效率提升有很大的帮助,内容较多,建议收藏后观看。(另外小声问一下,大家是怎么记这些特殊符号的)
从字面意义上我们可以这样理解:输出本来是当我进行命令后,输出到屏幕上,现在我不让他输出到屏幕,改变他的输出方向,把他输出到文件当中,就叫输出重定向。
通俗的讲,输出重定向就是把要输出的信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏)
shell 俗称叫做壳,计算机的壳层,和内核是相对的,用于和用户交互,接收用户指令,调用相应的程序。
Git windows版本官方下载地址 https://git-scm.com/download/win
这里的2>&1是什么意思?该如何理解? 先说结论:上面的调用表明将./test.sh的输出重定向到log.txt文件中,同时将标准错误也重定向到log.txt文件中。
在渗透测试过程中,我们经常会用到端口转发,利用代理脚本将内网的流量代理到本地进行访问,这样极大的方便了我们对内网进行横向渗透。最常见的端口转发工具不限于以下几款,大家可以根据在实际测试过程的需要进行选择。
本文介绍QtCreator添加一些简单的命令以提高使用效率。 君君在开发中常用到的命令工具,非常实用,分享给大家。 0x01 创建几个实用命令工具 打开当前git bash(需安装git bash) 说明 :打开当前目录git bash 执行档 :cmd 参数 :/c "C:\Program Files\Git\git-bash.exe" 工作目录:%{CurrentDocument:NativePath} 📷 打开当前文件所在目录 说明 :打开当前文件所在的目录 执行档 :cmd
函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。
05 Jun 2018 shell技巧分享(五) 这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。 1 重定向相关知识 重定向标准输出到文件 $ echo line1 > test.log $ cat test.log line1 重定向标准错误到文件 $ echo line1 2> error.log line1 $ cat error.log 重定向标准输出到标准错误 $ echo lin
一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的是系统软件的内核部分,用户是无法与硬件或内核打交道的,用户通过应用程序或部分系统软件发出指令(可能是通过浏览器发送一封邮件),这些指令会被翻译并传给内核,内核在得知用户的需求后调度硬件资源来完成操作(比如,使用网卡发送数据包)。 在Linux环境下,我们一般通过Shell来与内核交流,并最终实现我们想要使用计算机资源的目的。由于Linux的开放性特点,使得在Linux下对Shell的选择也很多,CentO
一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的是系统软件的内核部分,用户是无法与硬件或内核打交道的,用户通过应用程序或部分系统软件发出指令(可能是通过浏览器发送一封邮件),这些指令会被翻译并传给内核,内核在得知用户的需求后调度硬件资源来完成操作(比如,使用网卡发送数据包)。
双引号""、单引号''、反引号 的区别
领取专属 10元无门槛券
手把手带您无忧上云