05 Jun 2018 shell技巧分享(五)

05 Jun 2018 shell技巧分享(五)

这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。

1 重定向相关知识

  • 重定向标准输出到文件
$ echo line1 > test.log
$ cat test.log
line1
  • 重定向标准错误到文件
$ echo line1 2> error.log
line1
$ cat error.log
  • 重定向标准输出到标准错误
$ echo line1 1>&2
line1
  • 重定向标准错误到标准输出
$ echo line1 2>&1
line1
  • 重定向标准输出和标准错误到文件
$ echo line1 > test.log 2>&1
$ cat test.log
line1

2 同时打印到屏幕和文件

$ cat tee_demo.sh
#!/bin/bash

echo_ext(){
    echo "$1" 2>&1 | tee -a test.log
}

echo_ext line1
echo_ext line2
echo_ext line3
$ ./tee_demo.sh
line1
line2
line3
$ cat test.log
line1
line2
line3

在shell脚本中,如果需要同时将输出信息打印到屏幕并保存到文件,可以通过tee命令实现。由示例中可以看到,定义了一个echo_ext函数,封装echo命令,将输出信息打印到屏幕,并保存到test.log文件,tee命令的-a选项是将输出信息append到文件,而不是覆盖,运行完tee_demo.sh脚本,查看test.log文件内容,和屏幕输出相同。

3 进入上层目录

$ pwd
/root/tmp
$ alias ..='cd .. && ls -l'
$ ..
total 20
-rw-------. 1 root      root      2011 Feb 28 15:08 anaconda-ks.cfg
-rwxr-x---. 1 root      root      8576 May 25 14:58 checkpoint_demo
drwxr-xr-x. 2 mpi_user1 mpi_user1   37 May 29 17:50 chkpnt_dir
drwxr-xr-x. 2 root      root         6 Feb 28 15:14 Desktop
drwxr-xr-x. 2 root      root         6 Feb 28 15:14 Documents
drwxr-xr-x. 2 root      root         6 Feb 28 15:14 Downloads
-rw-r--r--. 1 root      root      2059 Feb 28 15:12 initial-setup-ks.cfg
drwxr-xr-x. 2 root      root         6 Feb 28 15:14 Music
drwxr-xr-x. 2 root      root         6 Feb 28 15:14 Pictures
drwxr-xr-x. 2 root      root         6 Feb 28 15:14 Public
drwxr-xr-x. 2 root      root         6 Feb 28 15:14 Templates
drwxr-xr-x. 2 root      root         6 Jun  4 17:17 tmp
drwxr-xr-x. 2 root      root         6 Feb 28 15:14 Videos

通过alias命令,定义一个新的..命令,当执行..命令时,会自动进入上层目录,然后列出上层目录的所有文件,不需要执行cd ..,然后执行ls,更加方便快捷。所以,你还可以定义一个...命令,进入上上层目录。

LEo at 00:05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端说吧

Gulp安装流程、使用方法及cmd常用命令导览

4236
来自专栏北京马哥教育

97 条 Linux 运维工程师常用命令总结

作者:jeanheo 1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出...

4566
来自专栏葡萄城控件技术团队

Winform文件下载之WinINet

在C#中,除了webclient我们还可以使用一组WindowsAPI来完成下载任务。这就是Windows Internet,简称 WinINet。本文通过一个...

2218
来自专栏Danny的专栏

【SSH快速进阶】——探索Hibernate对象的三种状态:Transient、Persistent、Detached

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1032
来自专栏安恒网络空间安全讲武堂

Python编写渗透工具学习笔记二 | 0x02利用FTP与web批量抓肉鸡

0x02利用FTP与web批量抓肉鸡 脚本要实现的目标和思路: 先尝试匿名登录ftp,当匿名登录失败时再尝试用用户/密码爆破登录,登录成功后,脚本会搜索ftp中...

1.7K7
来自专栏吴伟祥

文件拷贝工具 原

WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。.winsc...

1183
来自专栏余林丰

外观模式

 外观模式又称为门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。我们还是用通俗的语言来解释这句话...

1858
来自专栏Python爬虫与数据挖掘

如何在虚拟机上安装centos7.4系统—靠谱的centos7.4系统安装教程

前几天给大家分享了在虚拟机上安装Centos6.7系统的教程,感兴趣的童鞋们可以点击进去查看。今天小编给大家分享在虚拟机上安装Centos7.4...

1182
来自专栏轮子工厂

97 条 Linux 运维工程师常用命令总结 | 史上最全Linux命令总结

先说明一下,这篇文章只是一篇常用基础命令的汇总,小白可以看着学习一下,对大牛帮助不大。。。。

1682
来自专栏张善友的专栏

分布式文件存储的数据库开源项目MongoDB

MongoDB是一个基于分布式文件存储的数据库开源项目。由C++语言编写。旨在为WEB应用提供可护展的高性能数据存储解决方案。 它的特点是高性能、易部署、易使用...

3489

扫码关注云+社区

领取腾讯云代金券