Linux常用命令

1.1登录和退出

Linux启动后,给出login命令,等待用户登录。

Login:<输入用户名>

Password:<输入密码>

如果是正确的用户名和密码,那么你就会进入Linux的外壳,外壳给出命令提示符,等待

你输入命令(不要随意以root身份登录,以避免对系统造成意外的破坏)。

使用logout命令退出外壳。

1.2Linux系统的外壳

外壳是一种命令解释器,它提供了用户和操作系统之间的交互接口。外壳是面向命令行的,

而XWindow则是图形界面。你在命令行输入命令,外壳进行解释,然后送往操作系统执行。

外壳可以执行Linux的系统内部命令,也可以执行应用程序。你还可以利用外壳编程,执行复杂的命令程序。

Linux提供几种外壳程序以供选择。常用的有Bourne外壳(bsh)、C外壳(csh)和Korn外壳(ksh)。各个外壳都能提供基本的功能,又有其各自的特点。

Bourne外壳是由StevenBourne编写的,是UNIX的缺省外壳。Bourne外壳的外壳编程能力很强。但它不能处理命令的用户交互特征。bash是Bourne外壳的增强版。

C外壳是由加利福尼亚大学伯克利分校的BillJoy编写的。它能提供Bourne外壳所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。很多人认为,C外壳的编程能力不如Bourne外壳,但它的语法和C语言类似,所以C程序员将发现C外壳很顺手。tcsh是C外壳的增强版本和C外壳完全兼容。

Korn外壳是由DaveKorn编写的。Korn外壳融合了C外壳和Bourne外壳的优点,并和

Bourne外壳完全兼容。Korn外壳的效率很高,其命令交互界面和编程交互界面都很不错。

PublicDomainKorn外壳(pdks)是Korn外壳的增强版。

bash是大多数Linux系统的缺省外壳。它克服了Bourne外壳的缺点,又和Bourne外壳完全兼容。Bash有以下的特点:

•补全命令行。当你在bash命令提示符下输入命令或程序名时,你不必输全命令或程序

名,按Tab键,bash将自动补全命令或程序名。

•通配符。在bash下可以使用通配符*和?。*可以替代多个字符,而?则替代一个字符。

•历史命令。bash能自动跟踪你每次输入的命令,并把输入的命令保存在历史列表缓冲区。缓冲区的大小由HISTSIZE变量控制。当你每次登录后,home目录的.bash_history文件将初始化你的历史列表缓冲区。你也能通过history和fc命令执行、编辑历史命令。

•别名。在bash下,可用alias和unalias命令给命令或可执行程序起别名和清除别名。这样你可以用自己习惯的方式输入命令。

•输入/输出重定向。输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。

输出重定向更为常用,它经常用于将命令的结果输入到文件中,而不是屏幕上。输入重

定向的命令是<,输出重定向的命令是>。

•管道。管道用于将一系列的命令连接起来。也就是把前面的命令的输出作为后面的命

令的输入。管道的命令是|。

•提示符。bash有两级提示符。第一级提示符就是你登录外壳时见到的,缺省为$。你可

以通过重新给ps1变量赋值来改变第一级提示符。当bash需要进一步提示以便补全命令时,会显示第二级提示符。第二级提示符缺省为>,你可以通过重新给ps2变量赋值来改变第二级提示符。一些特殊意义的字符也可以加入提示符赋值中。

•作业控制。作业控制是指在一个作业执行过程中,控制执行的状态。你可以挂起一个

正在执行的进程,并在以后恢复该进程的执行。按下Ctrl+Z挂起正在执行的进程,用bg

命令使进程恢复在后台执行,用fg命令使进程恢复在前台执行。

2.3.1更改帐号密码

语法:passwd

Oldpassword:<输入旧密码>

Newpassword:<输入新密码(最好为6~8字,英文字母与数字混合)>

Retypenewpassword:<再输入一次密码>

2.3.2联机帮助

语法:man命令

例如:

manls

2.3.3远程登录

语法:rlogin主机名[-1用户名]

例如:

rlogindoc远程登录到工作站doc中。

rlogindoc-luser使用user帐号登录到工作站doc中。

