实验1——linux基本命令——计师2班白涵冰

时间:2024.5.2

西北师范大学计算机科学与工程学院学生实验报告


第二篇:实验02 Linux基本命令


实验02 Linux基本命令

登录桌面环境

pwd显示当前目录

ls显示目录 dir

ls –a显示全部内容

注意以点开头是一个隐藏文件

Man ls详细用法手册

空格翻页,PageUp或pageDown

浏览完毕,点Q键退出

建立自己的私人目录

mkdir test创建的目录test

ls显示是否创建有目录test

cd test进入自己创建的目录test

在命令提示符之前有了一个目录test

可以用pwd命令进行查看

在test目录中创建自己的文件

用touch 创建一个空文件,或者修改文件的访问时间等等

Touch newfile创建一个空文件newfile

没有文件内容,也没有文件类型

Ls 查看

文件复制

Cp /etc/profile .

原始目录 目标目录(.表示当前目录)

Ls

Cp profile newfile

由于之前有一个newfile文件,将提醒我们是否覆盖newfile?

如果要覆盖可以写y

(将profile文件中内容复制到了newfile文件中)

ll 简单的检查

并不是linux下一个基本的命令,它实际上是ls -l的一个别名。

以长格式列出当前目录中具体内容

文件类型权限 链接数 属主 属组 大小

修改日期 时间  文件名称

Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便。
如果要使用此命令,可以作如下修改:
打开 ~/.bashrc
找到 #alias ll=’ls -l’,去掉前面的#就可以了。(关闭原来的终端才能使命令生效)
这样个人用户可以使用ll命令,当切换成超级用户后,使用ll命令时提示找不到命令,那是因为你只是修改了个人用户的配置,所以,切换成root后做相同的操作即可解决问题。
启示:我们可以通过修改~/.bashrc添加任何其他的命令别名。

linux中ll命令后total数字的含义

在root目录下用mkdir tmp后

[root@localhost ~]mkdir tmp

[root@localhost ~]ll

发现tmp的大小为4096

但是[root@localhost ~]ll tmp

显示total 0

不明白怎么回事,然后看到下面的这篇文章有了一定的了解,现转过来:

当创建一个文件的时候,系统保存了有关该文件的全部信息,包括:
? 文件的位置。
? 文件类型。
? 文件长度。
? 哪位用户拥有该文件,哪些用户可以访问该文件。
? i节点。
? 文件的修改时间。
? 文件的权限位。

让我们用touch命令创建一个文件:

$ touch temp


创建了一个空文件,现在用ls -l命令查看该目录下文件的属性(我这里用中文版):
如下:

[root@Linux_chenwy temp]# ls -l
总用量 36
-rw-r–r–    1 root     root        34890 10月 19 20:17 httpd.conf
-rw-r–r–    1 root     root            0 10月 19 20:16 temp

代码含义

总用量 36:是ls所列出的入口占用空间的字节数(以K为单位)。
1该文件硬链接的数目。
root文件的属主。
root文件的属主r o o t所在的缺省组(也叫做r o o t )。
34890用字节来表示的文件长度,记住,不是K字节!
10月 19 20:17文件的更新时间。
temp or httd.conf 文件名。

BTW:要检查该目录所有文件占用的空间应该用这个命令:du。
譬如说前面说的36是如何计算出来:
首先我们要先了解你所用的文件系统的IO BLOCK(中文叫作簇)为多少,在你所使用的这个文件系统的IO BLOCK大小是4096 Bytes。

他意义是文件系统最小的读写及分配单位,每次读写操作你都不能小于这个尺寸。即使你的文件是只有一个字节。而且文件在硬盘上的存储也是以这个为单位,就是说如果文件尺寸小于这个值,那么它在磁盘上占用的空间就是4096字节。

占用空间的具体算法是:(进一(文件尺寸/4096))×4096。根据这个你就可以计算出你所列举的例子中的文件的空间使用状况:34890除以4096,大约等于8.5,进一法取得为9,就是说文件在磁盘上占用了9个BLOCk,每个BLOCK为4K,所以这两个文件占用的空间就是36K。

这个规则也适合于目录,不过不会出现为0的目录,即使是空目录


从这里开始学习Linux命令,本课程让你更清楚地了解和掌握它,在Linux中命令是讲究大小写的,所以请管好你的Caps Lock键。

不用担心,Linux命令说到底是几个字母的东西,你能学好它的,好,现在你找一个叫系统终端的东西,输入cal就行,出来的是什么,是当前月份的月历,就从这里开始吧。很简单的吧,再输入cal 2008,看到了吧,找出奥运会举办的日子。这只是非常简单的,你能学会的,shell是Linux四个主要部分之一,其实上Shell是一个命令解释器。

在学习Linux的过程中,经常会听到Shell这个词。可能大家在使用Windows的时候有这种感觉,我要听歌,我打开一个播放器,那么音箱就可以出声音,要打印一片文档,我们只要在程序中点击一下打印按钮,打印就会自动的把文档打印出来。但是我们并没有自己手动的控制音箱和打印机等硬件设备,是因为系统已经为我们作好了。其实我们可以把Windows叫做Shell,我们不用知道打印机的原理,也不需要自己控制它,我们只需要轻轻的点击一下鼠标,系统为我们来控制这些硬件设备。

Shell所起到的作用:

当用户使用系统,其实在和Shell在打交道,我们的Windows已经把各种各样的功能用图形表示出来了,当用户发出指令,其实先将这些指令发送给Shell,然后由Shell将用户的指令翻译后传送给内核,再由内核来控制硬件的工作。然后内核将硬件的工作情况发送个Shell,最后有Shell返回硬件的工作信息和情况。

这样一解释,大家应该明白其实Shell,就是一个工作环境,就像Windows系统一样,如果没有这个系统,那么Office软件、Photoshop软件,将无法工作,整个电脑就是一台废铁。也可以说我们在使用电脑的过程就是在和Shell打交道,是一个用户界面。

关机和注销

先看看注销,我们可以使用logout可以退出系统,这个和Windows中的注销是同等效果。用于用户保存自己的资料。

例如[root@Linux ~]# logout

当我们输入这个命令按下Enter之后,我们就又回到我们的登录界面了。

在来看看关机,关闭系统使用Shutdown命令,确保用户和系统的资料完整。只有root用户才能使用这个命令。一般的用户是不允许执行这个命令的。

我们先看看showdown语法:

shutdown [options] when [message]

options: -r 表示重启,-h表示系统服务停滞(halt)后,立刻关机 ,-f表示快速重启

when: 为shutdown指定时间。hh:mm:绝对时间,hh指小时,mm指分钟;如08:30,+m:m分钟后执行,now=+0,也就是立刻执行

message:表示系统的广播信息,一般提示各个用户系统关机或重启,要求用户保存资料后退出。

我们来看看几个例子:

shutdown -h now 立刻关机

shutdown -h 21:30 今天21:30关机

shutdown -h +10 十分钟后关机

shutdown -r now 立刻重启

shutdown -r +10 ‘the system will reboot’ 10分钟后重启,管理员提示用户系统要重启了,便于用户保存工作中的资料。只有root用户才能使用这个命令。

我们shutdown -h now ,看看是不是立刻关机。

显示当前工作目录中的内容

要想知道当前的工作目录中有些什么文件或目录,在Windows的“命令提示符”中要使用“dir”命令,那么在Linux中就要使用“ls”命令,如下所示:

[root@Linux ~]# ls

anaconda-ks.cfg Desktop install.log install.log.syslog

这样屏幕上就立刻显示当前目录下的所有文件及自目录。注意你可能发现“Desktop”显示的颜色是蓝颜色,这里提示大家一下:

白色的文件:一般的文件

蓝色的文件:目录

绿色的文件:可执行文件

这种方法可以最直观的方法来识别文件类型。

直接使用“ls”可能看到的信息有限,为了知道关于文档的更多资料,我们可以增加一个参数“-l”,这样可以看到更多关于文件的信息:

[root@Linux ~]# ls -l

总计 56

-rw------- 1 root root 865 03-15 04:12 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 03-14 20:34 Desktop

-rw-r--r-- 1 root root 27964 03-15 04:12 install.log

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

这样就可以知道文档的权限、拥有者、大小、日期等相关的信息,关于这些信息可能大家一时看不懂,在以后的学习中会讲这些内容的。

“ls -l”有一个简写是“ll”,如下:

[root@Linux ~]# ll

总计 56

-rw------- 1 root root 865 03-15 04:12 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 03-14 20:34 Desktop

-rw-r--r-- 1 root root 27964 03-15 04:12 install.log

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

所显示的和使用“ls -l”一模一样。

显示隐藏的文件

系统中一些文件,和Windows中的系统文件一样,这些文件一般是不显示出来的,那么我们可以使用“-a”参数来显示隐藏的文件。如下所示:

[root@Linux ~]# ls -a

. .chewing .gconfd install.log .redhat

.. .cshrc .gnome install.log.syslog .scim

anaconda-ks.cfg Desktop .gnome2 .lesshst .tcshrc

.bash_history .dmrc .gnome2_private .metacity .thumbnails

.bash_logout .eggcups .gstreamer-0.10 .mozilla .Trash

.bash_profile .esd_auth .gtkrc-1.2-gnome2 .nautilus

.bashrc .gconf .ICEauthority .recently-used.xbel

看看这样显示的文件就比较多了。可以发现,隐藏文件是以“.”开头的文件。这些文件一般都有特殊的作用,如果显示出来,有可能被用户不小心删除。

我们可以结合上面的两个参数来显示目录下的文件,如下所示:

[root@Linux ~]# ls -al

总计 212

drwxr-x--- 18 root root 4096 03-19 05:30 .

drwxr-xr-x 24 root root 4096 03-19 12:21 ..

-rw------- 1 root root 865 03-15 04:12 anaconda-ks.cfg

-rw------- 1 root root 2372 03-19 05:52 .bash_history

-rw-r--r-- 1 root root 24 20##-07-13 .bash_logout

-rw-r--r-- 1 root root 191 20##-07-13 .bash_profile

-rw-r--r-- 1 root root 176 20##-07-13 .bashrc

drwx------ 2 root root 4096 03-14 20:32 .chewing

-rw-r--r-- 1 root root 100 20##-07-13 .cshrc

drwxr-xr-x 2 root root 4096 03-14 20:34 Desktop

-rw------- 1 root root 26 03-14 20:31 .dmrc

drwxr-x--- 2 root root 4096 03-14 20:32 .eggcups

-rw------- 1 root root 16 03-19 05:30 .esd_auth

drwx------ 4 root root 4096 03-19 05:06 .gconf

drwx------ 2 root root 4096 03-19 05:30 .gconfd

drwxr-xr-x 3 root root 4096 03-14 20:32 .gnome

drwx------ 6 root root 4096 03-19 05:30 .gnome2

drwx------ 2 root root 4096 03-14 20:32 .gnome2_private

drwxr-xr-x 2 root root 4096 03-14 20:32 .gstreamer-0.10

-rw-r--r-- 1 root root 81 03-14 20:32 .gtkrc-1.2-gnome2

-rw------- 1 root root 358 03-19 05:30 .ICEauthority

-rw-r--r-- 1 root root 27964 03-15 04:12 install.log

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

-rw------- 1 root root 35 03-19 05:26 .lesshst

drwx------ 3 root root 4096 03-14 20:32 .metacity

drwx------ 3 root root 4096 03-14 20:36 .mozilla

drwxr-xr-x 3 root root 4096 03-19 05:30 .nautilus

-rw-r--r-- 1 root root 1528 03-19 05:30 .recently-used.xbel

drwxr-xr-x 3 root root 4096 03-14 20:32 .redhat

drwx------ 4 root root 4096 03-14 21:06 .scim

-rw-r--r-- 1 root root 129 20##-07-13 .tcshrc

drwx------ 3 root root 4096 03-14 20:33 .thumbnails

drwx------ 2 root root 4096 03-14 20:32 .Trash

