shell命令详解

Linux主要shell命令详解作者:北南南北 2005-02-03 15:43:30 来自:Linux先生shell是用户和Linux操作系统之间的接口。

Linux中有多种shell,其中缺省使用的是Bash。

本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性。

什么是shellLinux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。

它是命令语言、命令解释程序及程序设计语言的统称。

shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。

当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。

shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。

用户在提示符下输入的命令都由shell先解释然后传给Linux核心。

有一些命令,比如改变工作目录命令cd,是包含在shell内部的。

还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。

对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。

shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。

然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。

如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。

如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。

shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。

shell 编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。

当普通用户成功登录,系统将执行一个称为shell的程序。

正是shell进程提供了命令行提示符。

作为默认值(TurboLinux系统默认的shell是BASH),对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。

一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。

shell将执行这些命令。

如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。

当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符(EOF)(按ctrl+d实现),结束登录。

我们来实习一下shell是如何工作的。

$ make workmake:***No rule to make target ‘work’. Stop.$注释:make是系统中一个命令的名字,后面跟着命令参数。

在接收到这个命令后,shell便执行它。

本例中,由于输入的命令参数不正确,系统返回信息后停止该命令的执行。

在例子中,shell会寻找名为make的程序,并以work为参数执行它。

make是一个经常被用来编译大程序的程序,它以参数作为目标来进行编译。

在“make work”中,make编译的目标是work。

因为make找不到以work为名字的目标,它便给出错误信息表示运行失败,用户又回到系统提示符下。

另外,用户键入有关命令行后,如果shell找不到以其中的命令名为名字的程序,就会给出错误信息。

例如,如果用户键入:$ myprogbash:myprog:command not found可以看到,用户得到了一个没有找到该命令的错误信息。

用户敲错命令后,系统一般会给出这样的错误信息。

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中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。

C shell是一种比Bourne shell更适于编程的shell,它的语法与C语言很相似。

Linux为喜欢使用C shell的人提供了Tcsh。

Tcsh是C shell的一个扩展版本。

Tcsh包括命令行编辑、可编程单词补全、拼写校正、历史命令替换、作业控制和类似C语言的语法,它不仅和Bash shell是提示符兼容,而且还提供比Bash shell更多的提示符参数。

Korn shell集合了C shell和Bourne shell的优点并且和Bourne shell完全兼容。

Linux 系统提供了pdksh(ksh的扩展),它支持任务控制,可以在命令行上挂起、后台执行、唤醒或终止程序。

Linux并没有冷落其他shell用户,还包括了一些流行的shell如ash、zsh等。

每个shell 都有它的用途,有些shell是有专利的,有些能从Internet网上或其他来源获得。

要决定使用哪个shell,只需读一下各种shell的联机帮助,并试用一下。

用户在登录到Linux时由/etc/passwd文件来决定要使用哪个shell。

例如:# fgrep lisa /etc/passwdlisa:x:500:500:TurboLinux User:/home/lisa:/bin/bashshell被列每行的末尾(/bin/bash)。

由于Bash是Linux上缺省的shell,本章主要介绍Bash及其相关知识。

shell命令命令行c用户登录到Linux系统时,可以看到一个shell提示符,标识了命令行的开始。

用户可以在提示符后面输入任何命令及参数。

例如:$ date二 11 23 01:34:58 CST 1999$用户登录时,实际进入了shell,它遵循一定的语法将输入的命令加以解释并传给系统。

命令行中输入的第一个字必须是一个命令的名字,第二个字是命令的选项或参数,命令行中的每个字必须由空格或TAB隔开,格式如下:$ Command Option Arguments1. 选项和参数选项是包括一个或多个字母的代码,它前面有一个减号(减号是必要的,Linux用它来区别选项和参数),选项可用于改变命令执行的动作的类型。

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

$ ls -ltotal 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注意:命令行中选项先于参数输入。

2. 命令行特征命令行实际上是可以编辑的一个文本缓冲区,在按回车之前,可以对输入的文本进行编辑。

比如利用BACKSPACE键可以删除刚键入的字符,可以进行整行删除,还可以插入字符,使得用户在输入命令,尤其是复杂命令时,若出现键入错误,无须重新输入整个命令,只要利用编辑操作,即可改正错误。

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

bash保存着以前键入过的命令的列表,这一列表被称为命令历史表。

按动上箭头,便可以在命令行上逐次显示各条命令。

同样,按动下箭头可以在命令列表中向下移动,这样可以将以前的各条命令显示在命令行上,用户可以修改并执行这些命令。

这一特征将在10.4节中进行详细的论述。

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

