Linux-shell命令
一、文件目录类命令
1、 查看联机帮助信息
man 命令 如:#man ls
info 命令 如:#info cd
2、列出当前目录或指定目录的文件名和目录名
ls [选项] 文件或目录
常用[选项]如下:
-a:显示所有的文件,包括以“.”开头的隐含文件。
-l:长格式输出
-m:宽行输出
-F:以各种符号表示不同的文件类型
–color:彩色输出
-R:递归输出
3、touch
功能:修改文件的创建日期或以当前系统日期创建一个空文件。
-d:修改文件的日期。
#touch –d 20030123 test.txt
4、cp
功能:复制文件
用法:cp [选项] 源文件或目录 目标文件或目录
选项:
a:该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
– d 拷贝时保留链接。
– f 删除已经存在的目标文件而不提示。
– i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
– p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
– r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
5、mv
功能:给文件或目录改名或将一个文件或目录移到另一个目录
用法:mv [选项] 源文件或目录 目标文件或目录
-i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
– f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
6、rm
功能:删除文件或目录
用法:rm [选项] 文件…
– f 强制删除
– r 指示rm将参数中列出的全部目录和子目录均递归地删除。
– i 进行交互式删除
7、cd
功能:改变工作目录。
语法:cd [directory]
用法:
#cd ..返回上一层目录
#cd ~进入自家目录
8、pwd
功能:显示当前工作目录
用法:#pwd
9、mkdir
功能:创建一个目录(类似MSDOS下的md命令)。
语法:mkdir [选项] dir-name
– m 对新建目录设置存取权限。也可以用chmod命令设置。
– p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
#mkdir –m a=rwx test
#mkdir –m u=rwx,g=rx,o=rx test1
#mkdir –m 755 test2
#mkdir –p test3/test4(test3和test4均为新目录)
10、rmdir
功能:删除空目录。
语法:rmdir [选项] dir-name
– p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。
11、file
功能:查看文件类型
语法:file 文件名
12、cat
功能:查看文本文件的内容
语法:cat 文件名
13、more
功能:分屏显示文本文件的内容。
14、less
功能:显示文本文件的内容,可使用pageup和pagedown上翻页下翻页。
15、head
功能:查看文件的开头部分内容
语法:head [行数] 文件名
用法:#head test.txt:显示前10行内容
#head -20 test.txt 显示前20行内容。
16、tail
功能:查看文件的结尾部分内容。
语法:tail [行数] 文件名
默认的行数为10行。
17、sort
功能:对文本文件中的各行进行排序
用法:sort 文件名
例:#sort 123.txt >456.txt 将123.txt排序后重定向到456.txt文件中。
18、uniq
功能:将重复行从输出文件中删除,只留下每条记录的唯一样本
语法: uniq 文件名
#uniq 456.txt文件中的重复行删除后输出
19、pr
功能:处理文件以便打印,输出到标准输出
语法:pr [参数] 文件名列表
[参数]
-d:将输出的每一行后加一新的空白行
-n:输出行号
如:#pr –n 123.txt
20、ln
功能:建立链接文件
语法:ls [-s] 源文件名 目标文件名
说
明:链接文件分为硬连接和软连接,硬连接相当于一个数据源有两个文件名,删除一个文件另一个文件不变,修改一个文件的内容另一个文件的内容也跟着改变。硬连接不能和另一个目录链接,也不能和其他文件系统的文件进行链接。软链接相当于快捷方式,没有上面的限制,加-s参数创建软链接。
21、wc
功能:统计文件的行数、字符数和单词数。
语法:wc [-lwc] 文件名
-l: 只显示行数,-w:只显示单词数,-c:只显示字符总数。
22、whatis
功能:可以用一行内容显示对命令行后输入的关键词的说明。
语法:whatis 关键词
用法:#whatis find whereis
23、Whereis
功能:确定指定文件的源程序/二进制程序和手册部分的位置。
用法:#whereis ls
24、which
功能:显示可执行命令的路径和它的别名。
用法:#which ls
25、locate
功能:可以查找具体文件或命令的路径,可以查找具体的字符串或子串
用法:locate 文件名或关键字
26、du
功能:统计文件和目录所占用的磁盘空间
语法:du [-ask] 文件名或目录名
-a:显示对涉及到的所有文件的统计,而不仅仅统计目录
-s:只打印出合计数
-k:以kB字节数显示
Find使用范例
find . -name ls.txt
find . -name ls.txt –print
find / -name ‘c??’ –print
find / -name ‘f*’ –print
find . -name ‘f*’ –exec ls –l {} /;
find . -name f/* –ok rm {} /; (交互式提问)
find . -perm 644 –mtime 4
find . -name ‘c??’ –o -name ‘d??’
28、grep
功能:在文件中搜寻匹配的行并进行输出
语法:grep [参数]<要找的字串><原文件>
-num:输出匹配行前后各num行的内容
-A num:输出匹配行后num行的内容
-B num:输出匹配行前num行的内容
-i:忽略大小写的区别
-v:只显示出那些不包括某字串的行和文件,和默认的相反
二、文件压缩和归档类命令
1、gzip
功能:是一种压缩程序,特点是可以得到最佳的压缩率,但速度较慢。
语法:gzip [-vd9] 文件名
-v:冗长型选项,可以显示每个文件的大小等
-d:解压
-9:产生最佳压缩效果,但速度较慢。
2、gunzip
功能:可以把压缩的文件解压成原始文件状态,可以解压扩展名为.gz,.z,.Z和.tgz等类型的压缩文件
语法:gunzip [-v] 文件名
-v:显示解压缩文件的冗长结果
3、tar
功能:可以归档多个文件和目录到一个.tar文件下,还可以从一个归档文件中抽取一个文件和目录。
语法:tar [-c][-r][-t][-x][-v][-z][f 文件名]
文件和目录名
-c:创建归档文件
-r:增加文件到归档文件中
-t:查看归档文件中的文件
-x:解开归档文件
-v:显示冗长信息
-z:进行压缩和解压
如: #tar –cvf back.tar 文件1 目录1 文件2
#tar –rvf back.tar 文件3
#tar –tf back.tar
#tar –xvf back.tar
#tar –czvf back.tar.gz 文件1 目录1 文件2
#tar –xzvf back.tar.gz
4、安装以rpm方式提供的软件
Rpm(the red hat package manager)是一个开放的软件包管理系统。
功能:可以安装和卸载RPM包的软件
#rpm –ivh *.rpm 安装RPM包;
#rpm –ivh –force *.rpm 在原先安装的基础上再强行安装一次;
#rpm –Uvh *.rpm 升级rpm包
#rpm –qa 查找列出系统中所有安装的rpm包
#rpm –q sendmail:查看sendmail包的情况
#rpm –ql sendmail:查看sendmail安装的位置
#rpm –e *.rpm 卸载rpm包
#rpm – qlp name.rpm 查看name.rpm有哪些文件
#rpm – qf name.rpm 查看已经装好的文件属于哪个rpm包
#rpm2cpio filename.rpm 使用“rpm2cpio”来从RPM文档中提取文件
5、安装以源代码方式提供的软件
(1)、解包解压:
#tar –xzvf *.tar.gz
解包解压后会在当前目录下建立一个子目录,如xxxx
(2)、#cd xxxx
(3)、#./configure
(4)、#make
(5)、#make install
三、系统状态类命令
1、dmesg
功能:显示引导时内核显示的状态信息
#dmesg |grep -4 “eth0”显示状态信息中与eth0相关的前后4行内容
2、uname
功能:显示当前的系统信息
#uname -a
3、uptime
功能:显示当前时间,自从上次重新引导之后系统运行的时间,服务器和多少用户链接以及系统前1、5、15分钟的负载信息。
4、who(后面详讲)
功能:显示当前登录在系统上的用户信息。
-r:查看系统运行等级
-w,在登录帐号后面显示一个字符来表示用户的信息状态:
+:允许写信息; -:不允许写信息; ?:不能找到终端设备
5、w
功能:查看其他登录的用户(who增强版)
第一行输出内容:当前时间,系统启动到现在的时间,登录用户的数目,系统在最近1秒、5秒和15秒的平均负载
第二行输出内容:登录帐号、终端名称、远程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。
*JCPU时间指的是和该终端(tty)连接的所有进程占用的时间
*PCPU时间则是指当前进程(即在WHAT项中显示的进程)所占用的时间
6、whoami
功能:显示当前用户名
7、hostname
功能:显示系统的主机名
8、cal [月份] [年份]
功能:显示日历
9、bc
功能:计算器,使用quit退出
10、date
功能:显示或修改日期时间。
11、df
功能:报告文件系统磁盘空间的使用情况
语法:df[参数]
[参数]
-h:用常见的格式显示出大小(例如:1K,23M,2G等)
-t:只显示指定类型的文件系统
12、free
功能:查看当前内存和交换空间的使用情况
四、网络类命令
1、write
功能:向另外一个用户发信息,以Ctrl+D作为结束,普通用户发信息受到mesg状态影响。
语法:write <用户名>
2、wall
功能:向所有用户广播信息,普通用户受到mesg状态影响。
语法:wall [message]
3、mesg
功能:显示或设置是否接受其他用户发来的信息。
语法:mesg [参数]
[参数]
y:接受从其他用户发来的信息
n:不接受从其他用户发来的信息
#mesg
显示当前是否接受其他用户发来的信息
4、ping
功能:通过检查网络中其他主机的应答信息,来确认网络的连通性。
语法:ping [参数] 主机名(或ip地址)
参数:
-c count:共发出count次信息。
-R:显示路由表的详细信息
5、telnet
功能:远程登录
语法:telnet [<主机名>][:端口号]
6、ifconfig
功能:配置网络接口
语法:
ifconfig [interface] [up][down][netmask mask]
#ifconfig
#ifconfig eth0 192.168.0.3 netmask 255.255.255.0 up
7、netstat
功能:显示本地系统的网络连接状态
语法:netstat [-a][-r][-c][-i]
-a:显示所有本地系统中的网络连接
-r:显示路由表
-c:显示连续的网络连接状态
-i:显示全部网络接口信息。
8、ftp
功能:文件传输
语法:ftp [<主机名>]
子命令:
?:列出所有的FTP命令;
pwd:显示远程主机的当前目录
lcd:切换和显示本机主机的当前目录
ls:列出远程主机当前目录下的内容
!dir:列出本机主机的当前目录下的内容
cd:切换远程主机的目录
get:下载一个文件
mget:成批下载文件
put:上传一个文件
mput:成批上传文件
prompt:使用mget和mput时是否采用交互式询问
bye:中止一个FTP连接
open:打开一个FTP连接
close:关闭一个FTP连接
binary:采用二进制模式传输
ascii:采用ascii模式传输
type:查看传输模式
五、其他
passwd
1.作用
passwd命令原来修改账户的登陆密码,使用权限是所有用户。
2.格式
passwd [选项] 账户名称
3.主要参数
-l:锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用。
-u:解开账户锁定状态,只有具备超级用户权限的使用者方可使用。
-x, –maximum=DAYS:最大密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-n, –minimum=DAYS:最小密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-d:删除使用者的密码, 只有具备超级用户权限的使用者方可使用。
-S:检查指定使用者的密码认证种类, 只有具备超级用户权限的使用者方可使用。
4.应用实例
$ passwd
Changing password for user cao.
Changing password for cao
(current) UNIX password: