1、查找软件包(libgl包名)
2、查看本地是否存在库
3、查看当前目录的大小
4、设置防火强
ufw enable 开启
5、sed命令
5.1 基本概念
sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在一个文本文件中,此命令执行数据的顺序如下:
1.每次仅读取一行内容;
2.根据提供的规则命令匹配并修改数据。注意,sed 默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据;
3.将执行结果输出。
当一行数据匹配完成后,它会继续读取下一行数据,并重复这个过程,直到将文件中所有数据处理完毕。
该命令常用的选项及含义,如表 1 所示。
表 1 sed 命令常用选项及含义
选项 含义
-e 脚本命令 该选项会将其后跟的脚本命令添加到已有的命令中。
-f 脚本命令文件 该选项会将其后文件中的脚本命令添加到已有的命令中。
-n 默认情况下,sed 会在所有的脚本指定执行完毕后,会自动输出处理后的内容,而该选项会屏蔽启动输出,需使用 print 命令来完成输出。
-i 此选项会直接修改源文件,要慎用。
sed 命令的基本格式如下:
[root@localhost ~]# sed [选项] [脚本命令] 文件名
5.2 sed脚本命令
5.2.1 sed s 替换脚本命令
此命令的基本格式为:
[address]s/pattern/replacement/flags
其中,address 表示指定要操作的具体行,pattern 指的是需要替换的内容,replacement 指的是要替换的新内容。
此命令中常用的 flags 标记如表 2 所示。
表 2 sed s命令flags标记及功能
flags 标记 功能
n 1~512 之间的数字,表示指定要替换的字符串出现第几次时才进行替换,例如,一行中有 3 个 A,但用户只想替换第二个 A,这是就用到这个标记;
g 对数据中所有匹配到的内容进行替换,如果没有 g,则只会在第一次匹配成功时做替换操作。例如,一行数据中有 3 个 A,则只会替换第一个 A;
p 会打印与替换命令中指定的模式匹配的行。此标记通常与 -n 选项一起使用。
w file 将缓冲区中的内容写到指定的 file 文件中;
& 用正则表达式匹配的内容进行替换;
\n 匹配第 n 个子串,该子串之前在 pattern 中用 \(\) 指定。
\ 转义(转义替换部分包含:&、\ 等)。
~# sed ‘s/test/trial/2’ data4.txt
This is a test of the trial script.
This is the second test of the trial script.
作用就是替换一行中第二次出现test为trial,并没有更改源文件的内容。
~# sed ‘s/test/trial/g’ data4.txt
替换所有
-n 选项会禁止 sed 输出,但 p 标记会输出修改过的行,将二者匹配使用的效果就是只输出被替换命令修改过的行
sed -n ‘s/test/trial/p’ data5.txt
w 标记会将匹配后的结果保存到指定文件中,比如:
sed 's/for/For/w test' README
#
# (C) Copyright 2000 - 2013
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# SPDX-License-Identifier: GPL-2.0+
#
Summary:
========
This directory contains the source code For U-Boot, a boot loader for
Embedded boards based on PowerPC, ARM, MIPS and several other
processors, which can be installed in a boot ROM and used to
initialize and test the hardware or to download and run application
code.
root@ubuntu:/home/yzsrk/yzs_dir# cat test
This directory contains the source code For U-Boot, a boot loader for
5.2.2 d 脚本命令
它会删除指定行中的所有内容。但使用该命令时要特别小心,如果你忘记指定具体行的话,文件中的所有内容都会被删除。
删除指定行
sed ‘2d’ README
删除第二行“# (C) Copyright 2000 - 2013”,
删除第二,三行
sed ‘2,3d’ README
可以使用两个文本模式来删除某个区间内的行,但这么做时要小心,你指定的第一个模式会“打开”行删除功能,第二个模式会“关闭”行删除功能,因此,sed 会删除两个指定行之间的所有行(包括指定的行)
sed ‘/1/,/3/d’ README
自测并没有实现删除第一到第三行,会删除更多。
通过特殊的文件结尾字符删除,如下删除第2行到结尾
sed ‘2,$d’ README
5.2.3 sed a 和 i 脚本命令
a 命令表示在指定行的后面附加一行,i 命令表示在指定行的前面插入一行,两个用法一样,i在前一行插入,a在后一行插入。
基本格式
[address]a(或 i)\新文本内容
root@ubuntu:/home/yzsrk/yzs_dir# cat 123
123
456
789
123456789
root@ubuntu:/home/yzsrk/yzs_dir# sed '4a\
> JQKA' 123
123
456
789
123456789
JQKA
//一次插入多行
oot@ubuntu:/home/yzsrk/yzs_dir# sed '4a\
> 10JQKA\
> 2222\
> AAA' 123
123
456
789
123456789
10JQKA
2222
AAA
5.2.4 sed c 替换脚本命令
c 命令表示将指定行中的所有内容,替换成该选项后面的字符串。该命令的基本格式为:
[address]c\用于替换的新文本
root@ubuntu:/home/yzsrk/yzs_dir# sed '4c\
> JQKA' 123
123
456
789
JQKA
原文中说下面的写法也可以实现替换,但是我没有实现
原文
[root@localhost ~]# sed '/number 3/c\
> This is a changed line of text.' data6.txt
This is line number 1.
This is line number 2.
This is a changed line of text.
This is line number 4.
自测
root@ubuntu:/home/yzsrk/yzs_dir# sed '/number 3/c\
> ABC' 123
123
456
789
123456789
5.2.5 sed y 转换脚本命令
y 转换命令是唯一可以处理单个字符的 sed 脚本命令,其基本格式如下:
[address]y/inchars/outchars/
转换命令会对 inchars 和 outchars 值进行一对一的映射,即 inchars 中的第一个字符会被转换为 outchars 中的第一个字符,第二个字符会被转换成 outchars 中的第二个字符…这个映射过程会一直持续到处理完指定字符。如果 inchars 和 outchars 的长度不同,则 sed 会产生一条错误消息。
把文件中的所有的1换成7,3换成8,2换成9
root@ubuntu:/home/yzsrk/yzs_dir# sed 'y/132/789/' 123
798
456
789
798456789
5.2.6 sed p 打印脚本命令
p 命令表示搜索符号条件的行,并输出该行的内容,此命令的基本格式为: [address]p p 命令常见的用法是打印包含匹配文本模式的行,例如:
p 命令表示搜索符号条件的行,并输出该行的内容,此命令的基本格式为:
[address]p
p 命令常见的用法是打印包含匹配文本模式的行,例如:
[root@localhost ~]# cat data6.txt
This is line number 1.
This is line number 2.
This is line number 3.
This is line number 4.
[root@localhost ~]# sed -n '/number 3/p' data6.txt
This is line number 3.
可以看到,用 -n 选项和 p 命令配合使用,我们可以禁止输出其他行,只打印包含匹配文本模式的行。
在虚拟机执行,什么也不打印,不加 -n打印所有内容。
root@ubuntu:/home/yzsrk/yzs_dir# sed -n ‘/number 2/p’ 123
也不能实现
如果需要在修改之前查看行,也可以使用打印命令,比如与替换或修改命令一起使用。可以创建一个脚本在修改行之前显示该行,如下所示:
[root@localhost ~]# sed -n '/3/{
> p
> s/line/test/p
> }' data6.txt
This is line number 3.
This is test number 3.
sed 命令会查找包含数字 3 的行,然后执行两条命令。首先,脚本用 p 命令来打印出原始行;然后它用 s 命令替换文本,并用 p 标记打印出替换结果。输出同时显示了原来的行文本和新的行文本。
5.2.7 sed w 脚本命令
w 命令用来将文本中指定行的内容写入文件中,此命令的基本格式如下:
[address]w filename
这里的 filename 表示文件名,可以使用相对路径或绝对路径,但不管是哪种,运行 sed 命令的用户都必须有文件的写权限。
root@ubuntu:/home/yzsrk/yzs_dir# sed '1,2w test' 123
123
456
789
123456789
root@ubuntu:/home/yzsrk/yzs_dir# cat test
123
456
5.2.8 sed r 脚本命令
r 命令用于将一个独立文件的数据插入到当前数据流的指定位置,该命令的基本格式为:
[address]r filename
在README文件的第4行后一行添加123文件的内容
root@ubuntu:/home/yzsrk/yzs_dir# sed '4r 123' README
#
# (C) Copyright 2000 - 2013
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
123
456
789
123456789
# SPDX-License-Identifier: GPL-2.0+
5.2.9 sed q 退出脚本命令
q 命令的作用是使 sed 命令在第一次匹配任务结束后,退出 sed 程序,不再进行对后续数据的处理。
root@ubuntu:/home/yzsrk/yzs_dir# sed '2q' 123
123
456
5.2.10 sed 脚本命令的寻址方式
前面在介绍各个脚本命令时,我们一直忽略了对 address 部分的介绍。对各个脚本命令来说,address 用来表明该脚本命令作用到文本中的具体行。
默认情况下,sed 命令会作用于文本数据的所有行。如果只想将命令作用于特定行或某些行,则必须写明 address 部分,表示的方法有以下 2 种:
以数字形式指定行区间;
用文本模式指定具体行区间。
以上两种形式都可以使用如下这 2 种格式,分别是:
[address]脚本命令
或者
address {
多个脚本命令
}
6 查看系统上安装的所有软件
终端,输入dpkg —list ,按下Enter键,终端输出以下内容,显示的是你电脑上安装的所有软件
7 设置系统时间
date -s “2019-12-24 16:52:00” //设置系统时间
hwclock -w //把系统时间写到硬件
8 把程序的输出写到一个文件中
nohup ./BurnInTest_Linux__linux > /mnt/data/app.log &
9 查看文件信息
file *
Amqtt-example: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, not stripped
Bmqtt-example: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, not stripped
gmqtt-example: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, not stripped
ymqtt-example: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, not stripped