不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里我把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。
◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
下面详细介绍的这些命令:是日常Linux下最为常用的基本命令,也是软件测试人员必须掌握的。
ls 查看文件与目录
用法: ls [参数][文件]
主要参数
-a, --all:不隐藏任何以“.” 字符开始的项目。
-A, --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。
--author:印出每个文件著作者。
-b, --escape:以八进制溢出序列表示不可打印的字符。
--block-size=大小:块以指定<大小>的字节为单位。
-B, --ignore-backups:不列出任何以 ~ 字符结束的项目。
-f:不进行排序,-aU参数生效,-lst参数失效。
-F, --classify:加上文件类型的指示符号 (*/=@| 其中一个)。
-g:like -l, but do not list owner。
-G, --no-group:inhibit display of group information。
-i, --inode:列出每个文件的inode号。
-I, --ignore=样式:不印出任何符合Shell万用字符<样式>的项目。
-k:即--block-size=1K。
-l:使用较长格式列出信息。
-L, --dereference:当显示符号链接的文件信息时,显示符号链接所指示的对象,而并非符号链接本身的信息。
-m:所有项目以逗号分隔,并填满整行行宽。
-n, --numeric-uid-gid:类似-l,但列出UID及GID号。
-N, --literal:列出未经处理的项目名称,例如不特别处理控制字符。
-p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。
-Q, --quote-name:将项目名称括上双引号。
-r, --reverse:依相反次序排列。
-R, --recursive:同时列出所有子目录层。
-s, --size:以块大小为序。
cd 切换目录
cd .. 返回上一层目录
cd . 进入当前目录
cd - 返回前一次的目录,即上一次的目录不是上一层目录
stat 显示文件详细信息
显示文件权限、属性、大小、修改时间、访问时间等 比ls –l更加详细
用法:stat 文件名
grep 文本搜索/过滤
用法:grep [参数] 搜索字符串 通常与管道命令一起用 搜索某个文件的某个字符
Grep命令非常强大,系统管理员经常会用到它。grep命令可以在文件中搜索指定格式的字符串,同时对其进行标准输出。
语法: grep " "
grep "Mathew" test.txt
root@devopscube:~# grep "dennis" test.txt
4 dennis start beginner jul
上面命令的输出结果是包含该子字符串的,如果你想检索完整的单词,你需要添加“-i”选项。同时,也可以用grep命令在多个文件中搜索字符串,命令代码如下:
while(!game_over)
{
for each possible move:
count_no_of_merges_for_2-tiles and 4-tiles
choose the move with large number of merges
}
grep "dennis" test1.txt test2.txt test3.txt
当然你也可以用正则表达式来匹配字符串。
参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
:忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
<:从匹配正则表达式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
. :所有的单个字符。
* :有字符,长度可以为0。
find 查找文件
用法:find [PATH] [option] [ -print]
path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。
find命令用来检索文件,可以用“-name”选项来检索指定名称的文件:
find -name find -name test.txt
root@devopscube:/home/ubuntu# cd ~
root@devopscube:~# find -name test.txt
./demo/test.txt
./test.txt
你也可以用“/ -name”来检索指定名称的文件夹:
find / -name passwd
root@devopscube:~# find / -name passwd
/etc/cron.daily/passwd
/etc/pam.d/passwd
/etc/passwd
/usr/share/lintian/overrides/passwd
参数:
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-size +-n[c] #查长度为n块[或n字节]的文件(+-为大于小于)
grep 与 find 命令的区别:grep搜索的是文本,find搜索的是文件,换句话说就是grep是查找匹配条件的行,find是搜索匹配条件的文件。
PS 进程查看命令
使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令
-A 将所有进程都显示出来
-a 不与terminal有关的所有进程
-x一般与a参数一起使用,可列出较完整的信息
-f 做一个更为完整的输出
ps -T -p -T开启线程查看
top 查看各进程CPU/内存占用
Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况(cpu/内存)
用法:top [参数]
参数:
-d 显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒;
-i 禁止显示空闲进程或僵尸进程;
-n NUM 显示更新次数,然后退出。比如 -n 5,表示top更新5次数据就退出;
-p PID 仅监视指定进程的ID;PID是一个数值;
-H -p 查看某个进程内的线程运行状况
top与ps命令的异同点:
相同点:top与ps都可以查看进程信息;
区别:ps看到的是命令执行瞬间的进程信息,而top命令则可以持续的监视进程;ps只是查看进程,而top还可以监视系统性能,例如cpu/内存/负载等
kill、kill all 删除进程
kill [信号代码] PID 信号代码可以省略,们常用的信号代码是-9 ,表示强制终止;
Kill all 进程名 通过程序的名字,直接杀死所有进程
kill与killall的区别:kill后面接的是PID,killall后面接的是进程名
补充一个知识点:init进程
init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。init始终是第一个进程(其进程编号始终为1),而其它所有进程都是init进程的子孙。init进程是不可杀的,也杀不死!
pwd 显示当前目录
显示当前的命令,该命令非常简单
helpman 帮助命令
有了这两个命令,遇到任何不会的Linux命令,你都可以查看它们的使用方法。
用法:
命令 --help
man 命令
该命令可以显示指定命令的用法和描述。比如你想知道ls命令的用法和选项,可以在终端执行“man ls”:
语法: man
man ls
出处:http://wemedia.ifeng.com/75822284/wemedia.shtml