您的位置:首页 > 运维架构 > Linux

Linux中重定向及管道(ubuntu 终端命令)

2011-06-03 11:00 190 查看
1重定向

1.1      重定向符号

>               输出重定向到一个文件或设备 覆盖原来的文件

>!              输出重定向到一个文件或设备 强制覆盖原来的文件

>>             输出重定向到一个文件或设备 追加原来的文件

<               输入重定向到一个程序

1.2标准错误重定向符号

2>             将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件  b-shell

2>>           将一个标准错误输出重定向到一个文件或设备 追加到原来的文件

2>&1         将一个标准错误输出重定向到标准输出 注释:1 可能就是代表 标准输出

>&             将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件  c-shell

|&              将一个标准错误 管道 输送 到另一个命令作为输入

1.3命令重导向示例

在 bash 命令执行的过程中,主要有三种输出入的状况,分别是:

1. 标准输入;代码为 0 ;或称为 stdin ;使用的方式为 <

2. 标准输出:代码为 1 ;或称为 stdout;使用的方式为 1>

3. 错误输出:代码为 2 ;或称为 stderr;使用的方式为 2>

[test @test test]# ls -al > list.txt

将显示的结果输出到 list.txt 文件中,若该文件以存在则予以取代!

[test @test test]# ls -al >> list.txt

将显示的结果累加到 list.txt 文件中,该文件为累加的,旧数据保留!

[test @test test]# ls -al  1> list.txt   2> list.err

将显示的数据,正确的输出到 list.txt 错误的数据输出到 list.err

[test @test test]# ls -al 1> list.txt 2>&1

将显示的数据,不论正确或错误均输出到 list.txt 当中!错误与正确文件输出到同一个文件中,则必须以上面的方法来写!不能写成其它格式!

[test @test test]# ls -al 1> list.txt 2> /dev/null

将显示的数据,正确的输出到 list.txt 错误的数据则予以丢弃! /dev/null ,可以说成是黑洞装置。

1.4为何要使用命令输出重导向


• 当屏幕输出的信息很重要,而且我们需要将他存下来的时候;

• 背景执行中的程序,不希望他干扰屏幕正常的输出结果时;

• 一些系统的例行命令(例如写在 /etc/crontab 中的文件)的执行结果,希望他可以存下来时;

• 一些执行命令,我们已经知道他可能的错误讯息,所以想以『 2> /dev/null 』将他丢掉时;

• 错误讯息与正确讯息需要分别输出时。

2   管线命令 ( pipe )

就如同前面所说的, bash 命令执行的时候有输出的数据会出现,那么如果这群数据必需要经过几道手续之后才能得到我们所想要的格式,应该如何来设定?这就牵涉到管线命令的问题了( pipe ),管线命令使用的是『 | 』。

例子:简单的管线命令

假设我们要读取 last 这个指令中,那个 root 登入的『次数』应该怎么作?

那么我所进行的步骤是:

1. 执行 last ,将所有这个月的所有人登入数据取出来;

2. 使用 grep 将上面的输出数据(stdout)当中的 root 撷取出来,其它的不要;

3. 使用 wc 这个可以计算行数的指令将上一步的数据计算行数!

由于 last 的输出是一行代表一次登入,所以只要计算几行就代表登入几次的意思,经由上面三个步骤,将 last 数据逐步的筛选,就可以得到我们的数据了!整个命令可以写成如下: [test @test bin]# last | grep root | wc -l

这个管线命令『 | 』仅能处理经由前面一个指令传来的正确信息,也就是standard output ( STDOUT ) 的信息,对于 stdandard error 并没有直接处理的能力。

2.1基本的管线命令指令介绍

• cut

语法:[root @test /root ]# cut -d "分隔字符" [-cf] fields

参数说明:

-d :后面接的是用来分隔的字符,预设是『空格符』

-c :后面接的是『第几个字符』

-f :后面接的是第几个区块?

范例:[root @test /root]# cat /etc/passwd | cut -d ":" -f 1

将 passwd 这个文件里面,每一行里头的 : 用来作为分隔号,而列出第一个区块!也就是姓名所在啦!

[root @test /root]# last | cut -c1-20

将 last 之后的数据,每一行的 1-20 个字符取出来!

• sort

语法:[root @test /root ]# sort [-t 分隔符] [(+起始)(-结束)] [-nru]

参数说明:

-t 分隔符:使用分隔符来隔开不同区间,预设是 tab

+start -end:由第 start 区间排序到 end 区间

-n :使用『纯数字』排序(否则就会以文字型态来排序)

-r :反向排序

-u :相同出现的一行,只列出一次!

范例:[root @test /root]# cat /etc/passwd | sort将列出来的个人账号排序!