例如:$ ls -F;cp -i mydata newdata也可以在几个命令行中输入一个命令,用反斜杠将一个命令行持续到下一行。

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

shell中的特殊字符shell中除使用普通字符外,还可以使用一些具有特殊含义和功能的特殊字符。

在使用它们时应注意其特殊的含义和作用范围。

下面分别对这些特殊字符加以介绍。

1. 通配符通配符用于模式匹配,如文件名匹配、路经名搜索、字符串查找等。

常用的通配符有*、?和括在方括号[]中的字符序列。

用户可以在作为命令参数的文件名中包含这些通配符,构成一个所谓的“模式串”,在执行过程中进行模式匹配。

* 代表任何字符串(长度可以不等),例如:“f*”匹配以f打头的任意字符串。

但应注意,文件名前的圆点(.)和路经名中的斜线(/)必须显式匹配。

例如“*”不能匹配.file,而“.*”才可以匹配.file。

? 代表任何单个字符。

[]代表指定的一个字符范围,只要文件名中[]位置处的字符在[]中指定的范围之内,那么这个文件名就与这个模式串匹配。

方括号中的字符范围可以由直接给出的字符组成,也可以由表示限定范围的起始字符、终止字符及中间的连字符(-)组成。

例如,f [a- d]与f [abcd]的作用相同。

Shell将把与命令行中指定的模式串相匹配的所有文件名都作为命令的参数,形成最终的命令,然后再执行这个命令。

合集下载

Shell命令大全

Shell命令大全

