shell工夫分享(五)

作者:ca88编程

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_demodrwxr-xr-x. 2 mpi_user1 mpi_user1 37 May 29 17:50 chkpnt_dirdrwxr-xr-x. 2 root root 6 Feb 28 15:14 Desktopdrwxr-xr-x. 2 root root 6 Feb 28 15:14 Documentsdrwxr-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.cfgdrwxr-xr-x. 2 root root 6 Feb 28 15:14 Musicdrwxr-xr-x. 2 root root 6 Feb 28 15:14 Picturesdrwxr-xr-x. 2 root root 6 Feb 28 15:14 Publicdrwxr-xr-x. 2 root root 6 Feb 28 15:14 Templatesdrwxr-xr-x. 2 root root 6 Jun 4 17:17 tmpdrwxr-xr-x. 2 root root 6 Feb 28 15:14 Videos

通过alias指令,定义三个新的..命令,当执行..指令时,会活动步向上层目录,然后列出上层目录的兼具文件,无需奉行cd ..,然后施行ls,更加方便连忙。所以,你还足以定义贰个...指令,走入上上层目录。

 

知识系统:
#回想重定向
#标准输入和输出
#告知错误
#甩掉数据
#创造日志文件
此地关键叙述怎么着将脚本重定向到linux系统的逐个岗位。

正式输入stdin  文件呈报符分别为1

1 重定向相关知识

  • 重定向规范输出到文件
$ echo line1 > test.log$ cat test.logline1
  • 重定向规范错误到文件
$ echo line1 2> error.logline1$ cat error.log
  • 重定向标准输出到职业错误
$ echo line1 1>&2line1
  • 重定向标准错误到正式输出
$ echo line1 2>&1line1
  • 重定向标准输出和标准错误到文件
$ echo line1 > test.log 2>&1$ cat test.logline1

利用test?会将test2,test5相配出来

ca88编程 1

 

2 同一时候打印到荧屏和文书

$ cat tee_demo.sh#!/bin/bashecho_ext(){ echo "$1" 2>&1 | tee -a test.log}echo_ext line1echo_ext line2echo_ext line3$ ./tee_demo.shline1line2line3$ cat test.logline1line2line3

在shell脚本中,假设必要同期将出口新闻打字与印刷到显示屏并保留到文件,能够透过tee指令达成。由示例中得以看来,定义了二个echo_ext函数,封装echo一声令下,将出口消息打字与印刷到荧屏,并保留到test.log文件,tee命令的-a选项是将出口新闻append到文件,并不是覆盖,运维完tee_demo.sh脚本,查看test.log文件内容,和显示屏输出相近。

2.怎么着辨别当前选用的是哪些shell?

1、领会输入和出口
大家精通展现脚本输出的法子有二种:
*在监视器荧屏上显得
*将出口重定向到文件
上边重要描述怎么样行使标准的linux输入和出口体系满意将脚本输出定向到一定岗位的须要。
1.1、规范文件描述符
linux使用文件陈诉符来标志各种文件对象,每种进程最多有9个可以张开文件的陈诉符(且非零),bash shell为特需保留了前四个文本呈报符(0、1、2),如下所示:
**************************************
文件陈述符    缩写       描述
 0           STDIN       标准输入
 1           STDOUT      标准输出
 2           STDE库罗德奥迪Q7      标准错误
**************************************
shell使用他们将shell中的私下认可输入输出重定向到相应的任务,暗许正是监视器显示器了。
上边轻便描述下那五个保留的公文陈述符:
1》STDIN
STDIN文件陈诉符援引shell的正统输入,对于极端接口的标准输入正是键盘了。当然,大家可以利用输入重定向符号(<)也能够使其读取文件中的数据,跟键盘输入时同样的道理。先来看个例证:
[root@wzp ~]# cat
i am twentyfour , who are you ?
i am twentyfour , who are you ?
本身直接输入cat后回车,结果笔者输入什么内容,系统就显得同黄金年代的剧情。
那便是cat命令通过STDIN输入数据的言传身教。
[root@wzp ~]# vim testfile
[root@wzp ~]# cat < testfile
aaaaaaaaaaaa
bbbbbbbbbbbb
cccccccccccc
近期cat命令使用含有在testfile文件的平安银行作为输入,也是专门的职业输入。
2》STDOUT
STDOUT文件描述符援引shell的正统输出,在终极接口的标准输出正是极限监视器。我们能够使用输出重定向(>)恐怕扩张(>>)向文件增多数据。对于那个都以很好通晓的,看个例证:
[root@wzp ~]# ls > 51cto.test
[root@wzp ~]# cat 51cto.test
51cto.test
anaconda-ks.cfg
Desktop
install.log
install.log.syslog
linux-linkto-mysql
login-mysql
mbox
sendto-mysql
如上把定向到监视器的剧情重定向到文件中。
3》STDERR
STDE本田CR-V卡宴文件汇报符处理错误音讯,暗中同意情状下将持有错误消息彰显在监视器上,具体运用下来说述。
1.2、重定向错误
重定向STDE奥迪Q3Evoque数据的时候倘若定义好STDE途达安德Lavin件汇报符就能够,这里头分二种情况的多少重定向。
(1)先来第豆蔻年华种:仅重定向错误音讯
大家已经精通ETDECR-V奥德赛文件呈报符值为2,在重定向符号前附加2就可以把错误新闻重定向到实际的岗位去,看个例证:
[root@wzp ~]# ll 51cto 2> errfile
[root@wzp ~]# cat errfile
ls: 51cto: 未有丰硕文件或目录
纵使认证清楚空中楼阁51cto,然后去ll后把错误音信重定向到errfile中,并非默许的突显在显示器上。下边的例子也如此:
[root@wzp ~]# ll 51cto.test 51cto 2>> errfile
-rw-r--r-- 1 root root 115 02-14 17:02 51cto.test
[root@wzp ~]# cat errfile
ls: 51cto: 未有特别文件或目录
ls: 51cto: 没有那一个文件或目录
从结果都能够见见存在的公文显示在荧屏上,而不真实的文书的报错新闻被追加到errfile文件中。
(2)还应该有生机勃勃种是:重定向错误和数码
既然要分离管理错误新闻和不错的数码体现,我们就能够透过1>符号实行专门的学问输出重定向,和2>举行不当音讯重定向,看个例子就明白了:
[root@wzp ~]# ls -al 51cto.test install.log linux rhca 1> exist 2> error
[root@wzp ~]# cat exist
-rw-r--r-- 1 root root   115 02-14 17:02 51cto.test
-rw-r--r-- 1 root root 27682 12-12 18:06 install.log
[root@wzp ~]# cat error
ls: linux: 未有特别文件或目录
ls: rhca: 未有这个文件或目录
存在的文本重定向到exist文件中,不设有的公文把报错消息重定向到error中,那正是灵活应用1>和2>符号的成效。
自然,假设你想把正确输出的不当输出都重定向到四个文本的时候能够采取异乎经常的重定向符号:&> 先来看个例证:
[root@wzp ~]# ls -al 51cto.test install.log linux rhca &> totalfile
[root@wzp ca88编程,~]# cat totalfile
ls: linux: 未有足够文件或目录
ls: rhca: 没有特别文件或目录
-rw-r--r-- 1 root root   115 02-14 17:02 51cto.test
-rw-r--r-- 1 root root 27682 12-12 18:06 install.log
我们见到totalfile包涵的装有音信,而且是据守顺序排列两类音讯。

t

这是二个多种文章,重要分享shell(部分功力仅适用于bash)的施用提出和技艺,每一遍分享3点,希望您能抱有收获。

     4.3.重定向标准输入

 

6.特殊字符

 

[]将一个字符列表括起来,使shell与列表中种种独立字符实行相称

Tue Oct 9 20:51:50 CST 2007

shell命令使用管道将二个发令的出口直接作为另三个限令的输入

暗许意况下,错误会输出到stderr。date则能正确施行,暗中同意输出到stdout,突显时间。

4.行业内部输入,输出与谬误输出

date

当系统一管理理员创设客商账号时,将分明客商率先次登陆时利用的shell。

 

 

 

tr abc ABC 当输入abc时,会打字与印刷出abc替换为ABC的结果

date的履行结果被重定向到log文件中了,而t不只怕实行的荒唐打字与印刷在显示屏上。

那会儿ps命令展现系统正在举办的八个命令bash和ps,明显见到当前用的是bash

我们精通>和<是文本重定向符。那么1和2是何等?

如ls | wc -l

Tue Oct 9 20:53:44 CST 2007

 

常常能够在局地本子,特别是在crontab调用时发掘如下情势的一声令下调用 /tmp/test.sh /tmp/test.log 21 前半部分/tmp/test.sh /tm...

  4.1.重定向规范输出(会覆盖卡塔尔(قطر‎

shell_2>&1问题(重定向)

shell是系统的顾客分界面,提供了客户与底子进行相互作用的生龙活虎种接口。能够视作是客商与基本之间的风姿浪漫扇窗户。它选取客商输入的授命并把它送入内核实行。

显示器什么都没有显得

本文由ca88发布,转载请注明来源

关键词: cabet777亚洲 Linux Shell 技巧 |