[root @test /root]# cat /etc/passwd | sort -t: +2n将个人账号中,以使用者 ID 来排序(以 : 来分隔,第三个为 ID ,但第一个代号为 0 之故)

[root @test /root]# cat /etc/passwd | sort -t: +2nr反相排序啰!

• wc

语法:[root @test /root ]# wc [-lmw]

参数说明:

-l :多少行

-m :多少字符

-w :多少字

范例:[root @test /root]# cat /etc/passwd | wc -l这个文件里头有多少行?

[root @test /root]# cat /etc/passwd | wc -w这个文件里头有多少字!?

• uniq这个指令用来将『重复的行删除掉只显示一个』

语法:[root @test /root ]# uniq

范例:[root @test /root]# last | cut -d" " -f1 | sort | uniq

• tee命令重定向到文件的同时将数据显示在屏幕上

语法:[root @test /root ]# last | tee last.list | cut -d " " -f1

范例:[root @test /root]# last | tee last.list | cut -d " " -f1

• tr

语法:[root @test /root ]# tr [-ds] SET1

参数说明:

-d :删除 SET1 这个字符串 

-s :取代掉重复的字符!

范例:[root @test /root]# last | tr '[a-z]' '[A-Z]' <==将小写改成大写

[root @test /root]# cat /etc/passwd | tr -d : <== : 这个符号在 /etc/passwd 中不见了!

[root @test /root]# cat /home/test/dostxt | tr -d '/r' > dostxt-noM

• split

语法:[root @test /root ]# split [-bl] 输入文件 输出文件前导字符

参数说明:

-b :以文件 size 来分

-l :以行数来分

范例:[root @test /root]# split -l 5 /etc/passwd test <==会产生 testaa, testab, testac... 等等的文件

说明:在 Linux 底下就简单的多了!你要将文件分割的话,那么就使用 -b size 来将一个分割的文件限制其大小,如果是行数的话,那么就使用 -l line 来分割!

管线命令在 bash 的连续的处理程序中是相当重要的!另外,在 log file 的分析当中也是相当重要的一环。

管道输送到一个命令的标准输入可以使用标准输入参数”-“ 进行更仔细的控制.如cat命令的示例

eg:  sort mylist | more

sort mylist | cat –n | lpr

pwd | cat – mylist | lpr

 

##############ubuntu 终端命令#######################

一、文件目录类

  1.建立目录:mkdir 目录名

  2.删除空目录:rmdir 目录名

  3.无条件删除子目录: rm -rf 目录名

  4.改变当前目录:cd 目录名 (进入用户home目录:cd ~;进入上一级目录:cd -)

  5.查看自己所在目录:pwd

  6.查看当前目录大小:du

  7.显示目录文件列表:ls -l (-a:增加显示隐含目录)

  其中:蓝:目录;绿:可执行文件;红:压缩文件;浅蓝:链接文件;灰:其他文件;红底白字:错误的链接文件

  8.浏览文件:more 文件名.txt;less 文件名.txt

  9.复制文件: cp 源文件 目标文件 (-r:包含目录)

  10.查找文件:(1)find (2)locate 命令名

  11.链接:(1)建立hard链接:ln 来源文件 链接文件(-d:创建目录链接);(2)建立符号链接:ln -s 来源文件链接文件

  二、驱动挂载类

  1.检查硬盘使用情况:df -T -h

  2.检查磁盘分区:fdisk -l

  3.挂载软硬光区:mount -t /dev/fdx|hdax /mnt/目录名

  其中:modos--FAT16;vfat--FAT32;ntfs--NTFS;光驱--iso9660

  支持中文名:mount -o iocharset=x /dev/hdax /mnt/目录名

  挂载光驱:mount -t auto /dev/cdrom /mnt/cdrom

  挂载ISO文件:mount -t iso9660 -o loop xxx.iso /path

  4.解除挂载:umount /mnt/目录名

  解除所有挂载:umount -a

  5.建立文件系统:mkfs -t /dev/hdxx。其中:ftype:ext2、ext3、swap等

  三、程序安装类

  1.RPM包安装:

  (1)安装 rpm -ivh somesoft.rpm

  (2)反安装 rpm -e somefost.rpm

  (3)查询 rpm -q somefost 或 rpm -qpisomefost.rpm(其中:p未安装;i包含的信息)

  (4)查询安装后位置:rpm -ql somefost.rpm

  (5)升级安装:rpm -Uvh somesoft.rpm

  (6)强制安装:rpm -ivh --nodeps somesoft.rpm 或 rpm -ivh --nodeps--force somesoft.rpm

  2.源代码包安装:

  查阅README

  基本用法 :

  (1)配置:解压目录下 ./configure

  (2)编译:解压目录下 make

  (3)安装:解压目录下 make install

  3.src.rpm的安装

  需要用到rpmbuild命令加上--rebuild参数。如 rpmbuild --rebuild***.src.rpm。然后在/usr/src/下找

  FC3下iso程序安装:system-config-packages --isodir=iso所在目录

  RH下iso程序安装:redhat-config-packages --isodir=iso所在目录

