专栏首页LEo的网络日志05 Jun 2018 shell技巧分享(五)

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 条评论
登录 后参与评论

相关文章

  • go语言strings库总结

    songleo
  • 如何通过criu checkpoint/restore应用

    songleo
  • 如何调试Windows的stackdump文件

    songleo
  • 根据中序序列与后序序列构建二叉树

    算法如下: 1)先在后序序列中找到根结点, 2)在中序序列中找到根结点位置,(可以将二叉树分为左子树和右子树) 3)用同样的办法构造左子树 。...

    AI那点小事
  • linux基础命令介绍三:文件搜索及其它

    find是一个非常有效的工具,它可以遍历目标目录甚至整个文件系统来查找某些文件或目录:

    用户5030870
  • linux基础命令介绍一:用户与文件

    linux系统是一个多用户多任务的分时操作系统,但系统并不能识别人,它通过账号来区别每个用户。每个linux系统在安装的过程中都要为root账号设置密码,这个r...

    用户5030870
  • Flat风格的Qml组合框

    Qt君
  • LeetCode 687. 最长同值路径(二叉树,递归)

    给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。

    Michael阿明
  • linux学习第十篇:find命令,文件名后缀

    find命令 find命令用于查找文件系统中的指定文件 其命令格式为   find 要查找的路径 -name  查找文件名  例如   find . -na...

    用户1215343
  • 如何使用CP / SCP / RSYNC在Linux中排除特定目录?

    对于任何系统管理员或一般Linux操作系统用户而言,在服务器之间执行文件复制操作都是一项常见任务。在将文件从一个系统复制到另一个系统时,由于某些特定原因,我们可...

    用户6543014

扫码关注云+社区

领取腾讯云代金券