需求描述:

今天在做通过echo结合passwd给用户改密码的过程中,出现无法修改的错误.

错误如下:

[root@testvm ~]# useradd mytest

[root@testvm ~]# echo "my@test!" | passwd --stdin mytest

-bash: !": event not found

错误分析:

经过查找该命令发现叹号!在linux中有特殊的定义,可以用来执行历史的命令或者当做逻辑否定等方式来使用,所以呢,叹号是一个特殊的字符,想要将字符进行当做普通字符来使用,必须进行转义.

问题处理:

1.通过转义字符对!号进行转义

[root@testvm ~]# echo "my@test\!"

my@test\!

备注:发现这样的输出里面就多了\.所以,这个方法不对.

2.echo后面使用单引号输出

[root@testvm ~]# echo 'my@test!'

my@test!

[root@testvm ~]# echo '$my@test! \ # %'

$my@test! \ # %

备注:如果使用单引号,那么就会原样的输出字符串,不进行转义,不取变量值

3.再次通过echo和passwd修改用户密码

[root@testvm ~]# echo 'my@test!' | passwd --stdin mytest

Changing password for user mytest.

passwd: all authentication tokens updated successfully.

[root@testvm ~]# su - mytest

[mytest@testvm ~]$ su - mytest

Password:

[mytest@testvm ~]$

备注:这样就可以在密码中包括!这个符号了.

4.经过测试发现,如果使用双引号输出字符最后一位是叹号!会报错,如果后面有空格就不会报错

[root@testvm ~]# echo "my@test! " #后面有空格,就能够输出叹号,所以如果叹号是最后一位是要接事件event的,但是这样密码中也有空格了.

my@test!

[root@testvm ~]# echo "my@test!"

-bash: !": event not found

5.经过测试,echo后面直接接字符就可以即不将其放入到单引号也不放在双引号中

[root@testvm ~]# echo my@test! | passwd --stdin mytest

Changing password for user mytest.

passwd: all authentication tokens updated successfully.

[root@testvm ~]# su - mytest

[mytest@testvm ~]$ su - mytest

Password:

[mytest@testvm ~]$

备注:同样达到一样的效果,这里没有使用单引号,也没有使用双引号.

文档创建时间:2018年7月2日13:28:20

文档修改1:增加4这个测试,使用双引号,!号后面加空格可以输出,但是密码不符合预期的要求.          时间:2018年7月2日13:35:08

文档修改2:增加5的内容,echo后面不使用单引号,也不使用双引号进行叹号的输出.          时间:2018年7月2日13:43:44

(转)linux 中使用ls指定输出时间格式

linux 中使用ls指定输出时间格式 原文:http://blog.csdn.net/chaofanwei/article/details/13018753 ls -l --time-style=x ...

如何在 Linux 中查看进程占用的端口号【转】

对于 Linux 系统管理员来说,清楚某个服务是否正确地绑定或监听某个端口,是至关重要的.如果你需要处理端口相关的问题,这篇文章可能会对你有用. 端口是 Linux 系统上特定进程之间逻辑连接的标识, ...

Myeclipse中导入新项目报叹号

Myeclipse中导入新项目报红色叹号 原因是导入项目中,有的jar路径不对, 在上图中,先把报错的jar移除,之后将JRE开头的那个library移除,最后点击add Library,选择jre. ...

linux中的设备名称和设备号

看赵炯博士的已经两三周了,从今天起开始将一些个人总结和感悟分小标题写出来,聊作记忆以供后来查看.在linux0.11源码的 /linux/boot/bo ...

Linux中的设备文件与设备号

设备文件与设备号   在Linux下,一切皆文件,设备也不例外,为了管理这些设备,系统为它们各自都编了号,而每个设备号又分为主设备号和次设备号.主设备号用来区分不同类型的设备,而次设备号用来区分同一类 ...

LINUX中printf与echo的区别

(1)首先echo是回显,即代表回车显示,是自带换行的:而printf只是打印出来,没有换行(2)echo只是回显没有变量替换功能:printf是有的举例:假如我们定义好变量a='hello worl ...

linux中sftp默认登录的端口号是多少? sftp通过指定的端口号连接?sftp默认端口号

需求描述: 今天一个同事,遇到个问题,程序连接sftp服务器连接不上,问我端口号是多少, 我想了一下是21还是22,所以就做了测试,发现sftp默认的连接端口号是22, 在此做下记录. 操作过程: 1 ...

Linux中的一些点

前言 本文记录一些日常使用linux的一些点. 系统负载评估 理解Linux系统负荷 查看 ps -ef [root@deployer ~]# ps -ef UID PID PPID C STIME ...

随机推荐

java 环境变量 设置 问题

问题按照网上教程配置好了  tomcat可以用了.但是发现java不能用. 网上教程(类似教程太多了 ,就不 具体说了 http://jingyan.baidu.com/article/f96699b ...

C#简单windows服务

因为做后台比较多,所以经常需要写一些后台服务.一般的流程是先创建一个服务项目,加入代码.然后打包一个安装程序或者直接用dos命令安装服务.下面是详细内容:    1. 创建windows服务项目.  ...

iOS 跳转到系统的设置界面-b

在项目中,我们经常会碰到使用位置的需求.当用户设置app不允许使用位置的时候,最好的用户体验就是直接调转到系统的位置设置界面,进行设置. 本人已经测试,在5c iOS8.3系统 和 5s iOS7.1 ...

使用dojo遮罩加载进度。

使用dojox.widget.Standby来实现类似视频缓冲加载时候转圈的效果.

html5时间选择器

HTML5日期输入类型(date)   分享   分享   分享   分享   分享 在很多页面和web应用中都有输入日期和时间的地方,最典型的是订飞机票,火车票,酒店,批萨等网站. 在HTML5之前 ...

Vi编辑器入门

Vi编辑器入门   vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows上的记事本! 1.vi的基本概念  基本上vi可以分为三种状态,分别是命令模式(command mode ...

python+selenium自动测试之WebDriver的常用API(基础篇一)

基于python3.6,selenium3.141,详细资料介绍查看官方API文档,点击这里 一.对浏览器操作 driver = webdriver.Chrome() # 初始化chrome driv ...

Extjs 在项目中碰到问题

1.切换tabpanel,新建tab关闭后再新建报错,在火狐下报错 TypeError: el is null   el.addCls.apply(el, arguments); 这个我在下一篇文章中 ...

HDU ACM 1856 More is better(并查集)

[题目链接]http://acm.hdu.edu.cn/showproblem.php?pid=1856 [解题思路]给的数据有点大,干脆少开点数组,直接上set存储有朋友的孩子的编号,同时根据编号初 ...

opencv学习之路(11)、图像几何变换

一.图像缩放 #include using namespace cv; void main(){ Mat src=imread("E:// ...

linux打印服务叹号,linux中如何通过echo输出!(叹号)? -bash: !: event not found相关推荐

  1. linux etc 服务启动脚本,linux 服务脚本启动问题

    对于使用了 systemd 的系统,所有的 service 服务都会默认转为 systemd 服务之后再由 systemd 来执行,转换之后,你也可以直接使用 systemd 来执行了(它的用户工具就 ...

  2. linux添加服务命令行,Linux系统自有服务(上)

    系统自有服务(上).md Linux系统自有服务 自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(内置) 学习目标 1.了解Linux的7种运行模式 2.了解用 ...

  3. linux ssh服务状态,查看linux ssh服务信息及运行状态方法

    关于ssh服务端配置有不少文章,例如 linux下ssh服务配置,这里仅列举出一些查看ssh服务相关信息的常用命令. 1 安装 apt-get install openssh-server 2 完成后 ...

  4. linux samba 服务端口号,Linux系统学习 二十、SAMBA服务—介绍、安装、端口

    1.简介 网络数据文件共享服务器 可以和Windows中的网上邻居通用 数据共享的方法: Windows中最常用的是"网上邻居".网上邻居使用的文件系统是CIFS(通用互联网文件系 ...

  5. linux xdm服务无法关闭,Linux远程操控XDM认识和配置

    一.引言 我们可以通过telnet.ssh等远程登录Linux服务器,但都是字符界面的.本文介绍了通过XDMCP+XDM来 远程连接Linux服务器上的XFree86 Server,可以在图形环境下远 ...

  6. linux蓝牙服务关闭,使用linux的hciconfig命令配置蓝牙设备

    使用linux的hciconfig命令配置蓝牙设备 发布时间:2020-07-06 16:16:36 来源:亿速云 阅读:146 作者:清晨 栏目:服务器 这篇文章将为大家详细讲解有关使用linux的 ...

  7. linux 启动服务后台运行,linux后台启动任务

    当我们在终端启动服务或者训练模型时,启动命令往往会阻塞自己,即无法在终端继续输入,同时为了保证终端关闭不影响进程中断,需要在后台启动进程. 1. nohup命令 后台启动常用的命令如下: nohup ...

  8. 设置linux拨号服务端,CentOS Linux上搭建PPPoE服务器及拨号设置

    CentOS下PPPoE拨号设置 1.查看并安装拨号软件: [root@RedHat ~]# rpm -qa|grep pppoe [root@redhat ~]# yum -y install rp ...

  9. linux文件服务有哪些,linux有哪些文件系统?_网站服务器运行维护,linux

    linux运维学什么知识?_网站服务器运行维护 linux运维需要学的知识:1.Linux基础知识.linux操作系统:2.bash脚本编程:3.文本处理命令:4.数据库:5.防火墙:6.监控工具:7 ...

最新文章

  1. 设计模式(19)-Observer Pattern
  2. javafx 和swing_集成JavaFX和Swing(修订版)
  3. php 邮件验证_PHP程序来验证电子邮件地址
  4. plc tcp ip通讯怎么只能连一个客户端_如何远程读取西门子PLC数据?
  5. 常用linux系统管理工具
  6. cdc2016年cypher资源_CDC最新Cypher!Ty.简直叼爆
  7. pcb变压器厂家_大邑县活动板房回收整体回收厂家24小时回收报价-发亿科技
  8. JS学习3-Js运算符优先级
  9. 电信保温杯笔记——简洁latex中文简历模板
  10. 九种NPP\GPP数据集介绍和下载
  11. linux 一键网克,MaxDos8下载一键Ghost|迈思工作室MaxDos工具箱下载 v8.0 官方版_最火软件站...
  12. 点击自定义按钮弹出百度商桥对话框
  13. oem是代工还是贴牌_oem与ODM有什么区别?
  14. 永恒之蓝ms17_010漏洞利用攻击
  15. 黑龙江省扶贫电商平台“小康龙江”上线 传输绿色优质农产品
  16. 从Django的SECTET_KEY到代码执行
  17. 右侧追击(二)——券商行业
  18. Android蓝牙开发——经典蓝牙的连接
  19. 看完知乎上500条答案,我为大家整理了这21个B站学习类UP主
  20. 遨博协作机器人ROS开发 - 末端工具ROS驱动

热门文章

  1. ubuntu20.0.4+RTX3090配置深度学习环境的踩坑
  2. 在Linux中实现自动交互(管道操作符,输入重定向,here document,expect)
  3. LeetCode题解(0403):青蛙过河(Python)
  4. centos 7下的redis 环境搭建以及C语言使用hiredis访问redis
  5. Monkey测试详解
  6. eclipse java 测试_java-在Eclipse中“未找到JUnit测试”
  7. 数组操作 reverse()方法
  8. Kali Linux 2021.1 详细安装教程
  9. PySpark-prophet预测
  10. 使用逻辑分析仪抓串口波特率