玩转Linux:终端命令用法精选

发布时间: 2009-4-1309:57    作者:未知    来源:网络转载

字体:  小  中 大  | 上一篇 下一篇 | 打印  |我要投稿  | 每周一问,答贴有奖

  四、压缩解压类

  1.tar.gz类:(1)解压:tar -xvzf 文件.tar.gz;(2)tar.gz解至tar:gzip -d文件.tar.gz(2)压缩:gzip 待压缩文件

  2.tar未压缩类:(1)解包:tar -xvf 文件.tar;(2)打包:tar -cvf 文件.tar 文件列表

  3.zip类:(1)解压:unzip 文件.zip -d dir;(2)压缩:zip zipfile 待压缩文件列表

  4.bz2类:(1)解压:bunzip2 文件.bz2或bzip2 -d 文件.bz2;(2)压缩:bzip2待压缩文件

  5.z类:(1)解压:uncompress 文件.z;(2)压缩:compress 文件

  五、进程控制类

  1.列出当前进程ID:ps -auxw

  2.终止进程:

  (1)终止单一进程:kill 进程ID号

  (2)终止该程序所有进程:Killall 程序名

  (3)终止X-Window程序:xkill

  3.查看资源占用情况:(1)top (2)free (3)dmesg

  4.查看环境变量值:env

  5.重启:(1)reboot (2)Ctrl Alt Del (3)init 6

  6.关机:(1)shutdown -h now (2)halt (3)init 0

  7.切换桌面:switchdesk gnome|KDE|...

  六、程序运行类

  1.查询命令:whereis 命令名

  2.后台运行X-Window程序:程序名&

  3.强行退出X-Window程序:Ctrl Alt Backspace

  4.查看帮助:

  (1)简明帮助:命令名 --help | less

  (2)更多帮助:man 命令名

  (3)info 命令名

  (4)help 命令名

  5.查看系统路径:echo $PATH

  6.查看当前shell堆栈:echo $SHLVL

  7.< />:输入/输出重定向;|:管道左的输入是管道右输入

  七、用户帐号类

  1.增加用户帐号:

  (1)用 户 名:adduser 用户帐号名

  (2)设置密码: passwd 用户帐号名

  2.删除用户帐号:userdel 用户帐号名

  3.增加用户组:groupadd 用户组名

  4.删除用户组:groupdel 用户组名

  5.暂时终止用户帐号:passwd -l 用户帐号名

  6.恢复被终止帐号:passwd -u 用户帐号名

  7.权限设定

  (1)chmod -a|u|g|o |-|=r|w|x 文件/目录名

  其中:a--所有用户(all);u--本用户(user);g--用户组(group);o--其他用户(otherusers)

  --增加权限;---删除权限;=--设置权限

  文件:r--只读权限(read);w--写权限(write);x--执行权限(execute)

  目录:r--允许列目录下文件和子目录;w--允许生成和删除目录下文件;x--允许访问该目录

  (2)chmod xxx 文件/目录名

  其中:execute=1;write=2;read=4

  x取值:0--没有任何权限(常用);1--只能执行(不常见);2--只能写(不常见);3--只能写和执行(不常见);4--只读(常见);5--只读和执行(常见);6--读和写(常见);7--读.写和执行

  八、vi编辑类

  1.进入后为命令模式:(1)插入i;(2)打开0;(3)修改c;(4)取代r;(5)替换s

  2.经(1)后进入全屏幕编辑模式。

  3.命令模式-->编辑模式(a/i);编辑模式-->命令模式(Esc);命令模式-->末行模式(:)。

  4.:w/w newfile保存

  5.:q/q!退出iv;:wq保存退出

  九、网络服务

  1.显示网络接口参数:ifconfig

  2.显示系统邮件:mail

  3.启动/终止web服务:httpd -k start|stop|restart

  4.查看网络状况:

  (1)联机状况:ping xxx.xxx.xxx.xxx;

  (2)显示网络状况:netstat,其中:options:-a==所有sockets;-l==包含网络设备;-n==数字IP;

  -o==其他信息;-r==路由表;-t==只列TCP sockets;-u==只列UDP sockets;-w==只列rawsockets;

  -x==只列Unix Domain sockets

  十、其他类

  1.显示显卡3D信息:glxinfo和glxgears
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息