社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
Ubuntu的图形界面使用起来非常方便,但是要想对Linux熟练掌握,就必须学会它的操作命令。虽然可能会花费一些时间,不过从长远的角度来说,这的确是一件事半功倍的事情,它会让我们更了解Linux,更灵活地去使用Linux。
Ubuntu提供了很多命令,不过在本章中不做全部介绍,只是先介绍一些常用命令,其他则分散到各个章节中。初学Linux一定要特别注意,学习命令并不意味着要掌握全部命令和每个命令的全部选项,这并不是必要的。先掌握最常用命令的最常用选项就好,下面就让我们来体会一下Ubuntu命令的强大功能。
7.1 基本命令
Ubuntu的命令较多,但是对于一些常用的系统操作,无非就是一些创建、查看、移动、复制等,本小节先熟悉一下这些基本命令。在学习这些基本命令之前,应该先了解一下Linux的一些特性和在Linux中命令的执行方式。
在Linux中,所有设备都是用文件名来表示的,就像我们在分区时所了解的那样,这与我们所熟悉的Windows系统有很大不同,Linux中并没有所谓C盘、D盘之类的说法,并且在Linux中只有文件和目录(相当于Windows中的文件夹),所有文件和目录都以倒树状结构挂载在“/”(读做根目录)目录下,也正是因此Linux系统的管理员称为root(树根),如图7-1所示。这稍后在第12章“文件系统管理”一章还会详细介绍,现在大家只是有个概念即可。
图7-1 Linux文件系统结构 |
[root@localhost: /etc # |
# 命令名 [-选项] 参数 |
需要注意的是,命令名、选项或者参数之间都是至少要有一个空格,多个空格没有关系,选项不是必需的。当有多个选项时,可以写在一起。因为Linux基本是由C语言编写的,所以无论命令名或选项,Linux都是严格区分大小写的。
在了解了以上基本的内容后,下面就来详细地介绍Linux的基本命令
7.1.1 列出文件清单命令:ls
ls命令能够列出当前目录下的所有内容。ls 命令的执行方式为:
# ls [-选项] [文件名或者目录名] |
进入到Linux命令行中后,我们至少要知道当前所处的位置有哪些内容,这些信息就可以使用ls命令来获得。它有很多的命令选项,并且选项之间可以互相组合使用,我们只列出其中常见的一些,见表7-1。
表7-1 ls命令的选项说明
在Linux中,ls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容。如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录名,例如,想要查看/etc目录下的内容,可以使用下列命令:
# ls /etc |
如果想要列出当前目录下所有文件,则可以使用下列命令:
# ls -a |
图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 |
第一行为运行的命令,第二行的内容为运行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-5 文件的三种时间状态发生变化后效果 |
(点击查看大图)图7-6 使用touch命令改变时间状态 |
这样就将file文件的时间变成了当前的时间。
touch 命令的参数不多,常见的有以下几个,见表7-3。
表7-3 touch命令选项
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 |
现在分别将file文件和directory目录删除,操作如下:
# rm /home/file |
现在就可以将file文件和directory目录删除了,注意,当使用rm命令删除目录时,应该加上-r选项,否则系统会显示不能删除目录的信息。rm命令选项如表7-4所示。
如果我们要在每一次执行此命令前都要进行确认操作是否进行,则可以加上-i 选项:
# rm -i /home/file |
7.1.8 复制命令:cp
cp命令能够复制一个文件或者生成一个不同名但是内容相同的文件。
cp命令的执行方式:
如果是复制文件,则执行方式为:
# cp源文件名 目标路径 |
# cp源文件名 目标文件名 |
# cp /etc/passwd /home |
# cp passwd passwd_new |
这样就生成了一个passwd_new文件,其内容与passwd文件内容相同。以后当配置DNS服务器的时候,就可以采用同样的方法生成不同的区域数据文件,然后只需要对每个文件里面的不同部分进行修改就可以了,避免了每生成一个文件都要重新写一遍的麻烦。
cp命令的选项非常多,表7-5将其常用的一些列出。
表7-5 cp命令选项
7.1.9 移动文件(目录)命令:mv
mv命令用来移动一个文件(目录)或者是给文件(目录)改名。
mv命令的执行方式为:
如果是移动文件,则执行方式为:
# mv要移动的文件 目标路径 |
# mv原文件名 新文件名 |
# mv /test /home |
# mv /home/test /home/test_new |
这样就将test文件成功改名为test_new。
7.1.10 显示文件内容命令:cat
cat命令能够显示一个文件的内容。
cat命令的执行方式为:
# cat 文件名 |
# cat /etc/passwd |
# cat /etc/passwd | more |
# cat /etc/passwd >> /home/passwd_bak |
这样passwd文件的内容就会追加到passwd_bak文件中,从而达到两个文件合并的目的。
7.1.11 从头开始查看文件内容命令:head
head命令能够从头开始显示文件内容,并且能够设定查看的行数。
head命令的执行方式为: