随笔分类 - Liunx
摘要:0. Overview There are various power modes of the CPU which are determined based on their current usage and are collectively called “C-states” or “C-mo
阅读全文
摘要:1. sed 简介:为什么需要 sed? 在普通文本编辑器(如 vim)中删除,替换文本可通过键盘交互式输入来执行。但是,如果在自动化场景或者不需要通过文本编辑器的场景下删除,替换文本该怎么做呢? sed 编辑器很好的提供了这个功能,sed 编辑器又叫做流编辑器,它基于预先定义的规则来处理数据流,从
阅读全文
摘要:编写脚本实现监测指定文件夹的磁盘空间。 ## 脚本逻辑介绍 用户通过 --path 选项输入检测的文件夹路径。如果不输,则默认监测 /home 文件夹下的磁盘空间。 用户可通过 --help 命令查看脚本描述。如果用户输错了打印 help 信息。 用户可通过 --depth 选项指定检测文件夹的深度
阅读全文
摘要:编写脚本实现在指定文件路径下查找文件夹或文件名。 脚本如下: #!/bin/sh # lazy find # GNU All-Permissive License # Copying and distribution of this file, with or without modificatio
阅读全文
摘要:说明:看 systemd log 的时候发现了一段有意思的打印,不太明白为什么会这样,贴出来与朋友们分享,欢迎知道的朋友们说明下,非常感谢。 问题描述:服务启动时,会执行 python 脚本,该脚本去调用编译好的 C++ 可执行文件。在这之间都会有 log 输出,从时间上看是 C++ 的 log 先
阅读全文
摘要:软件安装流程 前面软件篇提到了通过 RPM 和 YUM 在线安装的机制安装软件,除了这两种方式之外还有一种通过源码来安装软件的方式。 如上流程图所示,程序员使用特定语言(c/c++/...)编写源文件,通过编译器翻译成机器可以执行的可执行文件,也就是二进制文件。其中,如果源文件依赖函数库的话,在编译
阅读全文
摘要:程序存储在硬盘中,需要执行的时候被加载到内存里,内存中的程序以进程的方式运行,进程会根据程序的内容去做读写文件,执行指令等操作。 文件/指令等都有自己的执行权限,符合权限的才能被执行。相应的,进程也需要有这些权限才能执行相应的操作。 进程权限 命令 cat /proc/<PID>/status |
阅读全文
摘要:有些进程会在系统上运行较长时间,如前面的 Hello World 程序运行时产生的进程。有些进程运行瞬间就结束了,如执行 ps 命令产生的进程,也有的进程会常驻在内存中,提供相应的服务,这样的进程称为守护进程(daemon),它所提供的功能叫做服务。 这样的守护进程有很多。比如,sshd(d 表示
阅读全文
摘要:创建子进程 上一节说过创建子进程的三种方式: 1. fork 复制进程:fork 会复制当前进程的副本,产生一个新的子进程,父子进程是完全独立的两个进程,他们掌握的资源(环境变量和普通变量)是一样的。 2. exec:exec 方式不会产生子进程,它会加载新的程序从而取代当前进程,当前进程的变量是被
阅读全文
摘要:多任务和 CPU 时间片 前面说了 Liunx 是多用户多任务的,所谓的多任务就是多个进程“同时”执行。比如,同时开多个软件(进程),对于用户来说好像每个软件(进程)都在工作,但是实际上,单核 CPU 做不到多个进程同时执行,只有多个 CPU 才能真正实现多任务执行。之所以会产生多个任务同时执行的错
阅读全文
摘要:1. 进程 程序放在硬盘中,在运行它的时候加载到内存,在内存里程序以进程的方式运行,进程有唯一的 ID ,叫 PID。 写个简单的 Hellow world 程序,让它产生 PID: [root@test]$ cat test.cpp #include <stdio.h> #include <uni
阅读全文
摘要:1. RPM RPM(RedHat Package Manager),顾名思义是 RedHat 的软件包管理器。它遵循 GPL 规则且功能强大好用,从而逐渐运用到其它 Liunx 发行版中,包括 Fedora,CentOS 等。通过 RPM 可以很方便的查询,升级和安装软件包。 厂商提供软件时,会预
阅读全文
摘要:swap swap ,内存交换空间,它是磁盘上的一块空间,主要作用是为了防止物理内存不足。 CPU 从内存中读取数据。当内存的空间不足时, CPU 难以读取到数据,导致程序无法正常工作。所以诞生了 swap 内存交换空间,系统将内存中不常用的程序和数据放到 swap 中,从而给内存腾出空间,使得内存
阅读全文
摘要:GlusterFS GlusterFS,是一个分布式文件系统,它通过 TCP/IP 或 IB(InfiniBand RDMA)网络将多个存储资源整合在一起,提供存储服务,具有很强的可扩展能力。 GlusterFS 工作原理 如上图所示。GlusterFS 的 server 端共享存储资源,clien
阅读全文
摘要:NFS NFS(Network File System,网络文件系统),它可以通过网络让不同操作系统,不同机器共享彼此的文件。 NFS 分为服务端和客户端。服务端提供共享的文件目录,客户端将该目录挂载到本地目录,从客户端上看,相当于是将磁盘分区挂载到目录,非常便利。 NFS 工作原理 NFS 工作原
阅读全文
摘要:RAID RAID 是廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks)的意思。通过它可以将较小的磁盘组成较大的磁盘。 RAID 模式 RAID 有几种模式,常用的有 RAID0,RAID1, RAID5 和 RAID10。下面依次介绍这几种模式。 RAID
阅读全文
摘要:LVM LVM(Logical Volume Manager),逻辑卷管理器。一种高级文件系统管理方式,它可以动态扩展文件系统。 LVM 的示意图如下所示: partition:磁盘分区。 PV:Physical Volume,实体卷,由磁盘分区生成。 VG:Volume Group,卷组,由多个
阅读全文
摘要:这一节主要介绍 Liunx 是怎么用磁盘的。 磁盘分区 在 Liunx 中一切皆文件,磁盘在 Liunx 中也是文件,包括 /dev/hd[a-d](以 IDE 为接口) 和 /dev/sd[a-p](以 SCSI/SATA/U盘) 等类型的磁盘设备文件名。 [root@test1 test]# l
阅读全文
摘要:回顾前两节,在 001 中介绍了怎么添加用户及用户组,在 010 中介绍了从 client 端 ssh 到 server 的详细过程,那么接下来要介绍的就是是登陆到 server 之后如何切换用户了。 留一道真题: server 中有三个用户 lianhua,huasheng 和 lianhuash
阅读全文
摘要:Liunx ssh known_hosts known_hosts是做服务器认证的。当用 ssh 连接到一个新的服务器的时候,ssh 会让你确认服务器的信息(域名、IP、公钥),如果你确认了,就会把这些信息写到 known_hosts (~/.ssh/known_hosts) 里,下次登录的时候就不
阅读全文