开始使用LINUX课件_第1页
开始使用LINUX课件_第2页
开始使用LINUX课件_第3页
开始使用LINUX课件_第4页
开始使用LINUX课件_第5页
已阅读5页,还剩151页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 开始使用LINUX本章目标了解shell的概念熟练掌握命令行指令的使用掌握Shellshell是用户和Linux操作系统之间的接口用户就是通过shell和操作系统的内核之间进行交互的什么是Shellshell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其它应用程序所调用shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其它应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序。然后shell在搜索路径里寻找这些应用程序。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值(RedHat、TurboLinux系统默认的shell是BASH),对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符(EOF)(按ctrl+d实现),结束登录。ksh是Kornshell的缩写,由EricGisin编写,共有42条内部命令。该shell的最大优点是几乎和商业发行版的ksh完全兼容,可以在不花钱购买商业版本的情况下尝试商业版本的性能了。csh是linux比较大的内核,它由以WilliamJoy为代表的共计47位作者编成,共有52个内部命令。该shell其实是指向/bin/tcsh这样的一个shell,csh其实就是tcsh。可以通过查看/etc/shells文件,了解系统支持的shell的种类。查看登入的shell echo$SHELL 显示在环境变量中的shell的设置值 在/etc/passwd文件中有每一个用户的bash的设置。每一个用户在登录linux以后就会进入设置的bash环境下。 普通用户要求输入密码,root直接更改。 设置完成后并不会马上改变shell,用户必须退出再登入系统,才会启动新设置的shell。使用不同的shell登录后,可以执行系统中其他的shell来使用。例如: tcsh 可以在系统中连续执行多个shell。 但当你执行了一层以上的其他shell时,并不能用logout退出系统,必须要一一离开每一层的shell命令行用户与操作系统之间的交流是通过命令行来实现的用户登录时,实际进入了shell,它遵循一定的语法将输入的命令加以解释并传给系统指令解析指令可以分成两种:一些是linux指令,例如:ls,在/bin或其它路径下可以找到独立的文件,执行这些指令时,必须从指定的路径去搜寻这些文件。另一种是shell内建的指令,例如:cd,并没有独立的文件存在。不管是独立的文件,或是内建的指令,都有相同的基本指令格式:

指令[-选项][-选项][-参数] 命令行中输入的第一个字必须是一个命令的名字,第二个字是命令的选项或参数,命令行中的每个字必须由空格或TAB隔开像硬盘、软盘、磁带等存储设备,它们传输数据的速度很快,一般以数据块进行传输的,每个数据块通常为512字节。这些以块为单位进行传输的设备叫做“块设备”。在列出目录清单时,在一行前有“b”符号显示。像终端、显示器等为字符设备,传输速度较慢。在列出目录清单时,在一行前有“c”符号显示。选项和参数选项是包括一个或多个字母的代码选项可用于改变命令执行的动作的类型参数是在命令行中的选项之后键入的一个或多个单词如果参数的数目与命令要求不符,shell将会给出出错信息长格式显示ls-lls-alls–a/etc/skel一个圆点“.”表示当前目录,两个圆点“..”表示当前目录的父目录。ls–d/etcls–F“/”根目录部分有以下子目录:

/usr目录包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序,譬如,Netscape。

/var目录包含在正常操作中被改变的文件:假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等

/home目录包含用户的文件:参数设置文件、个性化文件、文档、数据、EMAIL、缓存数据等。这个目录在系统省级时应该保留。

/proc目录整个包含虚幻的文件。它们实际上并不存在磁盘上,也不占用任何空间。(用ls–l可以显示它们的大小)当查看这些文件时,实际上是在访问存在内存中的信息,这些信息用于访问系统

/bin系统启动时需要的执行文件(二进制),这些文件可以被普通用户使用。

/sbin系统执行文件(二进制),这些文件不打算被普通用户使用。(普通用户仍然可以使用它们,但要指定目录。)

/etc操作系统的配置文件目录。

/root系统管理员(也叫超级用户或根用户)的Home目录。

/dev设备文件目录。LINUX下设备被当成文件,这样一来硬件被抽象化,便于读写、网络共享以及需要临时装载到文件系统中。正常情况下,设备会有一个独立的子目

录。这些设备的内容会出现在独立的子目录下。LINUX没有所谓的驱动符。

/lib根文件系统目录下程序和核心模块的共享库。

/boot用于自举加载程序(LILO或GRUB)的文件。当计算机启动时(如果有多个操作系统,有可能允许你选择启动哪一个操作系统),这些文件首先被装载。这个目录也会包含LINUX核(压缩文件vmlinuz),但LINUX核也可以存在别处,只要配置LILO并且LILO知道LINUX核在哪儿。

/opt可选的应用程序,譬如,REDHAT5.2下的KDE(REDHAT6.0下,KDE放在其它的XWINDOWS应用程序中,主执行程序在/usr/bin目录下)

/tmp临时文件。该目录会被自动清理干净。

/lost+found在文件系统修复时恢复的文件

“/usr”目录下比较重要的部分有:

/usr/X11R6X-WINDOWS系统(version11,release6)

/usr/X11同/usr/X11R6(/usr/X11R6的符号连接)

/usr/X11R6/bin大量的小X-WINDOWS应用程序(也可能是一些在其它子目录下大执行文件的符号连接)。

/usr/docLINUX的文档资料(在更新的系统中,这个目录移到/usr/share/doc)。

/usr/share独立与你计算机结构的数据,譬如,字典中的词。

/usr/bin和/usr/sbin类似与“/”根目录下对应的目录(/bin和/sbin),但不用于基本的启动(譬如,在紧急维护中)。大多数命令在这个目录下。

/usr/local本地管理员安装的应用程序(也可能每个应用程序有单独的子目录)。在“main”安装后,这个目录可能是空的。这个目录下的内容在重安装或升级操作系统后应该存在。

/usr/local/bin可能是用户安装的小的应用程序,和一些在/usr/local目录下大应用程序的符号连接。

/proc目录的内容:

/proc/cpuinfo关于处理器的信息,如类型、厂家、型号和性能等。

/proc/devices当前运行内核所配置的所有设备清单。

/proc/dma当前正在使用的DMA通道。/proc/当前运行内核所配置的文件系统。

/proc/interrupts正在使用的中断,和曾经有多少个中断。

/proc/ioports当前正在使用的I/O端口。切换目录cd [路径]cd/ 切换到根目录/cd 回到用户的家目录cd. 仍为当前目录cd..退到父目录cd- 后退到上一次进入的目录~

代表自己的家目录

~user代表到user这个人的家目录root@test/root]#cd[相对路径或绝对路径]

范例:

[root@test/root]#cd..回到上一层目录

[root@test/root]#cd../home相对路径的写法

[root@test/root]#cd/var/绝对路径的写法

[root@test/etc]#cd回到使用者的家目录

[root@test/etc]#cd~ 回到使用者的家目录! [root@test/etc]#cd~test 回到test这个使用者的家目录显示当前绝对路径pwd/home/neighbor显示文字文件内容cat可以直接将文字文件的内容显示在屏幕上 有几种方法: (1)显示单个文件 例如:显示单个文件file的内容 catfile (2)在一次显示多个文件时,按顺序处理每个文件 例如:依次显示三个文件file1、file2、file3的内容 catfile1file2file3 (3)用户可以将cat命令的执行结果改向到终端或某个文件中去 例如:将三个文件file1、file2、file3的内容依次串接起来,存放到文件file中 catfile1file2file3>file例如:从键盘(标准输入)上输入(读入)数据并送到新文件file8中 cat>file8 指令执行后,系统等待操作者从键盘上输入数据,可按下ctrl+d结束输入。[root@test/root]#cat[-nAv] 参数说明:

-n:

显示时,连行号印出屏幕上。

-A:

将DOS下的<tab>与断行字符都列出来! -v:使用cat命令来显示控制字符^M

[root@test/root]#cat~/.bashrc

显示.bashrc这个文件

#.bashrc#Userspecificaliasesandfunctions

PATH="/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH"

aliasrm='rm-i'

aliascp='cp-i'

aliasmv='mv-i'

aliasll='ls-l--color=never' [root@test/root]#cat~/.bashrc-n

显示.bashrc並且加上行号

1

#.bashrc

2

3

#Userspecificaliasesandfunctions

4

PATH="/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH"

6

aliasrm='rm-i'

7

aliascp='cp-i'

8

aliasmv='mv-i'

9

aliasll='ls-l--color=never' [root@test/root]#cat-Aregexp.txt

Thisisacat,however,Ineedadog.^M$

Iwantto"Happy"and<Happy>and/Happy/here.^M$

OK!^IeverythinsisOK^M$

Now,Iwilleatmyfood^M$

areyou^Ifinishedyourwork^M$

whatdoyou123gotowhere^M$

显示出DOS文件的几个特殊符号,以上面文件为例,可发现^M为断行符号,而每行的$为行尾符号,至于^I則是<tab>按键啦!

显示更多内容如果显示的内容大于屏幕范围,可以使用more命令显示指定文件内容。按空格键将显示一屏信息,按回车键将显示一行信息。

more[选择项][文件名] 选择项: -d 每次显示满一屏后提示查看readme的内容more readme上下浏览lessmore只能一页一页往下看。less可以让你回顾前面的内容。