Shell命令⼤全⼀、Linux下常⽤命令:⽂件与⽬录操作basename:从⽂件名中去掉路径和扩展名cd:切换当前⼯作⽬录到指定⽬录chgrp:改变⽂件所属组chmod:改变⽂件的权限chown:改变⽂件的所有者和组cp:复制⽂件或⽬录dd:复制⽂件并转换⽂件内容file:确定⽂件类型find:在指定⽬录下查找⽂件并执⾏指定的操作ln:创建⽂件链接locate/slocate:快速定位⽂件的路径ls/dir/vdir:显⽰⽬录内容mkdir:创建⽬录mv:移动或重命名⽂件pwd:显⽰当前⼯作⽬录rename:重命名⽂件rm:删除⽂件或⽬录rmdir:删除空⽬录touch:修改⽂件的时间属性updatedb:创建或更新slocate数据库whereis:显⽰指令程序、源代码和man⼿册页which:显⽰指令的绝对路径⼆、Linux下常⽤命令:备份与压缩ar:创建、修改归档⽂件和从归档⽂件中提取⽂件arj:.arj⽂件压缩指令bunzip2:压缩bzip2格式的压缩⽂件bzcat:解压缩⽂件到标准输出bzip2:创建.bz2格式的压缩⽂件bzip2recover:修复损坏的.bz2⽂件bzless/bzmore:解压缩.bz2⽂件并分屏显⽰内容compress:压缩数据⽂件cpio:存取归档包中的⽂件dump:⽂件系统备份gunzip:解压缩由gzip压缩的⽂件gzexe:压缩可执⾏程序gzip:GNU的压缩和解压缩⼯具lha:压缩和解压缩指令resotre:还原由dump备份的⽂件或⽂件系统tar:创建备份档案⽂件unarj:解压缩.arj⽂件uncompress:解压缩.Z⽂件unzip:解压缩.zip⽂件zcat:解压缩⽂件并送到标准输出zforce:强制gzip格式的⽂件加上.gz扩展名zip:压缩⽂件zipinfo:显⽰zip压缩⽂件的详细信息znew:将“.Z”⽂件转换成“.gz”⽂件三、Linux下常⽤命令:⽂本处理cat:链接⽂件并显⽰到标准输出cksum:检查和计算⽂件循环冗余校验码cmp:⽐较两个⽂件的差异col:过滤控制字符colrm:从输⼊中过滤掉指定的列comm:⽐较两个有序⽂件的不同csplit:分割⽂件cut:显⽰⽂件中每⾏的指定内容diff3:⽐较3个⽂件的不同diff:⽐较并显⽰两个⽂件的不同diffstat:根据diff指令的结果显⽰统计信息ed:⾏⽂本编辑器emacs:全屏⽂本编辑器ex:⽂本编辑器expand:将Tab转换为空⽩(Space)fmt:最优化⽂本格式fold:设置⽂件显⽰的⾏宽grep/egrep/fgrep:显⽰⽂件中匹配的⾏head:输出⽂件开头部分内容ispell:交互式拼写检查程序jed:⽂本编辑器joe:编辑⽂本⽂件join:合并两个⽂件的相同字段less:分屏查看⽂本⽂件look:显⽰⽂件中以特定字符串开头的⾏more:分屏查看⽂本⽂件od:以数字编码输出⽂件内容paste:合并⽂件的内容pico:⽂本编辑器sed:流⽂件编辑器sort:排序数据⽂件spell:拼写检查split:分割⽂件sum:计算并显⽰⽂件的校验码tac:反序显⽰⽂件内容tail:输出⽂件尾部部分内容tee:将输⼊内容复制到标准输出和指定⽂件tr:转换或删除⽂件中的字符unexpand:将空⽩(Space)转换为Tabuniq:删除⽂件中的重复⾏vi:全屏⽂本编辑器wc:计算⽂件的字节数、单词数和⾏数四、Linux下常⽤命令:shell指令alias:定义命令别名bg:将作业(或任务)放到后台运⾏bind:显⽰或设置键盘配置declare:声明shell变量dirs:显⽰shell⽬录堆栈中的记录echo:打印字符串到标准输出enable:激活与关闭shell内部命令eval:执⾏指定指令并返回结果exec:执⾏给定指令后退出登录exit:退出当前shellexport:设置与显⽰环境变量fc:编辑并执⾏历史命令fg:将后台任务(或作业)切换到前台运⾏hash:显⽰与清除指令时运⾏查询的哈希表history:显⽰与操纵历史命令jobs:显⽰shell的作业信息kill:杀死进程或作业logout:退出登录shellpopd:从shell⽬录堆栈中删除记录pushd:向shell⽬录堆栈中添加记录set:设置shell的执⾏⽅式shopt:设置控制shell⾏为变量的开关值ulimit:设置shell的资源限制umask:设置创建⽂件的权限掩码unalias:取消由alias定义的命令别名unset:删除定义的变量或函数五、Linux下常⽤命令:打印相关指令accept:接受打印请求cancel:取消打印任务disable:停⽌打印机enable:启动打印机lp:打印⽂件lpadmin:配置cups打印机和类lpc:控制打印机lpq:显⽰当前打印队列lpr:打印⽂件lprm:删除当前打印队列中的作业lpstat:显⽰CUPS的状态信息pr:打印前转换⽂本格式reject:拒绝打印请求六、Linux下常⽤命令:其他基础指令bc:实现精确计算的计算器cal:显⽰⽇历clear:清屏指令consoletype:显⽰当前使⽤的终端类型ctrlaltdel:设置热键Ctrl+Alt+Del的功能date:显⽰和设置系统⽇期时间dircolors:设置ls指令显⽰时的颜⾊eject:弹出可移动设备的介质halt:关闭计算机hostid:显⽰当前主机的数字标识hwclock:查询和设置系统硬件时钟info:读取帮助⽂档login:登录系统man:显⽰联机帮助⼿册md5sum:计算并显⽰⽂件的md5摘要信息mesg:设置终端写权限mtools:显⽰mtools软件包的指令mtoolstest:测试并显⽰mtools⼯具包的配置poweroff:关闭计算机并切断电源reboot:重新启动计算机shutdown:关闭计算机sleep:睡眠指定长的时间stat:显⽰⽂件或⽂件系统的状态talk:与其他⽤户交谈wall:向所有终端发送信息whatis:在数据库中查询关键字who:显⽰当前已登录⽤户的信息whoami:显⽰当前⽤户名write:向指定⽤户终端发送信息yes:不断输出指定字符串七、Linux下常⽤命令:⽤户管理chfn:改变⽤户的finger信息chsh:改变⽤户登录时的默认shellfinger:⽤户信息查询程序gpasswd:管理组⽂件/etc/groupgroupadd:创建组groupdel:删除组groupmod:修改组信息groups:显⽰⽤户所属的组grpck:验证组⽂件/etc/group的完整性grpconv:启⽤组的影⼦⼝令⽂件grpunconv:关闭组的影⼦⼝令⽂件logname:显⽰登录⽤户名passwd:设置⽤户密码pwck:验证⽤户⽂件密码⽂件的完整性pwconv:启⽤⽤户的影⼦⼝令⽂件pwunconv:关闭⽤户的影⼦⼝令⽂件su:切换⽤户useradd:创建⽤户userdel:删除⽤户usermod:修改⽤户的配置信息users:显⽰当前登录系统的⽤户名⼋、Linux下常⽤命令:进程管理init:进程初始化控制killall:根据名称结束进程nice:设置进程优先级nohup:以忽略挂起信号⽅式运⾏程序pgrep:基于名字查询并显⽰进程号pidof:查找正在运⾏程序的进程号pkill:向指定的进程发送信号ps:显⽰系统当前的进程状态pstree:⽤树形图显⽰进程的⽗⼦关系renice:调整进程优先级w:显⽰当前登录⽤户的相关信息watch:全屏⽅式显⽰指定命令的输出信息九、Linux下常⽤命令:磁盘与⽂件系统管理badblocks:磁盘坏块检查⼯具blockdev:从命令⾏调⽤块设备的ioctl函数chattr:改变⽂件的第2扩展⽂件系统属性convertquota:转换quota⽂件格式df:报告磁盘剩余空间情况dumpe2fs:显⽰ext2/ext3⽂件系统信息e2fsck:检查ext2/ext3⽂件系统e2image:保存ext2/ext3源数据到⽂件e2label:设置ext2/ext3⽂件系统标签edquota:编辑⽤户的磁盘空间配额fdisk:Linux下的分区⼯具findfs:查找⽂件系统fsck:检查与修复Linux⽂件系统grub:Linux下的引导加载器hdparm:调整硬盘I/O性能lilo:Linux加载器lsattr:显⽰⽂件的ext2⽂件系统属性mkbootdisk:为当前系统创建专门的引导软盘mke2fs:创建第2扩展⽂件系统mkfs:创建各种⽂件系统mkinitrd:创建初始化ram磁盘映像⽂件mkisofs:创建光盘映像⽂件mknod:创建块设备或字符设备⽂件mkswap:创建交换分区⽂件系统mktemp:创建临时⽂件mount:加载⽂件系统parted:磁盘分区管理⼯具quota:显⽰⽤户磁盘配额quotacheck:创建、检查和修复配额⽂件quotaoff:关闭⽂件系统的磁盘配额功能quotaon:打开⽂件系统的磁盘配额功能quotastat:显⽰磁盘配额状态repquota:显⽰⽂件系统磁盘配额信息报表swapoff:关闭交换空间swapon:激活交换空间sync:强制将缓存数据写⼊磁盘tune2fs:调整ext2/ext3⽂件系统的参数umount:卸载已经加载的⽂件系统⼗、Linux下常⽤命令:内核与性能depmod:处理内核可加载模块的依赖关系dmesg:显⽰内核的输出信息free:显⽰内存使⽤情况insmod:加载模块到内核iostat:报告CPU、I/O设备及分区状态ipcs:显⽰进程间通信的状态信息kernelversion:显⽰内核主版本号lsmod:显⽰已加载的模块modinfo:显⽰内核模块信息modprobe:加载内核模块并解决依赖关系mpstat:显⽰进程相关状态信息rmmod:从内核中删除模块sar:收集、显⽰和保存系统活动信息slabtop:实时显⽰内核的slab缓存信息sysctl:运⾏时修改内核参数tload:监视系统平均负载情况top:显⽰和管理系统进程uname:显⽰系统信息uptime:显⽰系统运⾏时间及平均负载vmstat:显⽰虚拟内存的状态⼗⼀、Linux下常⽤命令:X-Window系统startx:初始化X-Window会话xauth:X系统授权许可⽂件管理⼯具xhost:显⽰和配置X服务器的访问权限xinit:X-Window系统初始化程序xlsatoms:显⽰X服务器原⼦数据定义xlsclients:显⽰指定显⽰器上运⾏的X程序xlsfonts:显⽰X服务器使⽤的字体信息xset:设置X系统的⽤户偏爱属性⼗⼆、Linux下常⽤命令:系统安全chroot:以指定根⽬录运⾏指令nmap:⽹络探测⼯具和安全扫描器scp:加密的远程复制⼯具sftp:安全⽂件传输⼯具slogin:加密的远程登录⼯具ssh:加密的远程登录⼯具sudo:以另⼀个⽤户⾝份执⾏指令⼗三、Linux下常⽤命令:编程相关指令awk/gawk:模式扫描与处理语⾔expr:计算表达式的值gcc:GNU的C语⾔编译器gdb:GNU调试器ldd:显⽰共享库依赖make:⼯程编译⼯具nm:显⽰⽬标⽂件的符号表perl:perl语⾔的命令⾏⼯具php:PHP脚本语⾔命令⾏接⼝test:条件测试⼗四、Linux下常⽤命令:其他系统管理与维护指令arch:显⽰当前主机的硬件架构at:按照时间安排任务的执⾏atq:查询待执⾏的任务atrm:删除待执⾏的任务batch:在指定时间运⾏任务chkconfig:设置系统在不同运⾏等级下所执⾏的服务crontab:按照时间设置计划任务last:显⽰以前登录过系统的⽤户相关信息lastb:显⽰登录系统失败的⽤户相关信息logrotate:系统⽇志的轮循⼯具logsave:将命令的输出信息保存到⽇志⽂件logwatch:报告和分析系统⽇志lsusb:显⽰所有的USB设备patch:补丁与更新⽂件rpm:Red Hat软件包管理器runlevel:显⽰当前系统的运⾏等级service:Linux服务管理和控制⼯具telinit:切换当前系统的运⾏等级yum:RPM软件包⾃动化管理⼯具⼗五、Linux下常⽤命令:⽹络配置dnsdomainname:显⽰系统的DNS域名domainname:显⽰和设置主机域名hostname:显⽰或者设置系统主机名ifcfg:配置⽹络接⼝ifconfig:配置⽹络接⼝的⽹络参数ifdown:关闭指定⽹络接⼝ifup:启动指定⽹络接⼝nisdomainname:显⽰和设置主机域名route:显⽰与操纵本机的IP路由表ypdomainname:显⽰和设置主机域名⼗六、Linux下常⽤命令:⽹络测试与应⽤arp:管理本机arp缓冲区arping:向相邻主机发送ARP请求报⽂arpwatch:监听⽹络上的ARP信息dig:域名查询⼯具elinks:纯⽂本⽹页浏览器elm:电⼦邮件客户端程序ftp:⽂件传输协议客户端host:DNS域名查询⼯具ipcalc:IP地址计算器lynx:纯⽂本⽹页浏览器mail:电⼦邮件管理程序ncftp:增强的FTP客户端⼯具netstat:显⽰⽹络状态nslookup:DNS域名查询⼯具pine:电⼦邮件和新闻组处理程序ping:测试到达⽬标主机的⽹络是否通畅rsh:远程shelltelnet:远程登录⼯具tftp:简单⽂件传输协议客户端tracepath:追踪数据经过的路由traceroute:追踪数据包到达⽬的主机经过的路由wget:从指定URL地址下载⽂件⼗七、Linux下常⽤命令:⾼级⽹络指令arptables:管理内核的ARP规则表ip:强⼤的多功能⽹络配置⼯具iptables:IP包过滤与NAT管理⼯具iptables-save:保存内核中iptables的配置iptables-restore:还原iptables的配置信息tcpdump:监听⽹络流量⼗⼋、Linux下常⽤命令:⽹络服务器指令ab:Web服务器性能测试apachectl:Apache HTTP服务器控制接⼝exportfs:管理NFS服务器共享的⽂件系统htdigest:管理⽤于摘要认证的⽤户⽂件htpasswd:管理⽤于基本认证的⽤户⽂件httpd:Apache超⽂本传输协议服务器mailq:显⽰待发送的邮件队列mysql:MySQL服务器的客户端⼯具mysqladmin:MySQL服务器管理⼯具msqldump:MySQL服务器备份⼯具mysqlimport:MySQL数据库导⼊⼯具mysqlshow:显⽰MySQL数据库、表和字段信息nfsstat:显⽰⽹络⽂件系统状态sendmail:电⼦邮件传送代理程序showmount:显⽰NFS服务器上的加载信息smbclient:samba服务器客户端⼯具smbmount:加载samba⽂件系统smbpasswd:改变samba⽤户的密码squid:HTTP代理服务器程序sshd:OpenSSH守护进程。

Linux_SHLL命令详解

Linux_SHLL命令详解

Linux的SHELL编程Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。

Shell既是一种命令语言,又是一种程序设计语言。

作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。

因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux 系统的关键。

可以说,shell使用的熟练程度反映了用户对Linux使用的熟练程度。

一、什么是shell当一个用户登录Linux系统之后,系统初始化程序init就为每一个用户运行一个称为shell(外壳)的程序。

那么,shell是什么呢?确切一点说,shell就是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。

当用户使用Linux时是通过命令来完成所需工作的。

一个命令就是用户和shell之间对话的一个基本单位,它是由多个字符组成并以换行结束的字符串。

在Linux下比较流行的shell有好几个,每个shell都各有千秋。

一般的Linux系统都将bash作为默认的shell。

二、几种流行的shell目前流行的shell有ash、bash、ksh、csh、zsh等,你可以用下面的命令来查看你自己的shell类型:#echo $SHELL$SHELL是一个环境变量,它记录用户所使用的shell类型。

你可以用命令:#shell-name来转换到别的shell,这里shell-name是你想要尝试使用的shell的名称,如ash等。

这个命令为用户又启动了一个shell,这个shell在最初登录的那个shell之后,称为下级的shell或子shell。

shell命令参数

shell命令参数

shell命令参数Shell命令参数是指在执行Shell命令时,可以传递给命令的附加信息。

