Decode360's Blog

业精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  397 随笔 :: 33 文章 :: 29 评论 :: 0 Trackbacks
Linux基础命令
 
  安装完Linux,并配置好Linux的启动,那么如果在安装时你选的是启动到图形界面下的话,现在你就应该可以看到登陆的窗口了。输入你的用户名和密码,就开始了你的Linux之旅。
 
  在Linux下,你的确可以体验到永不死机的神话。Linux系统的确强大,在他的下面你的确不用担心莫名其妙的蓝屏。笔者使用Linux以有几年,在这几年里从没发生过真正的死机,就算是偶尔的在xwindows下系统没有了响应也可以按“ctrl+alt+backspace”退出窗口返回命令行模式下。
 
  其实要了解linux,那就一定要习惯命令行模式,因为xwindows只是运行在命令行模式上的一个应用程序而已,就象Dos与Windows3.x一样,所以了解一下Linux的常用命令还是很有用处的。下面我就介绍一些在Linux下使用频率最高的几个命令,这些命令的介绍并不象专业书籍那样介绍的大而全,我只是拣着那些对我们普通用户最有用的来介绍,每个命令都对照着相同功能的Dos命令来说,并列出一些常用的参数。

  在介绍一些具体的命令前先要说明的是,如果碰到不会用的命令,可以打man [command]”来得到关于这个命令的帮助,如果想知道一个命令都有什么参数的时候可以“command -help”来得到。要注意的是Linux里的参数的输入形式和Dos里的不一样,在命令后面应该打一个空格,然后打“-”,最后再跟一个或多个参数。还要注意的是Linux下是区分大小写的!
 
 
一、基本操作命令
 
ls
 
相当于dos下的dir命令,是列文件列表的命令,和dir差不多。参数有:

-a  
    列出系统中的隐含文件。
    < 注:Linux下的隐含文件是靠文件名的格式来表示的,不同于Dos是靠文件属性来表示。具体的说只要这个文件是以“.”开头的,那么他就是一个隐含文件>
-l  
    以长式列出,就是把该文件或目录的所有信息都列出来,一个文件占一整行。
 
cd

Dos下的cd一样,转换目录的命令。需要指出的是Linux下的转到上级目录要cd ..”而不是dos下的“cd..”(也就是说“cd”后面要有个空格)
 
注:“cd -”表示返回上一次的目录,“cd /”表示返回根目录,“cd ~”表示返回当前用户的目录
 
pwd

列出当前目录命令,相当于dos下没有参数的cd命令。比如:
[root@ttqq bin]# pwd
/usr/bin
[root@ttqq bin]#

这表示我们现在在“/usr/bin目录下。
有关目录和文件的命令:
 
mkdir
 
建立新目录,相当于Dos的md命令。一般就用 mkdir [dirname],参数:

-m mode
    表示建立目录时默认的目录模式。这个是dos和windows所没有的功能。主要是关于权限的问题,读者如有兴趣请参考相关专业书籍。
 
rmdir

删除目录,相当于Dos的rd命令。用法:rmdir [dirname]
    注:这个命令只能删除空的文件夹,如果文件夹中有内容,需要使用rm -r命令!
 
cat
 
在文件后面追加文件或在屏幕上打印文件内容,追加功能相当于Dos的copy file1+file2,而在屏幕上打印文件内容可以和Dos的typeml来类比。如果文件太大,以至于在一屏幕上无法完全显示,那么可以试试下面这个命令。
 
more

分屏显示文件内容,和Dos下的more命令大致相同,而他的特点是可以和别的命令来搭配使用。如:cat /home/eec/myfile | more
 
cp

拷贝文件,相当于dos下的copy使用方法和dos下的copy一样。参数:

-r
    相当于dos的xcopy/s。用于拷贝一个目录下的所有文件和文件夹。

ln

建立文件链接。相当于Windows下的快捷方式。用法: “ln 源文件 目标文件”
 
mv