lessreadme有时只需看文件的开头部分,用head命令可达到此目的。

head-开头行数文件名 例如:显示文件/etc/asktime的开头10行 head-10/etc/asktime有时只需看文件的末尾部分

tail-末尾的行数文件名 例如:在屏幕上显示文件format最后的5行 tail-5format例题一:假如我想要显示~/.bashrc的第11到第20行呢?

答:在第11到第20行,取前20行,再取后十行,所以结果就是:

head–n20~/.bashrc|tail–n10 这样就可以得到第11到第20行之间的内容了!目录mkdir目录名称mkdirmyfiles 例如:在根目录下建立一个dbf子目录mkdirdbfmkdir/dbf

[root@test/root]#mkdir[-mp][目录名称]

参数说明:

-m:设定文件的权限!

-p:帮助你直接将上面的目录递归建立起来!

[root@test/root]#cdtmp

[root@test/tmp]#mkdirtest 建立名称为test的目录

[root@test/tmp]#mkdir-ptest1/test2/test3/test4 直接建立test2...等上层目录

[root@test/tmp]#mkdir-m711testqq

建立权限为711的目录

[root@test/tmp]#lltest*

drwxrwxr-x

2test

test

4096Feb

620:47test/

drwxrwxr-x

3test

test

4096Feb

620:48test1/

drwx--x--x

2test

test

4096Feb

620:48testqq/ 如果dbf目录为当前目录,建立名为prg的子目录

mkdir/dbf/prg mkdirprg 如果/usr/xian目录是当前目录,创建子目录zdz mkdirzdz 若当前目录是根目录/,建立名为www的子目录 mkdirwww如果当前目录是/dos,要建立/cad/autocad子目录 mkdir/cad/autocad mkdir../cad/autocad当一些目录不再使用时,可以将他们删除。需要使用rm命令和rmdir命令结合完成。rmdir–p//p参数是删所指定的空目当,如果删除当前目录之后父目录也是一个空目录时,也一并删除 rm删除将要删除的子目录中的文件,当这个目录变成一个空目录时,再使用rmdir删除一个空目录。rmdir目录名称删除的目录必须是已经没有文件的空目录 假如目录abc是当前目录的子目录而且是空的 rmdirabcrm[-r]名称将目录和目录下的所有文件一并删除。 -i 对每个文件都询问操作者是否删除[root@test/root]#rmdir[-p][目录名称]

参数说明:

-p:将上层的目录也刪除!

范例:

[root@test/root]#rmdirtest 刪除名称为test的目录

[root@testtmp]#ll

drwxrwxr-x

3test

test

4096Feb

620:48test1/

[root@testtmp]#rmdirtest1

rmdir:`test1':Directorynotempty

[root@testtmp]#rmdir-ptest1/test2/test3/test4

[root@testtmp]$ll范例:

[root@test/root]#cp

.bashrcbashrc

将.bashrc拷贝成bashrc这个文件

[root@test/root]#cp-r/bin/tmp/bin

这是用来copy整个目录的参数

[root@test/root]#cp-s.bashrcbashrc

将.bashrc建立一个连结文件,文件名为bashrc复制文件cp[-r]名称目的地-r表示将子目录下的文件一起复制cp–r myfiles /root 将文件a1,a2,a3一起复制到目录abc中 cpa1a2a3 abc移动或改名将文件从一个目录移动到另一个目录

mv名称目的如果名称与目的地路径一样,作用就是改名mv/root/myfile /tmp将myfile文件名改为file1mv/root/myfile /root/file1将文件123更名为789mv123789将目录abc改变为xyzmvabcxyz将目录abc作为一个子目录,移动到/usr目录中mvabc/usr[root@test/root]#mv[-u][源文件][目的文件]

参数说明:

-u

:为update的简写,当源文件比目的文件还新的时后才会动作!

范例:

[root@test/root]#cp.bashrcbashrc

[root@test/root]#mvbashrcbashrc.old

[root@test/root]#mvbashrcbashrc2/tmp 将bashrc与bashrc2移动到/tmp这个目录下!请注意,最后一个才是最终的目标,其他的都是SOURCE locate查找文件语法: [root@test/root]#locate[目录名称]

例:

[root@test/root]#locateroot

……一大堆跟root有关字眼的文件都出来了 [root@test/root]#updatedb

立刻更新资料库 (/var/lib/slocate/slocate.db) 到底要建立哪些资料库呢?是否全部都要建立?似乎不需要,这个时候,可以选择需要建立文件资料库的目录!在/etc/updatedb.conf这个文件内即可设定linux用户交流命令wall命令 对全部已登录的用户发送信息。用户可以将要发送的信息写好存入一个文件中,输入: #wall<文件名 或 #wallthankyouwrite命令向系统中某一个用户发送信息 write用户帐号[终端名称]

writerootpts/0在一个命令行中可以输入多个命令,用分号将各个目录隔开ls-l;cp–imydatanewdatamkdir123rmdir123命令行特征命令行实际上是可以编辑的一个文本缓冲区bash保存着命令历史表在一个命令行中还可以置入多个命令,用分号将各个命令隔开也可以在几个命令行中输入一个命令,用反斜杠将一个命令行持续到下一行 $cp-i\>mydata\>newdatashell中的特殊字符通配符?任意一个字符*零个域多个任意字符引号单引号:’’由单引号括起来的字符都作为普通字符出现。双引号:“”由双引号括起来的字符,除$、`和\这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。反引号:``反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。注释符 #1、删除所有文件rm*2、列出files?的文件lsfiles?3、列出数字开头的文件ls[0-9]*4、切换到自己主目录cd~寻找文件 find

