Bash基础(2) 通配符 组合键 数据重定向 管道 tee

Bash基础(2)

    通配符  组合键  数据重定向  管道  tee命令

1 文本名“通配符”

*:匹配任意长度的任意字符;

?:匹配任意单个字符;

[]: 匹配指定范围内的任意单个字符;

[0-9]

[^]:匹配范围外的任意单个字符;

[^a-b]

字符集合:

[:lower:] 匹配任何小写字母

[:upper:] 匹配任何大写字母

[:alnum:] 匹配任何字母

[:digit:]  匹配任何数字

[:space:] 匹配空格符

[:punct:] 匹配任何标点符号

[:alnum:] 匹配任何字母

示例

#显示/etc/下文件名刚好是3个的文件名
 [[email protected] ~]$ ll -d /etc/???
drwxr-xr-x.  7 root root 4096 Jul 24 09:59 /etc/gdm
drwxr-xr-x.  3 root root 4096 Jun 19  2014 /etc/hal
drwxr-xr-x.  4 root root 4096 Feb 25  2014 /etc/ibm
drwxr-xr-x.  2 root root 4096 May 27  2010 /etc/jvm
drwxr-xr-x.  5 root root 4096 May 25 09:13 /etc/kde
drwxr-xr-x.  6 root root 4096 Jul 24 10:00 /etc/lvm
drwxr-xr-x.  3 root root 4096 Jul 24 10:03 /etc/ntp
drwxr-xr-x.  4 root root 4096 Feb 25  2014 /etc/opt
drwxr-xr-x. 10 root root 4096 Feb 25  2014 /etc/pki
 
#显示/etc/下以ss开头的文件名
[[email protected] ~]$ ll -d /etc/ss*
drwxr-xr-x. 2 root root 4096 Jul 24 09:57 /etc/ssh
drwxr-xr-x. 2 root root 4096 Jul 24 09:40 /etc/ssl
 