重新命名文件,等价于Dos的move和ren命令。用法:“mv oldname newname”比如:“mv 111 /home/ekoala/222”就是把“111”这个文件移动到/home/ekoala”目录下,并改名为“222”
 
touch

改变文件的修改时间或建立时间。相当于dos的copy file+nul。最简单的用法是:“touch file_name”,即把“file_name”这个文件的时间改为当前时间。
    注意:如果touch后面的文件不存在的话就会在磁盘上建立一个新的空文件。
 
 
二、进程或进程的相关命令

  首先介绍一下linux的多进程,linux的多进程要比windows的多进程更有效率、更加稳定。在命令行状态下输入的普通命令都在前台完成,而如果你在命令后面加一个"&",那么这个命令就在后台运行。好,言归正传,现在开始介绍有关进程的常用命令。

at

安排作业在稍后执行。这个命令非常强大,同时也非常复杂,这个命令可以说是unix/linux的一大特色。我们先来看一个具体的实例:
[root@ttqq bin]# at 21:05 Jul 31
at>cat /usr/docs/ccttrr.htm >myfile
at>
warning:commands will be executed using /bin/sh
job 5 at 2000-07-31 21:05

  以上的意思为输入在7月31日21点05分运行一个程序,接着系统提示用户输入命令或命令列表,使用“ctrl+d”终止。终止at后,系统给出一个警告,这个响应表示指定的工作将在指定的时间运行,工作号为5,如果想取消此作业可用与之相连的工作号来完成。
 
    如果命令很多,那建议将命令列表放入一个文件,若文件名是"comtable"那就输入:
[root@ttqq bin]# at 21:05 Jul 31
 
    由于at的特殊性,所以linux系统对at有一些权限上的规定:
    超级用户可以随意使用at命令,但对普通用户来说,则由/etc/at.allow与/etc/at.deny这两个文件来决定。
  如果/etc/at.allow这个文件存在,那么只有在该文件中提及的用户可以使用该命令,相反的,如果这个文件不存在,则检查/etc/at.deny这个文件,该文件中未提及的用户可以使用该命令。如果两个文件都不存在。那就只有超级用户可以使用该命令。如果/etc/at.deny这个文件为空,那么所有用户都可以用这个命令。
at的参数有:

-l
    列出现在由at安排的作业。超级用户可以列出所有的用户,普通用户只能列出自己的at作业。
 
-m
    作业完成后,即使没有输出,也将邮件送到用户。
 
-r
    从作业中取消指定的作业,比如取消上例的作业:at –r 5。超级用户可以取消所有的用户,而普通用户只能取消自己的作业。
ps

显示当前正在执行的进程,由于进程执行的非常快,所以本命令只能列出查询瞬间发生的进程。以下为超级用户用ps -al参数的输出:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 0 273 265 0 69 0 - 472 wait4 tty1 00:00:00 bash
100 S 500 286 266 0 62 0 - 466 wait4 tty2 00:00:00 sh
100 S 503 299 267 0 64 0 - 465 read_c tty3 00:00:00 sh
000 S 500 318 286 0 62 0 - 1193 do_sel tty2 00:00:00 vi
100 R 0 328 273 0 70 0 - 638 - tty1 00:00:00 ps
其中"PID"为进程号,对进程的管理就是通过进程号来实现的。ps的参数有:

-a
    显示所有的进程,支线于超级用户使用。
 
-l
    长格式输出。
 
-u
    用户格式输出,显示用户名和起始时间。
 
-r
    只显示当前运行的进程。
 
-s
    加入子cpu时间和页错误报告。
 
 
下面我在说一下ps各列标题的意思: 列名

