由于操作和使用环境的陌生,如果要完全熟悉 Linux 的应用我们首先要解决的问题就是 对 Linux 常用命令的熟练掌握。本章我们就来介绍 Linux 的常用基本命令。
首先启动 Linux 。启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不 一样, 其中“系统管理员”拥有最高权限。
在启动 Linux 后屏幕出现如下界面显示:
……
Red Hat Linux release 9 (Shrike)
Kernel 2.4.20.8 on an i686
login:
输入:root(管理员名)后,计算机显示输口令(password:) ,输入你的口令即可。当计算机 出现一个“ #”提示 符时, 表明你登录成功!
屏幕显示 Linux 提示符: [root@localhost root]#_
这里需要说明的是“Red Hat Linux release 9 (Shrike)”表示当前使用的操作系统的名称及 版本。“2.4.20.8”表示 Linux 操作系统的核心版本编号。“i686”表示该台电脑使用的 CPU 的 等级。
下面我们来介绍常用基本命令
一、注销, 关机,重启
注销系统的 logout 命令
1、Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达 logout 命令即可:
[root@localhost root]#logout
Red Hat Linuxrelease 9(Shike)
Kernel 2.4.20.8 on an i686
Login: ← 回到登陆的画面
2、关机或重新启动的 shutdown 命令
Shutdown 命令可以关闭所有程序, 依照用户的需要, 重新启动或关机。
参数说明如下:
立即关机: -h 参数让系统立即关机。范例如下:
[root@localhost root]#shutdown –h now ← 要求系统立即关机
指定关机时间: time 参数可指定关机的时间; 或设置多久时间后运行 shutdown 命令, 范例 如下:
[root@localhost root]#shutdown now ← 立刻关机
[root@localhost root]#shutdown +5 ← 5 分钟后关机
[root@localhost root]#shutdown 10:30 ← 在 10:30 时关机
关机后自动重启:-r 参数设置关机后重新启动。范例如下:
[root@localhost root]#shutdown -r now ← 立刻关闭系统并重启
[root@localhost root]#shutdown -r 23:59 ← 指定在 23:59 时重启动
3、重新启动计算机的 reboot 命令
顾名思义, reboot 命令是用来重新启动系统的。常用的参数如下:
-f 参数: 不依正常的程序运行关机, 直接关闭系统并重新启动计算机。
-I 参数: 在在重新启动之前关闭所有网络接口。
虽然 reboot 命令有个参数可以使用, 但是一般只需要单独运行 reboot 命令就可以了
二、文件与目录的操作
列出文件列表的 ls 命令
1 、ls(list)命令是非常有用的命令,用来显示当前目录中的文件和子目录列表。配合
参数的使用,能以不同的方式显示目录内容。范例如下:
显示当前目录的内容:
[tony@free tony]$ ls
Desktop mail myinstall.log test.txt ← 有两个目录及两个文件夹
当运行 ls 命令时,并不会显示名称以“ .”开头的文件。因此可加上“-a”参数指 定要列出这些文件。范例如下:
[tony@free tony]$ ls –a
以“-s”参数显示每个文件所有的空间,并以“-S”参数指定按所有占用空间的大 小排序。范例如下:
[tony@free tony]$ ls –s – S
总计 36
4 Desktop 4 mail 24 myinstall.log 4 test.txt
在 ls 命令后直接加上欲显示的目录路径,就会列出该目录的内容。范例如下:
[tony@free tony]$ ls –l/usr/games
2、切换目录的 cd 命令
cd(change directory)命令可让用户切当前所在的目录。范例如下:
[tony@free home]$ cd tony ← 切换到当前目录下的 tony 子目录
[tony@free tony]$ cd .. ← 切换到上一层目录
[tony@free home]$ cd / ← 切换到系统根目录
[tony@free /]$ cd ← 切换到用户主目录
[tony@free tony]$ cd /usr/bin ← 切换到/usr/bin 目录
3、创建目录的 mkdir 命令
Mkdir(make directory)命令可用来创建子目录。下面的范例会在所在目录下创建 tool 子 目录。
[tony@free tony]$ mkdir tool
4、删除目录的 rmdir 命令
rmdir(remove directory)命令可用来删除“ 空” 的子目录。范例如下:
[tony@free tony]$ rmdir tool ← 删除 tool 目录
5、复制文件的 cp 命令
cp(copy)命令可以将文件从一处复制到另一处。一般在使用 cp 命令将以个文件复制成另 一个文件或复制到某个目录时,需要指定原始文件名与目的文件名或目录。范例如下:
[tony@free tony]$ cp data1.txt data2.txt ← 将 data1.txt 复制成 data2.txt
[tony@free tony]$ cp data3.txt /tmp/data ← 将 data3 复制到/tmp/data 目录中 显示复制过程: 加入-v 参数可显示命令执行过程。范例如下:
[tony@free tony]$ cp zip.txt zip2.txt ← 一般状态下不会显示复制过程
[tony@free tony]$ cp –v zip.txt zip3.txt ← 以-v 显示复制过程
zip.txt ->zip3.txt
递回复制:加入“-R”参数可同时复制目录下的所有文件及子目录。范例如下:
[tony@free tony]$ cp –v –R * backup ← 将所有文件(含子目录文件)复制到 backup 目 录
6、删除文件或目录的 rm 命令
rm(remove)命令可以删除文件或目录。范例如下:
[tony@free tony]$ rm myfile ← 删除指定的文件
[tony@free tony]$ rm * ← 删除当前目录中的所有文件
rm 命令的常用参数如下:
强迫删除: 使用-f 参数时,rm 命令会直接删除文件,不再询问。范例如下:
[tony@free tony]$ rm –f *.txt ← 强迫删除文件
递回删除:-r 也是一个相当常用的参数,使用此参数可同时删除指定目录下 的所有文件及子目录。范例如下:
[tony@free tony]$ rm –r data ← 删除 data 目录(含 data 目录下所有文件和子目录)
[tony@free tony]$ rm –r * ← 删除所有文件(含当前目录所有文件,所有子目录和子目 录下的文件)
强制删除指定目录: 当使用-r 参数删除目录时,若该目录下有许多子目录及 文件,则系统会不间断地询问,以确认您的确要删除目录或文件。若已确定要删除所存目录 及文件,则可以使用-rf 参数,如此一来,系统将直接删除该目录中所有的文件及子目录, 不再询问。范例如下:
[tony@free tony]$ rm –rftmp 强制删除 tmp 目录及该目录下所有文件及子目录
显示删除过程: 使用-v 参数。范例如下:
[tony@free tony]$ rm –v
7、让显示画面暂停的 more 命令
为了避免画面显示瞬间就闪过去,用户可以使用 more 命令,让画面在显示满一页时暂 停,此时可按空格键继续显示下一个画面, 或按 Q 键停止显示。
当使用 ls 命令查看文件列表时,若文件太多则可以配合 more 命令使用。范 例如下:
[tony@free bin]$ ls –al more
单独使用 more 命令时,可用来显示文字文件的内容。范例如下:
[tony@free tony]$ more data.txt
8、连接文件的 cat 命令
cat(concatenate) 命令可以显示文件的内容(经常和 more 命令搭配使用), 或是将数个 文件合并成一个文件。范例如下:
逐页显示 preface.txt 的内容:
[tony@free tony]$ cat preface.txt more
将 preface.txt 附加到 outline.txt 文件之后:
[tony@free tony]$ cat preface.txt >> outline.txt
将 new.txt 和 info.txt 合并成 readme.txt 文件:
[tony@free tony]$ cat new.txt info.txt >readme.txt
9、移动或更换文件,目录名称的 mv 命令
mv (move)命令可以将文件及目录移动到另一个目录下面,或更换文件及目录的名称。 范例如下:
[tony@free backup]$ mv a.txt .. ← 将 a.txt 文件移到上层目录
[tony@free backup]$ mv z1.txt z3.txt ← 将 z1.txt 改名成 z3.txt
[tony@free backup]$ cd.. ← 切换到上一层目录
[tony@free tony]$ mv backup.. ← backup 目录上移一层
10、显示当前所在目录的 pwd 命令
pwd(print working directory)命令可显示用户当前所在的目录。范例如下:
[tony@free tony]$ pwd
/home/tony ← 当前所在目录为“/home/tony”
11、查找文件的 locate 命令
locate 命令可用来搜索包含指定条件字符串的文件或目录。范例如下:
[tony@free tony]$ locate zh_CN 列出所有包含“zh_CN”字符串的文件和目录。
由于 locate 命令是从系统中保存文件及目录名称的数据库中搜索文件,虽然系统会定时 更新数据库,但对于刚新增或删除的文件、目录,仍然可能会因为数据库尚未更新而无法查 得,此时可用 root 身份运行 updatedb 命令更新, 为此数据库得内容正确。
12、搜索字符串得 grep 命令
grep 命令可以搜索特定字符串来并显示出来,一般用来过滤先前得结果,避免显示太 多不必要得信息。范例如下:
[tony@free etc]$ grep text *.conf ← 搜索当前目录中扩展名为.conf 且包含“text” 字符串
得文件。
grep:amd.conf: ← 拒绝不符权限得操作
grep:diskcheck.conf: ← 拒绝不符权限得操作
grep:grub.conf ← 拒绝不符权限得操作
若您是使用一般权限的用户运行,上例的输出结果会包含很多如“拒绝不符权 限的操作之类的错误信息,可使用-s 参数消除。
[tony@free etc]$ grep –s text *.conf
13、重导与管道
重导(redirect)可将某命令的结果输出导文件中,它有两中命令:“>”和“>>” 。“>”可将结 果输出到文件中,该文件原有的内容会被删除:“>>” 则将结果附加到文件中,原文件内容不 会被清除。范例如下:
[tony@free tony]$ ls –a>dir.txt ← 将 ls –a 命令执行结果输出到 dir.txt 文件。
[tony@free tony]$ cat data1.txt >> data2.txt ← 将 data1.txt 内容附加到 data2.txt 文件之 后。
通道(pipe)命令的符号是“ ” ,可将某命令的结果输出给另一命令, 一下范例将 ls 命令 的输出结果传给 grep 命令过滤:
[tony@free etc]$ ls gerp conf ← 搜索并显示 ls 命令运行结果中包含有“conf”字符
在举一个删除文件或目录的例子,可以利用 yes 命令重复输出“y”字符的特性,将结果 传给 rm 命令, 如此即可避免重复输入“y”:
[tony@free tony]$ yes rm –r mydir
三、使用光盘及软盘
在 Linux 的文字模式下要使用光盘或软盘,并不是只将光盘或软盘放入即可,用户需要 运行加载的命令,才可读写数据。所谓加载就是将存储介质(如光盘和软盘)指定成系统中 的某个目录(如/mnt/cdrom 或 mnt/floppy)。通过直接存取此加载目录, 即可读写存储介质 中的数据。以下就来看看文字模式下的加载及卸载命令。
1、加载的 mount 命令
要使用光盘时先把光盘放入光驱,然后执行加载的 mount 命令,将光盘加载至系统中:
[tony@free tony]# mount/dev/cdrom/mut/cdrom ← 加载光盘
同理, 使用软盘之前也需要和光盘一样,必须先加载后才能使用:
[tony@free tony]# mount/dev/fd0/mut/floppy ← 加载软盘
2、卸载的 umount 命令
如果不需要使用光盘或软盘,则需先执行卸载命令之后,才能将光盘或软盘退出。范例 如下:
[tony@free tony]# umount / mnt/cdrom ← 光盘卸载
在不使用软盘时执行 umount 命令卸载软盘, 再将软盘拿出
[tony@free tony]# umount / mnt/ ← 软盘卸载
四、在后台运行程序
用户有时的程序有可能要花费很多时间,如果将它放在前台运行,将导致无法继续做其 他事情,最好的方法就是将它放在后台运行,甚至可能希望在用户注销系统后,程序还可以 继续运行。让我们看看那如何实现这一目的。
1、在后台运行程序的& 、bg 命令
将程序放到后台运行的最简单方法就是在命令最后加上“&”,范例如下:
[tony@free root]# updatedb & ← 在后台执行 locate 数据库更新命令
[tony@free root]# bg ← 将更新操作放到后台运行
2、前台运行的程序 fg 命令
如果用户当前已有程序在后台运行,可以输入 fg 命令, 将它从背景中移到前台运行:
[tony@free root]# fg ← 放到前台执行的命令会显示出来
3、在退出后让程序继续运行的 nohup 命令
此命令可使用户退出系统后, 程序继续运行。范例如下:
[tony@free rony]$ nohup myserver &
然后用户就可以退出了,当再次登录的时候,可以用 ps –aux 命令看到程序仍在后台中 运行。
五、任务调度命令
计算机有很多程序需要周期性的被运用,例如清理磁盘中不要的暂存盘、备份系统数据、 检查远程服务器的邮件等。对于这些重复性的工作,其实不需要每次都辛苦地运行这些程序。 可利用任务调度命令,指定系统定期在某个时间运行这些程序,轻轻松松完成想要执行的工 作。
任务调度的 crond 常驻命令
crond 是 Linux 用来定期执行程序的命令。当安装完成操作系统后,默认便会启动此任 务调动命令。crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作,便 会自动执行该工作。由于任务调度中间的操作过程十分繁杂,我们只将任务调度文件的写法 介绍给大家,供大家参阅:
Minute Hour Day Month DayOfWeek Command
在这段文字中除了“Command”是每次都必须指定的字段以外,其他自动皆可视需求自 行决定是否指定。
六、任务调度的系统工作
/ect/crontab/文件是 Linux 系统工程的任务调度设置文件,其默认的内容如下:
SHELL=/bin/bash ← 指定执行任务调度工作时所使用的 SHELL
PATH=/shin:/bin:/usr/sbin:/usr/bin ← 指定命令搜索的路径
MAILTO=root ← 指定将输出结果给 root 用户
HOME=/ ← 指定跟目录
七、任务调度的个人工作
除了上述任务调度的系统工作外, 一般用户则可利用 crontab 命令, 自行设置要定期执 行的工作。每个用户可执行 crontab –e 命令,编辑自己的任务调度设置文件,并在此文件加入要定
期执行的工作。以下范例为 tony 用户编辑的任务调度设置文件:
[tony@free rony]$ crontab –e
执行上述命令后,即会进入 VI 文本编辑器自行编辑任务调度的工作。
八、删除调度工作任务
如果不想再定期执行任务调动中的工作,则可执行 crontab –r 命令删除所有任务调度的 工作。范例如下:
[tony@free rony]$ crontab –r ← 删除任务调度中的工作
[tony@free rony]$ crontab -1 ← 再查看一次任务调度中的工作
no crontab for tony ← 已经没有任何任务调度工作
九、打包、压缩与解压缩
由于这是每一个 Linux 用户都会经常用到的基本功能, 因此我们将介绍最常见到的打 包、压缩和解压缩程序。
1、打包文件的 tar 命令
tar 命令位于/bin 目录中,它能将用户所指定的文件或目录打包成一个文件,不过它并 不做压缩。一般 Unix 上常用的压缩方式是先用 tar 命令将许多文件打包成一个文件,再以 gzip 等压缩命令压缩文件。tar 命令参数繁多, 以下举例常用参数作说明:
-c :创建一个新的 tar 文件;
-v :显示运作过程信息;
-f:在: 指定文件名称;
-z :调用 gzip 压缩命令执行压缩;
-j:调用 bzip2 压缩命令执行压缩;
-t :参看压缩文件内容;
-x :解开 tar 文件。
在此举一常用范例:
[tony@free data]# tar cvf data.tar * ← 将目录下所有文件打包成 data.tar
[tony@free data]# tar cvf data.tar.gz * ← 将目录所有文件打包成 data.tar 再用 gzip 命令压 缩
[tony@free data]# tar tvf data.tar * ← 查看 data.tar 文件中包括了哪些文件
[tony@free data]# tar xvf data.tar * ← 将 data.tar 解开
2、压缩与解压缩
tar 命令本身没有压缩能力,但是可以在产生的 tar 文件后,立即使用其他压缩命令来压 缩,省区需要输入两次命令的麻烦。
使用-z 参数来解开最常见的.tar.gz 文件:
[tony@free data]# tar –zxvf foo.tar.gz ←将文件解开至当前目录下
使用-j 参数解开 tar.bz2 压缩文件:
[tony@free data]# tar –jxvf linux-2.4.20tar.bz2 ←将文件解开至当前目录下
使用-Z 参数指定以 compress 命令压缩
[tony@free data]# tar –cZvf prcture.tar.Z*.tif 将该目录下所有.tif 打包并命令压缩成.tar.Z 文件