参考网址

https://wangchujiang.com/linux-command/list.html#!kw=ls

https://wangchujiang.com/

https://github.com/jaywcjlove/linux-command

linux的目录结构
  • /bin: bin是Binaries(二进制文件的缩写),这个目录中存放的是经常使用的命令

  • /boot: 存放的是linux的核心文件,包括一些连接文件及镜像文件

  • /dev: 是Device(设备)的缩写 存放的linux的外部设备

  • /etc: linux的系统配置文件

  • /home: 用户的主目录

  • /lib: library(可选) 系统最基本的动态连接口库

  • /media: 挂载目录 ,例如u盘光驱等

  • /mnt: 用户临时文件挂载目录

  • opt: optional(可选) 用户的软件安装目录 比如oracle

  • proc: 是Processes(进程) 的缩写 /proc 是一种伪文件系统(虚拟的文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

  • /root: 超级用户的主目录

  • /sbin: Super USer 超级用户的二级制文件,系统管理员使用的系统管理的程序

  • selinux: 这个目录就是Redhat/Centos所特有的目录,selinux安全机制,类似于windowsd的防火墙,存放的是selinux的相关文件

  • /srv: 存放的是服务启动之后需要提取的数据

  • /sys: 该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /temp: temoporary(临时) 这个目录用来存放临时文件的

  • /usr: usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

  • /usr/bin: 系统用户使用的应用程序

  • usr/src: 内核源代码默认放置的目录

  • var: (variable)变量的缩写,这个目录中放着不断扩充的文件,经常被修改的的文件放到这个目录下,包括一些日志文件

  • /run: 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

Linux vi/vim 文件编辑
h 或 向左箭头键(←) 光标向左移动一个字符
j 或 向下箭头键(↓) 光标向下移动一个字符
k 或 向上箭头键(↑) 光标向上移动一个字符
l 或 向右箭头键(→) 光标向右移动一个字符
[Ctrl] + [f] 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b] 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d] 屏幕『向下』移动半页
[Ctrl] + [u] 屏幕『向上』移动半页
/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word 向光标之上寻找一个字符串名称为 word 的字符串。
n 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
:n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g:%s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/gc:%s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)
x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
dd 删除游标所在的那一整行(常用)
ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
yy 复制游标所在的那一行(常用)
nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
u ctrl+z 复原前一个动作。(常用)
[Ctrl]+r 重做上一个动作。(常用)
:set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu 与 set nu 相反,为取消行号!
linux 文件的基本属性
  • 当为 d 则是目录
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
linux 通配符
| 管道符,或者(正则)
> 输出(正确) 输出重定向
>> 输出(正确) 追加重定向
< 输入重定向
<< 追加输入重定向
~ 当前用户家目录
`` $() 引用命令被执行后的结果
$ 以。。。结尾(正则)
^ 以。。。开头(正则)
* 匹配全部字符,通配符
任意一个字符,通配符
# 注释
& 让程序或脚本切换到后台执行
&& 并且 同时成立
[] 表示一个范围(正则,通配符)
{} 产生一个序列(通配符)
. 当前目录的硬链接
.. 上级目录的硬链接
linux 重定向

计算机的硬件设备有很多,常见的输入设备有键盘、鼠标、麦克风、手写板等,输出设备有显示器、投影仪、打印机等。不过,在 Linux 中,标准输入设备指的是键盘,标准输出设备指的是显示器。

Linux 中一切皆文件,包括标准输入设备(键盘)和标准输出设备(显示器)在内的所有计算机硬件都是文件。

为了表示和区分已经打开的文件,Linux 会给每个文件分配一个 ID,这个 ID 就是一个整数,被称为文件描述符(File Descriptor)。

文件描述符 设备文件名 文件名 类型 硬件 符号表示
0 /dev/stdin stdin 标准输入文件 键盘 < <<
1 /dev/stdout stdout 标准输出文件 显示器 > >>
3 /dev/stderr stdin 标准错误输出文件 显示器 2> 2>>
##### linux 磁盘命令

df (英文全称:disk full):列出文件系统的整体磁盘使用量

du(英文全称:disk used):检查磁盘空间使用量

fdisk:用于磁盘分区

1
df [-ahikHTm] [目录或文件名]

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

  • -k :以 KBytes 的容量显示各文件系统;

  • -m :以 MBytes 的容量显示各文件系统;

  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

  • -H :以 M=1000K 取代 M=1024K 的进位方式;

  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;

  • -i :不用硬盘容量,而以 inode 的数量来显示

1
du [-ahskm] 文件或目录名称

选项与参数:

  • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
  • -h :以人们较易读的容量格式 (G/M) 显示;
  • -s :列出总量而已,而不列出每个各别的目录占用容量;
  • -S :不包括子目录下的总计,与 -s 有点差别。
  • -k :以 KBytes 列出容量显示;
  • -m :以 MBytes 列出容量显示;
1
fdisk [-l] 装置名称

选项与参数:

  • -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
linux 进程命令
1
ps   进程查看
  • a表示显示所有前台进程

  • x表示显示所有后台进程

  • u表示显示进程是由哪个⽤户产⽣的

  • l表示显示更详细的信息

  • e表示显示所有的进程

ps aux 分析输出结果

  • ①USER:该进程是由哪个⽤户产⽣的
  • ②PID:进程的ID号
  • ③%CPU:该进程占⽤CPU资源的百分⽐,占⽤越⾼,进程越耗费资源
  • ④%MEM:该进程占⽤物理内存的百分⽐,占⽤越⾼,进程越耗费资源
  • ⑤VSZ:该进程占⽤虚拟内存的⼤⼩,单位KB
  • ⑥RSS:该进程占⽤实际物理内存的⼤⼩,单位KB
  • ⑦TTY:该进程是在哪个终端中运⾏的。其中TTY1-TTY6代表本地控制台终端。TTY2-6是本地的字符界⾯终端, TTY1是图形终端。PTS/0-255代表虚拟终端。如果是“?”,则表示该进程是由内核直接产⽣,⽽不是任何的终端产⽣。
  • ⑧STAT:进程状态。常⻅的状态有R:运⾏、S:睡眠、T:停⽌、s:包含⼦进程、+:位于后台
  • ⑨START:该进程的启动时间
  • ⑩TIME:该进程占⽤CPU的运算时间,注意不是系统时间
  • ⑪COMMAND:产⽣此进程的命令名
1
top  持续状态的进程
  • -d表示秒数,指定top命令每隔⼏秒更新,默认是3秒

在top命令的交互模式当中可以执⾏的命令

  • ①?或h:显示交互模式的帮助
  • ②P:以CPU使⽤率排序,默认就是此项
  • ③M:以内存的使⽤率排序
  • ④N:以PID排序
  • ⑤q:退出top

top命令输出的头5⾏结果

  • 第⼀⾏是任务队列信息
内容 说明
12:26:46 系统当前时间
Up 1 day,13:32 系统的运⾏时间,本机已经运⾏1天13 ⼩时32分钟
2 users 当前系统登录了两个⽤户
Load average:0.00,0.00,0.00 系统再之前1分钟,5分钟,15分钟的平 均负载。⼀般认为⼩于1时负载较⼩。 如果⼤于1,系统已经超出负荷
  • 第⼆⾏是进程信息
内容 说明
Tasks:95 total 系统中的进程总数
1 running 正在运⾏的进程数
94 sleeping 睡眠的进程
0 stopped 正在停⽌的进程
0 zombie 僵⼫进程。如果不是0,需要⼿⼯检查 僵⼫进程
  • 第三⾏是cpu信息
内容 说明
0.1%us 户模式占⽤的CPU百分
0.1%sy 系统模式占⽤的CPU百分
0.0%ni 改变过优先级的⽤户进程占⽤的CPU百分
99.7%id 空闲CPU的CPU百分
0.1%wa 等待输⼊/输出的进程的占⽤CPU百分
0.0%hi 硬件中断请求服务占⽤的CPU百分
0.1%si 软中断请求服务占⽤的CPU百分
0.0%st st(steal time)虚拟时间百分⽐。就是当有虚拟机时,虚拟CPU等待时机CPU的时间百分⽐
  • 第四⾏是物理内存信息
内容 说明
Mem:625344k total 物理内存的总量,单位KB
571504k used 经使⽤的物理内存数量
53840k free 闲的物理内存数量,我们使⽤的是虚拟 机,总共只分配了658MB内存,所以只 有53MB的空闲内存了
65800k buffers 作为缓冲的内存数量
  • 第五⾏是交换分区(swap)信息
内容 说明
Swap:524280k total 交换分区(虚拟内存)的总⼤⼩
0k used 已经使⽤的交互式分区的⼤⼩
524280k free 空闲交换分区的⼤⼩
409280k cached 作为缓存的交换分区的⼤⼩
1
pstree [选项]
  • -p表示显示进程的PID
1
kill 命令
  • 1 SIGHUP 该信号让进程⽴即关闭,然后重新读取配置⽂件之后重启
  • 2 SIGINT 程序终⽌信号,⽤户终⽌前台进程。相当去输出ctrl+c快捷键
  • 9 SIGKILL ⽤来⽴即结束程序的运⾏,本信号不能被阻塞、忽略。⼀般 ⽤于强制终⽌进程
  • 15 SIGTERM 正在结束进程的信号,kill命令的默认信号。有时如果进程已 经发⽣问题,这个信号是⽆法正常终⽌进程的,我们这时才 会尝试SIGKILL信号,也就是信号9
  • 18 SIGCONT 信号可以让暂停的进程恢复执⾏,本信号不能被阻断
  • 19 SIGSTOP 该信号可以暂停前台进程,相当于输⼊crtl+z快捷键。本信号 不能被阻断

用法

1
2
3
4
5
6
[root@circle ~]# kill -1 32411
重启PID为32411的进程
[root@circle ~]# kill -9 32425
强制终⽌PID为32425的进程
[root@circle ~]# kill -15 32452
相当于[root@circle ~]# kill 32452,正常结束PID为32452的进程
1
killall [选项] [信号] 进程名按照进程名杀死进程
  • ①-i参数会询问是否要杀死某个进程
  • ②-I参数会忽略进程名的⼤⼩写
linux 管理网卡配置文件命令

nmcli命令是CentOS8新增的,nm是服务NetworkManager的缩写,cli表示命令行界面

nmcli修改网卡信息操作:
使用nmcli修改网卡信息,实际上是修改文件/etc/sysconfig/network-scripts/ifcfg-ens32

  • 查看NetworkManager服务状态,默认是开启的

    nmcli

  • 查看网络设备状态

    nmcli device status

  • 查看某个网卡详细信息(IP,dns,gateway)

    nmcli device show ens32 #ens32是网卡

  • 增加一个网络连接名称为wqc的连接在网卡eth0上

    nmcli c add type ethernet con-name wqc ifname eth0

  • 删除一个网络连接

    nmcli c del wqc

  • 设置ip地址为手动指定

    nmcli connection modify ens32 ipv4.method manual #对应BOOTPROTO=static

  • 设置ip地址为dhcp自动获取

    nmcli connection modify ens32 ipv4.method auto #对应BOOTPROTO=dhcp

  • 设置开机自动连接
    nmcli connection modify ens32 connection.autoconnect yes #对应ONBOOT=yes
    nmcli connection modify ens32 connection.autoconnect no #对应ONBOOT=no

  • 设置静态ip地址

    nmcli connection modify ens32 ipv4.addresses ‘192.168.1.11’

  • 设置网关

    nmcli connection modify ens32 ipv4.gateway ‘192.168.1.1’

  • 设置dns

    nmcli connection modify ens32 ipv4.dns ‘114.114.114.114’

  • 重新加载ifcfg-ens32配置文件

    nmcli connection reload #修改后,都需要reload一下

  • 不重启系统,让网卡生效的3种方法

1
2
3
方法1:nmcli connection up ens32 (推荐)
方法2:nmcli device connect ens32
方法3:nmcli device reapply ens32
linux yum
  • 删除软件:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm

  • 升级软件:yum upgrade foo或者yum update foo

  • 查询信息:yum info foo

  • 搜索软件(以包含foo字段为例):yum search foo

  • 显示软件包依赖关系:yum deplist foo

  • ls /etc/yum.repos.d/ 查看yum.repos.d 下面的目录

  • yum list | wc -l //测试,并统计结果

  • yum provides ifconfig //查询ifconfig命令是哪个包安装的的。

  • yum history 查看安装历史

  • yum history undo [软件id] 回撤,逆向操作

  • yum install 安装软件

  • yum reinstall 重新安装

linu rpm
  • rpm -ql 软件名 查看软件安装的路径
linux 防火墙

firewalld区域的概念

firewalld防火墙为了简化管理,将所有网络流量分为多个区(zone),然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务列表

1.最终一个区域的安全程度是取决于管理员在此区域中设置的规则

2.区域如同进入主机的安全门,每个区域都具有不同限制程度的规则,只会允许符合规则的流量传入

3.可以根据网络规模,使用一个或多个区域,但是任何一个 活跃区域 至少需要关联 源地址或接口

4.默认情况下,public区域是默认区域,包含所有接口(网卡)

firewalld防火墙9个区域

trusted(信任区域)允许所有的传入流量

public(公共区域)允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域

external(外部区域)允许与 ssh 预定义服务匹配的传入流量,其余均拒绝。 默认将通过此区域转发的IPv4传出流量将进行地址伪装,可用于为 路由器启用了伪装功能的外部网络

home(家庭区域)允许与ssh、ipp-client、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝

internal(内部区域)默认值时与home区域相同

work(工作区域)允许与 ssh、ipp-client、dhcpv6-client 预定义服务匹配的传入流量,其余均拒绝

dmz(隔离区域也称为非军事区域)允许与 ssh 预定义服务匹配的传入流量,其余均拒绝

block(限制区域)拒绝所有传入流量

drop(丢弃区域)丢弃所有传入流量,并且不产生包含ICMP的错误响应

  • 开启防火墙:systemctl start firewalld
  • 关闭防火墙:systemctl stop firewalld
  • 查看防火墙状态: systemctl status firewalld
  • 设置开机启动: systemctl enable firewalld
  • 禁用开机启动: systemctl disable firewalld
  • 重启防火墙:firewalld-cmd –reload
  • 开放端口号:(修改后须重启防火墙方可生效) : firewall-cmd –zone=public –add-port=8080/tcp –permanent
  • 查看开放端口: firewall-cmd –list-ports
linux 自动任务
  • at:专门处理一次性的计划任务
  • crontab:专门定义周期性计划任务,周期性循环做任务
  • batch:系统自行选择空闲时间去执行指定的任务

at: 命令是用来执行一次性任务,比如要在二十分钟后重启,要在 2 分钟后启动一个可执行程序,或者在一天后执行一个脚本。适合应对突发性和临时性的任务。

查看atd的运行状态: systemctl status atd

1
at [选项] [时间]
  • -l 列出所有的计划任务。(等价与 atq 命令)
  • -c <任务号> 查看指定计划任务的脚本内容
  • -d<任务号> 删除计划任务

在添加计划任务时,at 会从标准输入读取任务内容,可以输入多条命令,输入完成后,另起一个空行,按 Ctrl+D 结束输入。输入的命令会被自动转化为脚本。详情请看下面的例子。

常用的时间格式

1
<时>:<分>

1
<时>:<分> <年>-<月>-<日>

添加计划任务:

1
2
3
4
5
6
7
[root: ~]# at 08:24

at> sleep 5
at> <EOT> #输入完成后另起一个空行,然后输入 Ctrl+D

job 3 at Tue May 16 08:24:00 2017
#计划任务被指定为 3 号
linux shell入门
  • #!/bin/bash开头(指定解析器)

获取系统变量

  • echo $HOME 获取家目录
  • echo $PWD 获取当前路径
  • echo $SHELL 获取shell目录
  • echo $USER 获取当前用户

