当前位置导航:炫浪网>>网络学院>>操作系统>>Linux教程

菜鸟学堂:新手应该掌握的Linux命令


  很多新手在刚开始接触Linux时,往往由于面临的命令太多而无从下手。下面我将向大家介绍一些作为新手应该掌握的命令,这些命令是日常使用Linux时经常会用到的。它们主要功能是实现对文件和目录的操作。当然,Linux发展到今天,很多功能已经可以在可视化的界面中来完成。不过在很多情况下,有些命令还是非常有用的,它可以提高效率,并且可以加深对Linux系统的了解。
  
  本文主要介绍在Linux下如何创建目录、以不同的方式进行显示,以及如何拷贝和移动目录。
  
  文件和目录的处理
  文件和目录的处理是任何操作系统命令中最基本的内容,也是使用电脑最常用到的功能。为了简单起见,我只介绍其可以实现的基本功能,读者可以在掌握这些基本用法之后再对其它用法进行深入研究。
  
  mkdir 创建一个目录。这个命令的基本格式是“mkdir 目录名称”。比如,可以使用命令“mkdir mydir”在当前目录下创建一个名为mydir的目录。在进行目录创建时,可以设置目录的权限。此时使用的参数是“-m”,假设要让创建的mydir让所有人都有rwx(即读、写、执行的权限),那么可以使用以下命令:
  
  $ mkdir -m 777 mydir
  
  这时如果使用带参数-l的ls命令显示(稍后我将介绍),就会发现mydir目录的权限情况。如下所示:
  
  $ ls -ltotal 209......drwxrwxrwx  2 root   root     4096 2月 16 21:37 mydir......
  
  ls 列出目录内容。如果不带任何参数,ls会显示出当前目录下的所有文件(除了隐藏文件)、符号链接和子目录。不同的文件类型、目录和链接会使用不同的颜色来表示。比如,一般文件是红色的,可执行文件是红色的,压缩文件是暗红色的,图像文件是粉红色的,目录是蓝色的,符号链接是加粗的黑色。
  
  这个命令有很多参数,比如:“l”、“a”、“F”,命令格式可以是ls -l、ls -a和ls -F,也可以将它们结合成ls -laF。ls -l会使用详细的格式列表将权限标示、硬链接数目、所有者与组名称、文件或目录大小及改动时间一并列出。如下所示是在我的机器的根目录下使用ls -alF的显示情况:
  
  $ ls -laFtotal 233drwxr-xr-x  22 root   root     4096 2月 16 21:37 ./drwxr-xr-x  22 root   root     4096 2月 16 21:37 ../-rw-r--r--  1 root   root      0 2月 16 21:22 .autofsckdrwxr-xr-x  2 root   root     4096 1月 4 18:39 bin/......
  
  cd 可以实现不同目录之间的切换,但前提是使用该命令的用户必须有足够的权限对相应目录进行操作。下面的命令将从当前目录切换至mydir目录:
  
  $ cd /mydir
  
  如果不给命令加任何参数,那么就会从当前目录切换至用户专属目录。比如如果是root用户,那么执行完cd命令后,当前目录就是/root,如下所示:
  
  [root@linuxserver /]# cd[root@linuxserver root]#
  
  cp 用于复制文件或目录。其基本语法是:“cp 源文件或者目录 目标文件或者目录”。例如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面所指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息。这一命令中最常用的参数是-R,该参数会对指定目录下的所有文件及子目录一起进行复制。
  
  mv 移动或者更改现有的文件或者目录。其基本语法是:“mv 源文件或者 目标文件或目录”。这个命令和cp命令类似,不同的是当文件出现在目标位置时,源文件就会被删除。
  
  rm 删除文件或者目录。其基本语法是:“rm 源文件或者目录”。该命令和DOS里的del命令类似,所不同的是在Linux下删除的文件不能进行恢复操作(这是基于安全性的考虑)。这也就意味着在Linux中没有undelete、unrm或者与之类似的命令。因此,在使用该命令时必须要非常小心。该命令有一个和cp命令类似的-R(或者-r)参数,使用它可以对指定目录的所有文件和子目录一起进行处理。否在,在不加任何参数所情况下,rm命令只会删除文件。比如命令“#rm -r *”将会删除当前目录中所有的文件和子目录。
  
  rmdir 用于删除目录。其基本语法是:“rmdir 目录”。需要说明的是,该命令只能删除空目录,如果目录为非空,则会出现错误信息。
  
  ln -s 创建一个符号链接。创建符号链接是一个非常实用的功能。假设你有一些目录或者文件需要频繁使用,但由于Linux的文件和目录结构的原因,它们都不在主目录之下。比如,Apache Web服务器位于系统的/usr/local/httpd/htdocs。并且,你并不想每次都要从主目录进入这样一个长的路径之中(在实际中,这个路径也非常不容易记忆)。为了解决这个问题,可以在主目录中创建一个符号链接(也称之为软链接),这样在需要进入该目录时,只需进入这个链接即可。比如,为了能够使主目录下的webroot访问Web服务器(/usr/local/httpd/htdocs)的文档,在主目录下可以使用以下命令:
  
  $ln -s /usr/local/httpd/htdocs webroot
  
  这时如果浏览主目录,就会发现一个类似以下内容的栏目:
  
  lrwxrwxrwx 1 User Gruppe 35 Jul 16 14:48 webroot →/usr/local/httpd/htdocs/
  
  这时如果使用命令cd webroot进入目录,就会发现你的位置在/usr/local/httpd/htdocs/。
  
  需要指出的是,如果不加任何参数,ln表示的是产生硬链接,这时就要求源文件或源目录必须已经存在。不过这一功能并不常用。
  
  工作站和服务器或服务器之间进行拷贝
  scp 安全拷贝。在Linux下有一些命令可以实现安全拷贝,主要用于不同的计算机之间拷贝重要的数据。这在服务器领域尤为有用,特别是当所访问的服务器是连接在Internet之上,并且可能遭受来自多方攻击的情况下。一般情况下,在访问这些服务器时,人们通常采用某一FTP协议。因为SCP具有相当的安全性,因此在更新自己的主页时,可以使用SCP来代替FTP。现在假设名字为Bob,要访问一个名为www.bobman.de的服务器,想把本地机上/home/webpages/pictures目录下的所有文件拷贝至Web服务器上的/htdocs/bobby/images之下。为了做到这一点,先在本地机上切换目录:
  
  $ cd ~/webpages/pictures
  
  然后输入:
  
  $ scp ./* [email protected]:/htdocs/bobby/images
  
  上面的./*指的是当前目录下的所有文件,*是Linux下的通配符,相当于DOS下的*.*。此外,SCP还可以在同一台计算机的不同用户间进行文件拷贝。
  
  所有者和权限
  chown 变更文件、目录的所有者或所属组。在Unix系统家族中,文件或目录权限的控制以所有者及所属组来管理。你可以使用chown指令去变更文件与目录的所有者或所属组。需要注意的是,要执行该命令,必须要以root身份登录。该命令的语法非常简单,并且,当要对某一目录下的所有文件和子目录进行处理时,使用的仍然是-R参数。假设在/usr/local/目录下创建了一个数据文件,并且想以普通用户的身份使用它而不是root身份。然而,由于是以root身份创建的文件,所以以普通用户的身份对该文件只有读的权限,因为该文件属于root和root组成员。如果要把该文件的所有者更改为属于user组的zhang,那么可以使用以下的命令:
  
  $chown zhang.user /usr/local/myfile
  
  如果要更改tmp目录下所有文件和子目录的所有者及所属组,可以使用以下命令:
  
  $chown -R zhang.user tmp
  
  chmod 可以变更文件或目录的权限。在Linux中,文件或目录权限的控制分别以读取、写入、执行三种一般权限来区分,另有三种特殊权限可供运用,再搭配所有者与所属组来管理每个文件及目录的权限范围。该命令的设置方式有文字和数字两种。需要注意的是,符号链接的权限无法变更,如果对符号链接修改权限,其改变会作用在被链接的原始文件。
  
  和上述介绍的命令相比,这个命令要复杂得多。但是,对于Linux来说它却非常重要。由于该命令涉及内容较多,限于篇幅此处就不详细介绍,仅举数例让初学者有一直观的了解,详情请查阅相关资料。
  
  把文件myfile读取和写入的权限向所有用户开放(使用字符方式):
  
  $chmod ugo=rw myfile
  
  取消组成员执行myfile的权限:
  
  $chmod g-x myfile
  
  增加所属组执行myfile文件的权限:
  
  $chmod g+x myfile
  
  中止任务
  在使用Windows的时候,大家一定遇到过类似于这样的问题:一个程序崩溃并且处于死锁的状态。在Linux中,这种情况也会发生。不过和Windows不同的是,在Linux中遇到这种情况时一般不用重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可。有两个命令可以处理这种情况,它们是killall和kill。
  
  killall 当处于X-Window界面时,所有的程序(除了崩溃的程序之外)一般都已经正常启动了。这就是说,可以打开一个控制台窗口,在那里中止有问题的程序。比如,如果Netscape程序出现了锁死的情况,可以使用以下命令来中止所有包含有Netscape的程序:
  
  $killall netscape
  
  kill 与和killall所实现的功能相同,不同之处是该命令使用的是程序的编号,即PID(进程标识符)。这个编号可以通过ps命令来查看,比如要想查看Netscape进程的编号可以显示出所有进程,然后逐个查找,当然最好的办法是使用grep进行过滤,完整的命令如下:
  
  $ps wuxwww | grep netscape
  
  这时得到的结果可能如下所示:
  hansi 11779 0.0 5.1 22284 13120 ? S 11:58 0:01 /opt/netscape/netscape
相关内容
赞助商链接