`

Linux命令

阅读更多

shell的种类

 

Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh)、C shell(csh)和Korn shell(ksh)。三种shell各有优缺点。Bourne shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourne shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。Linux操作系统缺省的shell是Bourne Again shell,它是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多C shell和Korn shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。

 

在终端输入:

A、选项和参数

1、cd Document;

 

2、ls -l   (加入-l选项,将会为每个文件列出一行信息,诸如数据大小和数据最后被修改的时间。大多数命令都被设计为可以接纳参数。参数是在命令行中的选项之后键入的一个或多个单词)

 

wangqun@wangqun-desktop:~/Documents$ ls -l
总用量 12
drwxr-xr-x 19 wangqun wangqun 4096 2011-06-20 01:39 sqmy
drwxrwxr-x 12 wangqun wangqun 4096 2011-03-28 06:05 vimfiles
drwxr-xr-x 19 wangqun wangqun 4096 2011-05-24 23:42 zbs

 

3、ls -l sqmy (将显示sqmy目录下的所有文件及其信息)

 

wangqun@wangqun-desktop:~/Documents$ ls -l sqmy
总用量 332
drwxr-xr-x  7 wangqun wangqun   4096 2011-05-24 02:54 app
drwxr-xr-x  2 wangqun wangqun   4096 2011-05-24 02:54 bat_tasks
-rw-r--r--  1 wangqun wangqun    151 2010-05-19 03:01 Capfile
drwxr-xr-x 10 wangqun wangqun   4096 2011-06-15 01:48 config
drwxr-xr-x  2 wangqun wangqun  20480 2011-06-20 01:38 coverage
-rw-r--r--  1 wangqun wangqun    259 2010-05-19 03:01 cucumber.yml
drwxr-xr-x  4 wangqun wangqun   4096 2011-06-19 22:00 db
-rw-r--r--  1 wangqun wangqun 217088 2010-05-19 03:01 destroy
drwxr-xr-x  2 wangqun wangqun   4096 2011-05-24 02:54 doc
-rw-r--r--  1 wangqun wangqun  16384 2010-05-19 03:01 exit
drwxr-xr-x  4 wangqun wangqun   4096 2011-06-15 01:48 features
drwxr-xr-x  5 wangqun wangqun   4096 2011-05-24 02:54 index

 

B、命令行特征

1. 通配符

通配符用于模式匹配,如文件名匹配、路经名搜索、字符串查找等。常用的通配符有*、?和括在方括号[ ]中的字符序列。用户可以在作为命令参数的文件名中包含这些通配符,构成一个所谓的“模式串”,在执行过程中进行模式匹配。

* 代表任何字符串(长度可以不等),例如:“f*”匹配以f打头的任意字符串。但应注意,文件名前的圆点(.)和路经名中的斜线(/)必须显式匹配。例如“*”不能匹配.file,而“.*”才可以匹配.file。

 

? 代表任何单个字符。

[] 代表指定的一个字符范围,只要文件名中[ ]位置处的字符在[]中指定的范围之内,那么这个文件名就与这个模式串匹配。方括号中的字符范围可以由直接给出的字符组成,也可以由表示限定范围的起始字符、终止字符及中间的连字符(-)组成。例如,f [a- d] 与f [abcd]的作用相同。Shell将把与命令行中指定的模式串相匹配的所有文件名都作为命令的参数,形成最终的命令,然后再执行这个命令。

 

当前目录下所有文件的名称。

*Text*

当前目录下所有文件名中包含有Text的文件的名称。

[ab-dm]*

当前目录下所有以a、b、c、d、m开头的文件的名称。

[ab-dm]?

当前目录下所有以a、b、c、d、m开头且后面只跟有一个字符的文件的名称。

/usr/bin/??

目录/usr/bin下所有名称为两个字符的文件的名称。

 

特别需要注意的是,连字符“-”仅在方括号内有效,表示字符范围,如在方括号外面就成为普通字符了。而*和?只在方括号外面是通配符,若出现在方括号之内,它们也失去通配符的能力,成为普通字符了。例如,模式“- a[*?]abc”中只有一对方括号是通配符,*和?均为普通字符,因此,它匹配的字符串只能是- a*abc和- a?abc。

 

 最后说明一下使用通配符时需要注意的一些问题。由于*、?和[]对于shell来说具有比较特殊的意义,因此在正常的文件名中不应出现这些字符。特别是在目录名中不要出现它们,否则Shell匹配起来可能会无穷的递归下去。另外要注意的一点是:如果目录中没有与指定的模式串相匹配的文件名,那么Shell将使用此模式串本身作为参数传给有关命令。这可能就是命令中出现特殊字符的原因所在。

 

 C、引号

 

在shell中引号分为三种:单引号,双引号和反引号。

1、单引号 ‘

由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。例如:

wangqun@wangqun-desktop:~/Documents$ string='$$$pash'
wangqun@wangqun-desktop:~/Documents$ 
wangqun@wangqun-desktop:~/Documents$ echo $string
$$$pash

 

2、双引号 “

由双引号括起来的字符,除$、、’、和”这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。对于$来说,就是用其后指定的变量的值来代替这个变量和$;对于而言,是转义字符,它告诉shell不要对其后面的那个字符进行特殊处理,只当作普通字符即可。可以想见,在双引号中需要在前面加上的只有四个字符$,,’和”本身。而对”号,若其前面没有加,则Shell会将它同前一个”号匹配。

例如,我们假定PATH的值为.:/usr/bin:/bin,输入如下命令:

wangqun@wangqun-desktop:~/Documents$ test="$PATH\"$PATH"
wangqun@wangqun-desktop:~/Documents$ 
wangqun@wangqun-desktop:~/Documents$ echo $test
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

  

3、反引号 `

