
linux
文章平均质量分 57
大叶子不小
这个作者很懒,什么都没留下…
展开
-
图解操作系统
图解系统介绍 | 小林coding原创 2023-02-16 15:06:44 · 109 阅读 · 0 评论 -
Linux如何创建swap分区/swap文件
本节操作以CentOS 6.8操作系统云服务器为例,指导用户创建swap分区。操作过程中涉及创建指定大小的文件,请确认系统磁盘空间有足够的空余空间。使用文件模拟的块设备做swap性能较之直接使用块设备性能较差。场景二:使用文件模拟的块设备做swap分区。场景一:使用块设备创建swap。本例中执行命令如下。swap的UUID从步骤。原创 2023-02-16 14:46:41 · 2495 阅读 · 0 评论 -
buffer和cache的区别
cache实现数据的重复使用,速度慢的设备需要通过缓存将经常要用到的数据缓存起来,缓存下来的数据可以提供高速的传输速度给速度快的设备。Linux统计/监控工具sar详细介绍:要判断一个系统瓶颈问题,有时需要几个 sar 命令选项结合起来使用,例如:怀疑CPU存在瓶颈,可用 sar -u 和 sar -q deng 等来查看 怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看 怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看。原创 2023-02-16 14:32:36 · 1080 阅读 · 0 评论 -
shell array的一些特殊属性[*],[@]
原文链接:https://blog.youkuaiyun.com/qinglinsan/article/details/9217959。版权声明:本文为优快云博主「林散」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。具体在《ABSG》 CHAPTER 27有描述。表示第一个元素的长度,即第一个元素的字符个数。表示队列arrray的序号:0,1,2,...表示的是array_name的元素个数。表示的是array的所有元素。原创 2023-02-16 14:24:27 · 323 阅读 · 0 评论 -
How to check if a file exists in a shell script
【代码】How to check if a file exists in a shell script。原创 2023-02-15 16:34:29 · 109 阅读 · 0 评论 -
Linux sed 替换第一次出现的字符串
2016-12-16 深圳 南山平山村 曾剑锋。* Linux sed 替换第一次出现的字符串。* 需要替换配置文件中第一次出现的文本内容。原创 2023-02-07 16:45:11 · 1023 阅读 · 0 评论 -
echo 3 > /proc/sys/vm/drop_cache
前者针对磁盘块的读写,后者针对文件inode的读写。需要说明的是,mem的used=free+buffers+cached,有些情况是cached占用很多资源,算起来数值就是不对,其实不影响实际使用,下面转载部分有说明如何清除cached的占用(实际上可以不清除,不会影响实际使用)但实际上,我们都知道这是因为Linux对内存的管理与Windows不同,free小并不是说内存不够用了,应该看的是free的第二行最后一个值:”-/+ buffers/cache: 58 191” 这才是系统可用的内存大小。原创 2023-02-02 20:48:21 · 5758 阅读 · 1 评论 -
模拟一个处于 D 状态的进程
此时,该进程就会处于 D 状态,不会返回。可以通过另一个 shell 来检查这个进程。原理:使用 LVM 卷的 suspend 特性,暂停 IO,使得上层应用程序处于。使用 losetup 创建一个卷作为 pv 的磁盘。创建 pv, vg 和 lv。之前卡住的 dd 命令会继续。在 lv 上创建一个文件系统。写 IO 的同时暂停 lv。恢复 lv 的 IO。原创 2023-02-01 14:12:52 · 1007 阅读 · 0 评论 -
linux下的僵尸进程处理SIGCHLD信号
首先内核会释放终止进程(调用了exit系统调用)所使用的所有存储区,关闭所有打开的文件等,但内核为每一个终止子进程保存了一定量的信息。这些信息至少包括进程ID,进程的终止状态,以及该进程使用的CPU时间,所以当终止子进程的父进程调用wait或waitpid时就可以得到这些信息。而僵尸进程就是指:一个进程执行了exit系统调用退出,而其父进程并没有为它收尸(调用wait或waitpid来获得它的结束状态)的进程。原创 2023-02-01 11:16:11 · 463 阅读 · 0 评论 -
shell while 死循环
除了让while条件恒成立外,编程语言都有一种简洁的死循环写法。比如C语言中典型的死循环条件是while(1),而java中的写法是while(true)。原文链接:https://blog.youkuaiyun.com/guodongxiaren/article/details/43341769。版权声明:本文为优快云博主「果冻虾仁」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。此外,还有一种死循环写法就是利用系统自带的true命令(/bin/true)原创 2023-02-01 10:56:51 · 2448 阅读 · 0 评论 -
关于ps -aux进程状态stat的中Ss、S<l、Ssl、SLl、SNl、R、R+的解释
Z 僵尸进程 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放BSD风格的。T 已停止的 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行。D 不可中断睡眠 (通常是在IO操作) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。< 表示高优先级的进程(not nice to other users)S 可中断睡眠 (休眠中, 受阻, 在等待某个条件的形成或接受到信号)R 正在运行或可运行(在运行队列排队中)X 死进程 (未开启)原创 2023-02-01 10:55:07 · 3349 阅读 · 0 评论 -
浅谈init进程
所谓进程就是系统中正在运行的程序,进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就是创建了一个进程,在这个过程中操作系统对进程资源的分配和释放,可以认为进程就是一个程序的一次执行过程。完成加载系统后,演变为进程调度、交换。所以说init进程是Linux系统操作中不可缺少的程序之一,如果内核找不到init进程就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。在这里我们就主要讲解下init进程,init进程由0进程创建,完成系统的初始化,是系统中所有其他用户进程的祖先进程。原创 2023-01-30 17:01:55 · 813 阅读 · 0 评论 -
Linux: 关于 SIGCHLD 的更多细节
在上面的实验中,我们已经发现通过SIGCHLD除了用来回收子进程,还能获悉子进程的状态!在操作系统上,也有很多利用这个在工作的,例如:后台进程,如果向标准输入读取内容时,是会被暂停的为什么呢?因为后台进程,是和终端断开连接的,当它从标准输入读取内容时,终端的驱动程序会发现这个操作,会发一个 SIGTTIN 给后台进程,让其暂停,并且通知用户,只有用户通过 fg 命令将其转换成 前台进程时,才能继续工作正是有这样的一套机制,所以我们也能做出很多比较实在的东西了~原创 2023-01-30 16:48:57 · 486 阅读 · 0 评论 -
pmap 命令
pmap(英文全拼:process memory map)命令用于查看进程的内存映射。pmap 实际上是一个 Sun OS 上的命令,Linux 仅支持其有限的功能。可以显示一个或多个进程的内存状态,其报告进程的地址空间和内存状态信息。对查看完整的进程地址空间很有帮助。语法BashCopy选项-x--extended:显示扩展格式。-d--device:显示设备格式。-q--quiet:不显示 header 和 footer 行。-A:将给定范围内的结果限制为低地址和高地址范围。原创 2023-01-30 16:21:54 · 4315 阅读 · 0 评论 -
linux journalctl使用详解
journalctl通常用来查询systemd管理的Unit的日志信息。设置日志输出的格式,mode的值为(short, short-iso,short-precise, short-monotonic, verbose,export, json, json-pretty, json-sse, ca)journalctl --since “2020-08-31 10:00:00” --until “2020-08-31 11:00:00” #显示某个时间段内的日志(2020-08-31 10点-11点)原创 2023-01-29 17:33:11 · 1085 阅读 · 0 评论 -
xargs命令中传多个参数实例?
kubectl get po --all-namespaces|grep Pending | awk '{print $1,$2}'|xargs -n2 sh -c 'kubectl delete po $1 -n $0 --grace-period=0 --force'原创 2023-01-28 16:26:34 · 506 阅读 · 0 评论 -
shell awk 的一些用法
11用/etc/shadow文件中的密文部分替换/etc/passwd中的"x"位置,生成新的/tmp/passwd文件。#10、awk分析Nginx访问日志的状态码404、502等错误信息页面,统计次数大于20的IP地址。#在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"#3、打印6.txt文件中的第3行至第5行,NR表示打印行,$0表示文本所有域。#打印6.txt文件中的第3行至第5行的第2列与第4列。#2、以空格、冒号、\t、分号为分割。原创 2023-01-19 15:53:26 · 227 阅读 · 0 评论 -
echo命令的换行方法
echon 如果内容为单一字段,可以用单引号也可以用双引号,如果是一个代码片段,那么要用单引号!echo '代码片段'你"好echo"你\"好"或者echo'你"好'echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作 用。语法。原创 2023-01-04 19:36:47 · 20005 阅读 · 0 评论 -
创建共享内存后,进程结束,共享内存是否会消失?
管道、socket、共享内存、消息队列、信号量等,是属于内核级的,一旦创建后就由内核管理,若进程不对其主动释放,那么这些变量会一直存在,除非重启系统。原创 2022-11-08 17:05:25 · 1166 阅读 · 0 评论 -
mmap可以让程序员解锁哪些骚操作?
但谈到mmap的与标准IO(read/write)的性能情况就比较复杂了,标准IO设计到系统调用以及用户态内核态的copy问题,而mmap则涉及到维持内存与磁盘文件的映射关系以及缺页处理的开销,单纯的从理论分析这二者半斤八两,如果你的应用场景对性能要求较高,那么你需要基于真实场景进行测试。这个优势在于处理大文件场景,这里的大文件指的是文件的大小超过你的物理内存,在这种场景下如果你使用传统的read/write,那么你必须一块一块的把文件搬到内存,处理完文件的一小部分再处理下一部分。原创 2022-11-01 16:46:18 · 246 阅读 · 0 评论 -
du -sh * 与 ls -lh 显示文件大小不一样
du -sh * 与 ls -lh 显示文件大小不一样如下所示[www@esjob-02 crm]$ du -sh aaa.txt75M aaa.txt [www@esjob-02 crm]$ ls -s aaa.txt122480 aaa.txt[www@esjob-02 crm]$ ls -lh aaa.txt-rw-rw-r-- 1 www www 32G Mar 23 16:52 aaa.txt[www@esjob-02原创 2022-10-31 15:56:04 · 1906 阅读 · 0 评论 -
Linux系统stat指令用法
stat指令:文件/文件系统的详细信息显示。stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下:stat命令-->用来显示文件的详细信息,包括inode, atime, mtime, ctime适用场景:查看文件或目录的诸如atime,mtime,ctime等信息即可使用stat命令,也可使用ls命令,但相比而言,stat还可以看到设备号,环境等信息。原创 2022-10-28 17:09:29 · 1462 阅读 · 0 评论 -
成功解决 /bin/sh: 1: source: not found
便可成功使用source命令~原创 2022-10-21 16:53:51 · 495 阅读 · 0 评论 -
Linux资源管理之cgroups简介
本文首先介绍了 cgroups 在内核中的实现方式,然后介绍了 cgroups 如何通过 VFS 把相关的功能暴露给用户,然后简单介绍了 cgroups 的使用方法,最后通过分析了几个 cgroups 在实践中的例子,进一步展示了 cgroups 的强大的精细化控制能力。笔者希望通过整篇文章的介绍,读者能够了解到 cgroups 能够完成什么样的功能,并且希望读者在使用 cgroups 的功能的时候,能够大体知道内核通过一种什么样的方式来实现这种功能。原创 2022-10-17 18:06:00 · 819 阅读 · 0 评论 -
强大的strace命令用法详解
当发现进程或服务异常时,我们可以通过strace来跟踪其系统调用,“看看它在干啥”,进而找到异常的原因。熟悉常用系统调用,能够更好地理解和使用strace。当然,万能的strace也不是真正的万能。当目标进程卡死在用户态时,strace就没有输出了。这个时候我们需要其他的跟踪手段,比如gdb/perf/SystemTap等。备注:1、perf原因kernel支持2、ftrace kernel支持可编程3、systemtap 功能强大,RedHat。原创 2022-10-17 17:36:34 · 970 阅读 · 0 评论 -
Linux系统网络流量负载情况的查询和案例分析
iftop命令常见用法如下。参数-i后跟的interface表示网络接口名,比如eth0、eth1等等。如果不通过-i参数指定接口名,则默认检测第一块网卡的使用情况。:iftop的流量显示单位是Mb,这里的b是比特(bit),不是字节(byte)。而ifstat显示的单位是KB中的B,也就是字节。1byte等于8bit。进入iftop界面后,可以通过按下相应的字母快捷按键,来对显示结果进行调整。显示结果主要字段说明。原创 2022-10-13 09:57:07 · 512 阅读 · 0 评论 -
Linux lsof 命令
lsof 并不是一个简单的命令,从其 man page 的长度就可以体会到这一点。从本文介绍的小 demo 入手或许可以让你忘记冗长的文档说明,一步步的开始使用并最终掌握这个命令。linux lsof命令详解。原创 2022-09-16 15:49:02 · 636 阅读 · 0 评论 -
linux系统 net.core.somaxconn参数
1. 如何查看该参数值1)查看所有内核参数及值sysctl -a # 查看所有内核参数及值1[root@localhost core]# sysctl -a | head -n 5kernel.sched_child_runs_first = 0kernel.sched_min_granularity_ns = 1000000kernel.sched_latency_ns = 5000000kernel.sched_wakeup_granularity_ns = 1000000ke...原创 2022-04-11 21:36:04 · 908 阅读 · 0 评论 -
python pip源配置,pip配置文件存放位置的方法
pip源配置文件可以放置的位置:Linux/Unix:/etc/pip.con~/.pip/pip.conf (每一个我都找了都没有,所以我是在这个文件夹中创建的pip.conf文件)~/.config/pip/pip.confMac OSX:~/Library/Application Support/pip/pip.conf~/.pip/pip.conf/Library/Application Support/pip/pip.confWindows:%APPDATA原创 2022-04-11 21:34:55 · 7823 阅读 · 0 评论 -
shell中的while循环实例
shell中的while循环实例_wdz306ling的博客-优快云博客_shell while1.利用while循环计算1到100的和:示例代码1:#!/bin/bashi=1sum=0while [ $i -le 100 ]do let sum=sum+$i let i++doneecho $sum示例代码2:利用while循环计算1到100之间所有奇数之和#!/bin/bashi=1sum=0while [ $i -le 100 ]do let ...原创 2022-04-11 21:33:53 · 2088 阅读 · 0 评论 -
如何在shell中curl一个带变量的post请求
有时候,我们想在一个shell中,执行一段脚本,循环post一段json数据,而且body里面的字段名和值都可以是一个变量应该怎么做?test.shid=1111name="ct"curl http://192.1.13.100:8888/dataservice/knowledge/createKP -H "Accept: application/json" -H "Content-Type: application/json" -d '{"kpId":"'"$id"'","kpName":...原创 2022-03-08 15:21:37 · 2863 阅读 · 2 评论 -
shell读取文件的每一行
写法一:#!/bin/bashwhile read linedo echo $linedone < filename(待读取的文件)写法二:#!/bin/bashcat filename(待读取的文件) | while read linedo echo $linedone写法三:for line in `cat filename(待读取的文件)`do echo $linedonefor 逐行读会分割行内容...原创 2022-03-08 15:18:13 · 3776 阅读 · 0 评论 -
shell-awk 按列求和
在Shell中,我们可以用awk实现按列求和的功能,非常简单。看下面的例子:1.简单的按列求和[linux@test /tmp]$ cat test123.52125.54126.36[linux@test /tmp]$ awk '{sum += $1};END {print sum}' test375.422.对符合某些条件的行,按列求和[linux@test /tmp]$ cat testaaa 123.52bbb 125.54aaa 123.52aaa 123.52c原创 2022-02-08 10:12:23 · 2321 阅读 · 0 评论 -
【转载】Shell判断字符串包含关系的几种方法
下面是直接copy的内容: (本来是不打算copy的,但是每次用到或看的时候都要跳转,感觉挺麻烦的。就直接copy了。)方法一:利用grep查找1 strA="long string"2 strB="string"3 result=$(echo $strA | grep "${strB}")4 if [[ "$result" != "" ]]5 then6 echo "包含"7 else8 echo "不包含"9 fi先打印长字符串,然后在长字符串中 g原创 2022-01-24 19:54:17 · 8780 阅读 · 0 评论 -
Zero-Copy&sendfile浅析
Zero-Copy&sendfile浅析_BoBo的代码世界-优快云博客一、典型IO调用的问题一个典型的web服务器传送静态文件(如CSS,JS,图片等)的过程如下:read(file, tmp_buf, len);write(socket, tmp_buf, len);首先调用read将文件从磁盘读取到tmp_buf,然后调用write将tmp_buf写入到socket,在这过程中会出现四次数据 copy,过程如图1所示图11。当调用read系统调用时,通过DMA(D原创 2022-01-13 17:45:45 · 196 阅读 · 0 评论 -
ss命令使用详解
ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手原创 2023-05-18 10:42:45 · 1649 阅读 · 0 评论 -
shell 截取前两列
awk '{print substr($0, index($0, $3))}'cut -d " " -f 3- input_filename > output_filename给出一个字符串,让你截取其中的某个部分如何用awk实现?比如 123456789 3333344这样两个数字串,现在要截取第一个数字串的56,以及第二个数字串的44echo "123456789 3333344" | awk '{print substr($1,5,2)}'1$1指的是第一列,也就是1.原创 2022-01-12 19:02:13 · 1870 阅读 · 0 评论 -
ssh StrictHostKeyChecking
前言我们在写 shell 脚本的时候通常会需要用 ssh 登录到远程服务器执行一些命令。这个时候就懵逼了,我 ssh 直接执行过去了,怎么去应答这个询问啊。 这个时候就需要知道 ssh 有一个非交互方式登录 StrictHostKeyChecking主机公钥确认 StrictHostKeyCheckingStrictHostKeyChecking=no 最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网测试时建议使用。如果连接server的key在本地不存在,那么就自动添加到文件中(原创 2022-01-12 17:22:28 · 5487 阅读 · 0 评论 -
iostat
下面通过iostat命令使用实例,说明使用iostat查看IO请求下发情况、系统IO处理能力的方法,以及命令执行结果中各字段的含义。1.不加选项执行iostat我们先来看直接执行iostat的输出结果:linux # iostatLinux 2.6.16.60-0.21-smp (linux) 06/12/12avg-cpu: %user %nice %system %iowait %steal %idle 0.07 0.00原创 2022-01-11 17:29:14 · 698 阅读 · 0 评论 -
linux time的用法
实现方法#time#time 后面直接跟命令即可-v: 显示更加详细信息示例#统计运行时间Copy]# time touch {1..100}.txt 统计运行时间结果重定向-使用子shell"() &>/path/to/info.txt"Copy]# (time for i in `ls /data/images/`;do find /data -type f -name "$i"|xargs rm -f;done) &> /.原创 2022-01-11 14:43:28 · 215 阅读 · 0 评论