在写shell脚本的过程中,我们经常碰到一些操作需要我们取实时指定一些参数,这就需要用到免交互了。免交互让我们的shell脚本更加强大。介绍几种免交互的方式1.管道符
不同命令间协调工作,位于 | 左侧命令的输出结果,将作为右侧命令的输入(处理对象)
例1 免交互修改账户密码
vim pswd.sh
#!/bin/bash
echo "Abc1357
Abc1357" | passwd --std            
                
         
            
            
            
            一、什么是SSH?简单说,SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广            
                
         
            
            
            
            平时在控制台输入指令如:sudo、ssh、ftp或者修改admin权限的文件时候都会要求输入password,但是在she'll脚本运行过程中该如何交互实现自动输入密码呢?下面总结三种实现方法:一、重定向:用重定向方法实现交互的前提是指令需要有参数来指定密码输入方式,如ftp就有-i参数来指定使用标准输入来输入密码shell用重定向作为标准输入的用法是:cmd<<delimiter ,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-23 21:41:33
                            
                                0阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Shell 脚本自动输入密码的三种方式 注意,如果创建.sh文件后不可以执行,请执行sudo chmod 755 文件名.sh来修改权限。方式一使用 echo “密码” | (管道符)使用场景: sudo 命令在使用普通用户执行 root 命令时有时候会需要输入密码,并且在输入密码后一段时间不需要再次输入(但是不影响),这时候可以使用echo "密码" | sudo 命令比如我需要一键清空服务器,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-21 17:47:52
                            
                                31阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Linux是一款广泛使用的操作系统,在Linux系统中,Shell是一种命令行解释器,允许用户与操作系统进行交互。SCP(Secure Copy)是一种在网络上传输文件的协议,可以保证数据传输的安全性。在使用SCP命令进行文件传输时,有时候会遇到需要输入密码的情况。