反引号(`)这个字符所对应的键一般位于键盘的左上角,不要将其同单引号(’)混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。例如:

wangqun@wangqun-desktop:~/Documents$ string="current directoue is `pwd`"
wangqun@wangqun-desktop:~/Documents$ echo $string
current directoue is /home/wangqun/Documents

 

shell执行echo命令时,首先执行`pwd`中的命令pwd,并将输出结果/home/xyz取代`pwd`这部分,最后输出替换后的整个结果。

 

利用反引号的这种功能可以进行命令置换,即把反引号括起来的执行结果赋值给指定变量。例如:

wangqun@wangqun-desktop:~/Documents$ today=`date`
wangqun@wangqun-desktop:~/Documents$ echo Today is $today
Today is 2011年 06月 22日 星期三 04:33:53 EDT

 

反引号还可以嵌套使用。但需注意,嵌套使用时内层的反引号必须用反斜线()将其转义。 

 

 D、标准输入和输出

我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。

 

wangqun@wangqun-desktop:~/Documents$ cat

hell
hell

config
config

bu
bu

 

用户输入的每一行都立刻被cat命令输出到屏幕上。

 

另一个例子,命令sort按行读入文件正文(当命令行中没有给出文件名时,表示从标准输入读入),将其排序,并将结果送到标准输出。下面的例子是从标准输入读入一个采购单,并将其排序。

 

 

wangqun@wangqun-desktop:~/Documents$ sort 

Jan
Feb
Mar

Feb
Jan
Mar

 

 这时我们在屏幕上得到了已排序的字符串。

 

 

直接使用标准输入/输出文件存在以下问题:

输入数据从终端输入时,用户费了半天劲输入的数据只能用一次。下次再想用这些数据时就得重新输入。而且在终端上输入时,若输入有误修改起来不是很方便。

输出到终端屏幕上的信息只能看不能动。我们无法对此输出作更多处理,如将输出作为另一命令的输入进行进一步的处理等。

为了解决上述问题,Linux系统为输入、输出的传送引入了另外两种机制,即输入/输出重定向和管道。

 

E、 输入重定向

如果给出一个文件名作为wc命令的参数,如下例所示,wc将返回该文件所包含的行数、单词数和字符数。

$ wc /etc/passwd

20 23 726 /etc/passwd

 

另一种把/etc/passwd文件内容传给wc命令的方法是重定向wc的输入。输入重定向的一般形式为:命令<文件名。可以用下面的命令把wc命令的输入重定向为/etc/passwd文件:

$ wc < /etc/passwd

20 23 726

 

http://www.21ds.net/article/23/511

 

 

分享到:
评论

相关推荐

    Linux命令大全完整版.pdf

    本文将详细解读《Linux命令大全完整版.pdf》中所收录的各类命令,以帮助读者更好地理解和运用Linux命令。 1. Linux系统管理命令 系统管理命令是Linux系统中最重要的命令类别之一,涵盖了用户管理、进程控制、系统...

    Linux 命令速查手册

    Linux命令速查手册作为一本全面介绍Linux命令的参考书籍,由美国作者Scott Granneman所著,并由成保栋与李保强翻译成中文版本。本书是图灵系统与网络管理技术丛书之一,适合所有与Linux相关的工作人员以及初学者,...

    Linux命令大全搜索工具

    Linux 命令大全搜索工具提供了一个详细的命令列表,包括 A series 命令、apachectl 命令、arp 命令、atop 命令、awk 命令、axel 命令等。这些命令涵盖了 Linux 系统中的各种功能,例如文件管理、网络管理、系统管理...

    Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全

    Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 Linux命令大全 ...

    Linux命令大全(CHM格式离线版)

    Linux命令大全(CHM格式离线版) Linux命令大全(修改版) 进行重新编译的说明 文件传输 bye ftp ftpcount ftpshut ftpwho ncftp tftp uucico uucp uupick uuto 备份压缩 ar bunzip2 bzip2 bzip2recover compress cpio ...

    Linux 命令全集.chm

    Linux 命令全集.chm

    Linux学习课件及Linux命令大全

    Linux课件(ppt)外加一个《Linux命令大全》: Linux_内核完全注释_V11.pdf VI的常见用法.doc 第1章 Linux概况及安装.ppt 第2章 Linux的常用命令.ppt 第3章 Linux系统管理.ppt 第4章 Linux网络基础.ppt 第5章 ...

    linux命令壁纸1920*1080

    linux命令壁纸1920*1080尺寸,留有快捷键放置空间,方便对linux操作系统中各个命令的记忆。

    Linux命令模板 licote 1.1.0

    Licote是Linux command template的缩写,顾名思义就是Linux命令模板。用于快速编写一个linux环境的命令程序,当然如果你愿意,你可以用于任何程序中;Licote的主要任务就是帮助你解析linux环境下的常用命令选项,让...

    linux命令.txt

    linux 命令 - 开关机 - 文件操作 - 系统命令 1. top 2. who 3. ifconfig 4. ping 5. kill 6. man 7.clear 8.netstat 4. 软件管理 - dpkg :离线 .deb .rpm .apk - apt-get :在线 5. 压缩解压 tar -...

    Linux命令模板 licote 1.2.2

    Licote是Linux command template的缩写,顾名思义就是Linux命令模板。用于快速编写一个linux环境的命令程序,当然如果你愿意,你可以用于任何程序中;Licote的主要任务就是帮助你解析linux环境下的常用命令选项,让...

    Linux命令大全(修改版)

    linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统...

    linux命令大全linux指令大全(完整篇).pdf

    linux命令大全linux指令大全(完整篇).pdf

    linux命令官方源码

    Linux命令GNU官方源码,是coreutils-common-8.24这个软件包的命令,包含cp、mv、chgrp、chown等大多数基本命令,对学习C语言的人会有很大帮助,可以看看大神都是怎么写代码的TnT

    Linux 命令详解词典.pdf【第二部分】

    Linux 命令详解词典.pdf,施威铭研究室著,大小 74 MB,被压缩成两部分分别上传。这是第二部分,第一部分下载地址:http://download.csdn.net/source/2685010。 本书精选了 381 个 Linux 命令,详细罗列 1729 个范例...

    linux命令汇总+Linux命令大全

    linux命令汇总linux命令汇总+Linux命令大全linux命令汇总+Linux命令大全linux命令汇总+Linux命令大全linux命令汇总+Linux命令大全linux命令汇总+Linux命令大全linux命令汇总+Linux命令大全linux命令汇总+Linux命令...

    Linux命令大全完整版

    Linux 命令大全完整版 Linux 系统管理命令是 Linux 操作系统中最重要的一部分,掌握这些命令可以帮助用户更好地管理和维护 Linux 系统。本资源将对 Linux 命令大全进行详细的介绍和解释。 adduser adduser 命令...

Global site tag (gtag.js) - Google Analytics