参考网址
https://wangchujiang.com/linux-command/list.html#!kw=ls
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>> |
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 | [root@circle ~]# kill -1 32411 |
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 | 方法1:nmcli connection up 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 | [root: ~]# at 08:24 |
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
case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
双分号“**;;**”表示命令序列结束,相当于java中的break。
最后的“*)”表示默认模式,相当于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命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。
- 基本用法
sed [选项参数] ‘command’ filename
- 选项参数说明
选项参数 | 功能 |
---|---|
-e | 直接在指令列模式上进行sed的动作编辑。 |
- 命令功能描述
命令 | 功能描述 |
---|---|
a | 新增,a的后面可以接字串,在下一行出现 |
d | 删除 |
s | 查找并替换 |
- awk
一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。
- 基本用法
awk [选项参数] ‘pattern1{action1} pattern2{action2}…’ filename
pattern:表示AWK在数据中查找的内容,就是匹配模式
action:在找到匹配内容时所执行的一系列命令
- 选项参数说明
选项参数 | 功能 |
---|---|
-F | 指定输入文件折分隔符 |
-v | 赋值一个用户定义变量 |
- sort
sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。
- 基本语法
sort(选项)(参数)
选项 | 说明 |
---|---|
-n | 依照数值的大小排序 |
-r | 以相反的顺序来排序 |
-t | 设置排序时所用的分隔字符 |
-k | 指定需要排序的列 |