这样显示是不是觉得更好呢?(drwx中d表示是目录文件,-表示是普通文件,b表示是快文件,c表示的字符文件,l开头的是连接文件,后面的rwx分别表示是读写执行权限,第一个root表示root用户,第二个root表示是root组,drwx这类有三组,第一组表示自身权限,第二组表示同组权限,第三组表示其他组的权限)

ls–F列出目录下文件名及其目录类型

ls –l详细列出目录下文件的权限、所有者文件大小等详细信息,可以简单输入“ll”

ls –a列出所有文件,包括隐藏文件

ls –t依照最后修改文件时间列出文件名

ls –R列出当前目录和其子目录的文件名

ls –color=never不以颜色方式显示

ls –color=always均以颜色方式显示

ls –color=auto系统自动判断

显示其他目录中的文件

上面都是显示当前工作目录中的文件,如果要显示其他目录中的文件,那么我们只要在“ls”后面加入所要显示的目录的路径。如下所示:

[root@Linux ~]# ls /

bin dev home lost+found misc net proc sbin srv tftpboot usr

boot etc lib media mnt opt root selinux sys tmp var

这样显示的就是“/”目录下的文件。当然我们也可以加入一下参数,如下所示:

[root@Linux ~]# ls -l /

总计 148

drwxr-xr-x 2 root root 4096 03-16 17:05 bin

drwxr-xr-x 4 root root 1024 03-15 03:58 boot

drwxr-xr-x 11 root root 3920 03-19 12:21 dev

drwxr-xr-x 96 root root 12288 03-19 12:21 etc

drwxr-xr-x 4 root root 1024 03-14 20:29 home

drwxr-xr-x 14 root root 4096 03-16 17:04 lib

drwx------ 2 root root 16384 03-15 03:45 lost+found

drwxr-xr-x 2 root root 4096 03-15 04:26 media

drwxr-xr-x 2 root root 0 03-19 12:21 misc

drwxr-xr-x 2 root root 4096 20##-10-11 mnt

drwxr-xr-x 2 root root 0 03-19 12:21 net

drwxr-xr-x 2 root root 4096 20##-10-11 opt

dr-xr-xr-x 83 root root 0 03-19 12:20 proc

drwxr-x--- 18 root root 4096 03-19 05:30 root

drwxr-xr-x 2 root root 12288 03-16 17:05 sbin

drwxr-xr-x 2 root root 4096 03-15 03:50 selinux

drwxr-xr-x 2 root root 4096 20##-10-11 srv

drwxr-xr-x 11 root root 0 03-19 12:20 sys

drwxr-xr-x 2 root root 4096 20##-07-13 tftpboot

drwxrwxrwt 6 root root 4096 03-19 12:21 tmp

drwxr-xr-x 14 root root 4096 03-15 03:54 usr

drwxr-xr-x 25 root root 4096 03-15 04:04 var

加入“-l”参数后,显示的信息还是多多了。

建立目录

当我们工作的需要,建立一个目录的时候,我们可以使用“mkdir”命令来建立一个目录,如下所示:

[root@Linux ~]# mkdir myfile

[root@Linux ~]# ll                          (ll的效果和ls -l一样)

总计 60

-rw------- 1 root root 865 03-15 04:12 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 03-14 20:34 Desktop

-rw-r--r-- 1 root root 27964 03-15 04:12 install.log

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

drwxr-xr-x 2 root root 4096 03-19 12:36 myfile

我们先使用“mkdir myfile”建立了一个名字叫“myfile”的目录,然后我们使用命令验证一下,发现我们已经建立了这个文件夹,可以根据颜色来判断是一个文件夹。

删除目录

如果这个目录不需要了,我们可以使用“rmdir”命令来删除一个目录,用法如下:

[root@Linux ~]# ll

总计 60

-rw------- 1 root root 865 03-15 04:12 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 03-14 20:34 Desktop

-rw-r--r-- 1 root root 27964 03-15 04:12 install.log

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

drwxr-xr-x 2 root root 4096 03-19 12:36 myfile

[root@Linux ~]# rmdir myfile

[root@Linux ~]# ll

总计 56

-rw------- 1 root root 865 03-15 04:12 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 03-14 20:34 Desktop

-rw-r--r-- 1 root root 27964 03-15 04:12 install.log

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

我们先看看当前目录下有一个myfile的目录,我们不需要这个目录了,我们可以使用“rmdir myfile”命令来删除这个目录,然后使用ll命令验证一下。

注意的是,使用这个命令来删除一个目录的时候,那么这个目录下必须是没有任何文件和文件夹的,我们看看如下的操作:

[root@Linux ~]# mkdir myfile

[root@Linux ~]# cd myfile cd命令是切换目录,这里就是进入myfile

[root@Linux myfile]# mkdir one

[root@Linux myfile]# cd .. ..表示当前目录的上一层目录

[root@Linux ~]# rmdir myfile

rmdir: myfile: 目录非空

我们在myfile目录下建立了一个one的目录,当我们删除myfile目录时,提示目录为空,所以必须将这个目录下的所有文件和目录全部删除之后,才能删除这个目录。

切换目录

上面的例子中提到了一个“cd”命令,一般为了工作的需要,我们可能需要到不同的目录中编辑不同的文件,这个时候我们就要在不同的目录中切换了。我们使用“cd”命令可以在不同的目录中切换,如下的操作:

[root@Linux ~]# mkdir one

[root@Linux ~]# mkdir two

[root@Linux ~]# cd one

[root@Linux one]#

我们建立了两个目录“one”和“two”,我们可以使用“cd one”,进入one目录,进入这个目录之后,命令提示符有原来的“[root@Linux ~]”变成了“[root@Linux one]”,提示符中的“one”表示我们在one这个目录中工作了。

我们看看这个目录下有什么文件,为了看看有没有隐藏文件,我们使用“ls -al”命令来看看这个目录。如下操作:

[root@Linux one]# ls -al

总计 12

drwxr-xr-x 2 root root 4096 03-19 12:43 .

drwxr-x--- 20 root root 4096 03-19 12:43 ..

我们发现这个目录下面有两个奇怪的家伙,一个是“.”,一个是“..”。其实这又要讲到路径的知识,路径的表示方法有两种:

A :绝对路径:就是表示出目标文件或子目录的目录树结构。我们这个例子中的目录“one”,的绝对路径表示方法为“/root/one”,如果one目录下还有一个目录xu,那么目录xu的绝对路径就是:“/root/one/xu”。

B :相对路径:就是相对于当前工作目录的路径来表示位置。相对路径中有两个符号,就是“..”,“.”。“..”表示当前当前工作目录的上一层目录。如当前我们处在one目录中,我们作如下操作:

[root@Linux one]# cd ..

[root@Linux ~]#

我们就或发现提示“[root@Linux one]”变为“[root@Linux ~]”。发现现在已经返回到目录one的上一层目录。

“.”表示当前的工作目录。如果当前我们处在one目录中,那么“.”就表示当前的工作目录one。

cd ~ 返回用户宿主目录

cd . 用户的当前目录

cd .. 返回上一级目录

复制文件

工作的时候,有是需要保存文件的一个副本,便于以后还原。我们可以使用“cp”命令,操作如下:

[root@Linux ~]# ll

总计 64

-rw------- 1 root root 865 03-15 04:12 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 03-14 20:34 Desktop

-rw-r--r-- 1 root root 27964 03-15 04:12 install.log

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

drwxr-xr-x 2 root root 4096 03-19 12:43 one

drwxr-xr-x 2 root root 4096 03-19 12:43 two

[root@Linux ~]# cp install.log ./one

[root@Linux ~]# cd one

[root@Linux one]# ll

总计 28

-rw-r--r-- 1 root root 27964 03-19 12:55 install.log

先看看当前目录下有哪些文件,然后我们需要将install.log文件复制一份到one目录中,我们可以使用“cp install.log ./one”就可以了,注意了,这里使用了上面的相对路径中的“.”,表示当前工作目录下的one目录。

然后进one目录,查看一下是否有intsall.log这个文件,可以看到我们已经复制了一份lnstall.log文件。

我们在来试一试,我们将目录one复制到two中,我们看看如下的操作:

[root@Linux ~]# ll

总计 64

-rw------- 1 root root 865 03-15 04:12 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 03-14 20:34 Desktop

-rw-r--r-- 1 root root 27964 03-15 04:12 install.log

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

drwxr-xr-x 2 root root 4096 03-19 12:55 one

drwxr-xr-x 2 root root 4096 03-19 12:43 two

[root@Linux ~]# cp one two

cp: 略过目录 “one”

[root@Linux ~]# cd two

[root@Linux two]# ll

总计 0

发现没有two目录下没有one文件夹,这个时候我们需要使用参数“-r”,看如下操作:

[root@Linux ~]# ll

总计 64

-rw------- 1 root root 865 03-15 04:12 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 03-14 20:34 Desktop

-rw-r--r-- 1 root root 27964 03-15 04:12 install.log

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

drwxr-xr-x 2 root root 4096 03-19 12:55 one

drwxr-xr-x 2 root root 4096 03-19 12:43 two

[root@Linux ~]# cp -r one two

[root@Linux ~]# cd two

[root@Linux two]# ll

总计 4

drwxr-xr-x 2 root root 4096 03-19 13:00 one

看看,在cp命令后面加入参数“-r”之后,就可以用来复制目录了,我们可以进入two目录下的子目录one,会发现原来one目录中的文件也一起被复制了。

最后来看看复制文件并重新命名的新文件,实例如下:

[root@Linux one]# cp install.log install.log.bak

[root@Linux one]# ll

总计 56

-rw-r--r-- 1 root root 27964 03-19 12:55 install.log

-rw-r--r-- 1 root root 27964 03-20 13:10 install.log.bak

这里就是复制了一个文件,并将复制的文件更名,我们可以看到目录下有两个文件了。

移动文件

我们可以使用mv命令将一个文件移动到另外一个目录中,如下操作:

[root@Linux ~]# ll

总计 64

-rw------- 1 root root 865 03-15 04:12 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 03-14 20:34 Desktop

-rw-r--r-- 1 root root 27964 03-15 04:12 install.log

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

drwxr-xr-x 2 root root 4096 03-20 13:10 one

drwxr-xr-x 3 root root 4096 03-19 13:00 two

[root@Linux ~]# mv install.log.syslog ./one

[root@Linux ~]# cd one

[root@Linux one]# ll

总计 68

-rw-r--r-- 1 root root 27964 03-19 12:55 install.log

-rw-r--r-- 1 root root 27964 03-20 13:10 install.log.bak

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

我们将root用户目录下的install.log.syslog,移动到目录one下。除此之外,我们还可以为文件更名,如下操作:

[root@Linux one]# ll

总计 68

-rw-r--r-- 1 root root 27964 03-19 12:55 install.log

-rw-r--r-- 1 root root 27964 03-20 13:10 install.log.bak

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

[root@Linux one]# mv install.log install.sys

[root@Linux one]# ll

总计 68

-rw-r--r-- 1 root root 27964 03-20 13:10 install.log.bak

-rw-r--r-- 1 root root 5069 03-15 04:11 install.log.syslog

-rw-r--r-- 1 root root 27964 03-19 12:55 install.sys

我们将install.log这个文件名称变为了install.sys。

创建文件

这个和前面的创建目录是有区别的,创建文件是指创建一个一般的普通文件,并且这个文件为空,我们可以使用touch命令来建立一般文件,如下操作:

[root@Linux two]# touch 111.txt

[root@Linux two]# touch 112.txt

[root@Linux two]# touch 113.txt

[root@Linux two]# ll

总计 0

-rw-r--r-- 1 root root 0 03-20 13:26 111.txt

-rw-r--r-- 1 root root 0 03-20 13:26 112.txt

-rw-r--r-- 1 root root 0 03-20 13:26 113.txt

这样我们就创建了三个文件。

删除文件

使用rm命令来删除文件,和前面的rmdir有点区别,不过rm也可以实现删除目录,我们来看看实际的操作:

[root@Linux two]# ll

总计 0

-rw-r--r-- 1 root root 0 03-20 13:26 111.txt

