Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同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 显示当前目录 显示当前的命令,该命令非常简单 help\man 帮助命令 有了这两个命令,遇到任何不会的Linux命令,你都可以查看它们的使用方法。 用法: 命令 --help man 命令 该命令可以显示指定命令的用法和描述。比如你想知道ls命令的用法和选项,可以在终端执行“man ls”: 语法: man man ls 总结: 上述的参数为常用参数,并不完全。适用于入门用户,大神可以帮忙提一些建议。Linux还有很多好玩的命令,不得不感叹开源系统的强大!有兴趣的你可以研究这些命令的源码从而修改或开发自己有趣的Linux命令,寓学于乐,供大家学习!!! |