语法:telnet主机名或telnetIP地址

例如:

telnetdoc

telnet140.109.20.251

2.3.4文件或目录处理

列出文件或目录下的文件名。

语法:ls[-atFlgR][name]

name:文件名或目录名。

例如:

ls列出目前目录下的文件名。

ls-a列出包括以.开始的隐藏文件的所有文件名。

ls-t依照文件最后修改时间的顺序列出文件名。

ls-F列出当前目录下的文件名及其类型。以/结尾表示为目录名,以*结尾表示为

可执行文件,以@结尾表示为符号连接。

ls-l列出目录下所有文件的权限、所有者、文件大小、修改时间及名称。

ls-lg同上,并显示出文件的所有者工作组名。

ls-R显示出目录下以及其所有子目录的文件名。

2.3.5改变工作目录

语法:cd[name]

name:目录名、路径或目录缩写。

例如:

cd改变目录位置至用户登录时的工作目录。

cddir1改变目录位置至dir1目录下。

cd~user改变目录位置至用户的工作目录。

cd..改变目录位置至当前目录的父目录。

cd../user改变目录位置至相对路径user的目录下。

cd/../..改变目录位置至绝对路径的目录位置下。

cd~改变目录位置至用户登录时的工作目录。

2.3.6复制文件

语法:cp[-r]源地址目的地址

例如:

cpfile1file2将文件file1复制成file2。

cpfile1dir1将文件file1复制到目录dir1下,文件名仍为file1。

cp/tmp/file1.将目录/tmp下的文件file1复制到当前目录下,文件名仍为file1。

cp/tmp/file1file2将目录/tmp下的文件file1复制到当前目录下,文件名为file2。

cp-rdir1dir2复制整个目录。

2.3.7移动或更改文件、目录名称

语法:mv源地址目的地址

例如:

mvfile1file2将文件file1更名为file2。

mvfile1dir1将文件file1移到目录dir1下,文件名仍为file1。

mvdir1dir2将目录dir1更改为目录dir2。

2.3.8建立新目录

语法:mkdir目录名

例如:

mkdirdir1建立一新目录dir1。

2.3.9删除目录

语法:rmdir目录名或rm目录名

例如:

rmdirdir1删除目录dir1,但dir1下必须没有文件存在,否则无法删除。

rm-rdir1删除目录dir1及其子目录下所有文件。

2.3.10删除文件

语法:rm文件名

例如:

rmfile1删除文件名为file1的文件。

rmfile?删除文件名中有五个字符且前四个字符为file的所有文件。

rmf*删除文件名中以f为字首的所有文件。

2.3.11列出当前所在的目录位置

语法:pwd

2.3.12查看文件内容

语法:cat文件名

例如:

catfile1以连续显示方式,查看文件名file1的内容。

2.3.13分页查看文件内容

语法:more文件名或cat文件名|more

例如:

morefile1以分页方式查看文件名file1的内容。

catfile1|more以分页方式查看文件名file1的内容。

2.3.14查看目录所占磁盘容量

语法:du[-s]目录

例如:

dudir1显示目录dir1的总容量及其子目录的容量(以KB为单位)。

du-sdir1显示目录dir1的总容量。

2.3.15文件传输

1.拷贝文件或目录至远程工作站

语法:rcp[-r]源地址主机名:目的地址

源地址文件名、目录名或路径。

主机名工作站名。目的地址路径名称。

例如:

rcpfile1doc:/home/user将文件file1拷贝到工作站doc路径/home/user下。

rcp-rdir1doc:/home/user将目录dir1拷贝到工作站doc路径/home/user下。

2.自远程工作站,拷贝文件或目录

语法:rcp[-r]主机名:源地址目的地址

主机名工作站名。

源地址路径名。

目的地址、文件名、目录名或路径。

例如:

rcpdoc:/home/user/file1file2将工作站doc路径/home/user下的目录dir1,拷贝到当前工

作站的目录下,目录名仍为dir1。

rcp-rdoc:/home/user/dir1.将工作站doc路径/home/user下的目录dir1,拷贝到当前工

作站的目录下,目录名仍为dir1。

3.本地工作站与远程工作站之间的文件传输