-rw-r--r-- 1 root root 0 03-20 13:26 112.txt

-rw-r--r-- 1 root root 0 03-20 13:26 113.txt

[root@Linux two]# mkdir one

[root@Linux two]# ll

总计 4

-rw-r--r-- 1 root root 0 03-20 13:26 111.txt

-rw-r--r-- 1 root root 0 03-20 13:26 112.txt

-rw-r--r-- 1 root root 0 03-20 13:26 113.txt

drwxr-xr-x 2 root root 4096 03-20 13:27 one

[root@Linux two]# rm 111.txt

rm:是否删除 一般空文件 “111.txt”? y

[root@Linux two]# ll

总计 4

-rw-r--r-- 1 root root 0 03-20 13:26 112.txt

-rw-r--r-- 1 root root 0 03-20 13:26 113.txt

drwxr-xr-x 2 root root 4096 03-20 13:27 one

我们先查看目录下的文件,然后删除这个目录下的文件111.txt,删除的时候,提示我们是否要删除文件,我们输入“y”,然后删除文件,删除之后,我们查看这个文件夹下的文件,发现少了111.txt文件。

如果我们不需要系统提示我们就要增加一个参数“-f”,这样只要输入命令之后,系统直接删除文件。看如下操作:

[root@Linux two]# rm -f 112.txt

[root@Linux two]# ll

总计 4

-rw-r--r-- 1 root root 0 03-20 13:26 113.txt

drwxr-xr-x 2 root root 4096 03-20 13:27 one

这样增加参数后,系统没有提示用户,直接删除了文件。

我们在来看看如何删除这个文件下的目录,增加参数“-r”就可以了,看如下操作:

[root@Linux two]# ll

总计 4

-rw-r--r-- 1 root root 0 03-20 13:26 113.txt

drwxr-xr-x 2 root root 4096 03-20 13:27 one

[root@Linux two]# rm -rf one

[root@Linux two]# ll

总计 0

-rw-r--r-- 1 root root 0 03-20 13:26 113.txt

这样,这个目录下的one目录就被删除了。

通配符

以上所有的操作我们好像都只能操作一个文件,当我们要同时对多个文件进行操作的时候,我们就可以使用通配符,这些符号不是作为普通的文字来使用,而是来代替文键名称的字符串。我们来看看Linux下的几种通配符,和他们的含义:

A:* :任何字符和字符串。

B:? :一个任意字符

C:[abc...] :[]内的任意一个字符。[abc]表示a、b、c任一个字符;有时候也表示范围,如[a-x],表示a到x的任一个字符;[1-9]表示1到9的任一数字。

D:[!abc...]:和上面的相反,表示除[]内的字符外的任意一个字符。

我们来分别看看这些符号的实际操作中的实例:

[root@Linux two]# ll

总计 0

-rw-r--r-- 1 root root 0 03-20 20:08 111.txt

-rw-r--r-- 1 root root 0 03-20 20:08 112.txt

-rw-r--r-- 1 root root 0 03-20 20:08 113.txt

[root@Linux two]# rm 1*.txt

rm:是否删除 一般空文件 “111.txt”? y

rm:是否删除 一般空文件 “112.txt”? y

rm:是否删除 一般空文件 “113.txt”? y

[root@Linux two]# ll

总计 0

这样只要是以“1”开头的文件全部删除。我们在来看下面的操作:

[root@Linux two]# ll

总计 0

-rw-r--r-- 1 root root 0 03-20 20:09 111.txt

-rw-r--r-- 1 root root 0 03-20 20:09 112.txt

-rw-r--r-- 1 root root 0 03-20 20:09 113.txt

-rw-r--r-- 1 root root 0 03-20 20:10 121.txt

[root@Linux two]# rm -f 11?.txt

[root@Linux two]# ll

总计 0

-rw-r--r-- 1 root root 0 03-20 20:10 121.txt

这样就删除了以“11”开头的文件,我们还是以上面的例子在看:

[root@Linux two]# ll

总计 0

-rw-r--r-- 1 root root 0 03-20 20:11 111.txt

-rw-r--r-- 1 root root 0 03-20 20:11 112.txt

-rw-r--r-- 1 root root 0 03-20 20:11 113.txt

-rw-r--r-- 1 root root 0 03-20 20:10 121.txt

[root@Linux two]# rm -f 11[1-3].txt

[root@Linux two]# ll

总计 0

-rw-r--r-- 1 root root 0 03-20 20:10 121.txt

这样就删除了以“11”开头,后面是以1、2、3结尾的文件。最后我们来看:

[root@Linux two]# ll

总计 0

-rw-r--r-- 1 root root 0 03-20 20:13 111.txt

-rw-r--r-- 1 root root 0 03-20 20:13 112.txt

-rw-r--r-- 1 root root 0 03-20 20:13 113.txt

-rw-r--r-- 1 root root 0 03-20 20:10 121.txt

[root@Linux two]# rm -f 1[!1]*.txt

[root@Linux two]# ll

总计 0

-rw-r--r-- 1 root root 0 03-20 20:13 111.txt

-rw-r--r-- 1 root root 0 03-20 20:13 112.txt

-rw-r--r-- 1 root root 0 03-20 20:13 113.txt

这样就删除了第二个字符不是为“1”的任何文件。

有了通配符,我们就可以针对多个文件一起进行操作。

pwd

如果切换目录次数太多,可能不知道自己在那个目录,那么就可以使用pwd命令,显示当前所在的目录。是print working directory的缩写。看如下操作:

[root@Linux ~]# pwd

/root

[root@Linux ~]# cd one

[root@Linux one]# pwd

/root/one

[root@Linux one]# cd ../two

[root@Linux two]# pwd

/root/two

这样就很清楚自己在那个目录下工作了。

增加用户

