说到shell通配符(wildcard),大家在使用时候会经常用到.下面是一个实例: 1   1 2 3 4 [chengmo@localhost ~/shell]$ ls a.txt  b.txt  c.old   #2 1 2 3 4 [chengmo@localhost ~/shell]$ ls *.txt a.txt  b.txt   #3 1 2 [chengmo@localhost ~/shell]$ ls d*.txt ls: 无法访问 d*.txt: 没有那个文件或目录 从上面这…
Linux学习之管道符.重定向.通配符.转义符.环境变量 1. 输入输出重定向 输入重定向是指把文件导入命令中. 输出重定向是指把原本要输出到屏幕的数据信息写入指定文件中. a 标准输入重定向(STDIN,文件描述符0):默认从键盘输入,也可从其他文件或命令中输入. b 标准输出重定向(STDOUT,文件描述符1):默认输出到屏幕,一般省略. c 错误输出重定向(STDERR,文件描述符2):默认输出到屏幕,文件描述符必须写上. 输入重定向中用到的符号及作用: 命令 < 文件 将文件作为命令的标…
1 shell通配符 通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆.把通配符理解为shell特殊代号字符就可. 二.shell元字符 shell除了有通配符之外,由shell负责预先先解析后,将处理结果传给命令行之外,shell还有一系列自己的其他特殊字符. 三.shell转义符 有时候,我们想让通配符,或者元字符变成普通字符.那么这里我们就需要用到转义符了. shell提供转义符有三种…
/etc/shells [root@localhost ~]# more /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh echo -e 相关转义符 \\ 输入\ \a 输出警告音 \b 退格,即向左删除一个字符 \c 取消输出行末的换行符,和-n选项一致 \e Esc \f 换页符 \n 换行 \r 回车 \t 制表,即Tab \…
第三章:重定向,管道符,环境变量 3.1 输入输出重定向 定义:输入重定向是指将文件导入命令中,输出重定向是指将原本显示到屏幕的信息输出问文件.相较于输入重定向,输出重定向使用的更多,下面重点介绍输出重定向 输出重定向用到的符号和作用如下所示 符号 作用 命令 > 文件 将标准输出重定向到一个文件中(同时清空文件中原有内容) 命令 2> 文件 将错误输出重定向到一个文件中(同时清空文件中原有内容) 命令 >> 文件 将标准输出重定向到一个文件中(在文件中原有内容后追加) 命令 2&…
我们想对一类文件批量操作,例如批量查看硬盘文件属性,那么正常命令会是: [root@linuxprobe ~]# ls /dev/sda [root@linuxprobe ~]# ls /dev/sda1 [root@linuxprobe ~]# ls /dev/sda2 [root@linuxprobe ~]# ls /dev/sda3 但有些时候确实不知道分区的 通配符 星号(*)代表匹配零个或多个字符 huanyu@ubuntu:~$ ls -l /dev/sda* 问号(?)代表匹配单个…
shell & bash shell指允许用户通过文本操作计算机的程序. interactive shell:从是否通过标准输入输出与用户进行交互的角度分为交互式shell(interactive)和非交互式shell(non-interactive). login shell:从是否以一个指定用户及其环境进入shell角度分为登录式shell和非登录式shell,登录式shell会额外source /etc/profile,/etc/profile.d,~/.profile,~/.bash_l…
linux在执行完一条命令后,使用 echo $? 会显示上一条命令是否执行成功,相关状态码如下 0为成功 表格 D-1. "保留的"退出码 退出码的值 含义 例子 注释 1 通用错误 let "var1 = 1/0" 各种各样的错误都可能使用这个退出码, 比如"除0错误" 2 shell内建命令使用错误(Bash文档上有说明)   很少看到, 通常情况下退出码都为1 126 命令调用不能执行   程序或命令的权限是不可执行的 127 "…
bash shell 脚本简介 shell 运行环境 如果你运行的是 Unix 或 Linux 系统,例如 Ubuntu,Red Hat,SUSE Linux,还有macOS,都是内置了 bash shell 的,所以你不需要额外配置所谓的开发环境. 我的 shell 环境是 macOS Sierra 版本,如果你用的是其他 Linux 系统,后面的例子基本上都是可以运行的. 首先,打开Terminal 命令行,先检查下你的系统的 shell 版本: echo $BASH_VERSION bas…
最近在将ksh转成bash运行的时候出现了问题.代码如下: echo $1 | sed 's/\..*$/''/' | read FILE_NAME 当使用ksh执行的时候没有问题,FILE_NAME能获取到正确的值.但当使用bash执行时,FILE_NAME值为空. 找了半天也不知道什么原因,最后找到了一种解决方法.代码如下: read FILE_NAME <<< ` echo $1 | sed 's/\..*$/''/' ` 上面的代码有两点需要注意: ①使用了 <<&l…