1、查找软件包(libgl包名)

yum search libgl

2、查看本地是否存在库

locate libcom_err

3、查看当前目录的大小

du -h —max-depth=1

4、设置防火强

ufw enable 开启

ufw disable 关闭

5、sed命令

5.1 基本概念

sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在一个文本文件中,此命令执行数据的顺序如下:
1.每次仅读取一行内容;
2.根据提供的规则命令匹配并修改数据。注意,sed 默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据;
3.将执行结果输出。
当一行数据匹配完成后,它会继续读取下一行数据,并重复这个过程,直到将文件中所有数据处理完毕。
该命令常用的选项及含义,如表 1 所示。

表 1 sed 命令常用选项及含义

  1. 选项 含义
  2. -e 脚本命令 该选项会将其后跟的脚本命令添加到已有的命令中。
  3. -f 脚本命令文件 该选项会将其后文件中的脚本命令添加到已有的命令中。
  4. -n 默认情况下,sed 会在所有的脚本指定执行完毕后,会自动输出处理后的内容,而该选项会屏蔽启动输出,需使用 print 命令来完成输出。
  5. -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+

添加到末尾sed ‘$r 123’ README 。

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