当前位置:  操作系统/服务器>linux

linux shell命令行参数用法详解

    来源: 互联网  发布时间:2014-10-16

    本文导语:  习惯使用linux命令行来管理linux系统,例如: 代码如下:$ date 二 11 23 01:34:58 CST 1999  $ 用户登录时,实际进入了shell,它遵循一定的语法将输入的命令加以解释并传给系统。命令行中输入的第一个字必须是一个命令的名字,第二...

习惯使用linux命令行来管理linux系统,例如:

代码如下:

$ date
二 11 23 01:34:58 CST 1999 
$

用户登录时,实际进入了shell,它遵循一定的语法将输入的命令加以解释并传给系统。
命令行中输入的第一个字必须是一个命令的名字,第二个字是命令的选项或参数,命令行中的每个字必须由空格或TAB隔开,格式如下: 
代码如下:
$ Command Option Arguments

一,选项和参数 

选项是包括一个或多个字母的代码,它前面有一个减号(减号是必要的,Linux用它来区别选项和参数),选项可用于改变命令执行的动作的类型。例如: 

代码如下:
$ ls 
motd passwd

这是没有选项的ls命令,可列出当前目录中所有文件,只列出各个文件的名字,而不显示其他更多的信息。 

代码如下:
$ ls -l 
total 2 
-rw-r--r-- 2 wzh book 22 Apr 20 20:37 motd 
-rw-r--r-- 2 wzh book 796 Apr 20 20:37 passwd

加入-l选项,将会为每个文件列出一行信息,诸如数据大小和数据最后被修改的时间。 

大多数命令都被设计为可以接纳参数。参数是在命令行中的选项之后键入的一个或多个单词,例如:  
 

代码如下:
$ ls -l text  
-rw-r--r-- 2 wzh book 22 Apr 20 20:37 motd  
-rw-r--r-- 2 wzh book 796 Apr 20 20:37 passwd  
$

将显示text目录下的所有文件及其信息。 

有些命令,如ls可以带参数,而有一些命令可能需要一些最小数目的参数。例如,cp命令至少需要两个参数,如果参数的数目与命令要求不符,shell将会给出出错信息。例如: 

代码如下:
$ cp -i mydata newdata

注意:命令行中选项先于参数输入。 

二,命令行特征 
命令行实际上是可以编辑的一个文本缓冲区,在按回车之前,可以对输入的文本进行编辑。比如利用BACKSPACE键可以删除刚键入的字符,可以进行整行 删除,还可以插入字符,使得用户在输入命令,尤其是复杂命令时,若出现键入错误,无须重新输入整个命令,只要利用编辑操作,即可改正错误。 

利用上箭头可以重新显示刚执行的命令,利用这一功能可以重复执行以前执行过的命令,而无须重新键入该命令。 

bash保存着以前键入过的命令的列表,这一列表被称为命令历史表。按动上箭头,便可以在命令行上逐次显示各条命令。同样,按动下箭头可以在命令列表中 向下移动,这样可以将以前的各条命令显示在命令行上,用户可以修改并执行这些命令。这一特征将在10.4节中进行详细的论述。 

在一个命令行中还可以置入多个命令,用分号将各个命令隔开。例如: 

代码如下:
$ ls -F;cp -i mydata newdata 


也可以在几个命令行中输入一个命令,用反斜杠将一个命令行持续到下一行。 

代码如下:
$ cp -i / 
mydata / 
newdata 


上面的cp命令是在三行中输入的,开始的两行以反斜杠结束,把三行作为一个命令行。 

shell中的特殊字符 

shell中除使用普通字符外,还可以使用一些具有特殊含义和功能的特殊字符。在使用它们时应注意其特殊的含义和作用范围。下面分别对这些特殊字符加以介绍。
三,通配符 

通配符用于模式匹配,如文件名匹配、路经名搜索、字符串查找 等。常用的通配符有*、?和括在方括号[ ]中的字符序列。用户可以在作为命令参数的文件名中包含这些通配符,构成一个所谓的“模式串”,在执行过程中进 行模式匹配。 斜线(/)必须显式匹配。例如“*”不能匹配.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将使用此模式串本身作为参数传给有关命令。这可能就是命令中出现特 殊字符的原因所在。 

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

六,单引号 ‘ 
由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。例如: 
代码如下:
$ string='$PATH' 
$ echo $string 
$PATH 

可见$保持了其本身的含义,作为普通字符出现。 

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

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

代码如下:

