Linux使用
choumin
这个作者很懒,什么都没留下…
展开
-
ifconfig: RX packets 一直为 0
mac 地址冲突导致系统收不到包原创 2023-06-12 13:30:14 · 1466 阅读 · 0 评论 -
openEuler 使用问题记录
openEuler 使用问题记录,持续更新中 ...原创 2023-05-30 20:09:16 · 2105 阅读 · 1 评论 -
linux 启动报错:You are in emergency mode
linux 启动报错:You are in emergency mode,问题修复原创 2023-04-19 16:27:01 · 4955 阅读 · 1 评论 -
使用 setpci 配置 PCI 设备
使用 setpci 配置 PCI 设备流程原创 2023-03-30 19:26:49 · 4098 阅读 · 0 评论 -
使用 iconv 转换文件编码
使用 iconv 转换文件编码原创 2023-03-23 09:53:21 · 1504 阅读 · 0 评论 -
明文签署文件不可用,结果为‘NOSPLIT’
明文签署文件不可用,结果为‘NOSPLIT’(您的网络需要认证吗?)原创 2023-03-20 20:06:59 · 3526 阅读 · 1 评论 -
虚拟机使用问题集锦
虚拟机使用问题集锦,持续更新中原创 2023-03-09 17:52:00 · 639 阅读 · 0 评论 -
mount: xxxx: wrong fs type, bad option
mount: /mnt/tmp: wrong fs type, bad option, bad superblock on /dev/sdc, missing codepage or helper program, or other error.原创 2023-03-08 17:12:42 · 994 阅读 · 0 评论 -
编译内核时更新 xxx_defconfig 文件的方法
如何根据旧的 xxx_defconfig 生成新的 xxx_defconfig原创 2023-02-14 10:40:10 · 337 阅读 · 0 评论 -
crontab配置每12个小时执行一次任务
crontab 配置每 12 个小时执行一次任务时遇到的小问题原创 2022-12-10 08:58:18 · 7646 阅读 · 0 评论 -
sendmail 使用外部 smtp 服务发送邮件
sendmail 使用外部 smtp 服务发送邮件的方法原创 2022-10-26 09:23:06 · 3720 阅读 · 0 评论 -
在 linux 上使用外部 smtp 服务发送邮件
在 linux 上使用外部 smtp 服务发送邮件原创 2022-10-25 16:02:57 · 1867 阅读 · 0 评论 -
bash -e 用法简述
bash -e 用法简述原创 2022-10-21 10:48:35 · 2238 阅读 · 0 评论 -
在 linux 上使用 sendmail 发送邮件
如何在 linux 上使用 sendmail 发送邮件原创 2022-10-19 16:30:05 · 2638 阅读 · 0 评论 -
meson test 的 --test-args 参数
meson test 的 --test-args 参数使用方法原创 2022-10-13 18:55:19 · 836 阅读 · 0 评论 -
在 linux 上查看各 numa 节点的内存使用情况
numastat 的使用场景介绍原创 2022-10-12 20:26:51 · 6259 阅读 · 0 评论 -
MALLOC_PERTURB_ 环境变量
MALLOC_PERTURB_ 环境变量的用途及用法。原创 2022-10-11 19:08:53 · 268 阅读 · 0 评论 -
shell 中 “Here-Documents“ 的基本用法
下面讲述一下 shell 中 "Here-Documents" 的基本用法原创 2022-10-09 10:07:22 · 262 阅读 · 0 评论 -
lmbench中的乘法测试用例
lmbench 是开源的性能测试工具,在 src/lat_ops.c 中有很多基本运算的测试用例,比如 int add、int mul、int64 div、double div 等等。其中,int mul 测试用例的实现函数是:void do_integer_mul(iter_t iterations, void* cookie){ struct _state *pState = (struct _state*)cookie; register int r = pState->原创 2021-03-29 13:19:11 · 309 阅读 · 0 评论 -
使用远程virt-manager安装虚拟机的步骤
使用远程 virt-manager 安装虚拟机大概有下面几步:1)使用 ssh -X 连上远程服务器;2)使用 virt-manager 启动图形界面;3)通过 virt-manager 创建虚拟机,并指定 iso 镜像 和 新建 qcow 文件,然后启动虚拟机;4)进入虚拟机后,找到系统安装程序并运行,按照提示依次执行安装步骤;5)安装成功后重启系统,再次进入,此时虚拟机就可以正常使用了。...原创 2021-03-02 09:30:07 · 2752 阅读 · 2 评论 -
在linux上搭建本地git仓库并提供访问
如果只是想在局域网内快速搭建 git 仓库并提供访问的话,可以通过以下步骤实现。假设搭建 git 仓库的主机 ip 为:10.20.42.871)初始化本地 git 仓库$ cd /home/zhoumin/repos/$ mkdir ./demo$ cd ./demo$ git init初始化空的 Git 版本库于 /home/zhoumin/repos/demo/.git/2) 从别处clone在 10.20.42.119 上操作$ cd /root/$ git clo原创 2021-02-24 13:17:45 · 1315 阅读 · 1 评论 -
linux下查看pid namespace的方法
1)方法一使用 lsns 查看下面展示了当前系统中只有一个 pid namespace,其 inode 号是 4026531836,该 pid namespace 中的最小 pid 是 1,即 init 进程$ lsnsNS TYPE NPROCS PID USER COMMAND4026531836 pid 77 1 root /usr/lib/systemd/systemd --switched-root --system --deserialize 224026531837 user原创 2021-02-18 15:09:34 · 3523 阅读 · 1 评论 -
linux下cscope的配置
1、cscope 安装比较简单,略过。2、cscope 数据库文件生成在利用 cscope 来搜索代码之前,需要先为项目源码生成一个 cscope 数据库,生成的方法主要有以下两种:1)对项目源码的根目录执行:cscope -R 命令,该命令会递归的去解析所有子目录,并在当前目录下生成一个cscope.out的文件。$ cscope -R2)上述命令会解析所有以 .c、.h、.y、.l 结尾的源文件,这里面有两个小问题,第一,我们无法排除某些文件,第二,除了以上述几种后缀结尾...原创 2021-02-07 23:43:31 · 875 阅读 · 0 评论 -
linux中的eval命令
eval是 shell 内置命令,它可以将一个变量中包含的字符串扩展成 shell 脚本并执行。当我们通过字符串拼接的方式生成一个l inux 命令时,可以用 eval 来执行它。假设 employee.dat 文件的每一行描述了一个员工的基本信息,包含三列,分别是:姓名,邮箱,岗位类型,例如:$ cat ./employee.datzhoumin zhoumin@abc.cn devzhangsan zhangsan@abc.cn test则 info_employee.sh 脚本可以根据原创 2021-02-04 20:02:06 · 2103 阅读 · 0 评论 -
linux下使用taskset进行绑核
在 linux 下可以使用 taskset 命令设置和查看某个程序的亲核信息,它的基本用法如下:用法:taskset [选项] [掩码 | cpu列表] [pid|命令 [参数...]]选项: -a, --all-tasks 在给定 pid 的所有任务(线程)上操作 -p, --pid 在存在的给定 pid 上操作 -c, --cpu-list 以列表格式显示和指定 CPU -h, --help 显示此原创 2021-02-03 08:47:23 · 1089 阅读 · 0 评论 -
linux下使用uptime查看负载
在linux下可以使用uptime查看当前系统的负载,使用示例如下:[root@localhost ~]# uptime14:20:10 up 5 days, 20:16, 16 users, load average: 0.23, 0.25, 0.26这里的负载是指平均负载,一共有三个值,分别对应过去1分钟、5分钟、15分钟的负载情况,平均负载的计算方法是:统计处于 可运行状态 或 不可中断状态 的进程的平均数量。...原创 2021-02-03 08:44:46 · 739 阅读 · 1 评论 -
linux中的硬链接和软链接
可以使用 ln 命令创建硬链接和软链接,它的基本用法是:ln [OPTION]... [-T] TARGET LINK_NAMEln [OPTION]... TARGETln [OPTION]... TARGET... DIRECTORYln [OPTION]... -t DIRECTORY TARGET...默认是创建硬链接:$ ln 1.txt 2.txt$ stat 1.txt 文件:1.txt 大小:6 块:8 IO 块:4096原创 2021-01-23 13:37:17 · 121 阅读 · 2 评论 -
将只读文件系统remount为可写文件系统
有些时候可能需要重新 mount 一个已经 mount 的文件系统,改变 mount 标记,比如,将只读的文件系统重新 mount 为可写文件系统。mount 命令的 remount 选项可以将只读文件系统 remount 为可读写文件系统,命令如下:$ mount -o remount,rw /dev/vad1 /...原创 2020-12-30 10:42:14 · 2716 阅读 · 0 评论 -
在debian上构建软件包
在 debian 上编译 glibc 挺方便的,使用下面这条命令即可。虽然简单,但可能还是有人不知道,就像我刚开始接触 debain 一样。$ cd ./glibc_src$ dpkg-buildpackage -b在运行这条命令时可能报错,大部分应该都是依赖的问题,根据错误信息提示,使用 apt install xxx 进行安装即可,比如安装 gettext:$ apt install gettext...原创 2020-12-30 17:50:32 · 669 阅读 · 0 评论 -
Chain ‘MASQUERADE‘ does not exist 报错解决
今天在执行 iptables 相关命令时遇到了 Chain 'MASQUERADE' does not exist 的报错,报错信息如下所示:$ iptables -t nat -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADEiptables v1.8.2 (nf_tables): Chain 'MASQUERADE' does not existTry `iptables -h' or 'iptables原创 2020-12-29 19:32:46 · 5124 阅读 · 0 评论 -
编译内核后手动升级
这里总结一下,当我们拿到一个内核编译后的结果如何进行手动升级,假设内核编译后我们拿到的内容如下。当然,内核编译后会生成很多文件,这里我们只关心上面 vmlinuz 和 modules 目录,其中 modules 目录里存放了编译出的各个模块文件(*.ko),假设编译出的内核版本是3.10.0。$ ls -1drwxrwxr-x modules-rwxr-xr-x vmlinuz-3.10.0主要分为以下三步,1) 更新 vmlinuz 文件,2) 更新 modules 文件,3)生成 in原创 2020-12-29 17:28:51 · 293 阅读 · 0 评论 -
读取进程空间中vdso段的内容
下面是 dump vdso 内存区域内容的 shell 脚本,仅供参考:#!/bin/sh[ -z "$1" ] && echo "Usage: $0 out_file" && exitmem_start=`cat /proc/$$/maps |grep vdso |awk -F'-' '{print $1}'`skip=$((16#$mem_start))count=16384 # 在 mips 上 vdso 的大小是 16K (16384),在 x86原创 2020-12-29 14:36:16 · 220 阅读 · 0 评论 -
find、xargs和cat的小问题
使用 find 查找某种类型的文件是一个非常普遍的需求,比如,下面命令可以查找当前目录下所有以 ".txt" 结尾的文件:$ find ./ -name “*.txt”./a.txt./b.txt./c.txt找到文件往往只是第一步,很多时候我们还想对那些文件做进一步的处理,这时候我们可以使用 xargs 或者 find 自带的 -exec 参数去逐一处理那些文件,比如查看文件内容:$ find ./ -name "*.txt" |xargs cathello, world0123原创 2020-12-28 19:10:53 · 2301 阅读 · 0 评论 -
借用nc自动同步时间
当系统中没有ntp时,我们可以借助 nc 工具实现自动同步系统时间。当然,至少由一台机器的时间是准确的。原理比较简单,借助 nc 构建 server 和 client,然后在 server 端通过文件传输时间信息,在 client 端通过文件接收时间信息,最后设置系统时间。代码如下所示:server 端,./nc_server.sh:#!/bin/shtmp_file=./time.txttouch $tmp_filewhile truedo date +"%Y-%m-%d %H:%原创 2020-12-23 16:33:29 · 521 阅读 · 0 评论 -
/etc/fstab文件编辑
/etc/fstab文件里包含各种文件系统的描述信息,每个文件系统占据一行,每行有六列,中间用 tab 或者空格隔开。这个这六列分别是:设备信息,例如:/dev/cdrom、/dev/sda1、/dev/vda1、<host>:<dir>(针对NFS挂载点) 挂载点,例如:/、/home、/boot 文件系统类型,例如:ext2、nfs、xfs等 挂载选项,参见 mount 命令,default 表示使用默认选项 使用dump命令时是否需要备份该文件系统 重启时文件系统原创 2020-12-19 22:16:15 · 1906 阅读 · 0 评论 -
VFS: Unable to mount root fs on unknown-block(0,0)问题解决
这个问题貌似很多人都遇到过,因为在网上搜了一下,结果还不少,由一个引用比较多的网页是:https://unix.stackexchange.com/questions/414655/not-syncing-vfs-unable-to-mount-root-fs-on-unknown-block0-0这上面总结的解决方案是:1)确认内核是否支持/dev/vda1设备(假设root=/dev/vda1)上的文件系统,2)确认指定的root是否正确,比如应该是/dev/vda2,而不是/dev/vda1。原创 2020-12-19 17:46:50 · 14301 阅读 · 0 评论 -
读取进程中某块内存区域的内容
以下python 脚本可以读取一个进程的某个内存区域的内容:#!/usr/bin/env pythonimport reimport sysdef dump_memory_region_by_pid(pid, region, of): print "PID = %d, find region ..." % pid with open("/proc/%d/maps" % pid, 'r') as maps_file: with open("/proc/%d/me原创 2020-12-17 11:20:47 · 790 阅读 · 0 评论 -
使用sysctl配置内核参数
sysctl可以在运行时查看和修改内核的参数,现在梳理一下它的基本使用方法。1)查看所有参数$ sysctl -a2) 查看某一个参数$ sysctl kernel.ostype3) 修改某一个参数例如,以下命令可以修改hostname,并在bash中体现出来[zhoumin@localhost test]$ sudo sysctl kernel.hostname=zm_host[sudo] zhoumin 的密码:kernel.hostname = zm_host[z原创 2020-12-17 09:18:51 · 2319 阅读 · 0 评论 -
使用dracut生成initrd文件
在linux中,可以使用 dracut 命令生成 initrd 文件,命令格式是:dracut [OPTION...] [<image> [<kernel version>]]在生成的过程中,可以指定需要添加的驱动模块,例如下面这条命令中的 module1、module2(位于/lib/modules 目录下):$ dracut --add-drivers "module1 module2" image kernel_version...原创 2020-12-16 22:38:49 · 2855 阅读 · 0 评论 -
借助ncurses库实现模仿密码输入
原理比较简单,直接上代码:#include <stdio.h>#include <curses.h>void refill(char ch, int num) { int i = 0; putchar('\r'); for (i = 0; i < num; ++i) { putchar(ch); }}// gcc ./main.c -o main -lcursesint get_pass(char *passw原创 2020-12-11 10:08:54 · 229 阅读 · 0 评论