实验一Linux的Shell命令以及X 窗口系统的使用实验报告DOC.docx
《实验一Linux的Shell命令以及X 窗口系统的使用实验报告DOC.docx》由会员分享,可在线阅读,更多相关《实验一Linux的Shell命令以及X 窗口系统的使用实验报告DOC.docx(13页珍藏版)》请在冰豆网上搜索。
实验一Linux的Shell命令以及X窗口系统的使用实验报告DOC
实验一Linux的安装、Shell命令以及X窗口系统的使用
班级:
14194811学号:
14194822姓名:
吴林泽
一、实验目的:
熟练使用Linux字符界面的常用命令
熟练运用Linux的在线求助系统。
练习X窗口系统中常用的应用工具
二、实验内容:
文件处理命令
1.ls命令
英文原义:
list(显示目录文件及其属性)
执行权限:
alluser
语法:
ls选项[-alFR][文件或目录]
-a显示所有文件包括隐藏文件
-l使用longformat长格式进行显示
-F附加文件类别符号在文件名最后
-R显示目录及其下的子目录内容
示例:
$ls–a
$ls–l
说明:
“.”代表当前目录,“..”代表上一层目录,长格式显示的目录或文件属性包括下列七项:
文件权限(r-可读,w-可写,x-可执行)、文件数目、所有者、文件大小、建立日期、文件名。
参见“2.2.2文件基础”。
2.cd命令
英文原义:
changedirectory(切换目录)
执行权限:
alluser
语法:
cd[目录]
示例:
$cd..回到上层目录
$cd.在原目录
$cd~回到user的homedirectory
$cd/切换到根目录
$cd../usr切换到上一层目录的usr目录
pwd
3.pwd命令
英文原义:
printworkdirectory(显示当前所在目录)
执行权限:
alluser
语法:
pwd
示例:
$pwd
说明:
由于Linux系统的树状目录结构颇为庞大,若没有使用Shell环境变量指定在Shell提示符显示当前的工作目录,则不断地使用cd切换目录之后,可能会忘记当前所在的目录是哪里,例如在:
/usr/bin和/usr/local/bin。
一般Shell提示符只显示最后的目录名称bin/,所以会对所在目录产生混淆,因此可以随时用pwd命令了解当前的工作目录/usr/X11R6/bin.显示当前工作目录为/usr/X11R6/bin
4.cp,rm,mv,mkdir命令
英文原义:
copy,remove,move,makedirectory(复制、删除、移动文件,创建目录)
执行权限:
alluser
语法:
cp-afpx[源文件或目录][目地文件或目录]
-aarchive的意思相当于-dpR,也就是复制所有目录并包括子目录
-f强制复制文件
-p保留原始文件的日期
-x指定文件复制后属于目的磁盘的文件系统,如:
ext2->fat32
语法:
rm-irf[文件或目录]
-r删除目录及其下的所有目录内容
-f强制删除
-i交互模式,删除前再做一次确认
语法:
mv–if[源文件或目录][目地文件或目录]
5.1n命令
英文原义:
link(产生连接文件)
执行权限:
AllUser
语法:
ln–s[源文件][目录文件](-ssymboliclink,符号连接)
示例:
ln–s/bin/less/usr/local/bin/less
说明:
当需要在不同的目录用到相同的文件时,不需要在每一个需要的目录下都放一个相同的文件,只要在某个固定的目录中,放上该文件,然后在其他的目录用ln命令连接它即可,不必重复占用硬盘空间而节约磁盘空间。
文件权限管理命令
1.chmod命令
英文原义:
changefileordirectory’smode(改变文件或目录的权限)
执行权限:
AllUser
语法:
chmod-R[mode=4,2,1#or{a,u,g,o}{+,-,=,}{r,w,x,s,t}][文件或目录]
示例:
$chmoda+rstuff
$chmod755file
说明:
Linux将文件的权限分成Readable(r)、Writable(w)、executable(x)、SetUser’ID即Setuid(s)、SetGroupID即Setgid(s)、Stickybit(t),而将文件的用户分成所有用户All(a)、所有者用户User(u)、同组用户Group(g)、其它用户Other(o)等四种。
可以使用chmod加上这些代号规范文件权限。
第一个示例赋予所有用户对stuff有读的权利。
第二个示例赋予所有者对file文件可读可写可执行,同组用户和其他用户可读可执行的权利而没有改写的权利。
2.chown命令
英文原义:
Changefileordirectory'sOwner(改变文件或目录的所有者)
执行权限:
AllUser
语法:
chown–R[用户][.[群组]][文件或目录]
功能描述:
改变文件或目录的所有者
3.chgrp命令
英文原义:
Changefileordirectory'sGroup(改变文件或目录的所属群组)
执行权限:
AllUser
语法:
chgrp–R[文件或目录]
文件查找命令
1.whereis命令
英文原义:
whereisfile?
(显示文件或目录的所在位置)
执行权限:
AllUser
语法:
whereiswhere[文件或目录]
2.find命令
英文原义:
find(查找文件或目录)
执行权限:
A11User
语法.find[查找路径][查找关键字][表答式]
-type指定查找文件的文件类型,如下:
oblock(buffered)special
ccharacher(unbuffered,special)
ddirectiry
pnamedpipe(FIF0)
iregularfile
1symboliclink
ssocket
-gidn指定查找群组id为n的文件
-groupgrpname指定查找群组名称为grpname的文件
-iname‘filename’指定查找与filename类似的所有文件
另外还可以使用通配符,例如:
find./-iname‘f*’-print当前目录下查找所有以f开头的文件名
find./-iname’c?
?
’-print当前目录下查找以c开头且后面有两个字节的文件名
说明:
-name和-iname选项类似,差别在于-name会区分大小写,-iname和-ignore则
不区分大小写。
-iname查找文件为连接文件的文件或目录
磁盘管理命令
1.df,du命令
英文原义:
diskfilesystemspaceusage(显示文件系统)
diskfilespaceusage(显示文件使用的空间大小)
执行权限:
AllUser
语法:
df–km,du-sbkm
-bbytes
-kkilobytes
-mmegabytes
-ssummarize
示例:
$df
Filesystem1k-blocksUsedAvailableUse%MountedOn
/dev/hddl79603325035350455633%/
/dev/hdd5119001488259524593378%/usr
/dev/hdd679603342121333369656%/home
/dev/hdd71990471300485871969%/var
/dev/hdal2044240128143676280463%/win98
示例:
$du–h
2.8M表示当前子目录下所有的文件和目录占用2.8M空间。
2.mountumount命令
英文原义:
mount/umountafilesystem(挂载/拆除文件系统)
执行权限:
root
语法:
mount–a-tfstype-o[options]设备名称目录名称
-amount定义在/etc/fstab中的所有分区
-t指定文件系统格式(ext2,msdos,vfat,is09660…)
-o指定loopdeviceumount目录名称(mountpoint)
说明:
Linux使用磁盘的方式是必须将这些设备挂在系统的某一个目录,才可能让用户存取。
若是Linux系统没有挂载,用户无法直接对硬盘设备操作,所以mount命令非常重要。
硬盘的设备驱动为dev/hda1或/dev/hdb5,具体的符号需查询,如用df显示文件系统。
需要注意的是,只有root用户才有此权限。
例如,把U盘挂载到/mnt/usb下,可以用以下命令;注意:
在使用U盘前,必须先挂载好U盘。
#mount/dev/sda1/mnt/usb
程序管理命令
1.ps,kill命令
英文原义:
processstatus,killprocess(显示线程状态,删除线程)
执行权限:
AllUser
语法:
psaux
a显示所有用户的线程
u显示用户名称
x显示不由tty控制的线程
kill(-HUPor-1)–9
-HUPor-1重新启动某个线程
-9强制删除线程
说明:
执行ps时,加的选项前面不需要“-”,请特别注意!
aux选项可以显示出系统当前的所有线程
2.top命令
英文原义:
displaytopCPUprocesses
执行权限:
AllUser
语法:
top
说明:
除了使用ps监视系统执行程序外,可以使用top同时监视系统效能与执行程序。
显示文本文件与字符串查找命令
1.cat,more,less命令
英文原义:
concatenate,fileperusalfilter,oppositeofmore(显示文件内容)
执行权限:
A11User
语法:
cat:
[文件或输出],more[文件或输出],less[文件或输出]
示例:
$catfilelfile2>file3
说明:
上述命令将file1,file2的内容一起输出到file3中,达到合并文件的效果。
另外,more和less功能是一样的,都可以一页页地查看命令输出或内容的文件内容。
唯一的不同在于less可以做上下卷轴的操作,而more就只能向下输出内容,不能再回头输出已经出现过的内容。
2.grep命令
英文原义:
GNUregularexpressionprint(查找字符串)
执行权限:
AllUser
语法:
grep[pattern][文件或输出]
示例:
$grepworldfile.txt(查找file.txt中含有world关键字的内容)
$grep-e“HellOWorld!
”file.txt(查找file.txt中含有HelloWorld!
字符串的内容)
$grep-cworldfile.txt(计算“world”在file.txt中出现的次数)
压缩与解压缩命令
1.gzip命令
英文原义:
GNUzip(使用Lempel-Zivcoding-LZ77技术压缩文件)
执行权限:
AllUser
语法:
gzip[选项][-19r][文件]
-1表示快速压缩
-9表示最佳状况压缩
-r压缩时包含所有子目录
2.gunzip命令
英文原义:
GNUunzip(解压缩以gzip压缩的.gz文件)
执行权限:
A1lUser
语法:
gunzip:
[选项][-r][文件或目录]
说明:
使用gzip–d-rfilename.gz和gunzip–rfilename.gz功能一样,-d是decompress的意思)。
3.tar命令
英文原义:
tar(压缩文件目录)
执行权限:
AllUser
语法:
tar[选项][zcvf][文件或目录]
-z使用gzip压缩.tar文件
-c产生一个tar文件
-v观看压缩过程
-f指定压缩成的文件(或压缩到磁带设备)
-x解压
说明:
一般都是最先的四个选项zcvf全加,这样马上可以将一个目录下所有的文件压缩成一个压缩文件。
压缩后文件格式:
.tar.gzor.tgz。
tar的功能和其他压缩工具不太一样,tar可将一个目录所有的文件压缩成一个文件,但是tar没有空间压缩的功能。
因此大家用tar都会配合gzip一起使用,以达到前面介绍gzip时的压缩目录需求——将一个目录下所有的文件压成一个压缩文件。
vi编辑器
vi是Linux/Unix世界里极为普遍的全屏幕文本编辑器,几乎可以说任何一台Linux/Unix机器都会提供这个软件。
vi有三种状态,即编辑方式、插入方式和命令方式。
在命令方式下,所有命令都要以:
开始,所键入的字符系统均作命令来处理,如:
q代表退出,:
w表示存盘。
当你进入vi时,会首先进入的是命令方式(同时也是编辑方式)。
按下i就进入插入方式(i表示insert),用户输入的可视字符都会添加到文件中,显示在屏幕上。
按下ESC就可以回到命令状态(同时也是编辑方式)。
编辑方式和命令方式类似,都是要输入命令,但它的命令不要以:
开始,它直接接受键盘输入的单字符或组合字符命令,例如直接按下u就表示取消上一次对文件的修改,相当于WINDOWS下的Undo操作。
编辑方式下有一些命令是要以/开始的,例如查找字符串就是:
/string则在文件中匹配查找string字符串。
在编辑模式下按下:
就进入命令方式。
基本操作
1)光标命令
k、j、h、l——上、下、左、右光标移动命令。
虽然你可以在Linux中使用键盘右边的4个光标键,但是记住这4个命令还是非常有用的。
这4个键正是右手在键盘上放置的基本位置。
nG——跳转命令。
n为行数,该命令立即使光标跳到指定行。
Ctrl+G——光标所在位置的行数和列数报告。
w、b——使光标向前或向后跳过一个单词。
2)编辑命令
i、a、r——分别代表在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。
cw、dw——分别代表改变(置换)/删除光标所在处的单词的命令(c=change、d=delete)。
x、d$、dd——分别代表删除一个字符、删除光标所在处到行尾的所有字符以及删除整
行的命令。
3)查找命令
----/string、?
string——分别代表从光标所在处向后或向前查找相应的字符串的命令。
4)复制命令
----yy、p——分别代表拷贝一行到剪贴板或取出剪贴板中内容的命令。
文件操作
无论是开启新文档或修改旧文件,都可以使用vi,所需指令为:
$ vi filemane
如果文件是新的,就会在荧幕底部看到一个信息,告诉用户正在创建新文件。
如果文件已经存在,vi则会显示文件的首24行,用户可再用光标(cursor)上下移动。
~
~
上面是一个经vi开启的模拟文件,一行开始处的波折号(~)表示文件的结尾。
—指令i在光标处插入正文
—指令I在一行开始处插入正文
—指令a在光标后追加正文
—指令A在行尾追加正文
—指令o在光标下面新开一行
—指令O在光标上面新开一行
在插入方式下,不能打入指令,必需先按〈Esc〉键,返回命令方式后才行。
假若用户不知身处何态,也可以按〈Esc〉键,不管处于何种状态,都会返回命令方式。
在修改文件时,如何存档及退出指定文件都非常重要。
在vi内,行使存档或退出的指令时,要按〈Esc〉键回到命令方式后,再按冒号(:
),改变为命令接受方式,用户就可以看见在荧幕左下方,出现冒号(:
),显示vi已经改为指令状态,可以进行存档或退出等工作。
:
q!
放弃任何改动而退出vi,也就是强行退出
:
w存档
:
w!
对于只读文件强行存档
:
wq存档并退出vi
:
x与wq的工作一样
:
zz与wq的工作一样
删除正文
删除或修改正文都是利用编辑方式,故此,下面所提及的指令只需在编辑方式下,直接键入指令即行。
x删除光标处字符(Character)
nx删除光标处后n个字符
nX删除光标处前n个字符
ndw删除光标处下n个单词(word)
dd删除整行
d$或D删除由光标处至该行行尾
u恢复前一次所做的删除(即类似windows中的undo操作)
修改正文
当使用vi修改正文,加减字符时,就会采用另一组在编辑方式下操作的指令。
rchar由char代替光标处的字符
Rtext〈Esc〉由text代替光标处的字符
cwtext〈Esc〉由text取代光标处的单词
Ctext〈Esc〉由text取代光标处至该行结尾处
cc使整行空白,但保留光标位置,让你开始打入
—如删除指令一样,在指令前打入的数,表示执行该指令多少次。
检索文件
要检索文件,必需在编辑方式下进行:
/str〈Return〉向前搜寻str直至文件结尾处
?
str〈Return〉往后搜寻str直至文件开头
n同一方向上重复检索
N相反方向上重复检索
vi缠绕整个文件,不断检索,直至找到与模式相匹配的下一个出现。
全程替换
:
%s/string1/string2/g在整个文件中替换“string1”成“string2”。
如果要替换文件中的路径:
使用命令“:
%s#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin换成/bin。
也可以使用命令“:
%s/\/usr\/bin/\/bin/g”实现,其中“\”是转义字符,表明其后的“/”字符是具有实际意义的字符,而不是分隔符。
其它操作
同时编辑2个文件,假如要拷贝一个文件中的文本并粘贴到另一个文件中,命令如下:
----vifile1file2
----yy在文件1的光标处拷贝所在行
----:
n切换到文件2(n=next)或者按ctrl+ww,就在两个文件间切换。
----p在文件2的光标所在处粘贴所拷贝的行
----:
n切换回文件1
将文件中的某一部分修改保存到临时文件,例如仅仅把第20~59行之间的内容存盘成文件/tmp/1,我们可以键入如下命令。
----vifile
----:
20,59w/tmp/1
如果要在vi执行期间,转到shell执行,使用惊叹号(!
)执行系统指令,例如在vi期间,列出当前目录内容,可以键入:
:
!
ls
另一方面,用户可以在主目录中创建.exrc环境文件,用set打入选项,每次调用vi时,就会读入.exrc中的指令与设置。
下面是.exrc环境文件的实例:
set wrapmarging=8
set showmode
set autoindent
三、实验体会
按照要求一步一步输入命令,无法实现结果时XX查询,再不懂时发现上课没认真听,许多细节性的东西不知道导致某个环节实现不了,从而形成连锁反应,导致结果无法实现。
所以下次需要注意细节性步骤的操作,运用代码是一个严谨的过程