必须拥有远程工作站的帐号及密码,才可进行传输工作。

语法:ftp主机名或ftpip地址

例如:

ftpdoc与远程工作站doc之间进行文件传输。

Name(doc:user-name):<输入帐号>

Password(doc:user-password):<输入密码>

ftp>help列出ftp文件传输时可使用的命令。

ftp>!ls列出本地工作站当前目录下的所有文件名。

ftp>!pwd列出本地工作站当前所在的目录位置。

ftp>ls列出远程工作站当前目录下的所有文件名。

ftp>dir列出远程工作站当前目录下的所有文件名。

ftp>dir.|more分页列出远程工作站当前目录下的所有文件名。

ftp>pwd列出远程工作站当前所在的目录位置。

ftp>cddir1更改远程工作站的工作目录位置至dir1之下。

ftp>getfile1将远程工作站的文件file1拷贝到本地工作站中。

ftp>putfile2将本地工作站的文件file2拷贝到远程工作站中。

ftp>mget*.c将远程工作站中扩展文件名为c的所有文件拷贝到本地工作站中。

ftp>mput*.txt将本地工作站中扩展文件名为txt的所有文件拷贝到远程工作站中。

ftp>prompt切换交互式指令(使用mput/mget时不是每个文件皆询问yes/no)。

ftp>quit结束ftp工作。

ftp>bye结束ftp工作。

注意从PC与工作站间的文件传输也可透过在PC端的FTP指令进行文件传输,指令用

法与上述指令大致相同。

2.3.16文件权限的设定

1.改变文件或目录的读、写、执行权限

语法:chmod[-R]modename

name:文件名或目录名。

mode:3个8位数字或rwx的组合。r-read(读),w-write(写),x-execute(执行),u-user(当前用户),g-group(组),o-other(其他用户)。

例如:

chmod755dir1对于目录dir1,设定成任何使用者皆有读取及执行的权利,但只有所

有者可做修改。

chmod700file1对于文件file1,设定只有所有者可以读、写和执行的权利。

chmodu+xfile2对于文件file2,增加当前用户可以执行的权利。

chmodg+xfile3对于文件file3,增加工作组使用者可执行的权利。

chmodo-rfile4对于文件file4,删除其他使用者可读取的权利。

2.改变文件或目录的所有权

语法:chown[-R]用户名name

name:文件名或目录名。

例如:

chownuserfile1将文件file1改为用户user所有。

chown-Ruserdir1将目录dir1及其子目录下面的所有文件改为用户user所有。

2.3.17检查自己所属的工作组名称

语法:groups

2.3.18改变文件或目录工作组所有权

语法:chgrp[-R]工作组名name

name:文件名或目录名

例如:

chgrpvlsifile1将文件file1的工作组所有权改为vlsi工作组所有。

chgrp-Rimagedir1将目录dir1及其子目录下面的所有文件,改为image工作组所有。

2.3.19改变文件或目录的最后修改时间

语法:touchname

name:文件名或目录名。

2.3.20文件的链接

同一文件,可拥有一个以上的名称,也就是把一个文件进行链接。

语法:ln老文件名新文件名

例如:

lnfile1file2将文件file2链接至文件file1。

语法:ln-s老文件名新文件名

例如:

ln-sfile3file4将文件file4链接至文件file3。

2.3.21文件中字符串的查寻

语法:grepstringfile

例如:

grepabcfile1寻找文件file1中包含字符串abc所在行的文本内容。

2.3.22查寻文件或命令的路径

语法:whereiscommand显示命令的路径。

语法:whichcommand显示命令的路径,及使用者所定义的别名。

语法:whatiscommand显示命令功能的摘要。

语法:findsearch-path-namefilename-print搜寻指定路径下某文件的路径。

例如:

find/-namefile1-print自根目录下寻找文件file1的路径。

2.3.23比较文件或目录的内容

语法:diff[-r]name1name2

name1name2:可同时为文件名或目录名。

例如:

difffile1file2比较文件file1与file2内各行的不同之处。

diff-rdir1dir2比较目录dir1与dir2内各文件的不同之处。

2.3.24文件打印输出

用户可用.login文件中的setenvPRINTER来设定打印机名。

例如:

setenvPRINTERsp设定自sp打印机打印资料。

2.3.25一般文件的打印

语法:lpr[-P打印机名]文件名

例如:

lprfile1或lpr-Pspfile1自sp打印机打印文件file1。

语法:enscript[-P打印机名]文件名

例如:

enscriptfile3或enscript-Pspfile3自sp打印机打印文件file3。

2.3.26troff文件的打印

语法:ptroff[-P打印机名][-man][-ms]文件名

例如:

ptroff-Psp-man/usr/man/man1/lpr1以troff格式,自sp打印机打印lpr1命令的使用说明。

2.3.27打印机控制命令

1.检查打印机状态、打印作业顺序号和用户名

语法:lpq[-P打印机名]

例如:

lpq或lpq-Psp检查sp打印机的状态。

2.删除打印机内的打印作业(用户仅可删除自己的打印作业)

语法:lprm[-P打印机名]用户名或作业编号

例如:

lprmuser或lprm-Pspuser删除sp打印机中用户user的打印作业,此时用户名必须为user。

lprm-Psp456删除sp打印机上编号为456的打印作业。

2.3.28进程控制

1.查看系统中的进程

语法:ps[-aux]

例如:

ps或ps-x查看系统中,属于自己的进程。

ps-au查看系统中,所有用户的进程。

ps-aux查看系统中,包含系统内部的及所有用户的进程。

2.结束或终止进程

语法:kill[-9]PID

PID:利用ps命令所查出的进程号。

例如:

kill456或kill-9456终止进程号为456的进程。

3.在后台执行进程的方式

语法:命令&

例如:

ccfile1.c&将编译file1.c文件的工作置于后台执行。

语法:按下Control+Z键,暂停正在执行的进程。键入bg命令,将暂停的进程置于后台继

续执行。

例如:

ccfile2.c

^Z

Stopped

bg

4.查看正在后台中执行的进程

语法:jobs

5.结束或终止后台中的进程

语法:kill%n

n:利用jobs命令查看出的后台作业号

例如:

kill%终止在后台中的第一个进程。

kill%2终止在后台中的第二个进程。

2.3.29外壳变量

1.查看外壳变量的设定值

语法:set查看所有外壳变量的设定值。

语法:echo$变量名显示指定的外壳变量的设定值。

2.设定外壳变量

语法:setvar=value

例如:

setterm=vt100设定外壳变量term为VT100型终端。

3.删除外壳变量

语法:unsetvar

例如:

unsetPRINTER删除外壳变量PRINTER的设定值。

2.3.30环境变量

1.查看环境变量的设定值

语法:setenv查看所有环境变量的设定值。

语法:echo$NAME显示指定的环境变量NAME的设定值。

例如:

echo$PRINTER显示环境变量PRINTER的设定值。

2.设定环境变量

语法:setenvNAMEword

例如:

setenvPRINTERsp设定环境变量PRINTER为sp。

3.删除环境变量

语法:unsetenvNAME

例如:

unsetenvPRINTER删除环境变量PRINTER的设定值。

2.3.31别名

1.查看所定义的命令的别名

语法:alias查看自己目前定义的所有命令,及所对应的别名。

语法:aliasname查看指定的name命令的别名。

例如:

aliasdir查看别名dir所定义的命令。

ls-atl

2.定义命令的别名

语法:aliasname‘commandline’

例如:

aliasdir‘ls-l’将命令ls-l定义别名为dir。

3.删除所定义的别名

语法:unaliasname

例如:

unaliasdir删除别名dir的定义。

unalias*删除所有别名的设定。

2.3.32历史命令

1.设定命令记录表的长度

语法:sethistory=n

例如:

sethistory=40设定命令记录表的长度为40(可记录执行过的前面40个命令)。

2.查看命令记录表的内容

语法:history

3.使用命令记录表

语法:!!重复执行前一个命令。

语法:!n

n:命令记录表的命令编号。

语法:!string重复前面执行过的以string为起始字符串的命令。

例如:!cat重复前面执行过的以cat为起始字符串的命令。

4.显示前一个命令的内容

