地拉那

首页 » 常识 » 预防 » Linux命令整理
TUhjnbcbe - 2023/7/17 20:30:00
中科医院曝光 http://m.39.net/pf/a_5131646.html

1、sort命令:

sort命令可以给文本进行排序。sort命令操作的是行。

shell中sort命令有3中执行模式,分别是排序文本,检查文件是否已经排序,合并文件。

2.sort的使用

语法:

sort[选项]...[文件]...

选项:

-b:忽略前面空格。

-c:测试文件是否已经排序。

-d:根据字典顺序排序,仅比较数字字母空格等字符。

-f:忽略大小写。

-i:仅比较可打印字符。

-n:纯数字排列

-R:根据哈希值随机排序。

-r:反向,颠倒顺序。

-k:定义排序关键字。原来的:第几个区间,与t相辅。

-t:分隔符

-m:仅仅合并已经排序好的文件,不执行排序操作。

-s:稳定的排序算法。

-o:排序结果写入文件,而不是标准输出到设备。

-u:相同的行只留一行

-M:月份

文件:

file:多个文件要使用空格分隔。

3.范例

3.1不加选项进行升序排序

直接执行sort,不加选项,默认根据第一列的信息进行排序。

3.2使用单行关键字排序-k

默认是根据第一列来排序,使用-k选项来定义排序的关键字,语法如下:

-kpos1[,pos2]

pos1表示起始位置,pos2表示结束位置。如果关键字的第一列相同,进行比较第二列。

-kpos并不是表示只比较pos列,而是比较从pos列,到行尾的列。

如何根据日志里面小时进行排序呢?(日志里的小时和日期写在一起,还有英文)

那就根据某列的第几个字符开始。格式如下:

-kpos1[.start][,pos2[.end]]

pos1表示起始位置,pos2表示结束位置。

start表示起始列的第几个字符。end表示结束列的第几个字符。

3.3根据关键字降序排序-r

默认的需要是升序排序,如果想倒叙排列,需要使用-r选项。

3.4数值列的排序-n

默认的排序是一个字符一个字符的比较。不能正确的比较出数值的大小,如果想比较出数值的大小需要使用-n选项。语法如下:两个等价

sort-n-k21.txt

sort-k2,2n1.txt

上面的默认的排序,下面的是数值排序。上面的就把排在了最下面。因为第一个字符9最大。

3.5自定义分隔符-t

如果分隔符不是空格或者制表符,需要使用-t选项来指定分隔符。

sort-t":"-r-k3/etc/passwd

3.6删除重复的行-u

使用-u选项,可以去掉重复的行,但是不知道为什么去不掉带空格的那行。

3.7根据多个关键字排序-k-k

根据第一个列升序,和第二列数字倒叙,应该怎么排。

sort-k1,1-k2,2rn1.txt

3.8合并文件

sort可以将两个文件合并,同时对文件内容进行排序,语法如下:

sortfile1file2...filen

2、ll和ls的区别:

ll和ls是我们在linux中经常使用的两个命令,这两个是有区别的,其中ll是CentOS等Linux默认支持,在debian中默认是不支持的别名,而ls命令则在大部分linux发行版中都支持,下面就这两个命令的区别详细说下。

ll列出来的结果详细,有时间,是否可读写等信息,象windows里的详细信息

ls只列出文件名或目录名就象windows里的列表

ll-t是降序,ll-t|tac是升序

ll不是命令,是ls-l的别ls命令可以说是linux下最常用的命令之一。

-a列出目录下的所有文件,包括以.开头的隐含文件。

-b把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。

-c输出文件的i节点的修改时间,并以此排序。

-d将目录象文件一样显示,而不是显示其下的文件。

-e输出时间的全部信息,而不是输出简略信息。

-f-U对输出的文件不排序。

-g无用。

-i输出文件的i节点的索引信息。

-k以k字节的形式表示文件的大小。

-l列出文件的详细信息。

-m横向输出文件名,并以“,”作分格符。

-n用数字的UID,GID代替名称。

-o显示文件的除组信息外的详细信息。

-p-F在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通

文件;“/”表示目录;“

”表示符号链接;“

”表示FIFOs;“=”表示套接字(sockets)。

-q用?代替不可输出的字符。

-r对目录反向排序。

-s在每个文件名后输出该文件的大小。

-t以时间排序。

-u以文件上次被访问的时间排序。

-x按列输出,横向排序。

-A显示除“.”和“..”外的所有文件。

-B不输出以“~”结尾的备份文件。

-C按列输出,纵向排序。

-G输出文件的组的信息。

-L列出链接文件名而不是链接到的文件。

-N不限制文件长度。

-Q把输出的文件名用双引号括起来。

-R列出所有子目录下的文件。

-S以文件大小排序。

-X以文件的扩展名(最后一个.后的字符)排序。

-1一行只输出一个文件。

–color=no不显示彩色文件名

–help在标准输出上显示帮助信息。

–version在标准输出上输出版本信息并退出。

只列出子目录

1.ls-F

grep/$或者aliassub=“ls-F

grep/$”(linux)

2.ls-l

grep“^d”或者ls-lL

grep“^d”(Solaris)

计算当前目录下的文件数和目录数

下面命令可以分别计算当前目录下的文件和目录个数:

#ls-l*

grep“^-”

wc-l—-tocountfiles

#ls-l*

grep“^d”

wc-l—–tocountdir

3、df命令:

df用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用df来获取硬盘被占用了多少空间,剩多少空间。

功能:

显示指定文件的可用空间。如果没有文件名被指定,则所有当前被挂在的文件系统的可用空间将被显示。

默认情况下,磁盘空间将以1KB为单位进行显示,除非环境变量POSIXLY_CORRECT被指定,那样将以字节为单位显示。

常用选项:

-a,--all:全部文件系统列表

-B,--block-size=SIZE:指定分区块大小

-h:人类可阅读的方式显示

-i:以inode模式来显示磁盘使用情况

-k:区块为字节

-m:区块为字节

-l:只显示本地文件系统

--no-sync:忽略sync命令

-P:输出格式为POSIX

--sync:在取得磁盘信息前,先执行sync命令

-T:文件系统类型

-t文件系统类型只显示指定类型文件系统的磁盘信息

-x文件系统类型不示指定类型文件系统的磁盘信息

df:

第一列:代表文件系统对应的设备文件的路径名

第二列:给出分区包含的数据块(字节)的数目

第三,四列:分别是已用和可用的数据块数目

第三四列数目之和不等于第二列,这是因为缺省的每个分区都留了少量空间供管理员使用;即使遇到管理员空间已满的情况下,管理员仍能登陆和留有解决问题所需的

工作空间。清单中,Use%表示普通用户所占的百分比,既使这一数字达到百分之百,分区仍能留有管理员使用的空间。Mountedon表示文件系统的挂载点。

df-i:以inode来显示磁盘使用情况

df-ia:列出各文件系统i节点使用情况

df-t:显示指定类型磁盘

df-T:累出文件系统类型

4、du命令:

一、du:显示每个文件和目录的磁盘使用空间~~~文件的大小。

命令参数:

-a#显示目录中文件的大小单位KB。

-b#显示目录中文件的大小,以字节byte为单位。

-c#显示目录中文件的大小,同时也显示总和;单位KB。

-k、-m、#显示目录中文件的大小,-k单位KB,-m单位MB.

-s#仅显示目录的总值,单位KB。

-h#以KMG为单位显示,提高可读性~~~(最常用的一个~也可能只用这一个就满足需求了)

-x#以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

-L#显示选项中所指定符号链接的源文件大小。

-S#显示个别目录的大小时,并不含其子目录的大小。

-X#在文件指定目录或文件。

--exclude=目录或文件#略过指定的目录或文件。