我们来看看增加用户的操作。到目前为止,我们都是使用的root用户登录系统,由于root这个用户的权限非常的高,可以进行任何的操作,所以有的时候,可能破坏系统。如前面的操作,如果执行了一个“rm -rf /*”这个命令,这样就会把“/”下面的文件全部删除。我们如果使用一般的用户,我们还是可以执行大部分的程序,除了少数的一些管理员的命令不能执行外,一些目录不能进行操作外,其他的操作我们都可以。所以建议:在使用一般操作的时候,我们使用一般用户,如果需要对系统进行维护,我们就使用root用户。

现在来看看如何增加一般用户。看如下操作:

[root@Linux one]# useradd user1

我们就为系统增加了一个用户“user1”,z增加完用户后,我们需要对用户设置密码,看如下操作:

[root@Linux one]# passwd user1

Changing password for user user1.

New UNIX password: <--这里输入用户的密码

BAD PASSWORD: it is too simplistic/systematic

Retype new UNIX password: <--再次输入上面的密码

passwd: all authentication tokens updated successfully. <--提示用户设置密码成功

注意设置密码的时候,为了安全,一般不显示任何的字符。

这里我们知道了使用“useradd”命令来增加用户,使用“passwd”命令来为用户设置密码。到此,我们就为系统增加了一个用户“user1”,下次登录的时候,我们就可以使用这个用户了。

注意,这里只有root用户可以设置其他用户的密码,一般用户登录后可以更改自己的密码,但不能更改别人的密码。看如下操作:

[user1@Linux ~]$ passwd root

passwd: Only root can specify a user name.

提示只有root用户才能更改自己的密码。我们在来看看用户更改自己的密码:

[user1@Linux ~]$ passwd

Changing password for user user1.

Changing password for user1

(current) UNIX password: <--输入当前的密码

New UNIX password: <--输入新密码

BAD PASSWORD: is too simple <--提示密码太简单

New UNIX password:      <--输入复杂的新密码

Retype new UNIX password:  <--再次输入上面输入的密码

passwd: all authentication tokens updated successfully.  <--提示密码更改成功

这个时候passwd后面不需要跟用户名称。

搜索文件

我们先来学习一下如何搜索文件,特别是刚开始学习Linux的时候,自己建立的文件不知道放在哪里了,常有发生。如果知道文件名,却不知道文件在那个目录下面了,我们就可以使用locate命令来搜索文件。看如下操作:

[root@Linux one]# locate install.log

/root/install.log

/root/install.log.syslog

看一下,我们一下就搜索了两个与install.log相关的文件,他们都在/root目录下,同时我们感觉到,使用这个命令搜索文件的速度比较快,其实要使用这个命令,必须配合数据库来使用,因为这个命令是从数据库中来搜索文件,这个数据库的更新速度是7天更新一次。如下操作:

[root@Linux one]# touch 001.txt

[root@Linux one]# locate 001.txt

发现这个命令找不到新建立的文件,所以我们要使用这个命令搜索文件之前,必须自己更新一下数据库,如下操作:

[root@Linux one]# updatedb

[root@Linux one]# locate 001.txt

/root/one/001.txt

看看,如果执行updatedb这个命令更新数据库之后,我们就可以找到我们所需要的数据。不过更新数据库的时间需要一段时间。

find命令

find命令的在查找文件或目录的功能非常强大,可以根据文件的大多数属性来查找文件,它的使用形式也是多变的,基本命令格式:

find [path] [expression] 使用这条命令最常用的是按照文件名查找,文件名表达式的格式为:-name 文件名,其中文件名可以使用*或?通配符进行表示。符合条件的将被显示出来。

我们在查找的过程中会发现它的查找速度相当的慢,而且这条命令十分耗硬盘。所以这条命令虽然功能十分的强大,但是最好先使用其它命令查找不到的时候使用。

其它可选选项:

-adminN 在过去N分钟内读过的文件

-anewerFILE 比文件FILE更晚读取的文件

-cnewer FILE 比文件FILE更新的文件

-atime[士]N 在过去N天以内(-)或以外(+)读取过的文件

-cmin[士]N 在过去N分钟以内(-)或以外(+)修改过的文件

-ctime[士]N 在过去N天以内(-)或以外(+)修改过的文件

-empty 空文件

-gN 组id号是N的文件

-groupNAME 组名是NAME的文件

-ipath P,path P 路径名符合P的文件,ipath会忽略大小写

-name NAME,-iname NAME 文件名称符合NAME的,iname会忽略大小写。

-sizeN[b|c|k|w] 文件大小是N,单位b代表512位的块,c表示一个char,k表示kilobytes,w是一个word。

-typeT 文件类型是T的文件,文件类型有d目录、c字符设备文件、 b块设备文件、f普通文件、l符号链接、s套接字文件。

-mount,-xdev 只检查和指定目录在同一个文件系统中的文件,避免列出其它文件系统中的文件。

显示文件内容-cat

是直接显示文件的内容到屏幕上,如下操作:

[root@Linux ~]# cat install.log

安装 vnc - 4.1.2-9.el5.i386

安装 screen - 4.0.3-1.el5.i386

安装 scim-bridge-gtk - 0.4.5-7.el5.i386

安装 scim-tables-chinese - 0.5.6-7.i386

安装 minicom - 2.1-3.i386

安装 Deployment_Guide-zh-CN - 5.0.0-19.noarch

安装 Deployment_Guide-zh-TW - 5.0.0-19.noarch

安装 scim-pinyin - 0.5.91-15.el5.i386

安装 scim-chewing - 0.3.1-10.el5.i386

安装 scim-chinese-standard - 0.0.2-1.el5.i386

安装 vim-X11 - 2:7.0.109-3.i386

安装 gftp - 1:2.0.18-3.2.2.i386

安装 gtkspell - 2.0.11-2.1.i386

安装 openldap-clients - 2.3.27-5.i386

安装 nmap - 2:4.11-1.1.i386

安装 OpenIPMI-tools - 2.0.6-5.el5.3.i386

安装 dhcp - 12:3.0.5-3.el5.i386

安装 zsh - 4.2.6-1.i386

安装 xchat - 1:2.6.6-8.el5.i386

安装 fonts-chinese - 3.02-9.6.el5.noarch

安装 stardict - 2.4.5-5.i386

安装 system-config-bind - 4.0.3-2.el5.noarch

前面的内容比较多,用“...”省略,我们只看到了这个文件的后面的部分,由此可以知道,这个命令适合于显示内容少于屏幕所能显示的最大行数。

这个命令比较有意思,写法是将cat反过来些,并且它和cat命令的功能刚好相反,是以文件的最后一行开始到文件的第一行反向的显示到屏幕。

显示文件内容-more

cat命令我们只能看到文件的部分或者只能看比较小的文件,那么more解决这个问题,操作如下:

[root@Linux ~]# more install.log

安装 libgcc - 4.1.1-52.el5.i386

warning: libgcc-4.1.1-52.el5: Header V3 DSA signature: NOKEY, key ID 37017186

安装 setup - 2.5.58-1.el5.noarch

安装 filesystem - 2.4.0-1.i386

安装 basesystem - 8.0-5.1.1.noarch

安装 tzdata - 2006m-2.fc6.noarch

安装 glibc-common - 2.5-12.i386

安装 glibc - 2.5-12.i686

安装 glib2 - 2.12.3-2.fc6.i386

安装 zlib - 1.2.3-3.i386

安装 chkconfig - 1.3.30.1-1.i386

安装 atk - 1.12.2-1.fc6.i386

安装 popt - 1.10.2-37.el5.i386

安装 libICE - 1.0.1-2.1.i386

安装 libSM - 1.0.1-3.1.i386

安装 libstdc++ - 4.1.1-52.el5.i386

安装 libart_lgpl - 2.3.17-4.i386

安装 mktemp - 3:1.5-23.2.2.i386

安装 audit-libs - 1.3.1-1.el5.i386

安装 libusb - 0.1.12-5.1.i386

安装 bzip2-libs - 1.0.3-3.i386

安装 libpng - 2:1.2.10-7.i386

安装 libattr - 2.4.32-1.1.i386

--More--(2%)

注意最下面显示了一个提示,表示只显示这个文件的2%,按下空格键就翻下一页,当内容显示完后,就自动的退出,还可以按下“Q”键也可以退出。

nl命令

nl命令查看文件的同时可以显示行号,用法和cat –n相似。

显示文件内容-less

more虽然可以显示比较大的文件,但是也有一个缺点,就是不能向上翻页,看过的内容要重新看,必须在重新运行命令。less就解决了more命令这个命令的不足。看如下操作:

[root@Linux ~]# less install.log

安装 libgcc - 4.1.1-52.el5.i386

warning: libgcc-4.1.1-52.el5: Header V3 DSA signature: NOKEY, key ID 37017186

安装 setup - 2.5.58-1.el5.noarch

安装 filesystem - 2.4.0-1.i386

安装 basesystem - 8.0-5.1.1.noarch

安装 tzdata - 2006m-2.fc6.noarch

安装 glibc-common - 2.5-12.i386

安装 glibc - 2.5-12.i686

安装 glib2 - 2.12.3-2.fc6.i386

安装 zlib - 1.2.3-3.i386

安装 chkconfig - 1.3.30.1-1.i386

安装 atk - 1.12.2-1.fc6.i386

安装 popt - 1.10.2-37.el5.i386

安装 libICE - 1.0.1-2.1.i386

安装 libSM - 1.0.1-3.1.i386

安装 libstdc++ - 4.1.1-52.el5.i386

安装 libart_lgpl - 2.3.17-4.i386

安装 mktemp - 3:1.5-23.2.2.i386

安装 audit-libs - 1.3.1-1.el5.i386

安装 libusb - 0.1.12-5.1.i386

安装 bzip2-libs - 1.0.3-3.i386

安装 libpng - 2:1.2.10-7.i386

安装 libattr - 2.4.32-1.1.i386

install.log

最下面显示的是这个文件的名称,我们可以使用“PageUp”和“PageDown”可以进行上一页和下一页的翻页。如果要知道具体的控制键,我们可以按下“H”键,可以显示less命令的所有控制键,如果想结束,可以按“Q”键。

显示文件内容-head和tail

上面是最常用的几个显示文件内容的命令,这里还介绍两个显示文件内容的命令,分别是head和tail命令,head是显示文件的头几行,tail是显示文件的末尾几行,默认情况下,都是10行。看如下操作:

[root@Linux ~]# head install.log

安装 libgcc - 4.1.1-52.el5.i386

warning: libgcc-4.1.1-52.el5: Header V3 DSA signature: NOKEY, key ID 37017186

安装 setup - 2.5.58-1.el5.noarch

安装 filesystem - 2.4.0-1.i386

安装 basesystem - 8.0-5.1.1.noarch

安装 tzdata - 2006m-2.fc6.noarch

安装 glibc-common - 2.5-12.i386

安装 glibc - 2.5-12.i686

安装 glib2 - 2.12.3-2.fc6.i386

安装 zlib - 1.2.3-3.i386

[root@Linux ~]# tail install.log

安装 gtkspell - 2.0.11-2.1.i386

安装 openldap-clients - 2.3.27-5.i386

安装 nmap - 2:4.11-1.1.i386

安装 OpenIPMI-tools - 2.0.6-5.el5.3.i386

安装 dhcp - 12:3.0.5-3.el5.i386

安装 zsh - 4.2.6-1.i386

安装 xchat - 1:2.6.6-8.el5.i386

安装 fonts-chinese - 3.02-9.6.el5.noarch

安装 stardict - 2.4.5-5.i386

安装 system-config-bind - 4.0.3-2.el5.noarch

分别显示的是这个文件的前10行与后10行。

which命令

which的基本功能是通过环境变量PATH到该路径内寻找可执行文件,所以用于查找可执行文件。其实这个时候想一想,怎样可以看出文件是可执行文件,我在前面已经介绍了一种方法,学习就是结合起来运用。在我们还不熟悉这个系统的时候,我们可以先在某个目录查看一下是否有可执行文件,然后在使用which验证。

whereis命令

whereis可以迅速的找到文件,而且还提供了这个文件的二进制可执行文件、源代码文件和使用手册页存放位置。

我们可以看到inittab是存放在子目录/etc下,而且他的使用手册在/usr/share/man/man5下的inittab.5.gz

mount命令

mount命令用于物理设备(例如:光盘、U盘、硬盘)中的文件系统挂载到linux文件系统的某个目录中,在mount命令不使用任何选项和参数的时候将显示当前linux系统中以挂载的文件系统信息。首先介绍光盘的挂载方法:

mount命令的功能强大,命令格式也比较丰富。但是常用挂载文件系统命令格式:mount –t type dev dir

其中–t type选项指出需要挂载的文件系统类型,光盘文件系统类型是:iso9660;dev表示需要挂载文件系统的设备名称,光盘驱动器的设备名称是/dev/cdrom; dir表示挂载点,即挂载到的文件目录路径。光盘设备在linux as4中系统中的默认路径是/media/cdrom。

由于光盘是只读的存储介质,因此mount命令在挂载光盘的时候会提示光盘一只读(read-only)模式进行挂载,挂载后使用mount命令查看已挂载的文件系统,可以在最后一行看到设备的挂载信息,证明挂载成功。

在linux系统中,USB设备被视为SCSI设备,使用这个设备文件的格式为“sdX”系统中的第一个SCSI设备表示为“sda”第二个表示为“sdb”由于我使用的系统硬盘是串口硬盘,所以我的U盘被识别为“sdb”

U盘设备插入系统后每次分配的设备文件名是不固定的,依赖于当前系统拥有几个SCSI设备,在不确定设备名称时,我们可以使用“fdisk -l”命令,列出系统中所有存储设备:

如果当前设备文件名是“/dev/sdb”,U盘上唯一的主分区设备文件的名称是“/dev/sdb1”,分区中的文件系统类型是fat。知道这些以后我们就可以使用mount命令挂载U盘到当前文件系统。“/mnt”目录通常用于挂载系统中临时使用的文件系统,可以将“/mnt”目录作为U盘系统的挂接点。使用“vfat”文件系统类型表示所有的fat文件系统类型,包括fat16和fat32,ntfs还是使用ntfs表示。

例子:

mount 192.168.0.16:/  /mnt(把IP为192.168.0.16的/根目录挂载到当前系统的、mnt下)

读取光盘中的内容非常的简单了,使用mount命令挂载后,可以访问挂载目录完成对光盘中内容的读取。

umount命令

umount命令用于卸载已经挂载的文件系统,基本格式如:umount dir device […]使用umount卸载文件系统可以指定挂载设备文件名或挂载目录作为参数,可以将卸载指定的设备或挂载点目录上的文件系统。

umount 192.168.0.16:/  /mnt(卸载挂载)

对于光盘文件系统的卸载可以使用,以下两条命令中的任意一条:注意在卸载的时候要退出光盘的挂载目录,否则提示文件系统在使用。

eject命令

使用eject命令可以将光盘驱动器中的光盘轻轻弹出和收回,不必使用光盘驱动器的弹出按钮

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/LUOPING198410/archive/2009/07/22/4369861.aspx

更多相关推荐:
linux学习心得

Linux学习心得我们这一代90后从小接触的是windows98家里条件好的自己有电脑装的是20xx后来又有了XP上大学时又有了win7说实话小时候没想过搞IT也计算机了解也只是一些皮毛至于什么UNIXLinu...

Linux实验报告

Linux操作系统实验报告实验编号实验编号实验名称实验名称实验1Linux安装实验2掌握虚拟机的使用实验目的1熟练掌握Linux系统的安装实验目的实验任务1虚拟机的使用实验任务2安装RedHatLinux90操...

linux实验报告

LINUX实验报告专业班级学号姓名实验一实验名称Linux基本命令的使用实验时间2学时实验目的熟练使用Linux字符界面窗口系统的常用命令实验内容一Linux操作基础1重新启动linux或关机poweroffs...

linux 实验资料总结

Linux考试实验1修改运行级别,级别切换:(1)vi/etc/inittab将5改为3(2)reboot2修改root密码:进入grub界面后按e选第二行后按e然后在后面+空格+1然后回车按b然后是passw…

Linux实验报告

课程编号B080103040Linux操作系统实验报告东北大学软件学院实验一熟悉Linux环境实验内容一练习常用的Shell命令当用户登录到字符界面系统或使用终端模拟窗口时就是在和称为shell的命令解释程序进...

linux实验报告

学生实验报告20xx20xx学年第二学期一实验目的1掌握Linux操作系统中多线程编程的基本原理和方法2学会利用创建多线程实现单词统计二实验原理1多线程编程线程在进程的基础上作进一步抽象也就是说一个进程分为两个...

操作系统实验报告-Linux操作、使用、编程)

实验报告20xx20xx学年第二学期课程名称实验名称实验时间指导单位操作系统ALinux操作使用编程20xx年5月6日计算机学院计算机科学与技术系指导教师徐小龙学生姓名学院系陈坤通达学院班级学号专业100029...

linux进程线程管理实验报告

西安郵電學院操作系统LINUX实验报告题题题系部名称专业名称班级学号学生姓名时间目1进程目2线程管理目3互斥计算机学院软件工程080204085048郭爽乐20xx1031实验一进程管理一实验目的通过观察分析实...

linux实验报告

西安郵電學院Linux实验报告题目1进程题目2线程题目3互斥系部名称专业名称班级学号计算机学院软件工程080204085047学生姓名指导教师时王晶晶陈莉君20xx年10月29号11月9号间实验1进程11实验目...

linux网络编程实验报告

河南师范大学设计性实验报告Linux网络编程实验河南师范大学综合性、设计性实验项目简介学院名称(公章):软件学院20##-20##学年第一学期填表日期:20##年12月10日注:开课时间填本实验项目所有实验班的…

linux课程实验报告ww - 副本 (2)

eeeasfasdfaswwweee实验内容21安装Apache软件22配置www服务器23建立个人web站点24建立虚拟主机25linux下dns架设26apachemysqlphp2实验原理21WWW原理2...

linux课程实验报告ww - 副本 (6)

sadfawerfreeewwweee实验内容21安装Apache软件22配置www服务器23建立个人web站点24建立虚拟主机25linux下dns架设26apachemysqlphp2实验原理21WWW原理...

linux实验心得(22篇)