文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>linux专业命令

linux专业命令

时间:2006-08-18  来源:dupeng144

使用如下每条命令检查您是否还有文件在您的home目录下:

$ ls

$ ls -a

$ ls ?al

为什么第一和第二条命令返回不同的文件数?

第三条命令返回的在您当前的home目录下最大的文件是多少?

您的home目录下有子目录吗?

4. 您现在使用touch为以后的步骤建立文件。这种扩展在接下来的命令中是如何工作

的在以后的章节中进行讨论。

为防止和其他用户发生冲突,请先在当前目录下新建一个属于您自己的工作目录,myname请用自己的用户名来替换。

$mkdir myname

现在,仅仅按照下面的行键入就行了(在集合与集合之间使用包括花括号{}和下划线的字符)

$ cd myname

$ touch {report,memo,graph}_{sep,oct,nov,dec}_{a,b,c}{1,2,3}

5. 使用命令ls检查最后一条命令的结果,你会发现它在您的home目录下生成了108个

新的空文件(您不必数)。这些文件代表了您将使用的在这个步骤中的代表的数据文件。如果您看不到这些文件,向教师寻找帮助,没有这些文件,该试验后面的步骤就无法进行。

6. 为了组织您的文件,您必须先建立一些新目录,使用mkdir在您的home目录中直接

建立一些子目录:

$ mkdir a_reports

$ mkdir september october november december

  再使用ls 检查您的工作。

7. 使用如下命令在您的一个新的目录中生成一些附加子目录

$ cd a_reports

为了切换到目录,接下来:

$ mkdir 1 2 3

使用ls检查你的子目录a_reports下的名为1,2,3的三个新的子目录。

8. 首先把所有带”b”的报告从home目录中移出并且按月份分组,先验证要使用的复杂的通配符模式,是个好方法。这样做以确保它对于正确的文件进行操作。如果你打算使用这种通配符模式,您可以使用一个无害的命令来替换您的命令。

$ cd

$ ls -l *dec?b?

你将看到列出了9个”december”,”b”文件,把其中的一个移到december目录中:

$ mv graph_dec_b1 december

用下面的语句移动其余的:

$ mv *dec?b? december

列出december目录的内容验证移动操作是否成功:

$ ls -l december

9.把其余所有带”b”的报告分别移动到各自对应的目录中:

$ mv *oct?b? october

$ mv *sep?b? september

__________________

希望能和你相互交流,愿意和您分享学习、进步中的每分喜悦与快乐

---------------------------------------------

http://tzhsuccess.itpub.net

向版主反映这个帖子 查看tzhsuccess 的IP地址

151楼 旧帖 06-07-17 23:41

[ 大 中 小 ] 给予该贴好评 编辑/删除 引用/回复

tzhsuccess

高级会员

注册日期: 2004 Apr

来自: 太?系-?子座

技术贴数:7934

论坛积分:31670

论坛排名:67

论坛徽章:23

会员2006贡献徽章 行业板块每日发贴之星 ERP板块每日发贴之星

10. 现在你将把”a”报告收集到它们各自对应的目录中。注意使用~代替 “你的home

目录”。通配符和模式的组合指定了您的home目录下所有以_a1结尾的文件。

$ cd a_reports

$ mv ~/*_a1 1/

“september””a1”文件陈旧并且不再需要,使用echo确定您已经建立了一个只匹配该类文件的模式,然后删除它们,并且检查剩下的”a1”文件是否正确移动:

$ cd 1

$ echo *sep*

$ rm *sep*

$ ls

graph_dec_a1 graph_oct_a1 memo_nov_a1 report_dec_a1 report_oct_a1 graph_nov_a1 memo_dec_a1 memo_oct_a1 report_nov_a1

11.最后移动”a2”和”a3”报告到各自对应的目录中。为了使过程变得有趣,我们将把

它们移出当前目录,使用相对和绝对的的路径名。第一步,使用pwd确定当前目录:

$ pwd

/home/student/a_reports/1

用echo检查涉及到”a2”文件的模式,然后使用绝对路径名:

$ echo /home/student/*a2*

$ mv /home/student/*a2* /home/student/a_reports/2

即使您当前在/home/student/a_reports/1目录下,也能把文件从/home/student移动到/home/student/a_reports/2目录中,因为您指定了文件的路径名称(在本例中为绝对路径名称)

现在使用相对路径移动“a3”文件。再一次的,首先确信模式指定的是正确的文件名称。

$ echo ../../*a3*

$ mv ../../*a3* ../3

12.返回您的home目录,并且使用ls 来校验仅存在该目录中的文件都是“c”文件(例如:graph_dec_c1,graph_dec_c2,…)

13.“c1”和“c2”报告文件对于每个月来说都非常重要,并且您打算把它们备份到另外一个目录:

$ mkdir /tmp/archive

$ cp report*[12] /tmp/archive/

另外的,所有的对于十二月份的报告文件应该备份到/tmp/archice目录下面。注意,-i选项使得cp程序在覆盖任何文件之前进行提示:

$ cp -i report_dec* /tmp/archive/

cp: overwrite `/tmp/archive/report_dec_c1'? n

cp: overwrite `/tmp/archive/report_dec_c2'? n

14.现在您备份了一些对您重要的“c”文件,您现在要删除位于您的home目录下面所有的文件。使用通配符“*c*”检查剩下的含有c的文件。您为什么不想执行命令rm *c* ?

(作为提示:尝试:ls *c*)

15.删除您的home目录下的剩余*c*文件。在发出一个破坏性的命令之前我们再次使用echo命令。

$ echo *c[1-3]

$ rm *c[1-3]

$ ls

a_reports   december november october september  

试验的结果

一个组织良好的home目录,文件放置在合理的位置,一些文件备份到了/tmp/archive目录中

----------------------------------------------------------

第二步:决定磁盘的使用率

场景/情节

您想记录您的系统中的每一个文件系统总共有多少剩余空间。

另外,您想有一个关于哪些目录消耗了系统的多数的空间的列表。

任务

1. 使用df获取文件系统总的剩余空间,您的输出应该是类似于下面的例子(尽管输出

依赖于您的特定的安装,输出可能不同)

$ df

Filesystem 1k-blocks Used Available Use% Mounted on

/dev/hdc2 14129568 1809728 11602096 14% /

/dev/hdc1 49743 8847 38328 19% /boot

none 63312 0 63312 0% /dev/shm

2.注意缺省的命令df操作是以块为单位报告信息,试用-h,-H选项,则是用 “用户可读的“形式报告

$ df -h

Filesystem Size Used Avail Use% Mounted on

/dev/hdc2 13G 1.8G 11G 14% /

/dev/hdc1 49M 8.7M 37M 19% /boot

none 62M 0 61M 0% /dev/shm

$ df -H

Filesystem Size Used Avail Use% Mounted on

/dev/hdc2 14G 1.9G 11G 14% /

/dev/hdc1 51M 9.1M 39M 19% /boot

none 65M 0 64M 0% /dev/shm

这两个开关有什么不同(使用man df)?

2. 在您的home目录使用du(磁盘使用率)命令来决定您所有的文件消耗的空间。确保尝试-h选项获得更可读的输出。

-------------------------------------------------------------

第三步:检视文本文件

任务

1.我们需要一个可供我们工作的文本文件:

$ cd

$ cp /usr/share/dict/words

.

2.使用cat显示文件:

$ cat words

Aarhus

Aaron

Ababa

…输出省略….

Zulu

Zulus

Zurich

3.在这种情况下cat是一个坏的选择,因为很多输出快速的滚屏,试用less:

$ less words

Aarhus

Aaron

Ababa

…输出省略…

abiding

Abidjan

Abigail

…输出省略…

使用less的时候,您可以向前翻页(使用b),向后翻页(使用空格键)在整个输出中,每次一屏.

4.如果你只需要快速的看看某个文件的最前几行和最后几行,你要使用head或者tail:

$ head words

Aarhus

Aaron

Ababa

aback

abaft

abandon

abandoned

abandoning

abandonment

abandons

$ tail words

zoologically

zoom

zooms

zoos

Zorn

Zoroaster

Zoroastrian

Zulu

Zulus

Zurich

您可以使用man帮助页面发现能使用head和tail中的哪个开关修改行号或是显示的行的相关的位置.

哪个命令你能使用显示文本的前50行?

哪个命令您能使用显示文件从第25,000行到结束的内容?

====================================================================

试验二

Linux文件系统的要点

估计时间:  90分钟

目标:          深入了解linux文件系统知识,包括:创建和使用links,使用slocate和find,归档压缩文件。

试验的起点:   一个Linux系统。

----------------------------------------------------------------

第一步:创建和使用links

任务:

1.在早些时候的试验,你已经拷贝了一个文件/usr/share/dict/words到你使用的用户lab的主目录 ~/words.在这个案例里,你不需要编辑文件-拷贝一个文件到你的主目录就可以在试验的期间使用了。

2.为了要避免原始文件和副本之间的混乱。在lab’s主目录中删除words的副本

$ cd

$ rm words

3.虽然你可能没有在那时了解它, 这个文件/usr/share/dict/words 的副本实际上是一个软link。列出内容下面目录 /usr/share/dict的内容查看link和它的参数。

$ ls ?l /usr/share/dict

total 404

-rw-r?r-- 1 root root 409305 Apr 3 10:29 linux.words

lrwxrwxrwx 1 root root 11 Apr 20 17:33 words ->linux.words

a.你能告诉我words是一个软链接吗?

b.为什么words的文件大小是11?

c.words允许所有人访问。这和linux.words文件用什么冲突?除了root用户,其他用户能够能在linux.words上面写数据吗?

4.再一次列出文件,这次显示相应的indeds号。为什么两个文件会有相同或不同的inodes号?

$ ls ?I /usr/share/dict

5. 现在在你的主目录中产生两个的代号和硬链接到/usr/share/dict/linux.words:

$ ln ?s /usr/share/dict/linux.words soft

$ ln /usr/share/dict/linux.words hard

6. 测试一下,你新建的链接两者都指到 linux.words 文件:

$ head hard soft

7. 检查你所有文件的link , 然后在下面回答问题:

$ ls ?il hard soft

$ stat had soft

报告文件大小,hard_______和soft_______.

被占用的真实的空间,hard_______和soft_______.

你怎样解释这两个link占用空间的差别。

列出链接的记数,hard_______和soft_______.

所有权,hard_______和soft_______.

文件硬链接的所有者和root用户可以完全访问,其他用户是只读权限。学生将会可以删除这个新的文件吗?为什么?

8. 更多的挑战:如果时间许可,探究一下下面的问题:

a.你能创建一个目标文件并不存在的软连接吗?看看ls命令的输出能否给你一些提示。

b.你能创建一个目标文件并不存在的软连接吗? 为什么?

c.你能创建一个软连接的硬连接吗? 当你尝试的时候有什么问题吗?

d.在创建了几个硬连接后,你能说出哪个是更加真实的文件吗?

----------------------------------------------------------------

步骤2:使用find命令

任务:

作为student登录。设计完成find命令提出结果

查看你当前的umask。设计并且运行find命令在每下列各项被描述的结果指令里。然后写下提供的空格里。

你可能需要在在find的man page里查许找。记得你能用/stringz man page里查找。

第一个答案已经为你列出。

1.在/var/lib目录下查找所有文件其所有者是games用户的文件

$ find /var/lib ?user games 2> /dev/null

2.在/var目录下查找所有文件其所有者是root用户的文件。_________________________________________________________

3.查找所有文件其所有者不是root,bin和student用户并用长格式显示(如ls ?l 的显示结果)。

_________________________________________________________

4.查找/usr/bin目录下所有大小超过一百万byte的文件并用长格式显示(如ls ?l 的显示结果)。

_________________________________________________________

5.对/etc/mail目录下的所有文件使用file命令.

_________________________________________________________

6.查找/tmp目录下属于student的所有普通文件,这些文件的修改时间为120分钟以前,查询结果用长格式显示(如ls ?l 的显示结果)。

_________________________________________________________

7. 对于查到的上述文件,用-ok选项删除。

_________________________________________________________

--------------------------------------------------------------------------

步骤3:归档和压缩

情景/故事:

你的系统上的主硬盘在你使用它的时候有可怕的噪音,但是它上面有有价值的数据。自从系统在两年半以前备份过,你有决定手动备份少数几个你最紧要的文件。那 / tmp 目录里储存在不同的硬盘的分区上快怀的分区,这样你想临时的把文件备份到那里。

任务:

1. 在/home目录里,用find命令定位文件所有者是student的文件。然后将其压缩。

$ find /home ?user student ?exec tar rvf /tmp/backup.tar {} \;

2. 保存/etc目录下的文件到/tmp目录下:

$ tar cvf /tmp/confbackup.tar /etc

3. 列出两个文件的大小

$ ls ?lh /tmp/*.tar

-rw-rw-r-- 1 student student 1.9M Oct 17 23:06 /tmp/backup.tar

-rw-rw-r-- 1 student student 5.4M Oct 18 00:27 /tmp/confbackup.tar

backup.tar文件的大小________

confbackup.tar文件的大小________

__________________

希望能和你相互交流,愿意和您分享学习、进步中的每分喜悦与快乐

---------------------------------------------

http://tzhsuccess.itpub.net

向版主反映这个帖子 查看tzhsuccess 的IP地址

152楼 旧帖 06-07-17 23:41

[ 大 中 小 ] 给予该贴好评 编辑/删除 引用/回复

tzhsuccess

高级会员

注册日期: 2004 Apr

来自: 太?系-?子座

技术贴数:7934

论坛积分:31670

论坛排名:67

论坛徽章:23

会员2006贡献徽章 行业板块每日发贴之星 ERP板块每日发贴之星

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第四讲小结

1. Ctrl-g 用于显示当前光标所在位置和文件状态信息。Shift-G 用于将光标跳

转至文件最后一行。先敲入一个行号然后按 Shift-G 则是将光标移动至该行

号代表的行。

2. 输入 / 然后紧随一个字符串是则是在当前所编辑的文档中向后查找该字符串。

输入问号 ? 然后紧随一个字符串是则是在当前所编辑的文档中向前查找该字

符串。完成一次查找之后按 n 键则是重复上一次的命令,可在同一方向上查

找下一个字符串所在;或者按 Shift-N 向相反方向查找下该字符串所在。

3. 如果光标当前位置是括号(、)、[、]、{、},按 % 可以将光标移动到配对的

括号上。

4. 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new

在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g

在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g

在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g

进行全文替换时询问用户确认每个替换需添加 c 选项,请输入 :%s/old/new/gc

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第五讲第一节∶在 VIM 内执行外部命令的方法

** 输入 :! 然后紧随著输入一个外部命令可以执行该外部命令。**

1. 按下我们所熟悉的 : 命令设置光标到屏幕底部。这样就可以让您输入命令了。

2. 接著输入感叹号 ! 这个字符,这样就允许您执行外部的 shell 命令了。

3. 我们以 ls 命令为例。输入 !ls <回车> 。该命令就会列举出您当前目录的

内容,就如同您在命令行提示符下输入 ls 命令的结果一样。如果 !ls 没起

作用,您可以试试 :!dir 看看。

---> 提示∶ 所有的外部命令都可以以这种方式执行。

---> 提示∶ 所有的 : 命令都必须以 <回车> 告终。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第五讲第二节∶关于保存文件的更多信息

** 要将对文件的改动保存到文件中,请输入 :w FILENAME 。**

1. 输入 :!dir 或者 :!ls 获知当前目录的内容。您应当已知道最后还得敲

<回车> 吧。

2. 选择一个尚未存在文件名,比如 TEST 。

3. 接著输入 :w TEST (此处 TEST 是您所选择的文件名。)

4. 该命令会以 TEST 为文件名保存整个文件 (VIM 教程)。为了确保正确保存,

请再次输入 :!dir 查看您的目录列表内容。

---> 请注意∶如果您退出 VIM 然后在以文件名 TEST 为参数进入,那么该文件内

容应该同您保存时的文件内容是完全一样的。

5. 现在您可以通过输入 :!rm TEST 来删除 TEST 文件了。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第五讲第三节∶一个具有选择性的保存命令

** 要保存文件的部分内容,请输入 :#,# w FILENAME **

1. 再来执行一次 :!dir 或者 :!ls 获知当前目录的内容,然后选择一个合适的

不重名的文件名,比如 TEST 。

2. 接著将光标移动至本页的最顶端,然后按 CTRL-g 找到该行的行号。别忘了

行号哦。

3. 接著把光标移动至本页的最底端,再按一次 CTRL-g 。也别忘了这个行好哦。

4. 为了只保存文章的某个部分,请输入 :#,# w TEST 。这里的 #,# 就是上面

要求您记住的行号(顶端行号,底端行号),而 TEST 就是选定的文件名。

5. 最后,用 :!dir 确认文件是否正确保存。但是这次先别删除掉。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第五讲第四节∶提取和合并文件

** 要向当前文件中插入另外的文件的内容,请输入 :r FILENAME **

1. 请键入 :!dir 确认您前面创建的 TEST 文件还在。

2. 然后将光标移动至当前页面的顶端。

特别提示∶ 执行步骤3之后您将看到第五讲第三节,请届时再往下移动回到这里来。

3. 接著通过 :r TEST 将前面创建的名为 TEST 的文件提取进来。

特别提示∶您所提取进来的文件将从光标所在位置处开始置入。

4. 为了确认文件已经提取成功,移动光标回到原来的位置就可以注意有两份第

五讲第三节,一份是原本,另外一份是来自文件的副本。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第五讲小结

1. :!command 用于执行一个外部命令 command。

请看一些实际例子∶

:!dir - 用于显示当前目录的内容。

:!rm FILENAME - 用于删除名为 FILENAME 的文件。

2. :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文

件中。

3. :#,#w FILENAME 可将当前编辑文件第 # 行至第 # 行的内容保存到文件

FILENAME 中。

4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置

后面。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第六讲第一节∶打开类命令

** 输入 o 将在光标的下方打开新的一行并进入插入模式。**

1. 请将光标移动到本节中下面标记有 ---> 的那一行。

2. 接著输入小写的 o 在光标 *下方* 打开新的一行并进入插入模式。

3. 然后复制标记有 ---> 的行并按 键退出插入模式而进入正常模式。

---> After typing o the cursor is placed on the open line in Insert mode.

4. 为了在光标 *上方* 打开新的一行,只需要输入大写的 O 而不是小写的 o

就可以了。请在下行测试一下吧。当光标处在在该行上时,按 Shift-O可以

在该行上方新开一行。

Open up a line above this by typing Shift-O while the cursor is on this line.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第六讲第二节∶光标后插入类命令

** 输入 a 将可在光标之后插入文本。 **

1. 请在正常模式下通过输入 $ 将光标移动到本节中下面标记有 ---> 的第一行

的末尾。

2. 接著输入小写的 a 则可在光标之后插入文本了。大写的 A 则可以直接在行

末插入文本。

提示∶输入大写 A 的操作方法可以在行末插入文本,避免了输入 i,光标定位到

最后一个字符,输入的文本, 回复正常模式,箭头右键移动光标以及

x 删除当前光标所在位置字符等等诸多繁杂的操作。

3. 操作之后第一行就可以补充完整了。请注意光标后插入文本与插入模式是基

本完全一致的,只是文本插入的位置定位稍有不同罢了。

---> This line will allow you to practice

---> This line will allow you to practice appending text to the end of a line.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第六讲第三节∶另外一个置换类命令的版本

** 输入大写的 R 可连续替换多个字符。**

1. 请将光标移动到本节中下面标记有 ---> 的第一行。

2. 移动光标到第一行中不同于标有 ---> 的第二行的第一个单词的开始,即单

词 last 处。

3. 然后输入大写的 R 开始把第一行中的不同于第二行的剩余字符逐一输入,就

可以全部替换掉原有的字符而使得第一行完全雷同第二行了。

---> To make the first line the same as the last on this page use the keys.

---> To make the first line the same as the second, type R and the new text.

4. 请注意∶如果您按 退出置换模式回复正常模式,尚未替换的文本将仍

然保持原状。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第六讲第四节∶设置类命令的选项

** 设置可使查找或者替换可忽略大小写的选项 **

1. 要查找单词 ignore 可在正常模式下输入 /ignore 。要重复查找该词,可以

重复按 n 键。

2. 然后设置 ic 选项(ic就是英文忽略大小写Ignore Case的首字母缩写词),即

输入∶

:set ic

3. 现在可以通过键入 n 键再次查找单词 ignore。重复查找可以重复键入 n 键。

4. 然后设置 hlsearch 和 incsearch 这两个选项,输入以下内容∶

:set hls is

5. 现在可以再次输入查找命令,看看会有什么效果∶

/ignore

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第六讲小结

1. 输入小写的 o 可以在光标下方打开新的一行并将光标置于新开的行首,进入

插入模式。

输入大写的 O 可以在光标上方打开新的一行并将光标置于新开的行首,进入

插入模式。

2. 输入小写的 a 可以在光标所在位置之后插入文本。

输入大写的 A 可以在光标所在行的行末之后插入文本。

3. 输入大写的 R 将进入替换模式,直至按 键退出替换模式而进入正常

模式。

4. 输入 :set xxx 可以设置 xxx 选项。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第七讲∶在线帮助命令

** 使用在线帮助系统 **

Vim 拥有一个细致全面的在线帮助系统。要启动该帮助系统,请选择如下三种方

法之一∶

- 按下 键 (如果键盘上有的话)

- 按下 键 (如果键盘上有的话)

- 输入 :help <回车>

输入 :q <回车> 可以关闭帮助窗口。

提供一个正确的参数给":help"命令,您可以找到关于该主题的帮助。请试验以

下参数(可别忘了按回车键哦。∶

:help w <回车>

:help c_

相关阅读 更多 +
排行榜 更多 +
河马救主

河马救主

飞行射击 下载
冷酷的狙击手

冷酷的狙击手

飞行射击 下载
多普莱斯世界免广告版下载

多普莱斯世界免广告版下载

模拟经营 下载