/

-name

httpd.conf在find后面写上

-name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机屏幕上显示出查找结果列表:etc/httpd/conf/httpd.conf

这就是httpd.conf这个文件在Linux系统中的完整路径。查找成功。

如果输入以上查找命令后系统并没有显示出结果,那么不要以为系统没有执行find/

-name

httpd.conf命令,而可能是你的系统中没有安装Apache服务器,这时只要你安装了Apache

Web服务器,然后再使用find

/

-name

httpd.conf就能找到这个配置文件了。某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件find

/etc

-name

'*srm*'

find/etc–name“srm*”这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如

absrmyz,

tibc.srm等等符合条件的文件都能显示出来。find/etc

-name

'srm*'

只有像srmyz

这样的文件才被查找出来,象absrmyz或者

absrm这样的文件都不符合要求find

/

-size

1500c查找一个大小为1,500

bytes的Linux文件。字符

c

表明这个要查找的文件的大小是以bytes为单位。find/

-size

+10000000c

标明在根目录中查找出大于10000000字节的文件并显示出来。命令中的“+”是表示要求系统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小于指定大小的文件。find

/

-amin

-10

查找在系统中最后10分钟访问的文件

find

/

-atime

-2查找在系统中最后48小时访问的文件

find

/

-empty查找在系统中为空的文件或者文件夹

find

/

-group

cat

查找在系统中属于cat组的文件

find

/

-mmin

-5

查找在系统中最后5分钟里修改过的文件

find

/

-mtime

-1

查找在系统中最后24小时里修改过的文件

find

/

-nouser

查找在系统中属于作废用户的文件

find

/

-user

fred

查找在系统中属于fred这个用户的文件当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解,在话号前需要加转义字符“\”来去除括号的意义。例: $find\(–name’tmp’–xtypec-user’root’\)以名称和文件属性查找。-name’字串’查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[]。-lname’字串’查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[]。-gidn查找属于ID号为n的用户组的所有文件。-uidn查找属于ID号为n的用户的所有文件。-group’字串’查找属于用户组名为所给字串的所有的文件。-user’字串’查找属于用户名为所给字串的所有的文件。-empty查找大小为0的目录或文件。-path’字串’查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[]。-perm权限查找具有指定权限的文件和目录,权限的表示可以如711,644。-sizen[bckw]查找指定文件大小的文件,n后面的字符表示单位,缺省为b,代表512字节的块。-typex查找类型为x的文件,x为下列字符之一:b块设备文件c字符设备文件d目录文件p命名管道(FIFO)f普通文件l符号链接文件(symboliclinks)ssocket文件-xtypex与-type基本相同,但只查找符号链接文件。exec命令名称{}对符合条件的文件执行所给的Linux命令,而不询问用户是否需要执行该命令。{}表示命令的参数即为所找到的文件;命令的末尾必须以“\;”结束。例:#find.-typef-execls-l{

}\;

#find.-typef-execrm{

}\;ok命令名称{}对符合条件的文件执行所给的Linux命令,与exec不同的是,它会询问用户是否需要执行该命令。ls

详细列出所找到的所有文件。fprintf

文件名将找到的文件名写入指定文件。print在标准输出设备上显示查找出的文件名。-printf

格式 例1:查找当前目录中所有以main开头的文件,并显示这些文件的内容。 $find.-name‘main*’-execmore{}\; 例2:删除当前目录下所有一周之内没有被访问过的a.out并且是*.o文件。 $find.\(-namea.out-name‘*.out’\) -atime+7-execrm{}\;说明如下: 命令中的“.”表示当前目录,此时find将从当前目录开始,逐个在其子目录中查找满足后面指定条件的文件。\(和\)表示括号(),其中的“\”称为转义符。 [root@test/root]#find.-ctime1

寻找当前目录下一天内新增的目录或文件

[root@test/root]#find/home/test-newer.bashrc

