皇家方舟
新手应该掌握的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 ./* Bob@www.bobman.de:/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/netscapehansi 11968 0.0 0.2 1676 708 pts/0 S 12:53 0:00 grep netscape
上面得到的结果第一列显示的是启动该进程的人,第二列即是PID。上面的命令显示了两个进程,这是因为grep查找字符串“netscape”,而grep命令本身也被分配给了一个PID。这时要中止这个进程,可以使用以下命令:
$kill 11779
在有些时候,如果使用上述命令没法终止程序的话,可使用以下命令强制终止:
$kill -s 9 11779
“历史”和自动的功能
最后还要介绍两个可以让命令行工作模式变得更加轻松的功能,其中的“历史”功能在DOS环境中大家可能已经非常熟悉了。在DOS中,必须要激活doskey函数来获取输入的命令,并且通过上下箭头键来选择输入过的命令。Linux中也有这个功能,只需按方向键就可以选择刚刚使用过的命令。大多数Linux发行版中,储存的命令数可达500个之多。
此外,命令和路径的自动填充也是一个非常有用的功能。具体方法是输入第一个字母后按下Tab键,然后让Shell自动查找命令或者目录。这个功能对于处理很长的路径时尤为有用,因为只需要输入前几个字母,Shell就会帮助找到后面的内容。该功能对于那些难于记忆的程序也非常有用。下面是使用该功能的一些情况:
[root@linuxserver harddisk]# moumount mount.smb mount.smbfs mouseconfig[root@linuxserver harddisk]# cDisplay all 113 possibilities? (y or n)c2ph checkXML column......cdda2wav civserver-wrapper csh—More—
上面命令中,输入几个字母后按Tab键就会显示上述的内容,这样就可以找到一些不熟悉的命令或者目录。
posted on 2006-09-02 09:54
阿辉
阅读(238)
评论(0)
编辑
收藏
所属分类:
linux
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
初学linux
linux 看门狗
linux 脚本
Linux 文件命令精通指南(一)(转载)
初学Linux必学60个命令文件处理(转)
新手应该掌握的Linux命令(转)
Linux 系统命令精通指南(初级)(转)
必学的Linux系统安全命令(转)
My Links
BlogJava
首页
新随笔
联系
聚合
管理
Blog Stats
随笔 - 70
文章 - 0
评论 - 196
Trackbacks - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
.NET
(rss)
C#
(rss)
eclipse(5)
(rss)
ERP(5)
(rss)
Hibernate(1)
(rss)
JAVA(7)
(rss)
junit(6)
(rss)
linux(8)
(rss)
swt(1)
(rss)
其它(4)
(rss)
学习日志(17)
(rss)
日记(9)
(rss)
智力题目(6)
(rss)
随笔档案
2008年3月 (2)
2008年1月 (1)
2007年7月 (4)
2007年6月 (2)
2007年5月 (3)
2007年4月 (1)
2006年12月 (11)
2006年11月 (7)
2006年10月 (1)
2006年9月 (28)
2006年8月 (1)
搜索
积分与排名
积分 - 61031
排名 - 855
最新评论
1. re: TestSuite的使用[未登录]
学习了。
--海纳百川
2. re: 扑克难题 求破解之法
庄家,对A和对10
闲家 ,2一张 K3张 Q3张 对9 对8 对6 对4 一张3
不可出同色的, 闲家先出牌 那个稳赢呢?
--龙
3. re: 扑克难题 求破解之法
@王刚
--jkdbn
4. re: 扑克难题 求破解之法
@aimee
你想得美
--zzw
5. re: 扑克难题 求破解之法
@拉了拉
nbgf
--gfhgfh
阅读排行榜
1. 扑克难题 求破解之法(4653)
2. ERP流程图(从销售订单到送货单)(4588)
3. 智力题集(4428)
4. Use Case 中 include 与 extend 的区别 (3798)
5. TestSuite的使用(3634)
评论排行榜
1. 智力题集(106)
2. 扑克难题 求破解之法(32)
3. TDD 程序代码(13)(9)
4. java面试题集(转) (7)
5. ERP流程图(从销售订单到送货单)(4)
Powered by:
BlogJava
Copyright © 阿辉