语法:!!:p

5.更改前一个命令的内容并执行

语法:^oldstring^newstring将前一个命令中oldstring的部份改成newstring并执

行。

例如:

find.-namefile1.c-print

^file1.c^core

find.-namecore-print

2.3.33文件的压缩

1.压缩文件

语法:compress文件名压缩文件

语法:compressdir目录名压缩目录

2.解压缩文件

语法:uncompress文件名解压缩文件

语法:uncompressdir目录名解压缩目录

2.3.34管道命令的使用

语法:命令1|命令2将命令1的执行结果送到命令2,做为命令2的输入。

例如:

ls-Rl|more以分页方式列出当前目录及其子目录下所有文件的名称。

catfile1|more以分页方式列出文件file1的内容。

2.3.35输入/输出控制

1.标准输入的控制

语法:命令<文件将文件做为命令的输入。

例如:

mail-s“mailtest”[email protected]<file1将文件file1当做信件的内容,主

题名称为mailtest,送给收信人。

2.标准输出的控制

语法:命令>文件将命令的执行结果送至指定的文件中。

例如:

ls-l>list将执行“ls-l”命令的结果写入文件list中。

语法:命令>!文件将命令的执行结果送至指定的文件中,若文件已经存在,则覆盖。

例如:

ls-lg>!list将执行“ls-lg”命令的结果覆盖写入文件list中。

语法:命令>&文件将命令执行时屏幕上所产生的任何信息写入指定的文件中。

例如:

ccfile1.c>&error将编译file1.c文件时所产生的任何信息写入文件error中。

语法:命令>>文件将命令执行的结果附加到指定的文件中。

例如:

ls-lag>>list将执行“ls-lag”命令的结果附加到文件list中。

语法:命令>>&文件将命令执行时屏幕上所产生的任何信息附加到指定的文件中。

例如:

ccfile2.c>>&error将编译file2.c文件时屏幕所产生的任何信息附加到文件error中。

2.3.36查看系统中的用户

语法:who或finger

语法:w

语法:finger用户名或finger用户名@域名

2.3.37改变用户名

语法:su用户名

例如:

suuser进入用户user的帐号。

passwrod:<输入用户user的密码>

2.3.38查看用户名

语法:whoami查看登录时的用户名。

语法:whoami查看当前的用户名。若已执行过su命令,则显示出此用户的用

户名。

2.3.39查看当前系统上所有工作站的用户

语法:rusers

按Ctrl+C>结束

2.3.40与某工作站上的用户交谈

语法:talk用户名@主机名或talk用户名@IP地址

例如:

1)可先利用rusers指令查看网络上的用户;

2)假设自己的帐号是u84987,在工作站indian上使用,现在想要与doc上的u84123交

谈。

talku84123@doc

此时屏幕上将会出现等待画面

在对方(u84123)屏幕上将会出现下列信息:

MessagefromTalk_Daemon@Local_host_nameatxx:xx

talk:connectionrequestedbyu84987@indian

talk:respondwith:talku84987@indian

此时对方(u84123)必须执行talku84987@indian即可互相交谈。

最后可按Ctrl+C结束。

2.3.41检查远程系统是否正常

语法:ping主机名或pingIP地址

例如:

pingdoc

2.3.42电子邮件的使用简介

1.将文件当做电子邮件的内容送出

语法:mail-s“主题”用户名@地址<文件

例如:

mail-s“program”user<file.c将file.c当做mail的内容,送至user,主题为program。

2.传送电子邮件给本系统用户

语法:mail用户名

3.传送电子邮件至外地用户

语法:mail用户名@接受地址

例如:

[email protected]

Subject:mailtest

:

:

键入信文内容

:

:

按下Ctrl+D键或.键结束正文。

连按两次Ctrl+C键则中断工作,不送此信件。

Cc(Carboncopy):复制一份正文,给其他的收信人。

3.检查所传送的电子邮件是否送出,或滞留在邮件服务器中

语法:/usr/lib/sendmail-bp

若屏幕显示为“Mailqueueisempty”的信息,表示mail已送出。

若为其他错误信息,表示电子邮件因故尚未送出。

相关推荐