寻找/home/test目录下比.bashrc还要新的文件

[root@test/root]#find/dev-typeb

寻找/dev这个目录下,文件属性为b的文件例如想在/tmp目录中查找大于100000000字节并且在48小时内修改的某个文件,可以使用-and

来把两个查找选项链接起来组合成一个混合的查找方式。

find

/tmp

-size

+10000000c

-and

-mtime

-2

在/tmp目录中查找属于fred或者george这两个用户的文件find

/tmp

-user

fred

-or

-user

george在/tmp目录中查找所有不属于panda的文件find

/tmp

!

-user

pandafind.!\(-name'*cc*'-or-typed\)find.!-name'*cc*'-or-typed当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述符不容易记忆,shell同时也给出了相应的文件名。下面就是这些文件描述符及它们通常所对应的文件名:系统中实际上有12个文件描述符,但是正如我们在上表中所看到的,0、1、2是标准输入、输出和错误。可以任意使用文件描述符3到9。标准输入/输出和重定向标准输入(stdin),缺省是键盘,也可以是文件或其他命令的输出标准输出(stdout),缺省是终端,也就是屏幕,也可以是文件标准错误输出(stderr),缺省是屏幕,也可以是文件输出重定向>>>输入重定向<<<管道|wc</etc/passwdwc<<eof>hello>world>areyouhere?>eof sortname.txt等同于sort<name.txtcata.txt===cat<a.txt还可以更进一步地通过重定向为sort命令指定一个输出文件name.out。这样屏幕上将不会出现任何信息(除了错误信息以外): sort<name.txt>name.out wc</etc/passwd>passwd.txt重定向操作符command<<delimiter是一种非常有用的命令,shell将分界符delimiter之后直至下一个同样的分界符之前的所有内容都作为输入,遇到下一个分界符,shell就知道输入结束了。这一命令对于自动或远程的例程非常有用。可以任意定义分界符delimiter,最常见的是EOF,还可以在<<后面输入变量。[root@linux8~]#cat>>myfile<<mayday>hellothereIamusinga$TERMterminal>andmyusernameis$LOGNAME>bye>mayday[root@linux8~]#catmyfilehellothereIamusingaxtermterminalandmyusernameisrootbye程序的错误输出也可以重新定向。使用符号2>(或2>>)表示对错误输出设备重定向。 如:ls/usr/tmp2>err.file 可在萤屏上看到程序的正常输出结果,但又将程序的任何错误信息送到err.file中,以备将来检查用。合并标准输出和标准错误在合并标准输出和标准错误的时候,切记shell是从左至右分析相应的命令的。下面给出一个例子: $lscleanup>cleanup.out2>&1Lsa.txt>out.txt2>out.txt $lscleanup2>&1>cleanup.out还可以使用&>重定向操作符将标准输出和错误输出同时送到同一文件中。 ls/usr/tmp&>output.file ls/usr/bin>/tmp/dir wc–w</tmp/dir 459 统计/usr/bin目录下的文件(单词)个数在当前目录中执行文件列表操作,如果没有管道的话,所有文件就会显示出来。当shell看到管道符号以后,就会把所有列出的文件交给管道右边的命令,因此管道的含义正如它的名字所暗示的那样:把信息从一端传送到另外一端。在这个例子中,接下来grep命令在文件列表中搜索quarter1.doc: $ls |grepquarter1.docls|wc-w一次显示一屏目录列表 ls-l|moretee命令作用可以用字母T来形象地表示。它把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中。如果希望在看到输出的同时,也将其存入一个文件,那么这个命令再合适不过了。 一般形式为: tee-afiles

-a表示追加到文件末尾。 who|teewho.out who|tee-awho.out管道命令与重定向区别

1、左边的命令应该有标准输出|右边的命令应该接受标准输入

左边的命令应该有标准输出>右边只能是文件

左边的命令应该需要标准输入<右边只能是文件

2、管道触发两个子进程执行"|"两边的程序;而重定向是在一个进程内执行

别名-alias 输入alias可以看到目前指令别名清单。 命令别名是bash提供的使用户的工作变得轻松的方法。命令别名通常是其它命令的缩写,用来减少键盘输入。 alias[alias_name=‘original_command’]alias别名=‘别名代表的命令’ 注意: 1.定义别名时,等号两边不允许有空格存在。若命令中包含空格或其它的特殊字符串则必须使用引号。 2.如果需要定义的别名在每次登录时对于此用户均有效,则需要将其写入用户家目录下的.bashrc文件。 当不使用任何参数来使用alias命令时,显示当前的别名设置。 当需要取消别名时使用unalias命令 unaliasalias_name指令记录 history 会列出指令记录,而且每次记录都会加上号码,可以指定编号执行指令。指定编号时以!加上号码,如: !740Sort命令语法: sort[选项]文件改变缺省设置的选项主要有:-m若给定文件已排好序,合并文件。-c检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退出。-u对排序后认为相同的行只留其中一行。-o输出文件将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,sort先将该文件的内容写入一个临时文件,然后再排序和写输出结果。改变缺省排序规则的选项主要有:-d按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。-f将小写字母与大写字母同等对待。-I忽略非打印字符。-M作为月份比较:“JAN”<“FEB”<¼<“DEC”。-r按逆序输出排序结果。-kPOS1[,POS2]开始栏pos1,结束栏pos2(包含pos1和pos2栏)-b在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。tseparator指定字符separator作为字段分隔符。sorta.tt-t:+2-4指定第三四栏作排序范围

注:+n–n栏位编号是0开始,并且指定的key不包含-n这一栏

$cattextvegetablesoupfreshvegetablesfreshfruitlowfatmilk$sorttextfreshfruitfreshvegetableslowfatmilkvegetablesoup把几个文件文本行合并,并对合并后的文本行进行排序 $catveglistfruitlist|sort>clistuniq命令这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如果输入文件用“-”表示,则从标准输入读取。

语法:uniq[选项]文件-c显示输出中,在每行行首加上本行在文件中出现的次数。它可取代-u和-d选项。-d只显示重复行。-u只显示文件中不重复的各行。-fn省略掉前n栏-sn省略掉前n个字符(包含空格在内)uniqa.txt–f2–s3省略第1,2栏和第三栏的前3个字符(包含第2栏后的空格)例如:1.显示文件example中不重复的行。 uniq-uexample2.显示文件example中不重复的行,从第2个字段的第2个字符开始做比较。 uniq-u–f1–s2exampleComm命令对两个有序的文件进行比较,可以使用comm命令。语法:comm[-123]file1file2说明:该命令是对两个已经排好序的文件进行比较。其中file1和file2是已排序的文件。comm读取这两个文件,然后生成三列输出:仅在file1中出现的行;仅在file2中出现的行;在两个文件中都存在的行。如果文件名用“-”,则表示从标准输入读取。选项1、2或3抑制相应的列显示。-1

不显示只在第1个文件里出现过的行。

-2

不显示只在第2个文件里出现过的行。

-3

不显示只在第1和第2个文件里出现过的行。

例如 comm-12就只显示在两个文件中都存在的行; comm-23只显示在第一个文件中出现而未在第二个文件中出现的行;

comm-123则什么也不显示。例如:假设要对文件myfile1和myfile2进行比较$catmyfile1main(){ floata,b,i,j,z; a=i=10;b=j=5; z=i+j; printf(“z=%d\n”,z);}$catmyfile2#includemain(){ floati,j,z; i=10;j=5; z=i+j; printf(“z=%f\n”,z);}$comm-12myfile1myfile2main(){ z=i+j;}就只显示文件myfile1和myfile2中共有的行。Diff命令逐行比较两个文本文件,列出其不同之处。它比comm命令完成更复杂的检查。它对给出的文件进行系统的检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序。语法:diff[选项]file1file2说明:该命令告诉用户,为了使两个文件file1和file2一致,需要修改它们的哪些行。如果用“-”表示file1或fiie2,则表示标准输入。如果file1或file2是目录,那么diff将使用该目录中的同名文件进行比较。 diff/usr/xumine把目录/usr/xu中名为mine的文件与当前目录中的mine文件进行比较。通常输出由下述形式的行组成:n1an3,n4n1,n2dn3n1,n2cn3,n4这些行类似ed命令把filel转换成file2。字母(a、d和c)之前的行号(n1,n2)是针对file1的,其后面的行号(n3,n4)是针对file2的。字母a、d和c分别表示附加、删除和修改操作。在上述形式的每一行的后面跟随受到影响的若干行,以“<”打头的行属于第一个文件,以“>”打头的行属于第二个文件。diff能区别块和字符设备文件以及FIFO(管道文件),不会把它们与普通文件进行比较。如果file1和file2都是目录,则diff会产生很多信息。如果一个目录中只有一个文件,则产生一条信息,指出该目录路径名和其中的文件名。-b忽略行尾的空格,而字符串中的一个或多个空格符都视为相等。如Howareyou与Howareyou被视为相同的字符串。-c采用上下文输出格式(提供三行上下文)。-Cn采用上下文输出格式(提供n行上下文)。-e产生一个合法的ed脚本作为输出。-r当file1和file2是目录时,递归作用到各文件和目录上。例如,文件m1.c的内容为(左边行号是有意加上的,以便前后对照):1main()2{3 printf(“Hello!\n”);4}5文件m2.c的内容为:1main()2{3intn,m;4n=10;5printf(“%d\n”,m=n*10);6}输入命令:$diffm1.cm2.c屏幕上显示:3,5c3,6>3printf(“Hello!\n”);>4}<5--->3intn,m;>4n=10;>5printf(“%d\n”,m=n*10);>6}表示把文件m1.c的3至5行改成m2.c的3至6行后,两个文件相同。文件内容查询命令grep、fgrep和egrep命令

