Typora
参考资料
https://blog.csdn.net/u012318074/article/details/123948859
sendmail
邮箱客户端:https://www.thunderbird.net/zh-CN/
openEuler上如何安装qemu
前言在软件开发过程中经常会用到虚拟环境用于测试验证OS/内核功能正常与否,此时常用qemu模拟代替硬件进行测试验证,方便且快捷。
qemu的安装相对而言比较简单,不同的安装环境稍有差异,下面以当前流行的openEuler环境做说明。
一、安装环境说明openEuler 20.03 (LTS-SP2)
二、下载qemuqemu官网:https://www.qemu.org/download/
1wget https://download.qemu.org/qemu-6.1.0.tar.xz
三、安装依赖库1dnf install -y libglib2-devel pixman-devel libcap-ng-devel libattr-devel
四、执行configure1./configure --target-list=arm-softmmu,aarch64-softmmu --enable-virtfs
五、安装1执行make && make install
六、运行
basic start
12qemu-system-aarch64 -M ...
CVE
CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露。
常用网站:
http://nvd.nist.org
http://cve.mitre.org/
漏洞跟踪:https://github.com/google/vanir
Linux进程状态解析之R、S、D、T、Z、X
Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。
R (TASK_RUNNING),可执行状态 只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CPU的可执行队列中(一个进程最多只能出现在一个CPU的可执行队列中)。进程调度器的任务就是从各个CPU的可执行队列中分别选择一个进程在该CPU上运行。
很多操作系统教科书将正在CPU上执行的进程定义为RUNNING状态、而将可执行但是尚未被调度执行的进程定义为READY状态,这两种状态在linux下统一为 TASK_RUNNING状态。
S (TASK_INTERRUPTIBLE),可中断的睡眠状态 处于这个状态的进程因为等待某某事件的发生(比如等待socket连接、等待信号量),而被挂起。这些进程的task_struct结构被放入对应事件的等待队列中。当这些事件发生时(由外部中断触发、或由其他进程触发),对应的等待队列中的一个或多个进程将被唤醒。
通过ps命令我们会 ...
深入解析Linux 常用命令--awk
1.概述awk是一个功能十分强大的文本处理命令,本文主要介绍一些常用的文本处理方法。
2.awk命令行格式格式1: awk ‘{[pattern] action}’ filenames
格式2: awk -F #指定分割字符
格式1:
12345678910111213141516[root@smart Desktop]# cat test.logApr 21 15:34:49 smart user: helloApr 21 15:34:59 smart user: hello2Apr 22 15:45:55 smart test1.bin: test1.c main 15 Apr 22 15:46:08 smart test1.bin: test1.c main 15 [root@smart Desktop]# awk '{print $5}' test.loguser:user:test1.bin:test1.bin:[root@smart Desktop]# [root@smart Desktop]# awk '{p ...
深入解析Linux 常用命令--sed
1.概述sed是一个功能十分强大的文本处理命令,本文主要介绍一些常用的文本处理方法。
2.总述2.1sed命令行格式 sed [-nefri] ‘command’ 输入文本/文件
2.2 常用选项 -n∶取消默认的输出,使用安静(silent)模式。
-e∶进行多项编辑,即对输入行应用多条sed命令时使用. 直接在指令列模式上进行 sed 的动作编辑
-f∶指定sed脚本的文件名. 直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作
-r∶sed 的动作支援的是延伸型正则表达式的语法。(预设是基础正则表达式语法)
-i∶直接修改读取的文件内容,而不是由屏幕输出
2.3 常用命令 p∶ 列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起用
i ∶ 插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
a ∶ 新增, a 的后面可以接字串,而这 ...
libcli应用
libcli应用通常在我们的程序运行中,我们需要对程序运行状态,变量值等情况进行了解,此时我们就可以用到Libcli库。
libcli可以从此处下载:http://freshmeat.sourceforge.net/projects/libcli
目录结构:
123456789[root@smart myself]# tree.├── build.sh├── cli├── cli.c├── cli_debug.c├── cli_debug.h├── cli.h└── main.c
cli.c
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191 ...
利用虚拟机增加小米WiFi链的生长因子
近日上线了小米WiFi链,试了下可以利用虚拟机Linux通过添加IP的方式提高生长因子,从而在相同时间内获得更多的米粒。具体方法如下:
1.准备一台Linux虚拟机,具体安装方法可百度。
2.给该虚拟机添加IP,需要与手机公用WiFi,并可以访问的IP地址。
大家可以使用如下脚本自动连续添加IP地址:
12345678##file:addip.sh#!/bin/bashfor(( i=1 ;i<255;i++))do ip addr add 192.168.1.$i dev eth0 sleep 2done
3.查看小米WiFi链APP,就可以看到效果了
你要知道的指针强转
在工作中经常可以看到函数中传递指针,同时偶尔也能看到指针强转的滥用,今天就来说说函数中的指针强转。
无论何时都不应该出现不同类型的指针强转,如int型指针转为char型指针,int型指针转为double指针等。应确保在传递过程中指针类型不改变。
如下示例:
12345678910111213141516171819202122232425#include <stdio.h>void test(void *b){ int c=0; int d=0; c= *((int*)b); d= *((char*)b); printf("c=%d\n",c); printf("d=%d\n",d);}int main(int argc,char *argv[]){ char b =5; test(&b); return 0;}//输出结果:[root@smart c]# ./castc=75780101d=5
从上述输出结果中,可以看出指针 ...
联想服务器磁盘阵列划分
1.F1进入配置界面
2.进入系统设置,选择storage
3.进入Main Manu
4.进入配置管理,先清除配置再创建虚拟驱动
5.返回,选择控制器管理 选择boot device,勾上刚刚创建的Raid
6.返回选择虚拟设备管理查看驱动器是否已初始化待初始化完成进行快速初始化
7.返回至系统配置和boot管理页面,选择boot mange
8.然后选择boot mode为legacy mode
如何得到程序中6字节的结构体
在工作中我们可能会遇到这样的情况,我们知道有个大小为100字节的变量存在内存未释放的情况,但是很难从数量庞大的代码中寻找该结构体。那我们有什么方法可以快速找到么?
我们在gcc编译时通常会添加一些编译选项用来保证程序的质量,今天我们就用-Wlarger-than=x的选项来查找我们需要的结构体。
12345678910111213141516171819202122232425262728293031#include <stdio.h>typedef struct{ int a; int b; char c;}A;typedef struct{ int a; char b;}B;typedef struct{ short int a; char b; short int c;}C;int main(int argc,char *argv[]){ A a; B b; C c; return 0;}
123456[root@smart 2 ...
常用变量命名方法
目前常用的变量名命名方法有以下几种:1.驼峰法 驼峰法以小写开头,如 myApp,myName等类似命名。
2.匈牙利命名法 以变量类型的缩写开头,如int iCount;unsigned int uiNum等类似命令。
3.帕斯卡命名法 帕斯卡命名方法与驼峰法有点类似,它以大写开头,后面与驼峰相似。如MyApp,MyName等
4.下划线命名法 下划线命名方法在Linux中比较常见,包括在一些系统库、开源软件等都比较常见。如char my_name[10],int first_num等。
Linux SSH登录权限控制
近日在云端开发过程中,莫名其妙的程序被重启了,现象非常奇怪。采用history命令看到有执行重启程序指令,但是我很清楚自己没有执行。使用who命令查看后,发现除了我还有其他人登录我的服务器。遂想到通过SSH配置文件控制,方法非常简单,只需在/etc/ssh/sshd_config文件添加即可。如下:
1.禁止root用户登录 DenyUsers root
在此情况下,root无法登录,其他用户可登陆
2.允许root用户登录AllowUsers root
在此情况下,root用户可以登录,其他用户无法登陆
AllowUsers root,smart
在此情况下,root,smart用户可以登录,其他用户无法登陆
3.禁止指定IP登录DenyUsers *@192.168.1.101
在此情况下,该IP192.168.1.101将无法登录
4.允许指定IP登录AllowUsers *@192.168.1.101
在此情况下,该IP192.168.1.101将可以登录
5.禁止指定IP登录指定用户DenyUsers r ...
执行脚本提示shell-init:xxx问题分析
近日,在部署完我们的程序后,调用脚本启动程序突然提示错误:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
123456[root@smart hello]# cat /root/Desktop/hello.sh #!/bin/bashecho "hello"[root@smart hello]# /root/Desktop/hello.shshell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directoryhello
对此问题,想来也十分奇怪,之前虽有出现也未进行深究,今天闲来无事就研究了下这个问题。
这个问题细细看来就是“No such file or directory”当前所处目录被删除。如下:
1234567891 ...