PID    进程号
PRI    进程的优先级
NI     Linux的nice值,负数少意味着占用较少的cpu时间。
SIZE   虚拟映象的大小,计算式为:“文本+数据+栈”。
RSS    驻留空间的大小,显示当前常驻内存的程序的k字节大小。
WCHAN  进程等待的内核事件名。
TT     进程的控制终端tty的名称。
STAT   进程状态,用下列代码中的一个给出。
       R   可执行的。
       S   睡眠状态。
       D   不间断睡眠。
       T   停止或追踪。
       Z   是一个zombia进程。
       W   当前进程在内存中没有驻留页。
PAGEIN造成从磁盘读写页的页面错误。
TRS    文本寄存大小。
SWAP   交换文件的千字节数。
SHARE  共享内存数。
 
kill

容许送一个信号到当前进程,通常本命令用于终止进程的运行,所以也叫"杀死"进程。用法为:kill 进程号。超级用户可以杀死所有进程,普通用户只能杀死自己的进程。

cal

这个命令在屏幕上显示日历,这个命令非常有用。用法:cal [Month] [Year],参数为:

Month   用1-12表示显示的月份。缺省的是显示本月。
Year   可以是1-9999年,缺省是本年。必须写足4位数,也就是说,92代表公元92年,而不是公元1992年。
 
cal 10 1994,表示显示1994年10月的月历。

clear

清除屏幕,跟Dos的cls一样。
 
date

显示系统的日期和时间,或由超级用户来设定系统的时间。用户可以控制时间如何显示。语法如下:
date MMDDhhmm[CC][YY][.ss],参数说明:

MMDDhhmm[CC][YY][.ss]
    这些都是设定时间的格式。下表解释每一个变量。每部分必须都有两位数字。
MM
    月份(1-12)
DD
    日期(1-31)
Hh
    小时(00-24)
mm
    分钟(00-59)
CC
    年的前两位(可选)
YY
    年份(00-99)(可选)
Ss
    秒(可选)
 
file

    决定文件类型。File能确定该文件是否是可执行文件、文本文件、数据文件等。许多unix命令只是shell文件,file能确定这些命令是不是shell文件。他也可以确定该文件是否是基于文本的文件,以及该文件是否能编辑和浏览。参数:

-z 深入观察一个压缩文件,并试图查找出他的类型。
-l 本参数容许符号连接。
-f 告诉file要鉴别的文件列表在fflie。这对于要鉴别很多文件很有用。
-m 文件 指定用于说明文件类型的magic的一个替代文件。

find
 
find是一个非常强大的查找工具。他研究指定目录,并产生与指定标准相匹配的文件列表。文件可以按文件名、文件大小、建立时间、修改时间和其他许多标准,也可以在发现一个匹配文件的时候执行一个指令。语法如下:
find 目录(也可以是目录列表) 匹配标准。他的主要参数有:

目录(或目录列表)
    希望查询文件或文件集的目录列表,目录中用空格分开。
匹配标准
    希望查询文件的匹配标准或说明。
-name 文件
    告诉find要找什么文件,要找的文件包括在引号中,可以用统配符,如:“*”、“?”。
­-perm模式
    匹配所有模式为指定数字型模式值的文件。不仅仅是读、写和执行,表示除了这个模式外的所有模式。
-type x
    匹配所有类型为x的文件。X可以是c(特殊字符),b(特殊块),d(目录),p(有名管道),l(符号连接),s(套接文件)或者f(一般文件)。
-links n
    匹配所有连接数为n的文件。
-size n
    匹配所有大小为n块的文件。512字节块,若k在n后,则为1k字节块。
-user 用户号
    匹配所有用户序列号是指定的用户序列号的文件。用户号可以是数字型,也可以是用户登陆名。
-attinme n
    匹配在n天前访问过的文件。
-ntime n
    匹配在n天前修改过的文件。
-exec 命令
    对每个匹配文件执行命令。
-newer
    匹配所有修改时间比file文件更新的文件。
 
这些参数是可以一起并列使用的,也可以通过逻辑表达式来限制查询标准,如下表所示:

-and
    缺省的逻辑表达,表示要同时满足表达式左右两个的规则。可以不用,因为是缺省的。
-o
    这时or操作符,表示只要满足一个规则就可以。
-!
    这是not操作符,表示否定后面的表达式。
 
总之,find命令非常复杂,不是三言两语就能说清楚的,建议大家多参考联机手册,并多加练习就可以轻松掌握。
 
 
三、用户和用户管理及其他系统设定的相关命令
 
chgrp

改变文件的组所有权。一些chgrp命令有长短两种参数参数的指定方式,现只介绍短版本。语法:chgrp [参数] 组 文件列表,参数有:

-c   只有在文件所有权确实改变时才进行详细说明。
-f  不打印文件所有权不能改变的错误信息。
-v  详细说明文件所有权变化信息。

    要改变到的组,可以是组号的数字值,也可以是/etc/growp文件中的组名。
文件列表
    要改变组所有权的文件列表,文件间以空格分隔。
 
如果你不是文件的所有者或超级用户则不能改变文件的组所有权。
例子:chgrp ekoala /usr/eee/*
即把/usr/eee下的所有文件的组所有权改变为ekoala的。

 
chmod
 
改变文件模式,文件模式控制与该文件有关的访问权。Linux有3个安全级别:所有者级、组访问级和其他用户级。在这3个级中有3种读写权限:读、写和执行。对标准文件,读权限意味着用户可以看到该文件的内容;写权限能修改文件;执行权限则可以运行文件。对于目录则稍有不同:读权限可以看到目录下的内容,即可以用ls命令;写权限则可以在目录下建立新文件或从目录中删除文件;执行权限则意味着能从一个目录转变到另一个目录中,则可以使用cd命令。
用法:
chomd a + w letter
则是给所有用户加入写文件letter的权限。

权限代码为:读(r)、写(w)、执行(x)。
 
chown

这个命令和chgrp很相似,这个命令是改变文件的用户所有权,就是说将文件的拥有者设为其他用户。用法:
chown [参数] 用户 文件列表,参数有:

-c   只有在文件权限确实改变时才进行详细说明。
-f  不打印权限不能改变的文件错误信息。
-v  详细说明权限的变化。
文件列表
    列出由要chown改变权限的文件。
用户
    可以是用户号或是在/etc/passwd文件中的用户名。
 
要注意的是:文件的所有权只能由超级用户或文件的所有者更改。但是,如果文件的所有者将文件指定给其他的用户,则没有权利将文件再指定给自己,因为此时该用户已经不是文件的所有者了。
例子:
chown ekoala /usr/eee/ttqq ,这个意思是将/usr/eee/ttqq这个文件的所有者改为ekoala。
 
id
 
显示用户的系统标识,报告用户的名称、用户号、组名和组号。参数:

-g  只打印组号。
-G  只打印补充组。
-u  只打印用户号。
如:
[ekoala@ttqq usr]$ id
uid=10002(ekoala) gid=500(student) groups=500(student)
[ekoala@ttqq usr]$

 
passwd

维护用户口令,系统管理员可以用这个命令管理用户账号。用法:
passwd [用户名]
只有系统管理员才可以更改别人的密码。普通用户只能改自己的密码。如:
[ekoala@ttqq ekoala]$ passwd
Changing password for ekoala
(current) UNIX password: 〔输入当前密码〕
New UNIX password: 〔新密码〕
Retype new UNIX password: 〔确认新密码〕
Password:all authentication tokens updated successfully 〔成功改变密码〕
 
Useradd
 
添加一个新用户或改变用户现有信息。
 
Userdel
 
删除一个用户和他所有的文件。

df

报告硬盘的剩余空间数。参数有:

-a   可选的文件系统列表,他报告剩余的硬盘的空间数,若此项为空白,则报告现在装有的所有的文件系统。
-I  列出节点使用信息代替块使用信息。
-k  打印大小为1k为单位代替512k的块。
-t fstype
    限制只列出fstype类型的文件系统列表。
-x fstype
    限制只列出非fstype的文件系统列表。
 
gzip

gzip是一个非常流行的压缩工具,他通常和tar命令一起使用。语法:
gzip [参数] 文件列表,参数有:
 
-a  ASCII文本模式:按照约定转化文件结尾标志,这个选项只支持非UNIX操作系统,在msdos下,回车和换行符在压缩的时候被转换成换行符,解压的时候再转换回来。
-c  输出到标准输出,保留原文件不变,如果有几个输入文件,则输出保持一定的顺序。
-d  解压缩。
-f  强制压缩。
-l  详细显示文件的压缩情况:
    1压缩文件的大小。
    2未压缩前的大小。
    3压缩比和被压缩的文件名。
    4如果和-v参数一起使用,还显示下列信息:
    a压缩方法。
    b未压缩数据的32位CRC码。
    c文件的更改时间。
-q  不显示所有警告信息。
-r  递归压缩目录结构。
 
tar

tar是一个很流行的文件备份和压缩工具,用于建立系统备份或建立单一文件。Tar的语法很麻烦,现简单介绍如下:
tar crtux[fmtVwF] 文件列表。参数有:

参量  指定获得档案,可以是以下几个参数。
C  建立一个新档案或覆盖一个已存在的档案。
R  在文件列表中命名。
A  添加文件到备份包中。
T  列出压缩文件的列表。
U  从压缩文件里面解压缩文件。
 
文件列表  要处理的文件列表,可以包括统配符。如果处理的是目录,那么则处理目录及其下的所有文件和文件夹。
-b  指定分块数量n,n×512k,n的默认值是20。
-m  告诉tar解压缩时不需修改时间,修改时间就是解压缩的时间。
-c 目录名,
更改目录。
-k  保留已存在的文件,不从压缩文件中覆盖。
-v  生成有卷标的压缩文件。
-z  使用gzip解压缩文件。
 
比如解开一个名叫9s.tgz的压缩文件:
tar zxvf 9s.tgz
又例如要把/home/bbs下的所有文件打包成bbs.bak.tgz,可以这样:
tar zvcf bbs.bak.tgz /home/bbs/*

 
四、网络相关命令

    本节的内容很少,只是简单的介绍一下对个人用户有用的命令,虽然linux的最大特点在于他的网络功能,可是其中大部分的功能实在是太强大了,如果想仔细研究,请参考相关书籍。
 
login

login用于登录一个主机,也可以用来从一个用户转向另一个用户,这一点有点象su命令,但他的用法比su要多一些。语法:
login [参数] [主机名] [用户名],参数如下:
 
用户名
    如果没有给出任何参数,则login需要一个用户名。
-p  保留环境变量。
-f  忽略第二次登录证明。
-h  远程登录其他主机。
 
ping

和dos下的一样,用于检查两台联网的计算机之间的物理网络是否畅通,这个命令一般用于检查网络是否存在故障。
Ping命令向网络主机中发送ICMP(Internet Control Messeges Protocol)包,并要求目标主机回应。参数有:

-c  收到主机回应即停止。
-f  洪水式发包,一旦收到主机回应就发包,或者每秒一百个包。注意,只有超级用户才可以用这个命令,此命令会对网络产生不良影响。
-I  每发一个包等待一秒钟。
-l  强制连续以最快的速度发包。这个命令也只能有超级用户使用。
-s packetsize自定义包的大小。
 
 
五、其他命令
 
time
 
确定程序执行的时间。语法:
time [command]
 
uname

报告系统名或其他各种信息。语法:
uname [参数]

-s   报告系统名,这是个缺省值。
-n  报告系统的节点名。
-r  报告系统的发行号。
-v  报告系统的版本号。
-m  报告系统的硬件名。
-a  报告所有信息。
 
History
 
显示用户命令行的历史记录。

 
posted on 2008-12-09 22:29 decode360 阅读(314) 评论(0)  编辑  收藏 所属分类: 03.Linux

只有注册用户登录后才能发表评论。


网站导航: