谈到Linux命令很多人都望而生畏,因为Linux的命令太多了,而且每个命令都有很多选项,但是Linux命令又是Linux系统里最重要的工具,学习Linux命令是学习Linux必不可少的一个环节,也是Linux入门基础。所以在介绍Linux的其它方面之前,我们先介绍一下Linux的常用命令,希望我的这点简单介绍对你了解Linux命令有所帮助。
在介绍所有的命令之前,先介绍一下Linux的在线帮助man。在Linux下,当你要查找一个命令的用法的,你可以通过 man 命令名来源得命令的详细说明。因为每个Linux都有一份man文档,所以介绍命令的时候我们只是简直介绍一下命令的学用选项。如果想查看命令的详细说明,请自己看man。下面是man各小节的内容:
- apropos
依据所给关键字查找相关的命令和系统调用 格式:apropos keyword
例:查找与ftp相关的命令和系统调用
$apropos ftp
注:类似的命令有man -k。man -k 其实就是执行apropos
- at
在某一特定时间执行指定的命令 格式:at [-V][-q 队列][-f 文件][-m] time
选项说明:
-V显示标准的错误输出。
-f可将作业存在一个文件中,用这个选项指定文件。例如一个shell文件。
-q指定队列名称,默认为c。
-m执行后给用户发邮件。 time 指定开始执行的时间。时间格式为: HH:MM,日期格式:MM/DD/YY或MM.DD.YY或MMDDYY。下面的例子演示了在2004年3月11日21点34分执行一个at命令。
$at 21:34 03/11/04
执行这条命令后会得到一条warning:
commands will be executed using (in order) a)$SHELL b) login shell c)/bin/sh。然后就出现“at>”的提示符。这时你就可以输入你要执行的命令了,结束后按Ctrl+d。你就可以去喝茶了,到时间后系统会自动执行它。相关配置文件:
/etc/at.allow 如果这个文件存在,仅允许这个文件里列出的用户使用at。
/etc/at.deny 如果这个文件存在,该文件列出的用户都不能使用at服务。当这个文件为空时,任何用户都可以使用at,这是默认配置。
当运行at命令时,先检查/etc/at.allow文件是否存在,如果不存在,再检查 /etc/at.deny文件是否存在。不管这两个文件是不是存在,root用户都可以执行at命令。
相关命令:
atq:列出用户待执行的任务,除了root用户的外,每个用户的任务都将被列出。
atrm:通过任务号删除at任务。
batch:当系统负载允许的时候执行命令。比如当负载低于0.8或者一个指定的值时,指行atrun。
- cat
查看文件内容,从键盘读取数据,合并文件等 格式:cat [-b][-A][-E][-T][-n][-s][-v] 文件名
选项说明:
-b不显示文件中的空行。
-A相当于 -v -E -T (-vET)。
-E在文件的每一行行尾加上“$”字符。
-T将文件中的Tab键用字符“^I”来显示。
-n在文件的每行前面显示行号。
-s将连续的多个空行用一个空行来显示。
-v显示除Tab和Enter之外的所有字符。 下面的命令演示了如何显示file文件中的行号
$cat -n file
- chmod
修改文件权限 格式:chmod 选项 文件或目录名
选项说明:
u文件所有者
g文件所属组
o其它用户
+增加权限
-取消权限
=赋给权限
a所有用户
r读权限
w写权限
x执行权限 下面的命令演示了如何使所有用户都可以读写file文件
$chmod a+rw file
- chown
改变文件所有者 格式:chown [-R][-c][用户名][组名] 文件或目录名
选项说明:
-c文件属主改变时显示说明。
-R/r改变目录下的文件及其子目录下所有文件的属主。 下面的命令演示了如何改变 dir 目录下的文件及其子目录下的文件的属主为bugboy
$chown -R bugboy dir
- cp
复制文件 格式:cp 选项 源文件名 目标文件名
选项说明:
-R复制整个目录。
-f删除己存在的目标文件。
-i使用-f遇到删除文件时给出提示。 下面的命令演示了如何把 file 文件复制到当前用户的根目录下
$cp file ~/
- crontab
制定计划任务 crontab通过cron服务使用户能够在指定的时间执行某些程序,它通过cron复制,创建列出,删除crontab文件来管理用户权限和计划。
命令格式:crontab [-u username] [-l] [-e] [-r]
选项说明:
-e编辑当前用户的crontab文件,或者当一个crontab文件不存在时,创建一个crontab 文件。编辑并保存后文件被当前用户的crontab安装。
-l列出当前crontab文件内容。
-r删除当前用户的crontab文件。
-u username指定用户名。 crontab文件格式:
crontab文件有六个域,每个域之间用空格或者Tab键分开,前五个域都是整数或者*,格式如下(括号里面是取值范围):
分钟(0-59) 小时(0-23) 日(1-31) 月(1-12) 星期(0-6) 要执行的命令
其中星期取值0指星期日,其它取值递推。前面五个域,每个域都可以用*表示所有合法的值,或者用一个列表列出合法的值,各值之间用“,”隔开,也可以用“-”表示一个范围。下面的命令演示每个星期,星期日到星期四晚上23:30分关机。
30 23 * * 0-4 halt -p
下面的例子示出每星期星期一到星期五3:15分清除用户目录下的core文件
15 3 * * 1-5 find $HOME -name core 2>/dev/null |xargs rm -f
下面是一个crontab文件的例子,请用crontab -e 命令编辑。
SHELL=/bin/bash PATH=/usr/bin:/bin:/usr/sbin:/sbin MAILTO=bugboy HOME=/home/bugboy 30 23 * * 0-4 halt -p
前面四行定义环境变量,最后一行是执行的命令,你可以定义要执行多个命令。如果你的crontab文件已经正确编辑,保存退出后会得到一条"crontab:installing new crontab" 的信息。
相关文件:
/etc/cron.d/cron.allow
如果这个文件存在,文件中包含的用户名可以使用crontab。 /etc/cron.d/cron.deny
如果这个文件存在,文件中包含的用户不能使用crontab。 你可以自己编辑这两个文件,注意每个用户名占一行。
- df
查看磁盘剩余空间 格式:df [-t][-x][-k][-p][-a][-m][filename]
选项说明:
-t只输出类型列在fstype中的文件系统。
-x只输出类型没有列在fstype中的文件系统。
-k显示空间以K为单位。
-m显示空间以M为单位。
-a将空间为0的文件系统也输出。
filename指定要查看的文件的大小。 - fdisk/sfdisk
查看硬盘分区信息 格式:fdisk -l [-u] [device ...] fdisk -s partition
选项说明:
-u列出分区表的时候以扇区的大小代替柱面大小。
-l列出给定设备的分区表,如果没有给定设备,则列出/proc/partions中设备的分区表。
-s partition给出partition分区的大小(以块为单位)。 - file
识别文件类型 格式:file 文件名
- find
查找文件 格式:find [路径][匹配表达示]
其中匹配表达示有几种类型:
-name filename查找指定名称的文件。
-user username查找指定用户名的文件。
-group grpname查找指定级名的文件。
-print显示查找的结果。
-size n查找大小为n块的文件,一块等于512字节。符号“+n”表示查找大小大于n块的文件;符号“nc”表示查找大小为n个字符的文件,同样的也有符号“+nc”。
-inum n查找索引结点号(i-node)为n的文件。
-atime n查找n天前被访问的文件。“+n”表示超过n天前被访问的文件;“-n”表示不超过n天前被访问的文件。
-mtime n类似于atime,但是检查的是文件内容被修改的时间。
-ctime n类似于atime,但检查的是文件索引结点被改变的时间。
-perm mode查找与给定权限匹配的文件,必须以八进制的形式给出访问权限。
-newer file查找比指定文件新的文件,即最后修改时间离现在较近。
-exec command对匹配文件执行command命令,command后用了个大括号包括文件名。command必须以反斜杠和一个分号结尾。
-ok command执行command的时候请求用户确认。其它与-exec相同。 例:查找当前目录下所有以.bak结尾的文件,并删除它们 $find . -name "*.bak" -exec rm {} /;
注:这里
*.bak 必须要用单引号或者双引号引起来,或者可以写成/*.bak。 - head
输出文件内容前面的部分 格式:head [选项][文件]……
选项说明:
-n输出文件的前n行,默认输出10行。
-c指定输出文件的大小,单位为byte。 - kill
终止进程 格式:kill [-s|p][-a] PID
选项说明:
-s指明发送给进程的信号。例如-9(强行终止),默认发送TERM信号。
-p显示进程的ID,不发送信号。
-a终止所有进程。
0给所有在当前进程组中的进程发送信号。
-1给所有进程号大于1的进程发送信号。 - less
交互式显示文件内容 格式:less 文件名
说明:
可以通过C-v(Page-Down)、C-b(Page-Up)向后向前翻页,C-p、C-n向后向前移一行。这个命令和后面要说的more命令都可以按q键退出。
- ln
在文件之间建立链接 格式:ln [-b][-d][-F][-f][-i][-n][-s][-v] 源文件 目录文件或目录
选项说明:
-b为删除的文件建立备份。
-d允许root用户建立硬链接。
-F与b相同。
-f强行删除目标文件。
-i在删除文件时给出提示。
-n当目标文件是目录的符号链接时,替代该符号链接。
-s用符号链接代替硬链接(建立符号链接)。
-v输出被链接文件的文件名。 - ls
用于浏览目录,查看当前目录下的文件和文件名 格式:ls [选项]
选项说明:
-a显示所有文件(包括隐藏文件)。
-l显示文件的详细信息。
-k显示文件大小,以K为单位。
-color显示文件时用不同颜色加以区别文件类型。
-d将根目录作为文件显示。 - more
一页一页地显示文件内容 格式:more [选项] 文件名
选项说明:
+n由第n行开始显示
+/str由含有str字符串的地方开始显示。 - mount
加载文件系统 格式:mount 磁盘或分区的设备文件 载入点 选项
选项说明:
-t文件系统类型(fat32为vfat)
-o选项常用的选项有codepage,iocharset(对于中文codepage=936,iocharset=gb2312)
-loop挂载ISO文件时用 举个例子,挂载/dev/hda5到/mnt/wind目录下并且目录支持中文,命令如下:
#mount -t vfat /dev/hda5 /mnt/wind -o codepage=936,iocharset=gb2312
- mv
重命名文件或移动文件 格式:mv [-b][-f][-i][-u][-v] 源文件 目标文件或文件夹
选项说明:
-b为源文件作备份
-f文件重命名时强制覆盖己有文件。
-i覆盖文件时给出提示。
-u目标文件比源文件新时不覆盖。
-v移动文件时给出相应的提示。 - oggenc
压缩音乐文件为.ogg格式 格式:oggenc 文件名
把*.wav文件压缩为*.ogg格式
$oggenc *.wav
同等条件下,ogg会比mp3获得较好的音乐效果
- ps
查看进程状态 格式:ps [选项]
选项说明:
-e/A列出所有进程。
-u选择有效的用户ID。
-p选择指定终端下的进程。
-C选择指定的文件名。
-f列出所有详细信息。
-l按长格式显示。
-j按job格式显示。
-x选择没有控制终端的进程。 - quota
显示磁盘的使用情况,一般用户可以查看自己使用磁盘的权限 格式:quota [-g][-u][-v][-p] 用户名或组名
选项说明:
-g显示用户所在组使用磁盘的权限。
-u显示用户自己使用磁盘的权限。
-p使显示信息简洁化。 - rename
批量修改文件名 格式:rename from to file...
选项说明:
from源字符。
to目标字符。
file要改名的文件 下面的命令演示了把所有文件的后辍由rm改为rmvb
$rename .rm .rmvb *
下面的命令把所有文件名中的大写改为小写
$rename 'tr/A-Z/a-z/' *
- rpm
redhat软件包管理工具 格式:rpm [选项] 文件名|软件包名
选项说明:
--version获得rpm程序的版本信息。
-vv获得详细的帮助信息。
-v打印冗长的信息,常与-i选项合用,获得安装进度。
-i安装软件包。
-U升级软件包,如果没有旧版的软件包就安装它。
-F更新软件包,当有旧的软件包的时候。
--force相当于--replacepkgs,--repalcefiles,--oldpackage。
--nodigest不验证软件包的独立性。
--nosignature不验证软件包或者页眉签名。
--nodeps不检查软件包的安装路径。
--oldpackage用新软件包替换旧软件包。
--prefixPATH 指定软件包的安装路径。
--relocateOLDPATH=NEWPATH 把原来安装在“OLDPATH”下的软件包重新安装到“NEWPATH”去。
--replacefiles安装软件包,即使它们替换掉其它的文件。
--replacepkgs替换掉已经安装的同名软件包。
-e|--erase软件包名删除软件包。
--allmatches删除软件包的所有版本。
-q查询已经安装的软件包。
-a选择所有软件包。
-h当解开软件包时,打印50个标记,通常与iv选项一起用。 特别说明:
在删除软件包时,软件包的名称不等于安装时的文件名。通常一个rpm包由软件包名称+版本号+发行号+发行平台+后辍构成。比如有个文件名为bugboy-1.01-1.i386.rpm,那么它的软件包名称是bugboy,版本号是1.0.1,发行号是1,发行平台是intel 386。
- rm
删除文件或者目录 格式:rm [-d][-i][-r][-v][-f] 文件名或目录名
选项说明:
-d使用这个选项后,rm大体想当于unlink。
-i删除每个文件时给用户提示。
-r删除整个目录,包括文件和子目录。
-v删除每个文件时给出提示。
-f强制删除,并且不给提示。 - sox
转换音频文件 格式:sox [选项] from [选项] to
选项说明:
-t文件格式。
-r采样频率。 例:把file1.wav转换成file1.au文件
$sox file1.wav file1.au
把file1.wav 转换成file1.voc文件,并把采样频率由10000 Hz降为5000 Hz
$sox -r 10000 file1.wav -r 5000 file1.voc
减小文件噪音,让文件通过低通滤波器
$sox file1.wav file1.voc lowp 2200
注:对于一些没有许可授权的文件格式,sox不支持
- su
改变当前用户的ID。 - tail
输出文件内容后面的部分 格式:tail [选项] 文件名
选项说明:
-n只显示后面的n行。
-f动太显示,常用于跟踪消息文件。 - tar
解压或压缩文件 格式:tar [选项] 文件[文件1……] 目录[目录1……]
选项说明:
-A将一个tar文件追加到一个存档中。
-c生成一个新的存档文件。
--delete从存档中删除。
-r将文件添加到一个存档的末尾。
-l列出一个存档的内容。
-u仅将些存档中内容较新的文件添加到存档中。
-x从存档中解压缩文件。
-v详细地列出处理过的文件的信息。
-z用gzip来处理文件。
--remove-files将文件解压之后就删除它们。
-Z用compress来处理文件。 注意:选项中必须包含有A
c d r t u x中的一个或多个。 - top
查看CPU的使用率,修改进程运行优先级 格式:top 选项
选项说明:
-d delay指定刷新的秒数。
-p pid查看指定pid的CPU使用率。 默认情况下进程按CPU使用率排序,可按PID(N),时限(A),常驻内存使用率(M),时间(T),和CPU使用率(P)来排序。
- type
查看一个命令所在路径 格式:type command
例:查找ls命令所在路径
$type ls
- umount
卸载系统 格式:umount 磁盘或分区的设备文件(也可以是载入点)
- useradd
添加用户或更新新创建用户的默认信息 格式:useradd 选项
选项说明:
-c comment描述新用户帐号,通常为用户全名。
-d home_dir设置用户主目录,默认值为用户的登录名,并放在/home目录下。
-D创建新帐号后保存为新帐号设置的默认信息。
-e expire_date用MM/DD/YYYY格式设置帐号过期日期。
-f inactivity设置口令失效时间,该值为0使口令失效后帐号立即失效,为-1使该选项失效。
-g设置基本组。
-k skel_dir设置框架目录,该目录包含用户的初始配置文件,创建用户时该目录下的文件都被复制到用户主目录下。
-m自动创建用户主目录,并把框架目录(默认为/etc/skel)下的文件复制到用户主目录下。
-M不创建用户主目录。
-r允许保留的系统帐号使用用户ID创建一个新帐号。
-s shell指定用户的登录shell。
-u user_id设置用户ID。 例:#useradd -m -g users -G Wheel,student -s /bin/sh -c "Yan Dingcheng" bugboy
例用usermod修改用户帐号时各选项与useradd命令相似。
- userdel
删除用户帐号 格式:userdel username
选项说明:
-r删除帐号时连同帐号主目录一起删除。 注意:删除用户帐号时非用户主目录下的用户文件并不会被删除,管理员必须以find命令搜索删除这些文件。下面这条命令删除bugboy用户的所有文件:
#find / -user bugboy -exec rm {} /;
- whatis
查看可以使用的man page和命令的基本功能介绍 例:$whatis top
- whereis
定位可执行文件、源代码文件、帮助文件在文件系统中的位置 格式:whereis [-bmsu] [BMS 目录名 -f ] 文件名
选项说明:
-b定位可执行文件。
-m定位帮助文件。
-s定位源代码文件。
-u搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B指定搜索可执行文件的路径。
-M指定搜索帮助文件的路径。
-S指定搜索源代码文件的路径。 - w
查看登录用户和他们正在做什么 格式:w [-hsfV] [user]
选项说明:
-h不打印信息头。
-s使用短格式显示信息。
-f打印用户来源。
-V显示版本信息。 - who
查看当前用户的便当情况 格式:who [-i][-u][-m]
选项说明:
-i显示用户的活动状况。
-u与-i相同。
-m显示用户自身的情况