通过命令参数,我们可以改变命令的行为、指定命令的输入输出、调整命令的执行方式等。

下面是一些常用的Shell命令参数的详细介绍:1. 选项参数(Options):选项参数以"-"符号开头,用于设置命令的一些特定选项。

例如,常见的选项参数有"-l"(显示详细信息)、"-a"(显示隐藏文件)、"-r"(逆向排序)等。

2. 位置参数(Positional Parameters):位置参数是指在命令中没有以选项形式出现的参数,通常是命令操作的对象或操作数。

例如,在"cp file1 file2"命令中,"file1"和"file2"就是位置参数。

3. 环境变量(Environment Variables):环境变量是由Shell设置和维护的,用于控制命令行工具的行为。

通过修改环境变量,可以改变命令的默认行为和输出结果。

例如,"PATH"环境变量指定了Shell可执行文件的路径。

4. 通配符参数(Wildcard Parameters):通配符参数用于匹配文件名。

常用的通配符有"*"(匹配任意字符)、"?"(匹配单个字符)、"[]"(匹配字符集合)等。

例如,"ls *.txt"命令可以列出当前目录下所有以".txt"结尾的文件。

6. 标准输出参数(Standard Output):标准输出参数指定了命令的输出目标。

通过重定向符号">",可以将命令的输出保存到文件中。