#显示/etc/下文件名中含有数字0-3的文件名
[[email protected] ~]$ ll -d /etc/*[0-3]*
drwxr-xr-x. 4 root root 4096 Jul 24 09:38 /etc/dbus-1
-rw-r--r--. 1 root root 5139 Jul 16  2014 /etc/DIR_COLORS.256color
drwxr-xr-x. 3 root root 4096 May 13  2010 /etc/gnome-vfs-2.0
drwxr-xr-x. 2 root root 4096 May  7 17:24 /etc/gtk-2.0
drwxr-xr-x. 2 root root 4096 Jul 24 09:56 /etc/iproute2

2 组合键

Ctrl+l:清屏

Ctrl+a: 切换至命令行首

Ctrl+e:切换至命令行尾

Ctrl+c:取消命令执行

Ctrl+m:就是回车

Ctrl+s:暂停屏幕输出

Ctrl+q:恢复屏幕输出

Ctrl+z: 暂停目前命令

Ctrl+u:删除光标所在处至行首的内容;

Ctrl+k: 删除光标所在处至行尾的内容;

3 数据流重定向

程序:指令+数据

读入数据:input

输出数据:output

标准输入(stdin): keyboard 代码为0,使用<或<<  /dev/stdin

标准输出(stdout): monitor 代码为1,使用>或>>  /dev/stdout

标准错误输出(stderr): monitor 代码为2,使用2> 或2>>  /dev/stderr

 输出重定向:

COMMAND > NEW_POS, COMMAND >> NEW_POS

> 覆盖的方式输出

>> 追加的方式输出

set -C 开启如果覆盖重定向目标文件存在,则禁止执行;

set +C 关闭如果覆盖重定向目标文件存在,则禁止执行;

 同时重定向标准输出流和错误输出流:

#输出到不同的文件
 COMMAND > /path/to/file.out 2> /path/to/file.err
  [[email protected] ~]$ rm / >test/right_file 2>test/err_file
 #输出到同一文件夹
 COMMAND > /path/to/file.out 2>&1
  [[email protected] ~]$ rm / >test/test_file 2>&1
 COMMAND &> /path/to/file.out
 [[email protected] ~]$ rm / &>test/out_file

输入重定向:

<

用文件内容来代替键盘输入

[[email protected] test]$ cat > catfile < err_file 
[[email protected] test]$ cat catfile 
rm: cannot remove `/‘: Is a directory

<< 代表结束输入的意思

Here Document:<<

cat >> /path/to/somefile << EOF

tr 命令:用来从标准输入中通过替换或删除操作进行字符转换

语法:tr -d -s ["string1_to_translate_from"]["string2_to_translate_to"]

参数:

-d 删除信息中string1字符串

-s 替换重复字符串

#替换字符串
[[email protected] test]$ cat catfile 
how are you ?
how old are you?
aaa
ttt
ccc
kkk
[[email protected] test]$ tr ttt 111 < catfile 
how are you ?
how old are you?
aaa
111
ccc
kkk
#删除信息中a字符串
[[email protected] test]$ tr -d a < catfile 
how re you ?
how old re you?
 
ttt
ccc
Kkk
#替换重复字符串 替换连续重复字符
[[email protected] test]$ tr -s t t < catfile 
how are you ?
how old are you?
aaa
t
ccc
kkk


4 管道命令pipe:

COMMAND1 | COMMAND2 | COMMAND3...

示例:

[[email protected] test]$ ls -al /etc | more
total 2492
drwxr-xr-x. 136 root root    12288 Aug 25 17:26 .
dr-xr-xr-x.  28 root root     4096 Aug 25 09:14 ..
drwxr-xr-x.   4 root root     4096 Feb 25  2014 acpi
-rw-r--r--.   1 root root       46 Aug 24 18:56 adjtime.....

管道命令仅会处理standard output,对于standard error output 会忽略

管道命令必须能够接收来自前一个命令的数据成为standard input继续处理才行

5tee命令
读取标准输入,把这些内容同时输出到标准输出和(多个)文件中。
语法:tee [OPTION]... [FILE]...
参数:
  -a: 追加输出,不覆盖
  -i: 忽略中断
示例:

# tee 只是标准输出 后边没有参数
[[email protected] test]$ tee < catfile 
how are you ?
how old are you?
aaa
ttt
ccc
Kkk

#tee - 两次标准输出
[[email protected] test]$ tee - < catfile 
how are you ?
how old are you?
aaa
ttt
ccc
kkk
how are you ?
how old are you?
aaa
ttt
ccc
Kkk

# tee file 标准输出的同时,输出到file 如果file不存在 则创建文件
[[email protected] test]$ cat catfile | tee test_tree
how are you ?
how old are you?
aaa
ttt
ccc
Kkk
[[email protected] test]$ cat test_tree 
how are you ?
how old are you?
aaa
ttt
ccc
kkk

# tee -a file 不覆盖文件,追加输出到文件
[[email protected] test]$ cat catfile | tee -a test_tree
how are you ?
how old are you?
aaa
ttt
ccc
kkk
[[email protected] test]$ cat test_tree 
how are you ?
how old are you?
aaa
ttt
ccc
kkk
how are you ?
how old are you?
aaa
ttt
ccc
Kkk

# tee file1 file2...输出到多个文件
[[email protected] test]$ cat catfile | tee file1 file2 
how are you ?
how old are you?
aaa
ttt
ccc
kkk

如有错误,敬请指正!

谢谢!

时间: 2024-10-09 20:26:31

Bash基础(2) 通配符 组合键 数据重定向 管道 tee的相关文章

bash默认组合键,通配符及特殊符号

看鸟哥Linux私房菜中介绍的linux命令太多了,看一遍打一遍还是记不住,鉴于目前是在Windows下工作,又对于Linux系统的爱好,所以之后装了虚拟机在玩,由于本人比较笨,看一遍跟着书敲一遍还是记不住,所以就在此练练手,回忆一下看的内容,重新敲一遍加强记忆. 1.bash默认组合键: Ctrl+C ----------->终止目前的命令 Ctrl+D ----------->输入结束(EOF),例如邮件结束的时候 Ctrl+M ----------->就是Enter Ctrl+S

谢烟客---------Linux之Bash基础特性

框架:     bash的引用:命令引用.变量引用     bash命令历史     bash中的通配符     bash中的管道     I/O重定向     命令补全     路径补全     bash的快捷键     命令的别名     命令行的展开      1)命令的执行结果与命令的执行状态结果      命令的执行结果: 用户输入命令+Enter后,命令如何执行     命令提示符,回车键后:bash切片,分析命令,[选项],参数,提请给内核,分配资源,运行为一个进程  1)用户接口

cmd 与 bash 基础命令入门

身为一个程序员会用命令行来进行一些简单的操作,不是显得很装逼嘛!?嘿嘿~ ヾ(>?<) cmd 与 bash 基础命令入门 ??????简介 ??????CMD 基础命令 ????????????目录操作 ??????????????????切换目录 ??????????????????列出文件与子目录 ??????????????????创建目录 ??????????????????删除目录 ??????????????????复制目录 ??????????????????移动目录 ????

4、Bash基础及配置、标准I/O、管道及shell编程基础;

1.Bash基础及配置 站在用户的角度来讲,SHELL的类型: 登录式shell 正常通过某终端登录 su - USERNAME su -l USERNAME 非登录式shell su USERNAME 图形终端下打开的虚拟终端 自动执行的shell脚本 bash的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh , /etc/bashrc 个人配置: ~/.bash_profile, ~/.bashrc profile类的文件 1.设定环境变量 2.运

Linux 入门学习之bash基础原理之一

Linux入门之bash基础 编程语言分类: 机器语言.汇编语言.高级语言 静态语言:编译型语言 特点: 变量为强类型 实现转化为一定的可执行格式 常见:C.C++.JAVA.C#.Object-C 注意:一般需要解释器的编程语言一般为静态语言 动态语言:解释性语言 特点: 变量未弱类型,边解释边执行 常见: PHP.SHELL.python.perl lua : 嵌入式脚步语言 编程语言的模型.思想分类 面向过程: shell,C 面向对象: java,python,perl,c++ 一个变量

Linux 基础知识:Bash基础特性

一.命令历史 1. history命令使用 如果你经常使用Linux命令,那么使用history命令无疑会提升你的工作效率. history命令主要用于显示历史指令记录内容,下达历史记录中的指令. bash会记录此前用户在shell会话中执行的命令于缓冲区中,正常退出时会被记录于当前用户家目录下隐藏文件~/.bash_history中. 当我们以bash登录Linux主机之后,系统会主动从当前用户家目录的~/.bash_history文件读取以前用过的命令,那么其文件会记录几条数据呢? 历史命令

2017-11-5Linux基础知识(10)bash基础特性

在上一章中我们讲述了bash基础特性之命令补全和路径补全以及它的命令引用,以及讲了文件管理命令,例如:复制.移动和删除,然后我们也讲述了变量,主要围绕着存储格式.数据范围和参与运算.那么这次我们继续讲述bash的基础特性,这一次我们讲述的是文件的通配符和IO重定向等. 一.globbing:文件名通配 我们在查询某些文件的时候,通常是在该目录下进行查找,有的时候文件繁多,想找一些特定的文件就得从该目录下逐个匹配进行查找进行通配,如果没找到则显示为空,找到的话就在下面显示该匹配结果的文件或目录,那

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 # Linux shell 基础 # 8.1 shell 介绍 - 什么是shell 1. shell 是一个命令解释器,提供用户和机器之间的交互 2. 支持特定语法,比如逻辑判断.循环 3. 每个用户都可以有自己特定的shell 4. CentOS7 默认shell 为bash (Bourne Agin Shell) 5. 还有zsh.ksh等 ``` [[email protected]

centos6.5 bash基础命令2

@@@第三天第二段 @@stat命令:查看文件的元数据信心!Inode stat FILE... bash文本编辑器编辑器:进行文本内容修改的程序 行编辑器:sed 全屏编辑器:nano, vi, vim @@nano FILE... 用户和权限管理: 1.用户是什么? 2.没有用户计算机也可以正常运行 用户:用户就是计算机系统按需对操作人员授权,标识资源获取的识别符!资源分配,是安全权限模型的核心要素之一 密码:用户认证,对用户是否具有授权进行验证! 多用户的操作系统:同一时间允许多个用户对计