目录
Linux系统命令快速入门
在Linux早期的版本中,由于不支持图形化操作,用户基本上都是使用命令行方式来对系统进行操作。掌握常用的一些Linux命令是非常有必要的,下面将分类进行介绍。由于篇幅有限,在这里我们介绍命令时有些不带参数,有些只介绍部分参数。如果用户对某一个命令详细的了解的话,可以使用man命令。例如,想了解ls命令的详细信息,那么命令行书写格式如下:
man ls
注:在Linux中,命令是区分大小写的,如:Ls跟Is是不一样的。
文件和目录操作的基本命令
1. pwd 命令
pwd 命令代表"print working directory"(打印工作目录)。当你输入pwd时,你是在请求你的Linux系统显示你的当前位置。例如:
表示当前正处在 /home/lpx001 目录中。
2. cd 命令
cd 命令来改变工作目录。例如:
3. ls 命令
使用ls命令就可以显示你的当前目录的内容。ls命令有许多可用的选项。要看到ls命令的所有选项,你可以通过在shell提示下键入man Is来阅读其说明书页。下面是一些与ls一起使用的常用选项。
-a :全部(all)。列举目录中的全部文件,包括隐藏文件(.filename)。位于这个列表的起首处的..和.依次是指父目录和你的当前目录。
-l :长(long)。列举目录内容的细节,包括权限(模式)、所有者、组群、大小、创建日期、文件是否是到
系统其它地方的链接,以及链接的指向。
-F :文件类型(File type)。在每一个列举项目之后添加一个符号。这些符号包括:/表明是一个目录;@表
明是到其它文件的符号链接;*表明是一个可执行文件。
-r :逆向(reverse)。从后向前地列举目录中的内容。
-R :递归(recursive)。该选项递归地列举所有目录(在当前目录之下)的内容。
-S :大小(size)。按文件大小排序
4. locate 命令
有时候,你知道某一文件或目录存在,但却不知该到哪里去找到它。你可以使用locate命令来搜寻文件或目录。
使用locate命令,你将会看到每一个包括搜寻条件的目录或文件。譬如,如果你想搜寻所有名称中带有finger
这个词的文件,键入:
locate finger
locate命令使用数据库来定位文件或目录名中带有finger这个词的文件和目录。这个搜寻结果可能会包括一个叫做finger.txt的文件,一个叫做pointerfinger.txt的文件,一个被命名为fingerthumbnails的目录,诸如此类。
5. clear 命令
clear 命令用于清除终端窗口。
6. cat 命令
cat是concatenate(连锁)的简写,意思是合并文件。该命令可以显示文件的内容(经常和more搭配使用),或者是将多个文件合并成一个文件。
7. head 命令
可以使用head命令来查看文件的开头部分。此项命令是:
head <filename>
head是一个有用的命令,但是由于它只限于文件的最初几行,你看不到文件实际上有多长。按照默认设置,你只能阅读文件的前十行。你可以通过指定一个数字选项来改变要显示的行数,如下面的命令所示:
head -20 <filename>
8. tail 命令
与head命令恰恰相反的是tail命令。使用tail命令,你可以查看文件结尾的十行。这有助于查看日志文件的最后十行来阅读重要的系统消息。你还可以使用tail来观察日志文件被更新的过程。使用-f选项,tail会自动实时地把打开文件中的新消息显示到屏幕上。例如,要即时观察/var/log/messages的变化,以根用户身份在shell提示下键入以下命令:
tail -f /var/log/messages
9. grep 命令
grep命令对于在文件中查找指定的字串很有用途。例如,如果你想在sneakers.txt文件中查找每一个提到"coffee"的地方,你可以键入:
grep coffee sneakers.txt
你就会看到文件中带有"coffee"的每一行。
10. chmod 命令
chmod命令用于改变文件或目录的访问权限。
让我们先来看一看这个文件。在shell提示下,键入:
ls -l sneakers.txt
前面的命令显示了这个文件信息:
-rw-rw-r-- 1 test test 39 3月 11 12:04 sneakers.txt
这里提供了许多细节。你可以看到谁能读取(r)和写入(w)文件,以及谁创建了这个文件(test),所有者所在的组群(test)。在组群右侧的信息包括文件大小、创建的日期和时间,以及文件名。
第一列显示了当前的权限:它有十位。第一位代表文件类型。其余九位实际上是用于三组不同用户的三组权限。
那三组分别是:文件的所有者,文件所属的组群,和“其他人”,这是前面没有包括的用户和组群。
-(rw-)(rw-)(r--) 1 test test
|类型 |所有者 |组群 |其他人
第一个项目指定文件类型,它可以显示以下几种:
d 目录
-(短线) 常规文件(而不是目录或链接)
| 到系统上其它位置的另一个程序或文件的符号链接
在第一个项目之后的三组中,你可以看到下面几种类型:
r 文件可以被读取
w 文件可以被写入
x 文件可以被执行(如果它是程序的话)
当你在所有者、组群、或其他人中看到一个短线(“-”),这意味着相应的权限还没有被授予。可以看出以下这句
-rw-rw-r-- 1 test test 39 3月 11 12:04 sneakers.txt
文件的所有者(这个情况下是test)有读取和写入该文件的权限。组群test也有读取和写入sneakers.txt的权限,其他组群没任何权限。它不是一个程序,因此所有者和组群都没有执行它的权限。
接下来我们用chmod来改变文件的权限,键入下面的命令:
chmod o+w sneakers.txt
o+w命令告诉系统你想给其它人写入文件sneakers.txt的权限。要查看结果,再次列出文件的细节。现在,这个文件看起来与下面的输出相仿:
-rw-rw-rw- 1 test test 39 3月 11 12:04 sneakers.txt
现在,每个人都可以读取和写入这个文件。
要从sneakers.txt中删除读写权限,使用chmod命令来取消读取和写入这两个的权限。
chmod go-rw sneakers.txt
通过键入go-w,你在告诉系统删除文件sneakers.txt中组群和其它人的读取和写入权限。结果与下面的输出相似:
-rw------- 1 test test 39 3月 11 12:04 sneakers.txt
当你想用chmod命令来改变权限时,把它们当做速记符号来记忆,因为你实际要做的只是记住几个符号而已。
下面是一个速记符号含义的列表:
身份
u 拥有文件的用户(所有者)
g 所有者所在的组群
o 其他人(不是所有者或所有者的组群)
a 每个人或全部(u、g、和o)
权限
r 读取权
w 写入权
x 执行权
行动
+ 添加权限
- 删除权限
= 使它成为唯一权限
另外,也可以通过使用数字来改变权限。
每种权限设置都可以用一个数值来代表:
r=4
w=2
x=1
-=0
当这些值被加在一起,它的总和便用来设立特定的权限。譬如,如果你想有读取和写入的权限,你会得到一个值为6的总和:4(读取)+2(写入)=6。
sneakers.txt文件的数字权限设置如下:
-(rw-)(rw-)(r--)
|4+2+0 |4+2+0 |4+0+0
所有者的总和为6,组群的总和为6,其他人的总和为4。这个权限设置读作664。
如果你想改变sneakers.txt文件的权限,因此你的组群中的人没有写入权,但是仍旧能够读取文件的话,从这组数字中减掉2就可以删除写入权限了。
然后,这组数值就变成644。
要实现这些新设置,键入:
chmod 644 sneakers.txt
现在,列举这个文件来校验改变。键入:
Is -I sneakers.txt
输出应为:
-rw-r--r-- 1 test test 39 3月 11 12:04 sneakers.txt
现在,组群和其他人都没有了到文件sneakers.txt的写入权。
这里是一个某些常用设置、数值、以及它们的含义的列表:
-rw-------(600) 只有所有者才有读取和写入的权限。
-rw-r--r--(644) 只有所有者才有读取和写入的权限;组群和其他人只有读取的权限。
-rwx------(700) 只有所有者才有读取、写入、和执行的权限。
-rwxr-xr-x(755) 所有者有读取、写入、和执行的权限;组群和其他人只有读取和执行的权限。
-rwx--x--x(711) 所有者有读取、写入、和执行权限;组群和其他人只有执行权限。
-rw-rw-rw-(666) 每个人都能够读取和写入文件。(请谨慎使用这些权限。)
-rwxrwxrwx(777) 每个人都能够读取、写入、和执行。(再重申一次,这种权限设置可能会很危险。)
下面列举了一些对目录的常见设置:
drwx------(700) 只有所有者能在目录中读取、写入。
drwxr-xr-x(755) 每个人都能够读取目录,但是其中的内容却只能被所有者改变。
11. cp 命令
cp(copy)命令可以将文件或目录复制到其他目录中,就如同DOS下的copy命令一样,功能非常强大。在使用cp命令时,只需要指定源文件名与目标文件名或目标目录即可。格式:
cp <源> <目标>
12. mv 命令
要移动文件,使用mv命令。mv的常见选项包括:
-i 互动。如果你选择的文件会覆盖目标中的现存文件,它会提示你。这是一个实用的选项,因为它像cp中的 -i 选项一样,会给你一个确认替换已存文件的机会。
-f 强制。它会超越互动模式,不提示地移动文件。除非你知道自己在干什么,这个选项很危险。在你对系统信心十足之前,请谨慎使用这个选项。
-v 详细。显示文件的移动进度。
如果你想把文件从你的主目录中移到另一个现存的目录中,键入以下命令(你需要位于你的主目录内):
mv sneakers.txt tigger
另外的方法是,用同一个命令,但使用绝对路径,如:
mv sneakers.txt /home/newuser/sneakers.txt /home/newuser/tigger
13. mkdir 命令
mkdir(make directory)命令用来建立目录。例如在系统中建立datal子目录:
[root@teacher tmp]#mkdir datal
14. rm 命令
在Linux中创建文件是很容易,这样系统中随时会有过时或无用的文件,用户可以用rm命令将其删除。该命令可以删除目录中的文件或目录本身,对于链接文件,只是删除了该链接,原有文件保持不变。删除文件和目录的选项包括:
-i 互动。提示你确认删除。这个选项可以帮助你避免误删文件。
-f 强制。代替互动模式,不提示地删除文件。除非你知道自己在干什么,使用这个选项通常不是明智之举。
-v 详细。显示文件的删除进度。
-r 递归。将会删除某个目录及其中所有的文件和子目录。
要使用rm命令来删除文件piglet.txt,键入:
rm piglet.txt
另一个比使用rm更安全的删除目录的命令是rmdir命令。这个命令不允许你使用递归删除,因此不能删除包含文件的目录。
文件压缩和有关归档的命令
1. compress,uncompress
此命令用于压缩或解压缩数据。
2. gzip,gunzip
此命令用于压缩或解压缩文件,其中gzip是在Linux系统中经常使用的压缩和解压缩命令,很好用。
3. rpm
rpm命令用于启动RPM软件包管理操作。
4. tar
tar命令用于启动文件打包程序。
5. unzip
该命令用于解压缩扩展名为.zip的文件,即可以在Linux下解压Windows中用Winzip压缩的文件。
6. zip
zip命令用于打包和压缩文件。
文件系统的命令
1. dd
dd命令用于复制一个文件。
2. edquota
此命令可用于设置用户与用户组的磁盘空间限制。
3. fdisk
此命令用于执行Linux下的磁盘分区。
4. mkfs
此命令用于建立一个Linux文件系统。
5. mount
该命令用于装配一个文件系统。
6. quota
此命令用于限制和显示用户可用的磁盘空间。
与系统管理相关的命令
1. free
该命令用于查看当前系统内存的使用情况,它可以显示系统中剩余及已用的物理内存、交换内存、共享内存和内核缓冲区。
2. shutdown
该命令用于关机或进入单人维护模式。
3. data
data命令可以显示当前系统的日期和时间。clock命令也可以用于显示系统当前的日期与时间(默认情况下,普通用户无法执行clock命令,必须用root帐号登录执行)。例如:
4. cal
该命令可显示计算机中的月历或年历。例如:
5. write
该命令用来向系统中的某一个用户发送消息。用户如果想退出信息发送状态,按组合键Ctrl+C即可。例如:
用户管理命令
1. groupadd
该命令用于创建新的用户组。
2. groupmod
该命令用于修改组的属性。
3. groups
该命令用于显示当前用户所在的组。
4. passwd
passwd(password)命令可让用户修改帐户的密码。一般来说,设置帐户密码失败有几种情况:密码太简单、密码太短、密码中的字符多数相同。例如:
5. su
这个命令非常重要,它可以使一个一般用户拥有超级用户或其他用户的权限,也可以使超级用户以一般用户的身份做些事情。但一般用户使用该命令时必须有超级用户或其他用户的口令。如果要退出当前用户的登录,可以输入exit。
6. useradd
该命令是建立用户帐号最快最简单的方法。
7. userdel
该命令用来删除用户帐号及其相关文件。
8. who
该命令可以查看当前计算机有哪些用户登录,例如:
9. whoami
该命令是用来查看当前用户的登录名。例如:
网络管理命令
1. finger 命令
该命令可以用来查询用户信息,也能查看默认的用户环境。例如:
2. 相关命令
(1)ftp
该命令是标准的文件传输协议的用户接口,是在TCP/IP网络上传输文件最简单有效的方法。
(2)host
该命令用于DNS查询。
(3)hostname
该命令用于显示或设置系统的主机名。
(4)mail
mail命令用来发送和接收邮件。
3. netstat
该命令用于显示网络连接、路由表和网络接口信息,用户可以知道目前有哪些网络连接正在运行。一般常用的参数有:
-a : 显示所有socket,包括正在监听的。
-c : 每隔1秒钟就重新显示一遍网络信息,直到用户中断它。
-l : 显示所有网络接口的信息,格式同”ifconfig-e”命令。
-n : 以IP地址代替名称,显示网络连接信息。
-r : 显示核心路由表,格式同”route-e”命令。
-t : 显示TCP协议的连接信息。
-u : 显示UDP协议的连接信息。
-v : 显示正在进行的网络协议。
4. ping
该命令可用来测试计算机和网络上的其他计算机是否连通,例如:
5. 相关命令1
(1)rsh
rsh(remote shell)命令是远程shell命令,该命令在指定的远程主机上启动一个shell并执行rsh命令,如果rsh没有指定具体命令,就启用rlogin命令登录到远程主机上。
(2)telnet
telnet命令用于通过网络登录远程计算机,如同操作本地计算机一样。
(3)wget
wget命令用于Linux环境下从www上下载文件,支持HTTP和FTP协议,支持代理服务器和断点续传功能,能够自动递归远程主机的目录,查找合乎要求的文件并下载到本地硬盘上,wget命令可在后台运行,截获并忽略HANGUP信号,因此在用户退出登录之后,仍可继续运行。
进程管理命令
1. kill
该命令用于终止一个程序。例如:
2. ps
该命令用于显示程序的状态。例子如下: