bash的基础特性 tr tee alias 通配符 输入输出重定向

1 、bash的基本特性
bash的特性是不是都在.bash里面呢?
通过alias 显示当前shell中所有的命令别名
设置别名 直接alias 名称=名称就行
此设置的别名只在此shell中管用,如果想全局生效的话 需要修改配置文件 本用户的配置文件在 ~bashrc
全局用户的在/etc/bashrc里面
修改后不会立即生效的 需要重新进去shell或者是 ./etc/shellrc/
2 、unalias撤销别名
unalias 别名
unalias -a 会撤销所有的别名
3 如果定义了一个命令的别名后 使用COMMAND(定义的别名)

二 glob
bash中用于实现文件名“通配”
通配符有 ? [ ] 三个
代表任意任何个字符
?代表任意一个字符

3 [ ]
匹配指定范围内的任意字符 中括号表示一个范围内的字符
这些以前都学过 但是都忘了 一定要做一次LFS
[[email protected] glob]# touch aVb
[[email protected] glob]# ls a[a-z]b
aab abb aVb
[[email protected] glob]# ls a[A-Z]b
abb aVb
[[email protected] glob]#
[0-9]
[a-z]:不区分大小写 所有的字母都匹配 所以难道就没法只匹配小写字母吗?
[A-Z]:只会匹配大写字母,
如果:只要特殊字符的?怎样配匹配呢?
有一个取反的选项^

有一个专用字符表示法:
man glob  我这个centos7 没有
    3、bash的快捷键
            Ctrl +l 清屏  相当于clear
            Ctrl+a  光标移动到最前面
            Ctrl+e  光标移动到坐后面
            Ctrl+u  剪切光标前的所有命令
            Ctrl+k 捡钱光标后面的所有命令
            Ctrl+p  粘贴所剪切的命令
四。。。
        输入输入I/O重定向及管道符
        I:读入数据:input
        O:输出数据:output
        I/O重定向就是输入输出重定向改变输入输出位置
        标准输入:keyborad,  系统默认使用 数字 0 表示
        标准输出:monitor, 系统默认使用数字 1 表示
      标准错误输入:monitro 系统默认使用数字2表示
        把本来的标准输入(键盘或者是系统信息)
        输出重定向:
        >: 覆盖重定向,会把目标位置文件内容清除掉,如果没有目标文件会自动创建
        >>:追加重定向:在目标文件已经存在的内容后面追加内容
        覆盖重定向很危险  所有有set -c :禁止将已有文件的内容覆盖掉
        这样只对当前bash生效  想要永久生效需要修改配置文件
        但是:如果非要覆盖的话 有两个方法 1、 强制覆盖 >|      2、关闭 set +c

        以上都是正确的标准 输出  其实可以使用 1>来重定向的  但是数字1  在此忽略了
        那么错误的标准输出就是 2>了  这里的2  不能省略。。
        以上真确的  错误的 只能转职专用 不能用混了 所以很麻烦
        有没有一种 不管她是正确还是错误输出 都可以使用的?      &>
            cat /etc/passwd > /tmp/zhencque 2> /tmp/err
            这样还是麻烦 还是两个文件
            &>  这个是最终的  合并两个数据流为一个
                cat /etc/passwd &> /tmp/zhengqueorcuowu

        COMMANO > /tmp/file 2> &1  这样也行其中的&1是引用了前面第一个文件,也能&2 &3 &4

        **  输入重定向**    < 小于号
        以前总听说输出重定向 第一次听说输入重定向,看来还是系统的学习下比较好啊!!
        首先说一个命令 以前没见过的  tr 具体用法看下图
            [[email protected] ~]# tr abc 123
         abwer
        12wer
        cccccccc
        33333333
        ni hao
        ni h1o
自动替换  以空格区分前后(只要输入中有abc三个字母任意个,则会相对应的替换为123)
输入重定向,如下图,可以把/etc/passwd中的小写abc替换成大写ABC

    此处生成文档  << 两个小于号
    它好像是只能和cat链接使用


也可以重定向到别的文件 例如:
cat >> /tmp/rc.log << EFO

hao a you
EFO
[[email protected] ~]# cat /tmp/rc.log
hao a you
以上值得注意的是 << EFO是关键的 结尾的时候也要输入EFO
当然也可以输出重定向到其他文件 但是重定向要写到后面 例如:我想把/etc/passwd文件里面的abc都替换成123 另存为到其它的文件

但是怎样能让tr把所有的输出看成一个整体的单词呢????然后替换文件内的单词行不行啊?

后期查下???,现在反过头来看下,要把它看成一个整个的单词,可以使用前后锚定,利用正则表达式应该可以的...

    tee命令,分两路输出  显示屏上输出一份  还可以在文档中保存一份
    例如:
    [[email protected] ~]# echo $PATH | tr ‘a-z‘ ‘A-Z‘ | tee /tmp/tee.txt
    /USR/LOCAL/SBIN:/USR/LOCAL/BIN:/USR/SBIN:/USR/BIN:/ROOT/BIN
    [[email protected] ~]# cat /tmp/tee.txt
    /USR/LOCAL/SBIN:/USR/LOCAL/BIN:/USR/SBIN:/USR/BIN:/ROOT/BIN
    这个用的也挺好的,把tr放在了管道符后面 接受前面的输出....
    当然  tr还有一个-d选项

原文地址:http://blog.51cto.com/12529218/2285383

时间: 2024-10-12 18:32:31

bash的基础特性 tr tee alias 通配符 输入输出重定向的相关文章

Linux目录结构、bash的基础特性、I/O重定向及管道

Linux目录结构 LSB(Linux StandardsBase)是一套核心标准,它保证了LINUX发行版同LINUX应用程序之间的良好结合规定了一系列标准,其中包括文件系统层级结构标准(FHS Filesystem Hierarchy Standard) Linux系统根目录下有众多子目录,这些目录都参照了FHS协定 / ├── bin ├── boot ├── dev ├── etc ├── home ├── lib ├── lib64 ├── lost+found ├── media ├

运维基础--Linux中bash的基础特性

bash 的基础特性如下: 一.命令的别名--alias 命令 用来定义和显示命令的别名,unalias撤销定义的别名:但是要注意以下几点: 1.alias的效果仅限于当前shell的生命期: 2.如果修改.bashrc配置文件,其中保存的别名不会立即生效,只有在重新加载该文件的内容后,才会生效且永久生效: 3.为了能够保证设置的别名有效,通常两种操作都要做: 二.命令历史 shell进程会其会话中保存此前用户提交执行过的命令,history是shell的内置命令   1.命令语法格式: his

bash的基础特性(1)

bash的基础特性(1) history: 1.命令解释: history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件. 该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令.例如,要执行第2个历史命令,则输入!2. 历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取.在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制. 命令语法: his

Lunix基础入门--bash的基础特性(五)

Bash的基础特性之一(history命令): 命令历史:shell进程会其会话中保存此前用户提交执行过的命令: [[email protected] ~]# history 定制history的功能,可通过环境变量实现: HISTSIZE:shell进程可保留的命令历史条数 [[email protected] ~]# echo $HISTSIZE 1000 HISTFILE:历史命令保存的文件 [[email protected] ~]# echo $HISTFILE /root/.bash

bash shell基础特性之三(数组)

bash shell基础特性之三(数组) 一.数组定义 数组指连续的多个独立内存空间,每个内存空间相当于一个变量. bash shell只支持一维数组,但参数个数没有限制. 数组元素:数组名+索引(从0开始编号) 声明数组:declare -a ARRAR_NAME(其实不用声明,按数组方式直接赋值给变量即可,BASH就知道那是数组) 关联数组:declare -A ARRAY_NAME 数组元素的赋值:一次赋值全部元素.指定索引进行赋值.一次只赋值一个元素 (1) array=(var1 va

Linux基础知识--Linux的文件系统和bash的基础特性

Linux基础知识--linux的文件系统和bash的基础特性 一.Linux文件系统: Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件.目录.软连接及文件保护信息等都存储在其中 linux文件系统遵循FHS(Filesystem Hierarchy Standard,文件系统目录标准),多数Linux版本采用这种文件组织形式.FHS采用了树行组织文件. FHS定义了两层规范,第一层是,/目录下面的各个目录应该要

CentOS系统Shell编程语言基础之Bash的基础特性简介

bash的基础特性之命令历史: 命令历史:shell进程会在其会话中保存此前用户提交执行过的命令~]#history定制history的功能,可通过环境变量实现HISTSIZE:shell进程可保留的命令历史的条数HISTFILE:持久保存命令历史的文件, ".bash_history"HISTFILESIZE:命令历史文件的大小 命令用法: history [-c] [-d offset] [n]or history -anrw [filename]or history -ps ar

bash的基础特性 数值运算 数值大小比较 环境变量 位置变量 正则表达式

变量类型:数据存储格式,储存空间大小,参与变量种类字符型数值型:整数型浮点型强类型的:定义变量时必须指定变量类型,参与运算必须符合类型要求.弱类型的:定义变凉时无需指定类型,所有的全是字符型,参与运算会自动进行隐式类型转换.变量无需定义,可直接使用...bash中的变量种类:根据变量的生效范围等标准本地变量:生效范围为当前shell的生命周期,对当前shell其他之外的shell和当前shell的子shell都不生效,重启也失效.环境变量:生效范围为,当前shell进程和其子shell都生效.局

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

8.1 shell介绍 shell 是一个命令解释器,提供用户和机器之间的交互 支持特定语法,比如逻辑判断,循环 每个用户都可以有自己特定的shell CentOS7默认shell 为bash(Bourne Agin Shell) 还有zsh.ksh等 yum zsh和ksh [[email protected] ~]# yum list |grep zsh zsh.x86_64 5.0.2-25.el7_3.1 updates zsh-html.x86_64 5.0.2-25.el7_3.1