ubuntu基本命令

来源:互联网 发布:ubuntu系统默认字体 编辑:程序博客网 时间:2024/05/29 14:45

7.1  基本命令

Ubuntu的命令较多,但是对于一些常用的系统操作,无非就是一些创建、查看、移动、复制等,本小节先熟悉一下这些基本命令。在学习这些基本命令 之前,应该先了解一下Linux的一些特性和在Linux中命令的执行方式。

在Linux中,所有设备都是用文件名来表示的,就像我们在分区时所了解的那样,这与我们所熟悉的Windows系统有很大不同,Linux中并没 有所谓C盘、D盘之类的说法,并且在Linux中只有文件和目录(相当于Windows中的文件夹),所有文件和目录都以倒树状结构挂载在“/”(读做根 目录)目录下,也正是因此Linux系统的管理员称为root(树根),如图7-1所示。这稍后在第12章“文件系统管理”一章还会详细介绍,现在大家只 是有个概念即可。

图7-1  Linux文件系统结构当 使用命令行进行操作时,首先要知道命令行的环境所代表的含义,如下所示:
[root@localhost: /etc #我一下  |      |      |  用户名 主机名 当前目录
需要说明的一点是,对于普通用户来说,提示符“#”显示为“$”。在Linux中如果 要执行一个命令则可以通过如下方式:
# 命令名  [-选项]  参数


需要注意的是,命令名、选项或者参数之间都是至少要有一个空格,多个空格没有关系,选项不是必需的。当有多个选项时,可以写在一起。因为 Linux基本是由C语言编写的,所以无论命令名或选项,Linux都是严格区分大小写的。

在了解了以上基本的内容后,下面就来详细地介绍Linux的基本命令。

7.1.1  列出文件清单命令:ls

ls命令能够列出当前目录下的所有内容。ls 命令的执行方式为:

# ls  [-选项]  [文件名或者目录名]

进入到Linux命令行中后,我们至少要知道当前所处的位置有哪些内容,这些信息就可以使用ls命令来获得。它有很多的命令选项,并且选项之间可以 互相组合使用,我们只列出其中常见的一些

-l   列出要查看内容的详细信息,包括文件名、文件大小、访问权限和所有者等信息

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

-R 列出当前目录下的所有内容,并且将子目录的内容也一起列出来

-d 仅列出目录本身,而不显示当前目录下的内容。

在Linux中,ls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容。如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录 名,例如,想要查看/etc目录下的内容,可以使用下列命令:
# ls /etc

如果想要列出当前目录下所有文件,则可以使用下列命令:

# ls -a
结果图7-2所示。
 图7-2  ls -a命令执行结果

读者可能会发现里面有很多以“.”为开头的文件或者目录,在Linux中,如果一个文件名(目录名)以“.”开头则表示它是隐藏文件(目录)。并且 在默认情况下,蓝色代表一个目录,白色代表一个普通文件。

提示:

在Ubuntu中,在默认情况下蓝色代表目录,白色代表普通文件,红色代表压缩文件或者软件包,绿色代表可执行文件,浅蓝色代表链接文件,黄色代表 设备文件等。但是这并不是在所有情况下都是有效的,之所以能以颜色区分,是因为在执行命令“ls -l”时,实际上是执行了“ls --color=auto”命令,可以使用alias命令进行查看,这种设置命令别名的方式在第9章会详细介绍。如果要想确切地知道到底是文件还是目录, 可以通过ls –l命令,首行字母为“d”则为目录,首行字母为“-”的即为文件,首行字母为“l”的为软链接文件。

7.1.2  改变当前路径命令:cd

cd命令能够改变当前用户所处的位置。cd命令比较简单,其命令执行的方式为:

# cd 路径

使用cd命令之前,先来了解一下绝对路径和相对路径的概念。

我们知道,Ubuntu中所有文件或者目录都挂载在“/”目录下,所以如果一个文件或者目录的详细位置是从“/”开始的话,这样的路径称为绝对路 径,如/etc/init.d/lvm。如果路径不是从根写起,则称之为相对路径,例如,现在所处的位置为/etc目录中,如果现在要进入init.d目 录中,则可以执行如下命令:

# cd init.d


这种不是从根目录写起的路径称为相对路径。

其实这两种路径的写法都能达到同样的效果,相对路径的写法有时候更加快速、方便一些,例如,进入很深的一个目录结构中时,而绝对路径能够确保路径一 定正确。

例如,现在想从/root目录中进入到/etc目录中,可以下达命令:

# cd /etc

使用cd命令时,有几个特殊格式的目录表示方式需要我们了解一下,参见表7-2。

表7-2  特殊目录的表示方法及含义

特殊目录的表示方法

 

.

代表当前目录

..

代表上层目录

~

代表当前登录用户的宿主目录

~用户名

代表进入~后用户的宿主目录

-

代表前一目录,即进入当前目录之前操作的目录

上述目录操作方式如图7-3所示。

 (点击查看大图)图7-3  特殊目录的使用方法

提示:

直接在命令行中输入cd命令而不加任何参数,可以马上回到用户的主目录(home),这一点与DOS中cd命令显示当前路径不同,请一定注意。在 Linux中,很多与用户自身相关的配置文件、属于自己的文档、程序、脚本和安装包等都存放在用户自己的home目录中,这个目录就相当于 Microsoft Windows中的“我的文档”。所以能用cd命令直接“回家”,真的很方便。

7.1.3  查看当前路径命令:pwd

pwd命令能够显示当前所处的路径。

这个命令比较简单,如果有时在操作过程中忘记了当前的路径,则可以通过此命令来查看路径,其执行方式为:

# pwd /home/samlee


第一行为运行的命令,第二行的内容为运行pwd命令后显示的信息,即显示用户当前所在的工作目录的路径为/home/samlee。

提示:

应该经常使用pwd命令。Linux的目录结构非常复杂,一个小小的分支就可能会有十几层目录,就好像是个森林,所以Linux不会像 Windows那样把全路径写在提示符里,那样太长了。

在目录用cd钻来钻去,很容易记不清自己到底身在何处,这时候执行命令可是有点危险的,例如,想删除一个文件,不搞清楚当前目录,可能会误删除同名 的有用文件,而且没那么容易恢复。还有很多其他的情况需要使用pwd,尤其是在执行“rm –rf”这种对目录直接删除的操作时,更需要用pwd确定一下,可能每执行十几个命令就会输入一回。我们应该感谢Jim Meyering先生,他是pwd的创作者。


7.1.4  改变文件创建时间及创建空文件命令:touch

touch命令能够创建一个空白文件,或者改变文件的创建时间。

touch命令的执行方式为:

# touch 文件名

一般来说,建立一个文件都会使用一个文本编辑器(如第8章要介绍的vi编辑器),但是也可以使用touch命令来创建一个空白的文件。

例如,现在要在/home目录下创建一个名为test的空白文件,可以执行命令:

# touch /home/test


实际上,对于touch命令来说,其最主要的功能是改变文件的时间,那么一个文件拥有哪些时间属性呢?对于一个文件来说,主要有三种时间属 性,分别为:

(1)mtime:这个时间记录的是文件内容被修改的时间。

(2)ctime:这个时间记录的是文件的属性(所有者、所属组、文件名)或者权限被修改的时间。

(3)atime:这个时间记录的是文件的内容被读取的时间。

下面我们举个例子来说明,现在我们在/home目录下创建了一个文件file,然后分别查看其三个时间,命令操作如图7-4所示。

 (点击查看大图)图7-4  显示文件的三种时间状态通过图7-4我们可以看到,在刚开始创建文件时候三种时间是相同的,在默认 情况下使用ls –l命令查看到的是文件内容修改的时间(即mtime),如果在不同时间内分别对其进行编辑内容,修改文件所有者和读取内容操作后,三个时间即会发生变 化,具体命令以后会详细讲解,在此只需要观察一下命令结果即可,如图7-5所示。
 (点击查看大图)图7-5  文件的三种时间状态发生变化后效果通过图7-5可以看到,我们通过不同时间内的不同操作 后,file文件的三种时间分别发生了变化,如果现在我们想让其变成与当前时间相同,则可以使用touch命令,执行结果如图7-6所示。
 (点击查看大图)图7-6  使用touch命令改变时间状态

这样就将file文件的时间变成了当前的时间。

touch 命令的参数不多,常见的有以下几个,见表7-3。

表7-3  touch命令选项
-a  仅修改atime时间
-m 仅修改mtime时间

7.1.5  创建目录命令:mkdir

mkdir 命令能够创建一个目录。mkdir 命令的执行方式为:

# mkdir 目录名

其实一个目录就是一个特殊类型的文件,就如同Windows中的文件夹一样,目录里面既可以有文件,也可以有子目录,就是因为有目录的存 在,Linux才能够以一种目录树的结构对文件系统进行管理。

例如现在要建立一个directory目录,则可以执行命令:

# mkdir directory


创建完目录后可以使用ls –l命令去查看目录是否建立成功。如果directory所在行的第一个字母为d,则说明建立成功。

有时候我们需要一次性地建立多级目录,则可以使用-p参数:

# mkdir -p /home/dir1/dir2/dir3

7.1.6  删除空目录命令:rmdir

rmdir命令能够删除一个空目录。rmdir命令的执行方式为:

# rmdir 目录名

对于目录来说,如果里面为空的时候可以使用rmdir命令来删除,并且此命令只能用来删除空目录,如果是非空目录,则需要使用下面要介绍的rm 命令。

例如我们要删除/home/directory这个空目录,则可以执行命令:

# rmdir /home/directory


提示:

rmdir可以删除的是非空目录,被删的目录下不能有文件或子目录。如果只是有子目录存在,还可以用-p来删除;如果含有文件,那么-p选项也无能 为力了。只有使用“rm –rf”大法,才能“连根拔起”。


7.1.7  除文件(目录)命令:rm

rm命令能够删除一个文件或者目录。rm命令的执行方式为:

# rm  [-选项] 文件名或者目录名

对于Ubuntu来说,这个命令是比较危险的一个命令,因为一旦使用了这个命令删除的文件如果再进行了磁盘写操作后将无法再恢复。在其他版本的一些 Linux中,默认情况下给rm命令加上了一个i选项,可以在删除前对操作进行确认,建议当学习完Shell一节后也利用命令别名使其拥有这一特性。

刚才介绍的rmdir命令只能删除一个空目录,而rm命令不但能删除任何目录,而且可以删除文件。

例如,现在在/home目录下分别建立一个文件file和一个目录directory,并且在目录directory下建立file1文件,操作如 下:

# touch /home/file# mkdir /home/directory# touch /home/directory/file1


现在分别将file文件和directory目录删除,操作如下:

# rm /home/file# rm -r /home/directory

现在就可以将file文件和directory目录删除了,注意,当使用rm命令删除目录时,应该加上-r选项,否则系统会显示不能删除目录的信 息。rm命令选项如表7-4所示。

如果我们要在每一次执行此命令前都要进行确认操作是否进行,则可以加上-i 选项:

# rm -i /home/file

表7-4  rm命令选项
-f 强制删除,即使设置了-i属性也不起作用
-r 删除目录
-i 删除文件或者目录是否询问

7.1.8  复制命令:cp

cp命令能够复制一个文件或者生成一个不同名但是内容相同的文件。

cp命令的执行方式:

如果是复制文件,则执行方式为:

# cp源文件名  目标路径
如果是生成不同名但是内容相同的文件,则下达方式为:
# cp源文件名  目标文件名
例 如,现在需要将/etc/passwd文件复制到/home目录中,可以执行如下操作:
# cp /etc/passwd  /home
这时在/home目录中即有一个文件passwd,现在想生成一个passwd_new文件,要求内容与passwd文件内容相同,则可以执行命令:
# cp passwd passwd_new

这样就生成了一个passwd_new文件,其内容与passwd文件内容相同。以后当配置DNS服务器的时候,就可以采用同样的方法生成不同的区域数据文件,然后只需要对每个文件里面的不同部分进行修改就可以了,避免了每生成一个文件都要重新写一遍的麻烦。

cp命令的选项非常多,表7-5将其常用的一些列出。

表7-5  cp命令选项
-f 强制性复制
-r 复制目录
-i 复制前是否询问
-u 只有当源文件比目标文件新时才复制

7.1.9  移动文件(目录)命令:mv

mv命令用来移动一个文件(目录)或者是给文件(目录)改名。

mv命令的执行方式为:

如果是移动文件,则执行方式为:

# mv要移动的文件 目标路径
如 果是给文件改名,则执行方式为:
# mv原文件名 新文件名
例 如,在/目录下有一个文件为test,要将其移动到/home目录中,可以执行如下操作:
# mv /test /home
此 时就将test文件移动到/home目录中了,现在需要将其改名为test_new,则可以执行如下操作:
# mv /home/test  /home/test_new

这样就将test文件成功改名为test_new。


7.1.10  显示文件内容命令:cat

cat命令能够显示一个文件的内容。

cat命令的执行方式为:

# cat 文件名
cat 命令的常见用法是查看一个文件的内容,例如,现在想查看一下/etc/passwd文件的内容,可以执行命令:
# cat /etc/passwd
这样不用打开文件就可以看到passwd文件的内容了,但是cat命令的一个缺点是它在显示文件内容时不能做任何停留,所以如果遇到了一个文件内容超过整个 屏幕的时候我们只能看到其最后部分,解决的办法是使用管道符(见第9章)和分屏显示命令:
# cat /etc/passwd | more
还 可以通过cat命令和输出重定向命令将一个文件的内容输出到另一个文件中去,即我们常说的将两个文件进行合并:
# cat /etc/passwd >> /home/passwd_bak

这样passwd文件的内容就会追加到passwd_bak文件中,从而达到两个文件合并的目的。

7.1.11  从头开始查看文件内容命令:head

head命令能够从头开始显示文件内容,并且能够设定查看的行数。

head命令的执行方式为:

# head [-n] 文件名

n为数字,即设定的行数。

head命令能够从文件开始处查看一个文件的指定的行数,如想要查看/etc/passwd文件的前五行,可以执行命令:

# head -5 /etc/passwd

如果没有指定行数的话,默认是显示前十行。

7.1.12  tail命令

tail命令能够从文件结尾开始显示文件内容,并且指定查看的行数。

tail命令的执行方式:

# tail [-n] 文件名
tail 命令能够从一个文件的结尾处向上查看一个文件的指定的行数,它正好与head命令相反,是倒序进行查看的,如想要查看/etc/passwd文件的后面5 行,可以执行命令:
# tail -5 /etc/passwd

与head命令一样,如果没有指定行数的,默认是显示后面十行。

7.1.13  分屏显示文件命令:more(less)

more命令能够对文件内容或者查询结果进行分屏显示。more命令的执行方式为:

# more 文件名
more 命令可以单独使用,也可以和配合管道符使用。它的主要作用是能够将屏幕输出的结果分屏显示。例如使用cat命令查看/etc/passwd文件时,只能看 到最后的内容,为了能够看到文件所有内容,可以执行命令:
# more /etc/passwd
或 者是配合管道符命令:
# cat /etc/passwd | more

这时就可以分屏来查看文件内容了,可以通过回车键向下一行行滚动,但是它的缺点是不能够进行向上滚动,如果想向上翻屏,需要使用less命 令,less命令的用法与more命令完全相同,唯一不同点是less命令能够向上翻屏。可以通过上下箭头进行上下一行行滚动,也可以通过page up/page down命令向上/向下进行一屏一屏滚动。

1 0
原创粉丝点击