这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。这组命令在搜索与定位文件中特定的主题方面非常有用。要搜索的模式可以被认为是一些关键词,您可以用它们来搜索文件中包含的这些关键词。编写程序时,可以用它来寻找某一个函数,或是相关的词组。grep命令的搜索功能比fgrep强大,因为grep命令的搜索模式可以是正则表达式,而fgrep却不能。该组命令中的每一个命令都有一组选项,利用这些选项可以改变其输出方式。例如,可以在搜索到的文本行上加入行号,或者只输出文本行的行号,或者输出所有与搜索模式不匹配的文本行,或只简单地输出已搜索到指定模式的文件名,并且可以指定在查找模式时忽略大小写。这组命令在指定的输入文件中查找与模式匹配的行。如果没有指定文件,则从标准输入中读取。正常情况下,每个匹配的行被显示到标准输出。如果要查找的文件是多个,则在每一行输出之前加上文件名。语法:grep[选项][查找模式][文件名1,文件名2,……]egrep[选项][查找模式][文件名1,文件名2,……]fgrep[选项][查找模式][文件名1,文件名2,……]-E每个模式作为一个扩展的正则表达式对待。-F每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式。-b在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。-c只显示匹配行的数量。-i比较时不区分大小写。-h在查找多个文件时,指示grep不要将文件名加入到输出之前。-l显示首次匹配串所在的文件名并用换行符将其隔开。当在某文件中多次出现匹配串时,不重复显示此文件名。-n在输出前加上匹配串所在行的行号(文件首行行号为1)。-v只显示不包含匹配串的行。-x只显示整行严格匹配的行。-eexpression指定检索使用的模式。用于防止以“-”开头的模式被解释为命令选项。-fexpfile从expfile文件中获取要搜索的模式,一个模式占一行。对该组命令的使用还需注意以下方面: 在命令后键入搜索的模式,再键入要搜索的文件。其中,文件名列表中也可以使用特殊字符,如“*”等,用来生成文件名列表。如果想在搜索的模式中包含有空格的字符串,可以用单引号把要搜索的模式括起来,用来表明搜索的模式是由包含空格的字符串组成。否则,Shell将把空格认为是命令行参数的定界符,而grep命令将把搜索模式中的单词解释为文件名列表中的一部分。特殊字符“*”用来生成一个文件名列表,该列表包含当前目录下所有的文件。该命令将搜索出当前目录下所有文件中与模式匹配的行。 $grepdata*用户可以在命令行上键入搜索模式,也可以使用-f选项从指定文件中读取要搜索的模式。在文件中,每个搜索模式占一行。 $catmypats Editor Create $grep-fmypatsexamytalk功能说明:与其它用户交谈。 语法:ytalk[-isxY][-h<主机名称IP地址>][用户名称...]补充说明:通过ytalk指令,你可以和其它用户线上交谈,如果想和其它主机的用户交谈,在用户名称后加上其主机名称或IP地址即可。-h<主机名称IP地址>指定交谈对象所在的远端主机。-i用提醒声响代替显示信息。-s在指令提示符号先开启ytalk交谈窗。-x关闭图形界面。-Y所有必须回应yes或no的问题,都必须用大写英文字母"Y"或"N"回答。tty(teletypewriter)功能说明:显示终端机连接标准输入设备的文件名称。 语法:tty[-s][--help][--version]补充说明:在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty指令查询目前使用的终端机的文件名称。参数:-s或--silent或--quiet不显示任何信息,只回传状态代码。--help在线帮助。--version显示版本信息。traceroute功能说明:显示数据包到主机间的路径。 语法:traceroute[-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]补充说明:traceroute指令让你追踪网络数据包的路由途径,默认数据包大小是40Bytes,用户可另行设置。参数:-d使用Socket层级的排错功能。-f<存活数值>设置第一个检测数据包的存活数值TTL的大小。-F设置勿离断位。-g<网关>设置来源路由网关,最多可设置8个。-i<网络界面>使用指定的网络界面送出数据包。-I使用ICMP回应取代UDP资料信息。-m<存活数值>设置检测数据包的最大存活数值TTL的大小。-n直接使用IP地址而非主机名称。-p<通信端口>设置UDP传输协议的通信端口。-r忽略普通的RoutingTable,直接将数据包送到远端主机上。-s<来源地址>设置本地主机送出数据包的IP地址。-t<服务类型>设置检测数据包的TOS数值。-v详细显示指令的执行过程。-w<超时秒数>设置等待远端主机回报的时间。-x开启或关闭数据包的正确性检验。

