Linux
文章平均质量分 54
Linux系统运维
gaoZhuanMing
这个作者很懒,什么都没留下…
展开
-
Linux系统编程—零拷贝
“零拷贝”指的是:不在内核态和用户态之间拷贝数据。正常情况下,拷贝一个文件的步骤是:通过 read() 读取文件:磁盘 -> 内核缓冲区 -> 用户缓冲区;通过 write() 写数据:用户缓冲区 -> 内核缓冲区 -> 磁盘。可见,数据在用户态缓冲区和内核态缓冲区之间来回拷贝了两次。使用零拷贝技术之后,数据流方向为:磁盘 -> 内核缓冲区 -> 磁盘。#define _GNU_SOURCE#include <fcntl.h>ssize_原创 2022-01-17 21:20:34 · 776 阅读 · 0 评论 -
Linux系统编程—信号
1. 简介信号有时也称为软件中断。一个进程能够向另一个进程发送信号,因此信号也可作为一种同步技术。传统或标准信号的编号范围是 1~31,其余信号为实时信号。 $ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM原创 2021-12-08 15:40:08 · 908 阅读 · 0 评论 -
Linux用户管理—新增管理员
新增 cephadm 用户,其登录密码为 cephadm,并将其设为管理员:useradd cephadmecho 'cephadm' | passwd --stdin cephadm echo "cephadm ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephadmchmod 0440 /etc/sudoers.d/cephadm原创 2021-11-27 16:49:39 · 342 阅读 · 0 评论 -
Linux 远程桌面
yum install -y epel-releaseyum install -y xrdp tigervnc-serversystemctl start xrdp之后在 Windows 上即可通过 mstsc 远程连接 Linux。原创 2021-11-27 15:03:26 · 434 阅读 · 0 评论 -
Linux系统编程—目录
1. 创建目录#include <sys/stat.h>#include <sys/types.h>int mkdir(const char *pathname, mode_t mode);创建路径为 pathname 的目录,其访问权限为 mode;注意,mkdir() 创建的只是路径名中的最后一部分,它并不会自动创建缺失的父目录。成功时返回 0,失败时返回 -1。如果指定的目录已经存在,则失败返回,并将 errno 设为 EEXIST。2. 删除目录#in原创 2021-11-20 19:36:49 · 827 阅读 · 0 评论 -
Linux系统编程—记录锁
1. 简介使用 fcntl() 能够在一个文件的任意一个部分上放置一把锁,这个文件部分既可以是一个字节范围,也可以是整个文件。2. API#include <unistd.h>#include <fcntl.h>int fcntl(int fd, int cmd, ... /* arg */ );使用 fcntl() 操作记录锁时,cmd 可以取值如下:F_SETLK:设置锁,可以是加锁或解锁,取决于 arg 参数;如果无法立马加锁,则 fcntl() 会立马返回原创 2021-11-13 11:24:26 · 1206 阅读 · 0 评论 -
Linux系统编程—epoll
1. 简介epoll 的优点:当检查大量的文件描述符时,epoll 的性能比 select() 和 poll() 的要高。epoll 既支持水平触发也支持边缘触发,select() 和 poll() 只支持水平触发。epoll 的缺点:epoll 是 Linux 特有的,不可移植。2. 函数原型...原创 2021-11-12 21:12:11 · 1667 阅读 · 0 评论 -
Linux系统编程—select
1. 函数原型#include <sys/select.h>#include <sys/time.h>#include <sys/types.h>#include <unistd.h>int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);保持阻塞,直到一个或多个文件描述符集合就绪、或超时。超原创 2021-11-11 20:59:44 · 1094 阅读 · 0 评论 -
Linux系统编程—文件
1. 文件描述符文件描述符就是一个非负整数,用于充当文件句柄,以表示一个打开的文件。标准文件描述符标准输入(0):STDIN_FILENO标准输出(1):STDOUT_FILENO标准错误(2):STDERR_FILENO2. 文件操作#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags);int原创 2021-10-31 11:45:51 · 282 阅读 · 0 评论 -
Linux文件管理—vi编辑器
1. 跳转j:向下移动一行;k:向上移动一行;h:向左移动一个字符;l:向右移动一个字符;w:移动到下一个单词的起始位置;b:移动到上一个单词的起始位置;0:移动到行首;$:移动到行尾;G:移动到文件的最后一行;gg:移动到文件的第一行;:set nu<Enter>:显示行号;set nonu<Enter>:隐藏行号;:20<Enter>:跳转到第20行;2. 搜索/pattern&l原创 2021-09-24 14:13:58 · 85 阅读 · 0 评论 -
Linux网络管理—brctl命令
作用:brctl 命令用于管理 Linux 虚拟以太网网桥。1. 网桥操作查看网桥查看所有的网桥$ brctl showbridge name bridge id STP enabled interfacesbrqe8bda966-ee 8000.14187743ea0b no em1原创 2021-09-22 21:49:42 · 4178 阅读 · 0 评论 -
Linux文件管理—find命令
作用:递归地处理指定目录中的文件。如,递归地查看(打印) dist 目录中的所有文件:$ find dist/ -printdist/dist/datasetsdist/datasets/blocks.json...find 命令支持诸多的选项,以指定对哪些文件进行处理、以及如何处理。1. 根据名称进行搜索-name pattern:匹配文件名(basename)部分(使用 shell 模式)。-iname pattern:同 -name,但不区分大小写。-regex pattern原创 2021-09-20 20:34:45 · 259 阅读 · 0 评论 -
bash脚本—结构化命令
1. if-elseif Command; then Commandselif Command; then Commandselif Command; then Commandselse Commandsfi如果 Command 的命令退出码为 0,则条件为真;elif 和 else 是可选的,可以有 0到多个 elif,但只能有一个 else。2. casecase Variable inpattern1) Commands;;patte原创 2021-09-13 14:27:19 · 94 阅读 · 0 评论 -
expect命令
简介expect 命令用于处理需要交互式输入的命令。安装$ sudo yum install -y expect使用例子(在 bash 脚本中使用)expect <<EOFspawn mysql_secure_installationexpect "Enter current password for root" {send "\r"}expect "Change the root password" {send "Y\r"}expect "New password" {s原创 2021-09-12 21:29:26 · 402 阅读 · 0 评论 -
Linux文件管理—tar命令
作用:将多个文件保存为一个归档文件,也可以提取归档文件中的内容.1. 创建将文件 1.txt 和目录 a 保存到归档文件 out.tar 中.[root@localhost test]# tar -cvf out.tar 1.txt a/1.txta/a/b/a/b/3.txta/2.txt-c: 创建归档文件.-v: 列出经过处理的文件.-f: 指定归档文件名.2. 查看[root@localhost test]# tar -tf out.tar1.txta/a/b/原创 2021-09-10 08:52:05 · 235 阅读 · 0 评论 -
Linux文本处理—egrep命令
作用:寻找匹配指定模式的文本.1. 命令格式egrep Options "regex pattern" InputFile1 InputFile2 ...在输入文件 InputFile1 InputFile2 …中寻找匹配指定模式的文本。egrep 等价于 grep -E.2. 常用选项-n:输出匹配行的行号;-c:只输出匹配的行数;-o:只输出匹配模式的内容;-v:反向匹配;-l:输出包括匹配行的文件;-L:输出不包括匹配行的文件;-i:忽略大小写;-e:指定多个模式;-原创 2021-09-09 23:41:33 · 2170 阅读 · 0 评论 -
Linux文本处理—awk命令
作用:文本处理工具.命令格式awk Options 'Program-Text' InputFile1 InputFile2 ...对输入文件 InputFile1 InputFile2 … 执行给定的程序 Program-Text.常用选项-F sep: 自定义字段分隔符为 sep.-f ScriptFile: 从 ScriptFile 文件中读取 awk 脚本.记录默认的记录分隔符为换行符.可以通过内建变量 RS 来自定义记录分隔符. RS 的值可以是单个字符,也可以是正则表达式原创 2021-09-09 23:32:20 · 266 阅读 · 0 评论 -
Linux文本处理—sed命令
作用:用于处理文本的流编辑器.1. 命令格式sed Options '[Address]Command' InputFile对输入文件 InputFile 中的每行执行给定的命令 Command.如果指定了地址 Address,则只对符合条件的文本行执行 Command 命令.如果需要对同一行执行多条命令,则命令之间使用 ; 隔开即可.2. 常用选项-i: 原地修改,会改变源文件中的内容.-n: 处理过程中,不要输出正在处理的文本行.-r: 使用正则表达式扩展.-f File: 从文原创 2021-09-09 23:27:44 · 160 阅读 · 0 评论 -
Linux网络管理—tcpdump命令
作用:网络抓包.1. 常用选项-c N: 在收到 N 个数据包后退出.-n: 以数字形式显示地址.-nn: 以数字形式显示端口号.-i Interface 侦听指定的网络接口.-Q direction: 指定数据包的方向(进入、出去、或者两者皆可);direction 可取值为 in,out,inout.-A: 以 ASCII 码的形式打印数据包的内容.-x: 以十六进制的形式打印数据包的内容.-e: 打印链路层头部信息.-t: 不要打印时间戳.2. 侦听指定的网络接口从指定原创 2021-09-09 20:57:57 · 366 阅读 · 0 评论 -
Linux网络管理—iptables命令
作用:用于 IP 包的过滤和实现 NAT.1. 表和链常用的表有2个:filter 和 nat. 每张表又包含多条链,每条链就是规则序列.filter 表包含 INPUT,FORWARD,OUTPUT 链.nat 表包含 PREROUTING,OUTPUT,POSTROUTING 链.2. 处理流程接收到数据包的处理过程本机收到数据包,由 nat.PREROUTING 先进行处理;如果数据包的目的地址是本机,则交由 filter.INPUT 进一步处理;然后将数据包交给本机上层协议栈.原创 2021-09-09 20:52:46 · 450 阅读 · 0 评论 -
Linux网络管理—netstat命令
作用:主要用于显示套接字信息,类似的命令是 ss 命令。套接字选项:-t: tcp 套接字.-u: udp 套接字.-w: raw 套接字.-x: unix 套接字.状态选项:-l: 只显示处于侦听状态的套接字.-a: 显示所有套接字.其他选项:-n: 以数字形式显示地址.-p: 显示套接字所属进程的PID和名称.-e: 显示附加信息,可以获取套接字所属用户信息.例子[root@localhost ~]# netstat -tanpActive Internet c原创 2021-09-09 20:45:17 · 148 阅读 · 0 评论 -
Linux网络管理—nmcli命令
作用:用于控制 NetworkManager 的命令行工具,会将修改写入对应的配置文件。1. 查看连接罗列出所有的连接:[root@localhost ming]# nmcli connection show NAME UUID TYPE DEVICE enp0s3 08e656c0-38ac-4cd1-b885-ce919221a530 ethernet enp0s3 virbr0 37b8848a-原创 2021-09-09 20:41:29 · 2553 阅读 · 0 评论 -
Linux网络管理—ip命令
作用:用于管理网络设备。ip 命令有多个子命令,且子命令可以简写。1. ip address可以简写为 ip a。查看 IP 地址[root@localhost ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope原创 2021-09-09 20:31:13 · 1843 阅读 · 0 评论 -
Linux网络管理—配置静态IP地址
目录1. CentOS72. CentOS83. Ubuntu164. Ubuntu181. CentOS7# cat /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static" # 1DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes原创 2021-09-09 09:24:33 · 303 阅读 · 1 评论