例如,"ls > output.txt"命令可以将"ls"命令的输出保存到"output.txt"文件中。

shell 中文参数

shell 中文参数

shell 中文参数Shell中文参数的运用在Shell编程中,中文参数的使用是非常重要的。

它可以帮助我们更好地理解和使用Shell命令,提高编程效率。

本文将介绍一些常见的Shell中文参数,并说明它们的用法和作用。

一、文件操作命令1.创建目录:使用"创建目录"命令可以在当前目录下创建一个新的目录。

例如,我们可以使用"创建目录演示"命令创建一个名为"演示"的目录。

2.复制文件:使用"复制文件"命令可以将一个文件复制到指定的目录下。

例如,我们可以使用"复制文件文件1 目录1"命令将文件1复制到目录1中。

3.移动文件:使用"移动文件"命令可以将一个文件移动到指定的目录下。

例如,我们可以使用"移动文件文件1 目录1"命令将文件1移动到目录1中。

4.删除文件:使用"删除文件"命令可以删除指定的文件。

例如,我们可以使用"删除文件文件1"命令删除文件1。

二、系统管理命令1.查看系统信息:使用"查看系统信息"命令可以查看当前系统的一些基本信息。

例如,我们可以使用"查看系统信息"命令查看系统的版本、内核版本等信息。

2.查看磁盘使用情况:使用"查看磁盘使用情况"命令可以查看当前系统磁盘的使用情况。

例如,我们可以使用"查看磁盘使用情况"命令查看磁盘的总容量、已使用容量等信息。

3.查看内存使用情况:使用"查看内存使用情况"命令可以查看当前系统内存的使用情况。

例如,我们可以使用"查看内存使用情况"命令查看内存的总容量、已使用容量等信息。

三、网络管理命令1.查看网络连接状态:使用"查看网络连接状态"命令可以查看当前系统的网络连接状态。

shell脚本常用命令

shell脚本常用命令

shell脚本常⽤命令shell基本命令1.#!/bin/sh是指此脚本使⽤/bin/sh来解释执⾏。

解释:#! 是⼀个约定的标记,它告诉系统这个脚本需要什么解释器来执⾏,即使⽤哪⼀种 Shell。

2.echo 命令⽤于向窗⼝输出⽂本。

举例:echo "Hello World !"3.your_name="qinjx"赋值变量echo ${your_name}打印变量;使⽤变量的时候加括号和美元符4.chmod +x ./test.sh #使脚本具有执⾏权限./test.sh #执⾏脚本chmod 777 /tmp -R 意思是把tmp⽂件夹及其⼦bai⽂件夹的权限全部修改为777解释语句⼀:ping -c 5 > /dev/null 2>&11. ping -c 5 -c<完成次数>:设置完成要求回应的次数;2. >/dev/null这条命令的作⽤是将标准输出1重定向到/dev/null中。

/dev/null代表linux的空设备⽂件,所有往这个⽂件⾥⾯写⼊的内容都会丢失,俗称“⿊洞”。

那么执⾏了>/dev/null之后,标准输出就会不再存在,没有任何地⽅能够找到输出的内容。

3. 2>&1这条命令⽤到了重定向绑定,采⽤&可以将两个输出绑定在⼀起。

这条命令的作⽤是错误输出将和标准输出同⽤⼀个⽂件描述符,说⼈话就是错误输出将会和标准输出输出到同⼀个地⽅。

linux在执⾏shell命令之前,就会确定好所有的输⼊输出位置,并且从左到右依次执⾏重定向的命令,所以>/dev/null 2>&1的作⽤就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重⽤了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。

执⾏了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到⽂件中。

shell命令的分类

shell命令的分类

shell命令的分类Shell命令可以根据其功能和作用方式进行分类,主要包括以下几类:1.内置命令(Built-in commands):这些命令是Shell 程序内置的,直接由Shell解释器执行,不需要调用外部可执行文件。

例如,cd、pwd、echo等命令就是Shell的内置命令。

2.外部命令(External commands):这些命令是独立于Shell解释器的可执行文件,位于系统的文件系统中。

当Shell执行外部命令时,它会fork一个子进程,并通过exec 系统调用来运行外部命令。

例如,ls、grep、awk等命令就是外部命令。

3.脚本命令(Script commands):脚本命令是由用户编写的Shell脚本文件。

Shell脚本是一个包含一系列命令和控制结构的文本文件,可以被Shell解释器读取并执行。

脚本命令可以调用内置命令和外部命令,也可以包含其他脚本命令。

4.管道命令(Pipeline commands):管道命令用于将多个命令连接在一起,使得前一个命令的输出作为后一个命令的输入。

管道命令使用竖线字符“|”来表示。

例如,“ls | grep ‘txt’”表示先用ls命令列出当前目录的文件,并将结果通过管道传递给grep命令,然后grep命令会过滤出包含’txt’的行。

5.控制结构命令(Control structure commands):这些命令用于控制Shell脚本的执行流程,例如循环、条件判断等。

常见的控制结构命令有if、for、while等。

除了以上分类方式,Shell命令还可以根据其作用进行分类,例如文件管理命令、系统管理命令、磁盘相关命令等。

总之,Shell命令的分类方式多种多样,具体分类可以根据实际需要和场景进行选择。

shell 最简单的阻塞命令

shell 最简单的阻塞命令摘要:1.介绍Shell 命令2.阻塞命令的概念3.最简单的阻塞命令:sleep 命令4.sleep 命令的使用方法和参数5.总结正文:Shell 是Linux 和Unix 系统中的一种命令解释器,它能够执行各种命令和程序。

在Shell 中,阻塞命令是指执行该命令后,Shell 进程会暂停执行其他命令,直到该阻塞命令完成。

今天我们将介绍最简单的阻塞命令:sleep 命令。

sleep 命令的作用是让当前Shell 进程暂停执行一段时间。

它的基本语法是:```sleep <时间>```其中,`<时间>` 是一个表示时间的数值,可以是秒、分钟、小时等。

例如,要暂停5 秒钟,可以使用以下命令:```sleep 5```此外,sleep 命令还支持使用可选的`-` 和`+` 参数来表示负数和正数时间。

例如:```sleep -5 # 暂停5 秒(相当于不输入任何参数)sleep +5 # 暂停5 秒sleep -10 # 暂停10 秒sleep +10 # 暂停10 秒```需要注意的是,sleep 命令不会输出任何信息,它只是暂停Shell 进程的执行。

因此,在使用sleep 命令时,建议在命令行中添加`echo` 命令来显示当前的暂停状态,例如:```echo "暂停中,请等待..."sleep 5echo "暂停结束,继续执行..."```总之,sleep 命令是Shell 中最简单的阻塞命令,它可以让当前Shell 进程暂停执行一段时间。

通过指定不同的时间参数,我们可以控制暂停的时间长度。

shell中test命令方法详解

shell中test命令⽅法详解test命令⽤法。

功能:检查⽂件和⽐较值 1)判断表达式 if test (表达式为真) if test !表达式为假 test 表达式1 –a 表达式2 两个表达式都为真 test 表达式1 –o 表达式2 两个表达式有⼀个为真 2)判断字符串 test –n 字符串字符串的长度⾮零 test –z 字符串字符串的长度为零 test 字符串1=字符串2 字符串相等 test 字符串1!=字符串2 字符串不等 3)判断整数 test 整数1 –eq 整数2 整数相等 test 整数1 –ge 整数2 整数1⼤于等于整数2 test 整数1 –gt 整数2 整数1⼤于整数2 test 整数1 –le 整数2 整数1⼩于等于整数2 test 整数1 –lt 整数2 整数1⼩于整数2 test 整数1 –ne 整数2 整数1不等于整数2 4)判断⽂件 test File1 –ef File2 两个⽂件具有同样的设备号和i结点号 test File1 –nt File2 ⽂件1⽐⽂件2 新 test File1 –ot File2 ⽂件1⽐⽂件2 旧 test –b File ⽂件存在并且是块设备⽂件 test –c File ⽂件存在并且是字符设备⽂件 test –d File ⽂件存在并且是⽬录 test –e File ⽂件存在 test –f File ⽂件存在并且是正规⽂件 test –g File ⽂件存在并且是设置了组ID test –G File ⽂件存在并且属于有效组ID test –h File ⽂件存在并且是⼀个符号链接(同-L) test –k File ⽂件存在并且设置了sticky位 test –b File ⽂件存在并且是块设备⽂件 test –L File ⽂件存在并且是⼀个符号链接(同-h) test –o File ⽂件存在并且属于有效⽤户ID test –p File ⽂件存在并且是⼀个命名管道 test –r File ⽂件存在并且可读 test –s File ⽂件存在并且是⼀个套接字 test –t FD ⽂件描述符是在⼀个终端打开的 test –u File ⽂件存在并且设置了它的set-user-id位 test –w File ⽂件存在并且可写 test –x File ⽂件存在并且可执⾏ 每⼀种条件语句的基础都是判断什么是真什么是假。

