shell学习(一)
一、免密交互
--stdin
1、从标准输入读取字符串
如:passwd --stdin heruguo246
[root@localhost mnt]# ---输入了修改heruiguo246用户密码为123456
passwd: all authentication tokens updated successfully.
2、可以从键盘,也可以从另一个命令给出
如:echo 1234567 |passwd --stdin herugiu246
[root@localhost mnt]# echo 1234567 | passwd --stdin heruiguo246
Changing password for user heruiguo246.
passwd: all authentication tokens updated successfully.
这一次就没有在手动输入密码了,完全脚本实现。
二、忽略无关输出
黑洞设备/dev/null
只能写入,不能读出的单向文件,存放到其中的数据都会丢失。
用法:可执行语句 &>/dev/null
echo 1234567|passwd --stdin heruiguo246 &>/dev/null
[root@localhost mnt]# echo 1234567|passwd --stdin heruiguo246 &>/dev/null
[root@localhost mnt]#
注意:&和>以及>和/dev/null之间没有空格,否则要报错
三、记录错误信息
用法:可执行语句 2>/路径/日志文件名
如:sh /mnt/adduser.sh 2>/mnt/adderror.log
四、逻辑分割
1、|| 逻辑关系为“或者”,任何一条命令执行成功都符合期望,只有在前面的命令执行失败时,后面的命令才会执行。
如:id test || useradd test --表示当test用户不存在时,创建一个用户。
五、双引号和单引号的区别
双引号:
(1)在双引号中可以用$扩展,来表示变量,如:
[root@localhost mnt]# a=5
[root@localhost mnt]# echo "你的值是:$a"
你的值是:5
(2)出现特殊字符时,可以用\来表示转义,\t表示制表符、\n表示换行符,如:
[root@localhost mnt]# a="a\tb\tc\td\ne\tf\tg\th"
[root@localhost mnt]#
[root@localhost mnt]# echo -e $a -e参数表示解析特殊转义符
a b c d
e f g h
(3)当变量值不包括空格、制表符、双引号通常被省略,如:
[root@localhost mnt]# a=centos6.5
[root@localhost mnt]# b=$a server
-bash: server: command not found
[root@localhost mnt]# b="$a server"
[root@localhost mnt]# echo $b
centos6.5 server
单引号:
(1)所有字符串均视为字符本身(无特殊)如:
[root@localhost mnt]# a=centos
[root@localhost mnt]# echo '$a'
$a
[root@localhost mnt]#
(2)不允许\转义
六、read取值的用法
基本格式
read 变量名
read -p “提示信息” 变量名
[root@localhost mnt]# read name
123
[root@localhost mnt]# echo $name
123
[root@localhost mnt]#
[root@localhost mnt]# read -p "请输入用户名:" name
请输入用户名:xiaoming
[root@localhost mnt]# echo $name
xiaoming
静默取值加-s在输入密码时不显示在屏幕上
[root@localhost mnt]# read -s -p "请输入密码:" passwd
请输入密码:
[root@localhost mnt]# echo $passwd
123456
shell学习(一)的更多相关文章
- shell学习总结之自定义函数
shell学习总结之自定义函数 Myfun (){ echo -n "now i is $i " ! [ "$i" ] && exit ; ec ...
- SHELL学习笔记----IF条件判断,判断条件
SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外. if list then do something here ...
- shell学习笔记
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
- shell学习指南-阅读笔记
shell学习指南真不是刚开始学习shell应该看得书,虽然其中讲了简单的linux命令,shell语法等,但是每章也有些深入和生僻地方,我想如果我刚学shell看到这样的地方一定会头疼的要死.或许也 ...
- 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等
1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...
- Shell学习之结合正则表达式与通配符的使用(五)
Shell学习之结合正则表达式与通配符的使用 目录 通配符 正则表达式与通配符 通配符 通配符的使用 正则表达式 正则表达式 正则表达式的使用 通配符 正则表达式与通配符 正则表达式用来在文件中匹配符 ...
- Shell学习之条件测试(四)
Shell学习之条件测试 目录 逻辑测试 文件测试 数值比较 字符串比较 逻辑测试 格式: [ 表达式 ] 操作符 [ 表达式2 ] …… 命令1 操作符 命令2 …… 常用的操作符 ( 注意:-a和 ...
- Shell学习之环境变量配置文件(三)
Shell学习之环境变量配置文件 目录 环境变量配置文件简介 环境变量配置文件作用 其他配置文件和登录信息 环境变量配置文件简介 环境变量配置文件简介 环境变量配置文件中主要是定义对系统操作环境生效的 ...
- Shell学习之Bash变量详解(二)
Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...
- Shell学习之Shell特性(一)
Shell学习之Shell特性 目录 命令和文件自动补齐功能 命令历史记忆功能 history.上下键.!number.!string.!$.!! 别名功能 alias.unalias cp.~use ...
随机推荐
- Voltage Keepsake CodeForces - 801C(思维)
题意: 有n台机器,第i台机器每个单位时间消耗ai的功率,初始有bi的功率储备,有一个充电器每个单位时间充p单位的功率 问经过多长时间才能有一个功率位0的机器,如果能够无限使用输出-1: 解析: 时间 ...
- Codeforces Round #374 (Div. 2) C(DAG上的DP)
C. Journey time limit per test 3 seconds memory limit per test 256 megabytes input standard input ou ...
- c++11 强类型枚举
c++11 强类型枚举 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #inclu ...
- 致研究者:2018 AI 研究趋势
2017 年是机器学习领域最有成效.最具创意的一年.现在已经有很多博文以及官方报道总结了学界和业界的重大突破.本文略有不同,Alex Honchar在Medium发文,从研究者的角度分享机器学习明年发 ...
- BZOJ2738 矩阵乘法 【整体二分 + BIT】
题目链接 BZOJ2738 题解 将矩阵中的位置取出来按权值排序 直接整体二分 + 二维BIT即可 #include<algorithm> #include<iostream> ...
- WEB下载显示下载名称乱码--java
将文件名编码转换为ISO8859-1即可,如下 downloadFileName = new String(fileName.getBytes("gbk"), "ISO8 ...
- MySQL的DML常用语法格式
MySQL的DML常用语法格式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们知道MySQL的查询大致分为单表查询,多表查询以及联合查询.多表查询,顾名思义,就是查询的结果可能 ...
- python---django中url访问方法
只是了解,不推荐使用,毕竟干扰太多,任意冲突,也没有解耦,应该使用路由分发 在url匹配中支持正则匹配,例如: from django.conf.urls import include, urlfro ...
- fastJson顺序遍历JSON字段(转)
fastJson在把json格式的字符串转换成JSONObject的时候,使用的是HashMap,所以排序规则是根据HASH值排序的,如果想要按照字符串顺序遍历JSON属性,需要在转换的时候指定使用L ...
- [转载]jdk环境变量配置方法
JDK下载 在安装完jdk后,还需要对jdk的环境变量进行配置才能正常使用,下面教大家如何配置jdk环境变量: 1.右键选择 计算机→属性→高级系统设置→高级→环境变量 2.系统变量→新建 变量名:J ...