telnet功能说明:远端登入。 语法:telnet[-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端口>]参数:-8允许使用8位字符资料,包括输入与输出。-a尝试自动登入远端系统。-b<主机别名>使用别名指定远端主机名称。-c不读取用户专属目录里的.telnetrc文件。-d启动排错模式。-e<脱离字符>设置脱离字符。-E滤除脱离字符。-f此参数的效果和指定"-F"参数相同。-F使用KerberosV5认证时,加上此参数可把本地主机的认证数据上传到远端主机。sync命令sync命令是在关闭Linux系统时使用的。用户需要注意的是,不能用简单的关闭电源的方法关闭系统,因为Linux象其它Unix系统一样,在内存中缓存了许多数据,在关闭系统时需要进行内存数据与硬盘数据的同步校验,保证硬盘数据在关闭系统时是最新的,只有这样才能确保数据不会丢失。一般正常的关闭系统的过程是自动进行这些工作的,在系统运行过程中也会定时做这些工作,不需要用户干预。sync命令是强制把内存中的数据写回硬盘,以免数据的丢失。用户可以在需要的时候使用此命令。该命令的一般格式为:syncecho命令echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。该命令的一般格式为: echo[-n]字符串其中选项n表示输出文字后不换行;字符串可以加引号,也可以不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。cal命令cal命令的功能是显示某年某月的日历。该命令的一般格式为: cal[选项][月[年]]命令中各选项的含义为:-j显示出给定月中的每一天是一年中的第几天(从1月1日算起)。-y显示出整年的日历。例1显示1999年11月的日历。 $cal111999例2显示1999年11月的每一天是一年中的第几天。 $cal–j111999date命令date命令的功能是显示和设置系统日期和时间。该命令的一般格式为: date[选项]显示时间格式(以+开头,后面接格式)date设置时间格式命令中各选项的含义分别为:-ddatestr,--datedatestr显示由datestr描述的日期-sdatestr,--setdatestr设置datestr描述的日期-u,--universal显示或设置通用时间时间域%H小时(00..23)%I小时(01..12)%k小时(0..23)%l小时(1..12)%M分(00..59)%p显示出AM或PM%r时间(hh:mm:ssAM或PM),12小时%s从1970年1月1日00:00:00到目前经历的秒数%S秒(00..59)%T时间(24小时制)(hh:mm:ss)%X显示时间的格式(%H:%M:%S)%Z时区日期域%a星期几的简称(Sun..Sat)%A星期几的全称(Sunday..Saturday)%b月的简称(Jan..Dec)%B月的全称(January..December)%c日期和时间(MonNov814:12:46CST1999)%d一个月的第几天(01..31)%D日期(mm/dd/yy)%h和%b选项相同%j一年的第几天(001..366)%m月(01..12)%w一个星期的第几天(0代表星期天)%W一年的第几个星期(00..53,星期一为第一天)%x显示日期的格式(mm/dd/yy)%y年的最后两个数字(1999则是99)%Y年(例如:1970,1996等)需要特别说明的是,只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。例1:用指定的格式显示时间。 $date‘+Thisdatenowis=>%x,timeisnow=>%X,thankyou!’例2:用预定的格式显示当前的时间。 #date例3:设置时间为下午14点36分。 #date-s14:36:00例4:设置时间为1999年11月28日。 #date-s991128文件与目录操作文件与文件名在多数操作系统中都有文件的概念。文件是Linux用来存储信息的基本结构,它是被命名(称为文件名)的存储在某种介质(如磁盘、光盘和磁带等)上的一组信息的集合。Linux文件均为无结构的字符流形式。文件名是文件的标识,它由字母、数字、下划线和圆点组成的字符串来构成。用户应该选择有意义的文件名。Linux要求文件名的长度限制在255个字符以内。为了便于管理和识别,用户可以把扩展名作为文件名的一部分。圆点用于区分文件名和扩展名。扩展名对于将文件分类是十分有用的。用户可能对某些大众已接纳的标准扩展名比较熟悉,例如,C语言编写的源代码文件总是具有C的扩展名。用户可以根据自己的需要,随意加入自己的文件扩展名。文件的类型Linux系统中有三种基本的文件类型:普通文件、目录文件和设备文件。普通文件普通文件是用户最经常面对的文件。它又分为文本文件和二进制文件。1)文本文件:这类文件以文本的ASCII码形式存储在计算机中。它是以"行"为基本结构的一种信息组织和存储方式。2)二进制文件:这类文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论