win7常用shell命令解析

win7常用shell命令解析Windows7系统相对以前版本的Windows系统,拥有更高的稳定性、兼容性、人性化等等各式各样的服务。

而Windows7中的shell命令行,则是许多用户都没有发现的又一重要更新,Windows7shell是Windows7系统的控制台。

对于熟悉了命令行的人来说,用键盘调用程序比鼠标更快更省力。

搜索框shell:Profile 该命令能打开用户的总目录。

一般它的总目录的位置是c:usersusername。

可以通过点击系统开始菜单上的用户名称访问。

shell:Profile shell:Personal 该命令可以打开当前用户的文档文件夹。

也可以通过点击开始菜单中的我的文档进行访问。

shell:SendTo 该命令可以打开“发送到”文件夹。

shell:Public 该命令可以打开公用共享文件夹。

shell:CommonStartup和shell:Startup 该命令可以显示哪些程序在系统启动时会自动启动。

shell:ConnectionsFolder 该命令可以显示当前网络连接。

通常的方法是单击网络和共享中心,然后选择更改适配器设置查看。

shell:programs和shell:CommonPrograms 这两个命令可以访问当前用户和系统用户开始菜单中的程序列表。

shell:AppData和shell:LocalAppData 这两个命令可以打开RoamingApplicationData文件夹LocalApplicationData文件夹。

这两个文件夹在日常应用中不常用到的。

shell:Cookies和shell:cache 这两个命令是查看InternetExplorer存储信息最快捷的方式。

shell:Profile 当前登录用户的根目录。

shell:Searches 当前登录用户的搜索文件夹,保存了已经存储过的搜索结果。

shell:Links 当前登录用户的链接文件夹,保存了InternetExplorer浏览器的导航面板。

Linux13:shell脚本基本命令

Linux13:shell脚本基本命令shell脚本基本命令输出命令echo输出命令echo,基本模式就是echo [选项] [输出内容]输出内容如果包含空格,则必须将内容⽤双引号括起来。

选项-e可以使输出语句⽀持反斜线转义。

加⼊退格后就不会显⽰退格符左边的⼀个字符。

ascii码表中有对应的⼋进制和⼗六进制表⽰法,所以可以表⽰对应的字符。

显⽰环境变量的值:echo ${PATH}或echo $PATH,如果⼀个变量没有被设定,那么就什么都不返回。

颜⾊输出如将abcd⽤红⾊打印:echo -e "\e[1;31m abcd \e[0m"其中\e[1的意思是开启颜⾊输出,⽽\e[0m是结束颜⾊输出,31m代表红⾊,abcd是输出内容,其他颜⾊如下:第⼀个脚本与脚本执⾏⽅式新建⼀个脚本hello.sh:#!/bin/bash#the first programecho "hello world"exit 0其中第⼀⾏是声明,不是注释,不能省略,这是在指定使⽤哪个shell,如果没有这⾏有的程序可能⽆法执⾏。

第⼆⾏#开头的是注释,第四⾏是命令。

最后⼀⾏在设置回传值,在执⾏完该脚本后,执⾏echo $?就能查看这个值,可以通过这个⾃定义错误信息。

在脚本中有需要时要重新定义⼀下PATH环境变量,以便直接使⽤⼀些外部命令⽽不是写绝对路径:PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/module/jdk1.8.0_144/bin:/opt/module/hadoop-2.7.2/bin:/opt/module/hadoop-2.7.2/sbin:/root/bin export PATH执⾏shell脚本要先赋予其可rx权限:chomd 755 hello.sh然后再执⾏./hello.sh这⾥也可以⽤绝对路径执⾏。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档