自定义变量

  • 变量名的规则

​ (1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。

​ (2)等号两侧不能有空格

​ (3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。

​ (4)变量的值如果有空格,需要使用双引号或单引号括起来。

  • 定义变量:变量=值

  • 撤销变量:unset 变量

  • 声明静态变量:readonly 变量,注意:不能unset

  • 声明全局变量: export 变量名

特殊变量

- $n  (功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})
  • $# (功能描述:获取所有输入参数个数,常用于循环)。

  • $* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)

  • $@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)

  • $? (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。

运算符

  • 基本语法

​ (1)“$((运算式))”或“$[运算式]”

​ (2)expr + , - , *, /, % 加,减,乘,除,取余

条件判断

  • 基本语法

​ [ condition ](注意condition前后要有空格)

​ 注意:条件非空即为true,[ atguigu ]返回true,[] 返回false。

  • 常用判断条件

    (1)两个整数之间比较

​ = 字符串比较

​ -lt 小于(less than) -le 小于等于(less equal)

​ -eq 等于(equal) -gt 大于(greater than)

​ -ge 大于等于(greater equal) -ne 不等于(Not equal)

​ (2)按照文件权限进行判断

​ -r 有读的权限(read) -w 有写的权限(write)

​ -x 有执行的权限(execute)

​ (3)按照文件类型进行判断

​ -f 文件存在并且是一个常规的文件(file)

​ -e 文件存在(existence) -d 文件存在并是一个目录(directory)

流程控制

  • if判断

    if [ 条件判断式 ];then

    程序

    fi

    或者

    if [ 条件判断式 ]

    then

    程序

    fi

  • case 语句

case $变量名 in

“值1”)

如果变量的值等于值1,则执行程序1

;;

“值2”)

如果变量的值等于值2,则执行程序2

;;

…省略其他分支…

*)

如果变量的值都不是以上的值,则执行此程序

;;

esac

  1. case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。

  2. 双分号“**;;**”表示命令序列结束,相当于java中的break。

  3. 最后的“*)”表示默认模式,相当于java中的default。

  • if

for (( 初始值;循环控制条件;变量变化 ))

do

程序

done

  • while

while [ 条件判断式 ]

do

程序

done

read读取控制台输入

read(选项)(参数)

​ 选项:

-p:指定读取值时的提示符;

-t:指定读取值时等待的时间(秒)。

参数

​ 变量:指定读取值的变量名

系统函数

  • basename 在路径中获取文件名称
  • dirname 从给定的包含绝对路径的文件名中去除文件名(非目录的部分)

自定义函数

  • 基本语法

[ function ] funname[()]

{

[return int;]

}

调用:funname

  • 经验技巧

​ (1)必须在调用函数地方之前,先声明函数,shell脚本是逐行运行。不会像其它语言一样先编译。

​ (2)函数返回值,只能通过$?系统变量获得,可以显示加:return返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)

shell 工具

  • cut

    cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出

1.基本用法

cut [选项参数] filename

说明:默认分隔符是制表符

2.选项参数说明

-f 列号,提取第几列
-d 分隔符,按照指定分隔符分割列
  • sed

    sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。

  1. 基本用法

sed [选项参数] ‘command’ filename

  1. 选项参数说明
选项参数 功能
-e 直接在指令列模式上进行sed的动作编辑。
  1. 命令功能描述
命令 功能描述
a 新增,a的后面可以接字串,在下一行出现
d 删除
s 查找并替换
  • awk

一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。

  1. 基本用法

awk [选项参数] ‘pattern1{action1} pattern2{action2}…’ filename

pattern:表示AWK在数据中查找的内容,就是匹配模式

action:在找到匹配内容时所执行的一系列命令

  1. 选项参数说明
选项参数 功能
-F 指定输入文件折分隔符
-v 赋值一个用户定义变量
  • sort

sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。

  1. 基本语法

sort(选项)(参数)

选项 说明
-n 依照数值的大小排序
-r 以相反的顺序来排序
-t 设置排序时所用的分隔字符
-k 指定需要排序的列