在Linux系统中,使用SCP命令进行文件传输是非常方便的。通过SCP命令,可以将文件从本地传输到远程服务器,也可以将远程服务器上            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-09 11:17:51
                            
                                2187阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在LINUX上,我们可以很方便的使用scp命令来远程拷贝文件,但是由于scp命令本身无保存密码选项,所以在shell里面无法像samba那样子保存密码,比较麻烦,下面介绍下两种实现方法。方法一:ssh公私钥认证方法二:expect(expect - programmed dialogue with interactive programs, Version 5)实现默认安装,需要手动安装expec            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2015-07-24 11:14:15
                            
                                10000+阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ```
#!/bin/bash
des_pass=testtest
expect -c "
spawn scp target/aaa-0.0.1.war root@192.168.1.30:/home/GameUser/MagicvesselUserWeb/aaa-release.war
expect \"password:\"
sen            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2017-06-19 10:30:26
                            
                                10000+阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            #!/usr/bin/expect -f
set dtime [lindex $argv 0 ] 
set password 111111
set timeout 3000;
spawn /usr/bin/scp /software/databk/$dtime.sql&            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2015-04-05 14:31:25
                            
                                1458阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            第一种方法(gzexe): 这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息。 它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。 使用方法: gzexe file.sh 它会把原来没有加密的文件备份为 file.sh~ ,同时 file.sh 即被变成加密文件;  第二种方法(shc): 使用 shc 对 Linux shell 脚本加密. sh            
                
         
            
            
            
            答:使用ssh密钥对 示例如下: 如果A机想要获取B机上的文件,那么需要将在A机上生成的公钥放置到B机上的指定位置~/.ssh/authorized_keys 问题一: 如何在A机上生成ssh密钥对? A:请看如何生成ssh密钥对 问题二: 将A机上的公钥如何传送到B机上? (假设B机ip地址为10            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-02-15 17:13:00
                            
                                478阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            shell传递参数shell脚本在执行是可以传递参数,脚本内获取参数的格式为:$n,n为一个数字,1为第一个参数,2为第二个参数,以此类推其中,$0代表了要执行的文件名实例:代码如下:#!/bin/shecho "要执行的文件名是:$0"echo "第1个参数是:$1"echo "第2个参数是:$2"echo "第3个参数是:$3"执行结果如下:要执行的文件名是:./test.sh第1个参数是:1            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-08 13:23:48
                            
                                31阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            输入输出的操作使用#!/bin/bash
# 输入/输出重定向
# 大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。
# 需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-17 14:29:02
                            
                                323阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言:   ssh命令, 没有指定密码的参数. 以至于在脚本中使用ssh命令的时候, 必须手动输入密码, 才能继续执行. 这样使得脚本的自动化执行变得很差, 尤其当ssh对应的机器数很多的时候, 会令人抓狂.本文讲解了两种方式, 一种借助expect脚本, 一种借助sshpass来实现.*) 借助expect脚本来实现1. expect不是系统自带的工具, 需要安装yum install expe            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-09 21:46:39
                            
                                1206阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Shell脚本学习之旅(5)— 用户输入一、命令行参数向shell脚本传递数据的最基本方法是使用命令行参数。命令行参数允许在运行脚本时向命令行添加数据。 bash shell会将一些称为位置参数( positional parameter)的特殊变量分配给输入到命令行中的所有参数。这也包括shell所执行的脚本名称。位置参数变量是标准的数字: $0是程序名, $1是第一个参数, $2是第二个参数,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-15 10:11:29
                            
                                150阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             为啥要加密shell脚本以我个人的需求为例,我要做一个自动远程登录的脚本,每次手动输密码太慢,而且输的多了密码也容易泄露;直接把密码写在脚本里,快确实是快,但是安全性让人无法忍受,写脚本的时候都有可能被过路的不小心看到密码,这就太蛋疼了。 最终解法就是,把密码写在脚本里,作为参数传给下一个脚本让其用来登录,而保存密码的脚本,使用某种手段加密,令其不可读但是可执行。 加密方法介绍和实战经            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-08 15:01:26
                            
                                16阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Linux中重要的思想,一切皆文件。 所有操作都离不开文件,可以利用他们进行各种与系统或进程相关的处理工作。 1、生成任意大小的文件 由于各种原因,你可能需要生成一个包含随机数据的文件。这可能是用于执行测试的测试文件, 比如用一个大文件作为输入来测试应用程序的效率,也可能是测试文件分割,或是创建环回文件系统。 dd:dd命令,创建特定大小的大文件最简单的方法就是利用dd命令。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-06 12:39:41
                            
                                90阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            这是我的脚本:script.sh:sudo cat /etc/passwd-如果我在sudo会话中(例如我几分钟前用sudo运行了另一个命令),现在运行script.sh该脚本将获得sudo访问权限。 但是,如果我运行cat /etc/passwd-/,我将收到权限被拒绝错误。作为一个用户,我不希望script.sh能够如此简单地获得超级用户权限(例如,没有我使用sudo script.sh访问超            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-09 22:45:15
                            
                                28阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            背景:在远程文件下载时,需要输入对方的服务器密码,shell不支持交互输入内容,可以用下面两种方式实现 一.在shell脚本中嵌入expect来实现密码输入expect是一个自动交互功能的工具。expect是开了一个子进程,通过spawn来执行shell脚本,监测到脚本的返回结果,通过expect判断要进行的交互输入内容(send)1.安装expect 需要先安装tcl:apt            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-04 21:47:29
                            
                                1105阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            这里我们主要讲使用expect实现自动输入功能:安装:CentOS下安装命令,如下:yum install  expect开始之前的一个简单实例:#!/usr/bin/expect
spawn ssh root@1.1.1.1
expect "*password:"
send "123\r"
expect "*#"
interactExpect是一个用来处理交互的命令。我们可以使用exp            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-09 10:41:36
                            
                                308阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 如何在shell脚本中输入MySQL密码
在编写shell脚本时,经常会需要与数据库进行交互,其中包括连接到MySQL数据库。在连接到MySQL数据库时,我们需要输入用户名和密码。但是,将明文密码硬编码到脚本中是不安全的做法。因此,我们需要找到一种更安全的方法来输入MySQL密码。
## 使用MySQL配置文件
MySQL提供了一个配置文件`~/.my.cnf`,可以在其中保存MySQL            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-02-19 06:17:16
                            
                                206阅读