Linux3:more、which、find、chmod、tar、diff、grep、ps、netstat、uname

时间:2021-12-03 07:59:55

more

类似cat,不过more不是将整个文件内容从上到下显示在屏幕上的,而是以一页一页的显示方便使用者逐页阅读。more最基本的指令就是space即往下翻一页,b即往回翻一页显示,而且还有搜索字符串的功能

+n:从第n行开始显示

-n:定义屏幕大小为n行

+/pattern:在每个档案显示前搜索该字符串patern,然后从该字符串前两行之后显示

-p:通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似

-s:把连续的多个空行显示为一行

-u:把文件内容中的下划线去掉

常用操作命令:

Enter:向下n行,需要定义,默认为1行

空格键:向下滚动一屏

b:向上滚动一屏

=:输出当前行号

V:调用vi编辑器

q:退出more

例如:

more +3 log1.log:从第3行起显示log1.log里面的内容

more +/day3 log1.log:从文件中查找第一个出现'day3'的字符串的行,并从该行前两行开始显示输出

more -5 log1.log:设定每屏显示行数

ls -l | more -5:more常与别的命令连用,一般是因为某些命令输出的内容太多,所以使用more来分页显示

which

在PATH变量指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。即,which命令可以看到某个系统命令是否存在以及执行的到底是哪一个位置的命令

find

用于在文件树中查找文件并作相应的处理

-name:按照文件名查找文件

-perm:按照文件权限查找文件

-user:按照文件属主来查找文件

-group:按照文件所属的组来查找文件

-mtime<-n><+n>:按照文件更改时间来查找文件,-n表示n天之内,+n表示n天以前

-newer file1 file2:查找更改时间在file1和file2之间的文件

例如:

find -mtime -2:查找48小时修改过的文件

find -name "*.log":查找当前目录以"*.log"结尾的文件

find /opt/soft/test -perm 777:查找指定目录下权限为777的文件

find -type f -name "*.log":查找当前目录下以".log"结尾的普通文件

find -type d | sort:查找当前所有目标目录并排序

chmod

用于改变Linux系统文件或目录的访问权限

-f:错误信息不输出

-c:当发生改变时,报告处理信息

-R:处理执行目录及其子目录下所有文件

-v:运行时显示详细处理信息

<权限范围>+<权限设置>:使权限范围内的目录或文件具有指定权限

<权限范围>-<权限设置>:删除权限范围内的目录或文件的指定权限

<权限范围>=<权限设置>:设置权限范围内的目录或文件的权限为指定的值

权 限 范 围  权 限 代 号
u:目录或文件的当前用户     r:读,代号为4
g:目录或文件的当前群组  w:写,代号为2
o:其他用户或群组     x:执行,代号为1
a:所有用户和群组     -:删除,代号为0
  s:特权权限

例如:

chmod a+x log1.log:设定文件log1.log所有用户或群组都有执行权限

chmod ug+x,o-x log1.log:同时设定不同的用户权限

chmod u=x log1.log:撤销用户原有对log1.log的权限并设定为x

chmod -R u+x test4:递归地给test4下所有文件与子目录分配执行权限

chmod 751 file:给file、属主分配读、写、执行权限,给所在组分配读、执行权限,其他用户分配执行权限

tar

用来压缩和解压文件,tar本身不具备压缩功能,它是调用压缩功能实现的

-c:建立新的压缩文件

-d:记录文件差别

-r:添加文件到已压缩的文件中

-x:从压缩的文件中提取文件

-t:显示压缩的文件内容

-z:支持gzip解压文件

-v:显示操作过程

-f:指定压缩文件

例如:

tar -cvf log.tar log1.log:仅把log1.log打包成log.tar,不压缩

tar -zcvf log.tar.gz log1.log:把log1.log打包成log.tar.gz,并指出gzip压缩

tar -ztvf log.tar.gz:查阅log.tar.gz中的内容,因log.tar.gz是以gzip压缩的,所以要加上z

tar -zcvf log30.tar.gz log1.log log2.log:把多个文件打包压缩成一个文件

tar -zxvf log30.tar.gz log2015.log:把log30.tar.gz中的log2015.log解压出来

