Linux
文章平均质量分 87
吃着火锅x唱着歌
这个作者很懒,什么都没留下…
展开
-
EPOLLONESHOT
EPOLL的EPOLLONESHOT事件,使一个socket连接任何时刻都只被一个线程所处理,对于注册了EPOLLONESHOT事件的socket,操作系统最多触发其上注册的一个可读、可写、或者异常事件,且只触发一次,这样,当一个线程在处理某个socket时,其他线程是不可能有机会操作该socket的,但反过来,注册了EPOLLONESHOT事件的socket一旦被某个线程处理完毕,该线程就应该立即重置这个socket上的EPOLLONESHOT事件,以确保这个socket下一次可读,其他工作线程有机会继续原创 2020-08-04 14:28:06 · 519 阅读 · 0 评论 -
open函数返回0
原因是打开文件语句:if ((fd = open(path, O_RDWR | O_CREAT | O_TRUNC, 777)) < 0) 写成了:if (fd = open(path, O_RDWR | O_CREAT | O_TRUNC, 777) < 0) 使fd结果为一个布尔值,并且文件打开成功,返回值大于等于0,因此布尔值为false,转换成int就变成0了。...原创 2020-07-17 23:45:01 · 1370 阅读 · 1 评论 -
strerror函数运行时报错 Segmentation fault (core dumped)
虽然编译时没报错,但还是要加上以下两个头文件:#include <errno.h>#include <string.h>加上后正常运行。原创 2020-06-22 14:42:14 · 329 阅读 · 0 评论 -
vi的一些操作
1.u可撤销操作。2.yy复制当前行。3.p粘贴复制的行。4.dd删除一行。以下设置是临时的,只在当前vi中生效,但可将其添加在配置文件/etc/virc中使每次按文件中设置打开vi:1.:set (no)autoindent可(取消)换行后自动缩进。2.:set (no)number或:set (no)nu可(取消)显示行号。...原创 2020-06-13 23:20:47 · 120 阅读 · 0 评论 -
Linux 临时增加环境变量
增加环境变量:export name=value改变PATH环境变量:export PATH=APath:$PATH这种方法只能临时增加环境变量,关闭shell窗口再打开就失效。原创 2020-05-31 13:44:48 · 847 阅读 · 0 评论 -
Linux运行命令直到其成功
有时候有些命令只有当某些事件触发后才能成功执行,我们可以重复执行命令直到成功。repeat(){ while true do $@ &amp;&amp; return done}以上函数含义为只有当传入的命令参数$@执行成功时才return。更快的一种方式:repeat(){ while : do $@ &amp;...原创 2019-01-22 21:09:30 · 577 阅读 · 0 评论 -
Linux校验和
校验和checksum程序可以生成文件的校验和,通过校验和即可检验文件的完整性。生成文件的MD5sum:[student@myhost ~]$ md5sum a9f96ef92fe742165873c313662f1f2b8 a以上生成了32位16进制串。核实文件完整性:[student@myhost ~]$ md5sum a > a.md5[student@myhost ...原创 2019-01-27 23:38:48 · 776 阅读 · 0 评论 -
Linux tr命令进行转换
tr命令只能接受stdin输入,不能接收命令行参数。将大写换为小写:[student@myhost ~]$ echo "HELLO WORLD" | tr 'A-Z' 'a-z'hello world我们看到tr命令后跟了两个集合,第一个集合代表输入,第二个代表输出,如果输出集合比输入集合长,则超出长度部分被忽略,如果输出集合比输入集合短,则超出部分会一直重复输出集合的最后一个字符。用...原创 2019-01-27 23:13:02 · 567 阅读 · 0 评论 -
Linux xarges
对于管道|之后的一部分命令可以用stdin进行输入,如:cat a | grep test但有些命令只能用参数形式,就要使用xargs了,xargs可以将stdin转化为参数,类似于find命令中的-exec选项。xargs也可以将单行或多行文本进行重新格式化。下面示例是将多行输入处理为单行输出:...原创 2019-01-27 22:19:55 · 1067 阅读 · 0 评论 -
Linux read命令
读取n个字符存入变量(不用按回车,输入到第n个自动结束):[student@myhost ~]$ read -n 3 a123[student@myhost ~]$ echo $a123无回显方式读取密码:[student@myhost ~]$ read -s passwd[student@myhost ~]$ echo $passwdpassword显示提示信息:[stu...原创 2019-01-21 23:19:41 · 125 阅读 · 0 评论 -
Linux IFS
CSV是Comma Separated Value,逗号分隔性数值。IFS是Internal Field Separator,内部字符分隔符。是一个环境变量,用于当前Shell默认的定界字符串。示例如下:[student@myhost ~]$ cat adata="name,sex,rollno,location"oldIFS=$IFSIFS=,for item in $data;...原创 2019-01-22 21:38:22 · 1075 阅读 · 0 评论 -
Linux循环
for循环迭代:for var in list;do commandsdone或for((C语言格式)){}以上为for循环格式,其中的list可以为字符串(通过IFS分隔),也可以为序列,序列生成方式如下:{1..5}{a..z}{A..Z}while循环:while conditiondo commandsdoneuntil循环,如:[stud...原创 2019-01-22 21:44:23 · 580 阅读 · 0 评论 -
Linux测试比较语句
测试和比较语句用于if或脚本命令中:if conditionthen commandselse if conditonthen commandsfi或[ condition ] &amp;&amp; command; #如果condition为真则执行command[ condition ] || command; #如果condition为假则执行co...原创 2019-01-22 23:25:37 · 154 阅读 · 0 评论 -
Linux cat命令
cat可以从文件中和stdin中读取,从stdin中读取:[student@myhost ~]$ echo hhh | cathhh拼接stdin和文件中的内容:[student@myhost ~]$ echo hhh | cat - ahhhA line in file.压缩文件中的空白行(多个空白行改为一个):[student@myhost ~]$ cat aline1...原创 2019-01-22 23:36:54 · 176 阅读 · 0 评论 -
Linux userdel
userdel可以删除linux操作系统用户,但会保留用户家目录和邮件,如果以后注册的用户UID和删除的用户相同,就会出现新用户可以访问已删除用户家目录内容的情况,不利于隐私保护,可以使用-r选项删除用户以及用户家目录和用户邮件:userdel -r若想删除的用户正在登录状态,可以使用-f选项强制删除用户:userdel -f...原创 2019-03-09 17:26:28 · 410 阅读 · 0 评论 -
Linux查看用户UID和所属组
使用以下命令查看:id 用户名原创 2019-03-09 17:58:02 · 3146 阅读 · 0 评论 -
Linux查看操作系统版本
uname -a原创 2019-03-09 18:27:34 · 1927 阅读 · 0 评论 -
Linux查看文件大小
du -sh 文件/文件夹文件/文件夹可以省略,省略代表当前文件夹。原创 2019-03-10 13:24:27 · 173 阅读 · 0 评论 -
Linux管道
用子Shell的方式读取管道相连的命令的输出:[student@myhost ~]$ a=$(ls | cat -n)[student@myhost ~]$ echo $a1 4 2 5 3 a 4 aout 5 b用反引用方式读取管道相连的命令的输出:[student@myhost ~]$ b=`ls | cat -n`[student@myhost ~]$ echo $b1 4...原创 2019-01-21 23:04:55 · 97 阅读 · 0 评论 -
shell函数
定义与调用函数:[student@myhost ~]$ function a(){ echo a function; }[student@myhost ~]$ aa function[student@myhost ~]$ b(){ echo a function; }[student@myhost ~]$ ba function参数传递:[student@myhost ~]$ ...原创 2019-01-20 21:52:10 · 1172 阅读 · 0 评论 -
Linux脚本调试
输出脚本运行每行的命令及状态:bash -x 脚本名或在脚本开头加上:#!/bin/bash -x仅对脚本中部分内容调试:...set -x...ser +x...$bash 脚本名运行脚本前先打印脚本:bash -v 脚本名或在脚本开头加上:#!/bin/bash -v...原创 2019-01-20 18:27:02 · 768 阅读 · 0 评论 -
Linux创建交换空间(虚拟内存)
首先创建一个分区,使用fdisk或gdisk创建指定大小的分区,创建方法参考:https://blog.csdn.net/tus00000/article/details/82918013在创建分区时,分区类型选择Linux Swap。之后使用以下命令格式化分区:sudo mkswap /dev/设备名之后使用以下命令激活交换空间:sudo swapon //激活交换空间fre...原创 2018-10-02 13:53:04 · 1305 阅读 · 0 评论 -
Linux逻辑卷管理(LVM)
一、逻辑卷(LV)、卷组(VG)、物理卷(PV)关系逻辑卷(LV)是卷组(VG)的一部分,可以在卷组大小内动态增加,每个卷组可分为多个逻辑卷。卷组由多个物理卷(PV)组成。每个物理卷是一个块设备(磁盘分区等)。二、LVM存储1.准备物理设备可以是磁盘分区,也可以是整个磁盘、RAID阵列或SAN磁盘。磁盘分区参考链接:https://blog.csdn.net/tus00000/art...原创 2018-10-03 19:03:23 · 232 阅读 · 0 评论 -
Linux crontab
命令:crontab -e = crontab 编写后按ctrl-d相关文件:/etc/cron.deny 该文件中所列用户不允许使用crontab命令/etc/cron.allow 该文件中所列用户允许使用crontab命令/var/spool/cron/ 所有用户crontab文件存放的目录,以用户...原创 2018-09-28 21:10:27 · 656 阅读 · 0 评论 -
Linux find命令查找某个文件
find 目录 -name 文件名但在查找过程中可能出出现无权限访问的情况,这种情况较多时也无法找到目标文件,可使用以下方法将错误去掉:find 目录 -name 文件名 2>/dev/null查找某个用户的文件:find 目录 -user 用户名以上文件名可用正则表达式代替。...原创 2018-10-10 19:29:17 · 1552 阅读 · 0 评论 -
Linux vim操作
匹配特定字符串,命令模式下:/字符串匹配完后按n匹配下一处,N匹配上一处。跳到某行,命令模式下:数字 gg数字 G原创 2018-10-10 19:39:23 · 112 阅读 · 0 评论 -
Linux 提示符
$表示普通用户,#表示root用户。原创 2019-01-17 21:24:32 · 1996 阅读 · 0 评论 -
Shell脚本运行方式
Shell脚本通常以#!(shabang)起始,后跟Shell解释器路径:#!/bin/bash两种运行脚本文件的方式:$bash 文件名 #文件位于当前目录下,此种方式不用shabang$./文件名 或 $完整路径 #./代表当前目录,脚本必须有可执行权限,并且需要shabang...原创 2019-01-17 21:43:19 · 513 阅读 · 0 评论 -
Linux终端打印
[student@myhost ~]$ echo h h hh h h[student@myhost ~]$ echo "h h h"h h h[student@myhost ~]$ echo 'h h h'h h h我们可以看到echo命令执行完后自带一个换行符并且双引号引起来仅打印出引号里的内容。如果不想echo换行,用-n选项。[student@myhost ~]$ ech...原创 2019-01-17 22:22:36 · 461 阅读 · 0 评论 -
Linux环境变量
$env #查看所有与终端相关的环境变量$cat /proc/$PID/environ #查看所有进程运行时的相关变量PID可以通过pgrep获得:$pgrep gedit #获得进程gedit的进程号得到的结果以null(\0)分隔,如果想一行一条:$cat /proc/$PID/environ | tr '\0' '\n'变量赋值:[student@m...原创 2019-01-17 22:58:43 · 169 阅读 · 0 评论 -
Linux录制并回放终端会话
当我们要进行屏幕录制时,经常选择视频方式,但这种方式产生的视频文件很大,可以用script命令录制终端会话,记录命令和时序以及命令结果,这样大小通常只有几KB,exit可以退出录制:[student@myhost ~]$ script -t 2> timing.log -a output.sessionScript started, file is output.session[st...原创 2019-01-23 23:15:01 · 319 阅读 · 0 评论 -
Linux文件查找find
列出文件夹下所有内容(包括目录、文件和子目录中内容,深度优先遍历):find 文件夹名以上方法打印出来文件是以换行符分隔,可以连着打印而不分隔,当文件名中有换行符时用:find 文件夹名 -print0根据名字查找文件:find 目录名 -name &amp;quot;文件名&amp;quot;以上命令中目录名为要搜索的目录,文件名可以用通配符搜索,如果要同时搜索多个文件名,可以用&amp;quot;\( -name 文件名原创 2019-01-23 23:41:16 · 131 阅读 · 0 评论 -
Linux算术运算
let方法:[student@myhost ~]$ a=1[student@myhost ~]$ b=3[student@myhost ~]$ let c=a+b #c前不用加$[student@myhost ~]$ echo $c4[student@myhost ~]$ let a++[student@myhost ~]$ echo $a2[student@my...原创 2019-01-19 20:32:35 · 616 阅读 · 0 评论 -
Linux文件描述符和重定向
文件描述符:0:stdin(标准输入)1:stdout(标准输出)2:stderr(标准错误)成功和不成功的命令:[student@myhost ~]$ ls +ls: cannot access +: No such file or directory[student@myhost ~]$ echo $? #命令出错,$?返回非零错误值2[student@myhos...原创 2019-01-19 22:53:47 · 250 阅读 · 0 评论 -
Linux数组
创建并输出数组:[student@myhost ~]$ a=(1 2 3)[student@myhost ~]$ echo ${a[0]}1[student@myhost ~]$ echo $a #直接打印数组名为第一个元素值1[student@myhost ~]$ echo ${a[*]}1 2 3[student@myhost ~]$ echo ${a...原创 2019-01-19 23:26:21 · 521 阅读 · 0 评论 -
Linux别名
使用别名:[student@myhost ~]$ alias finda="find . -name a"[student@myhost ~]$ finda./aalias只是暂时的,如想永久保持只需在.bashrc中加入:alias finda="find . -name a"取消别名:[student@myhost ~]$ unalias finda或[student@m...原创 2019-01-19 23:34:28 · 155 阅读 · 0 评论 -
Linux终端信息
获取终端能显示的行数和列数:[student@myhost ~]$ tput cols140[student@myhost ~]$ tput lines35获取终端名:[student@myhost ~]$ tput longnamexterm with 256 colors[student@myhost ~]$ 将光标移动到指定位置:[student@myhost ~]$ ...原创 2019-01-20 16:51:33 · 284 阅读 · 0 评论 -
Linux日期时间相关
类Unix系统中时间以一个整数表示,代表含义为1970年1月1日0时0分0秒到现在所经过的秒数。这种计时方式成为纪元时或Unix时间。读取日期:[student@myhost ~]$ dateSun Jan 20 16:57:49 CST 2019打印纪元时:[student@myhost ~]$ date +%s1547974729[student@myhost ~]$ dat...原创 2019-01-20 18:06:26 · 138 阅读 · 0 评论 -
Linux添加磁盘后分区及永久挂载
一、两种不同分区方案1.(主启动记录)MBR分区方案:此方案最多支持四个主分区,Linux系统中可以通过扩展分区和逻辑分区最多创建15个分区。最大磁盘和分区大小限制为2TB。2.GUID分区表(GPT)分区方案:由于MBR的最大大小限制,GPT方案正在取代MBR方案进行分区。此方案默认最多支持128个分区。支持最多8ZB(80亿TB)的分区和磁盘。二、分区命令操作1.使用fdisk管理...原创 2018-10-01 23:10:32 · 8439 阅读 · 0 评论