-D#显示指定符号链接的源文件大小。

-H或--si#与-h参数相同,但是K,M,G是以为换算单位。

-l#重复计算硬件链接的文件。

二、df:显示磁盘分区上可以使用的磁盘空间

这里只记住两个参数就好:

-a#查看全部文件系统,单位默认KB

-h#使用-h选项以KB、MB、GB的单位来显示,可读性高~~~(最常用)

三、free可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。

1.命令格式:

free[参数]

2.命令功能:

free命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略

3.命令参数:

-b以Byte为单位显示内存使用情况。

-k以KB为单位显示内存使用情况。

-m以MB为单位显示内存使用情况。

-g以GB为单位显示内存使用情况。

-o不显示缓冲区调节列。

-s间隔秒数持续观察内存使用状况。

-t显示内存总和列。

-V显示版本信息。

5、点运算符(.):source命令:

source命令是一个内置的shell命令,用于从当前shell会话中的文件读取和执行命令。

source命令通常用于保留、更改当前shell中的环境变量。简而言之,source一个脚本,将会在当前shell中运行execute命令。

source命令也称为“点命令”也就是一个符号(.).source命令通常用于重新执行刚修改的初始或文件,使之立即生效,而不必注销并重新登录。

source命令可用于:

1.刷新当前的shell环境

2.在当前环境使用source执行Shell脚本

3.从脚本中导入环境中一个Shell函数

4.从另一个Shell脚本中读取变量

5.读取并执行命令

语法:

source命令它需要一个文件,如果提供了参数,那么将用作传递脚本的位置参数。

sourceFILENAME[ARGUMENTS]

也可以使用.替代source命令:

.FILENAME[ARGUMENTS]

可以在当前的shell环境中定义一个别名。为ls-al定义一个别名为ll:

6、mv命令

是move的缩写,可以用来移动文件或者将文件改名(move(rename)files)。

命令格式

mv[选项]源文件或目录目标文件或目录

1.当mv命令中的第二个参数类型(目标)是文件时,实现**重命名**源文件或目录的功能,记住这里源文件或目录只能有一个,因为如果有多个时,会存在命名冲突的问题。

2.当mv命令中的第二个参数类型(目标)是目录时,实现的是移动源文件和目录的功能,这里源文件或目录可以有多个,mv命令会将源文件或目录移动到目标目录下。

3.mv-b:当覆盖文件之前先行备份。

4.mv-f(force强制):当覆盖文件时,不询问直接覆盖:

5.mv-i:当覆盖文件之前,会询问是否覆盖:

6.mv-u:只有当源文件是最新更新时,才可以覆盖目标文件。

7.mv-t:当需要移动多个源文件时,适用于这种方式,这时目标目录在前,源文件在后

7、rm命令:

参数:

8、清空日志的四种方法:

1、/logs/file.log

2、cat/dev/null/logs/file.log

3、echo""/logs/file.log

脚本中常用清空日志方法:

用冒号

4、:/logs/file.log

9、单引号、双引号、反引号区别

脚本内容:

#!/bin/sh

str="IamstuABC"

echo$str

str="Iam"stu"ABC"

echo$str

str=Iam"stu"ABC

echo$str

stu="CTC"

str=Iam"$stu"ABC

echo$str

str="Iam"$stu"ABC"

echo$str

执行结果

IamstuABC

IamstuABC

Iam"stu"ABC

Iam"$stu"ABC

IamCTCABC

从运行结果分析:

1.整体来看,双引号和单引号的优先级没有高低之分,但在外部的优先级较高

2.$后跟变量名,取变量的值,可直接用echo$stu或echo"$stu"

3.内部的内容无论有什么一定会直接输出,不会替换

4.""内部的内容会先搜索是否存在可以查找的变量,先替换再输出

5.""内部嵌套的""会消除双引号进行输出,比较显得比较高级

1
查看完整版本: Linux命令整理