diff

比较单个文件或目录内容,如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。如果指定的是目录,diff命令会比较两个目录下名字相同的文本文件,列出不同的二进制文件、公共子目录和只在一个目录下出现的文件。

-b:不检查空格字符的不同

-B:不检查空白行

-i:不检查大小写的不同

-q:只显示有无差别,不现实详细信息

-y:以并排方式显式文件的异同处

-w:在使用参数-y时,指定栏宽

例如:

diff log1.log log2.log:比较两个文件,输出结果比如"3c3"和"8c8"表示两个文件在第三行和第8行有所不同,"11,12d10"表示第一个文件比第二个文件多了第11行、第12行。diff命令的normal格式模式显示三种提示,即a-add、c-change、d-delete

diff test3 test4:比较test3和test4两个文件夹的不同

diff log1.log log2.log -y -w 50:并排输出,并制定栏宽为50

grep

用于过滤/搜索指定字符串。可以使用正则表达式,能配合多种命令使用

-A:显示符合的行及之后的内容

-B:显示符合的行及之前的内容

-C:显示符合的行及前后的内容

-c:计算符合的行数目

-i:忽略大小写

规则表达式

^:'^grep'表示匹配所有以grep开头的行

$:'grep$'表示匹配所有以grep结尾的行

.:'gr.p'表示匹配'gr'后面接任意字符然后是'p'

*:'*grep'表示匹配一个或多个空格后紧跟grep的行

[]:[Gg]rep表示匹配Grep与grep

[^]:[^A-FH-Z]rep表示匹配不以A-F、H-Z开头并紧跟rep的行

例如(grep命令大多数时候多要和别的命令一起使用才有意义):

ps -ef | grep -c SVN:查找指定的进程的个数

cat test.txt | grep -f test2.txt:从text2.txt中读取关键字后在test.txt中搜索

cat test.txt | grep nf text2.txt:从text2.txt中读取关键字后在text.txt中搜索并显示行号

grep 'linux' text.txt test2.txt:从多个文件中搜索关键字'linux'

cat test.txt | grep -E 'ed|at':显示包含ed或at的行

ps

用来列出系统中运行的那些进程

Linux中的进程状态有:

状 态 含 义
R 运行:正在运行或在运行队列中等待
S 中断:休眠中,受阻
D 不可中断:收到信号不唤醒和不可运行,进程必须等待直至有中断发生
Z 僵死:进程已终止
T 停止:进程收到SIGSTOP、SIGSTP、SIGSIN、SIGSOU信号后停止运行

-A:显示所有进程

-e:等同于-A

-c:显示进程的真实名称

-f:显示程序间的关系

例如:

ps -u root:显示root的进程信息

ps -ef:显示所有进程信息连同其命令行

ps -ef | grep ssh:ps常与grep连赢来显示特定进程

ps -l:将目前属于自己登录的pid与相关信息列出来

ps aux:列出目前所有的在内存中的进程

netstat

用于显示各种网络相关信息,如网络连接、路由表、接口状态、多播成员等

netstat输出:

Proto Recv-Q Send-Q Local Address Foreign Address State
指协议,有tcp、udp、unix等 接收队列 发送队列 本机地址 远程地址 状态

-a:显示所有选项

-t:仅显示tcp选项

-u:仅显示udp选项

-n:不显示主机别名,能显示数字的全部显示数字

-r:显示路由信息、路由表

-s:按各种协议进行统计

-l:仅列出LISTEN的服务状态

例如:

netstat -at:列出所有tcp端口

netstat -lt:只列出所有监听tcp的端口

netstat -s:显示所有端口的统计信息

netstat -p:在输出中显示pid和进程名称

uname

获取操作系统相关信息

-a:列出详细信息,依次为内核名、主机名、内核版本号、内核版本、硬件名、处理器类型、硬件平台类型、操作系统名称

-m:显示主机CPU名

-n:显示主机在网络上的节点或网络名

-r:显示Linux操作系统内核版本号

-s:显示Linux内核名称

-v:显示操作系统是第几个version版本

-p:显示处理器类型

-i:显示硬件平台类型

-o:显示操作系统名