$ TestString=”$PATH///”/$PATH” 
$ echo $TestString 
.:/usr/bin:/ bin/”$PATH

大家可以试一下在第二个双引号之前不加/会产生什么结果。 

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

$ pwd
/home/xyz 
$ string=”current directory is `pwd`” 
$ echo $string 
current directour is /home/xyz


shell执行echo命令时,首先执行`pwd`中的命令pwd,并将输出结果/home /xyz取代`pwd`这部分,最后输出替换后的整个结果。 
利用反引号的这种功能可以进行命令置换,即把反引号括起来的执行结果赋值给指定变量。例如: 

代码如下:

$ today=`date` 
$ echo Today is $today 
Today is Mon Apr 15 16:20:13 CST 1999

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

$ abc=`echo The number of users is /`who| wc-l/`` 
$ echo $abc 
The number of users is 5 


在反引号之间的命令行中也可以使用shell的特殊字符。Shell为得到``中命令的结果,它实际上要去执行``中指定的命令。执行时,命令中的特殊字符,如$,”,?等又将具有特殊含义,并且``所包含的可以是任何一个合法的Shell命令,例如: 

代码如下:

$ ls 
note readme.txt Notice Unix.dir 
$ TestString=”`echo $HOME ` ` ls [nN]*`” 
$ echo $TestString 
/home/yxz note Notice

    
 
 

您可能感兴趣的文章:

  • Linux c++虚函数(virtual function)简单用法示例代码
  • 求linux C++的时间相关函数及用法,急用,谢谢
  • Linux下chmod命令详细介绍及用法举例
  • linux shell中变量的用法
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • linux 环境下有什么工具可以得到C函数的用法和参数的意义?????????我很想学LINUX
  • linux c malloc函数定义及用法详解
  • [Linux Shell编程] sftp 有没有非交互方式的用法
  • linux ramfs和tmpfs区别及用法介绍
  • 请教 linux seteuid() 的用法
  • Linux下curl的下载,安装以及curl命令的详细参数,用法介绍
  • 请问 Linux kernel Memory Management API,有哪些?在哪儿能找到用法?谢谢
  • Linux c++ boost库正则表达式用法
  • linux cat用法
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • linux 搜索文件的用法
  • linux下objdump命令用法介绍及如何使用objdump命令进行反汇编
  • 大家能不能给我介绍点关于Linux内路由过程及route指令的详细用法的好文章。
  • linux下lsof命令介绍及lsof命令具体用法举例
  • linux下ADSL的用法
  • linux内核中的likely宏和unlikely宏介绍及用法
  • linux的vsftpd用法(详细)
  • Linux/centos/redhat下各种压缩解压缩方式详解
  • linux 2.4 内核软中断详解?
  • linux下进程占用内存空间详解
  • 大家推荐几本详解Linux或unix 操作系统源代码的书籍!!!!
  • Linux下NFS服务配置详解
  • 哪有LINUX命令详解下??
  • linux下top命令详解包括top命令参数使用及结果(virt,res,shr)排序举例说明
  • 如何在Linux下使用脚本实现程序的自动重启!望各位详解!
  • SSL握手通信详解及linux下c/c++ SSL Socket代码举例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • linux中有没有什么命令能列出所有linux的内部命令
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • linux在脚本执行命令和直接在命令行执行命令有什么区别
  • linux bash shell命令:grep文本搜索工具简介
  • 有没有在windows下模拟Linux命令系统的软件! 我想学习Linux的基本命令!
  • Linux_centos_redhat下tar命令解压tgz文件方法
  • linux 的命令操作和 windows的命令提示行有什么不同呢?? 为什么windows一般都不用命令提示行操作呢??
  • linux下利用(cat,strings,head,sed)命令生成随机字符串
  • linux系统安装测试命令oslevel,lsdev命令不识别
  • linux下free命令显示的内存使用情况分析
  • 在Linux下使用ftp命令,被提示命令没有找到
  • mount命令(linux操作系统)挂载卸载文件系统(cifs,光驱,nfs等)方法介绍
  • linux命令行下使用curl命令查看自己机器的外网ip
  • linux下不使用sudo命令执行docker的操作步骤
  • linux中的用户,用什么命令修改密码(要一条命令做到)???
  • linux/Centos/ubuntu下如何使用umask命令修改新建文件时的默认权限
  • linux 中查看过去运行的命令的命令是什么?
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 数据库 iis7站长之家
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • linux的命令,怎么能知道这个命令的默认选项是什么?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3