![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OS
文章平均质量分 68
spkettas
天道酬勤
展开
-
docker 使用
docker出现极大的提高了生产力,借助docker可快速搭建测试环境,下面看看docker的用法吧,命令还挺多的一.安装$ yum install -y docker$ service start docker For other actions, please try to use systemctl.# kernel 5.4 用systemd管理安装包$ sy...原创 2019-12-26 20:05:34 · 243 阅读 · 0 评论 -
expect自动登录
expect是一个用来处理交互的命令,可通过expect实现ssh自动登录,ftp自动登录,不需要手动输入密码。 1. scp传输文件#将$SrcFile拷贝至$Host的$Work目录下#spawn 启动新进程expect -c " spawn scp $SrcFile yourname@${Host}:${Work} expect { \"(yes/n...原创 2017-05-24 10:13:08 · 123 阅读 · 0 评论 -
shell value too great for base
执行shell语句: echo $((08-1)) 没有打印7,却显示错误:value too great for base,原因由于进制运算出错。对0x来说,shell会解析成8进制,8明显超出了8进制范围,因此报错。那进制间如何转换呢,可通过下列方式: 1.awkecho "10" | awk '{printf "0x%x\n",$0}' 将10转换成16进制,显示0xa。...原创 2014-12-11 12:36:17 · 257 阅读 · 0 评论 -
mac 搭建QT环境
一直在windows/linux下做QT开发,现在终于有了MAC,迫不及待的试下QT的跨平台性,体验下MAC界面的酷炫。一. 下载QT5 for mac图形化界面,点击下一步。二. 配置环境变量依旧更新~/.bash_profile文件,默认情况下该文件不存在。这与linux基本上一致。vi ~/.bash_profileexport QTDIR=/Us...原创 2016-12-22 22:30:01 · 982 阅读 · 0 评论 -
shell 自动执行sql
系统运维过程中,经常遇到向FTP上传下载数据,向DB读写数据等场景。FTP,SQLPLUS,MYSQL提供的都是交互式命令方式,在shell下也通过管道方式实现自动执行。 1. FTP1.1 -s参数指定文件名vi ftpcmd.txtopen 192.168.5.10myusermypassget 1.txt bye ftp -s:tpcmd.tx...原创 2016-01-06 10:20:15 · 488 阅读 · 0 评论 -
最小helloworld
hello world程序是学每种编程语言的启蒙程序,所谓麻雀虽小,五脏俱全。最近看《程序员的自我修养》最小helloworld程序章节,觉得甚是精彩,特此整理下。 一. 入门级helloworld[root@dev21 elf]# ll tinyhello-rwxr-xr-x 1 root root 4719 Dec 9 14:31 tinyhello[root@d...原创 2016-12-09 17:00:00 · 386 阅读 · 2 评论 -
readline 命令补全
readline是linux下常用的CLI交互式开源库,readline可以实现命令编辑,自动命令补全,历史命令搜索等人性化的交互方式。系统实现了rl_filename_completion_function和rl_username_completion_function自动补全,实现自定义命令的自动补全需要实现rl_attemped_completion_function函数。...原创 2015-10-27 16:48:15 · 1039 阅读 · 1 评论 -
Linux下杀死顽固进程
一. Linux 杀死顽固进程Linux进程状态成 Z(TASK_Zoombie),T(TASK_Stopped or Traced)时,无法用kill -9 杀死。1.一般情况下进程进入僵尸状态时,会被init进程接管,会自动消亡,可不用理会。2.当进程被调试状态时(当运行gdb或strace命令时),会向进程发送一个STOPPED信号,导致进程进入TASK_STOPPED状态。...原创 2015-09-23 22:31:19 · 915 阅读 · 0 评论 -
shell 循环变量作用范围
#!/bin/shtest(){ RetVal=0 cat 1.log | while read line do if[ "$line" == "2" ] then RetVal=1 fi done return $RetVal} 很容易写出上述代码,上述代码返回值始终为0。虽然执行了RetVal=1这条语句,但是一...原创 2015-09-08 08:53:29 · 1435 阅读 · 1 评论 -
TCP segment of a reassembled PDU
windows下wireshark抓包经常会出现"TCP segment of a reassembled PDU"提示: 可通过wireshark的 Edit --> Preferences --> Protocols/TCP --> Allow subdissector to reassemble TCP streams 取消勾选该选项可消除提示: ...原创 2017-06-07 10:30:42 · 1582 阅读 · 0 评论 -
虚拟机centos忘记root密码
虚拟机一段时间不用,很容易忘记root密码,幸好还可以找回。开机进入单用户模式进行修复,直接修改密码即可。 1. 开机出现如下显示,按"e"进入grub 2. 选择 kernel 行,按"e"进入参数编辑 3. 输入" 1" 4. 按"b"启动系统 ...原创 2016-03-31 16:10:08 · 263 阅读 · 0 评论 -
Linux 网络调优
Linux内核目录/proc/sys/net 提供了很多网络协议栈配置参数,可控制网络协议栈行为,达到调优目的。一. 基础命令sysctl -a 显示内核参数sysctl -w net.core.somaxconn=32768echo 32768 > /proc/sys/net/core/somaxconnvi /etc/sysctl.conf...原创 2018-04-07 21:49:20 · 591 阅读 · 0 评论 -
Linux 系统调用
1. 说明系统调用(System Call)是操作系统为在用户态运行的进程与硬件设备(如CPU、磁盘、打印机等)进行交互提供的一组接口。当用户进程需要发生系统调用时,CPU 通过软中断陷入内核执行中断处理函数。2. 内嵌汇编下面以获取系统当前时间为例,探讨系统调用方式。1. glibc调用int tt = time(NULL);2. syscal...原创 2017-03-13 14:09:04 · 148 阅读 · 0 评论 -
mac gdb SIG113
mac自从升级至Sierra系统后,gdb调试程序后出错: During startup program terminated with signal SIG113, Real-time event 113 网上方案:升级gdb,修改gdb配置:brew upgrade gdbcat "set startup-with-shell off" > ~/.gdb...原创 2017-12-09 11:22:15 · 173 阅读 · 0 评论 -
Linux 恢复删除文件
Linux下的rm命令太可怕了,一不小心 rm -rf / 那就悲剧了,请慎用rm -rf。如果一不小心删除重要文件,后续不对该路径文件操作,可以通过相关命令找回被删文件。原理主要是删除的文件并没有实际上从硬盘上抹去,只是inode索引删除了相关的信息(单链表节点删除实现),因此只要找到刚删除文件的block上,就可以恢复已经删除的文件。 一. 查看分区 d...原创 2017-07-25 15:13:14 · 485 阅读 · 0 评论 -
Lua与C相互调用
Lua 提供了强大的API用于与C间的交互,两者值间的传递通过虚拟堆栈来实现。 一. 实现Lua解释器 /** * Lua 解释器 */ int main( int argc, char **argv ){ // 初始化解释器 lua_State *pl = luaL_newstate(); // 加载基础库,包括io,os,math等 lu...原创 2017-06-20 11:26:24 · 109 阅读 · 0 评论 -
扩展Lua接口
Lua 是巴西研究小组开发的一个灵活小巧的脚本语言,整个编译后的静态库才400多K,便于嵌入应用程序中,扩展程序功能。常用于游戏开发中,nginx的openresty项目也让lua更加流行。Lua语法与python比较类似,支持自动垃圾回收,面向对象编程。 一. 扩展lua接口lua没有提供sleep()和msleep()实现,我们可以提供动态库给lua调用,代码如下:...原创 2017-06-20 11:16:05 · 450 阅读 · 0 评论 -
VS2012 开发驱动
VS12下开发wdk驱动,比较繁琐,要设置很多选项。本文在 win8 + visual studio2012 + wdk7600 下测试通过。 一. 项目属性配置常规 目标文件扩展名:.sys // 必选 VC++目录 包含目录 C:\WinDDK\7600.16385.1\inc\wdf\kmdf\1.9 inc\ddk inc...原创 2016-04-01 11:03:15 · 544 阅读 · 0 评论 -
shell 判断字符串包含关系
#!/bin/shstr="shenzhen_iprad_201509.log"pat="iprad"#方法一,grep。如包含,返回值为0echo $str | grep -q $patecho $? #方法二,expr。如包含,显示匹配长度expr match "$str" ".*${pat}.*"#方法三,替换后再判断源串#清空子串...原创 2015-09-07 16:53:55 · 350 阅读 · 0 评论 -
crontab 环境变量
最近执行定时上传文件时,发现总时上传失败。定时任务 0 2 * * * sh /home/smart_push/ftp_upload_log/uploadlog.sh 1 >/dev/null 2>&1,手动执行很正常。查看日志也正常。一筹莫展之时,输入mail命令,发现显示 lzop: command not found。手动可以执行,说明环境变量配置正确,同时表明cr...原创 2015-08-06 15:00:44 · 295 阅读 · 0 评论 -
XShell同时操作多个终端
经常遇到部署程序到多台linux服务器上,一台台的部署岂不是很麻烦。要是能只敲一次命令,能自动发送到所有终端上该多好。没想到还真有这样的功能。 SecureCRT设置:菜单栏 查看 -- 交互窗口,勾选后弹出一个窗口。直接输入命令,回车即可看到每个tab执行结果。 XShell4设置:SecureCRT界面比较难看,幸好XShell也有这样的功能。菜单栏 View -...原创 2015-08-06 14:39:01 · 4987 阅读 · 0 评论 -
Linux32 or 64
linux32位系统跟64系统有很大的差别,32位的程序不一定能上64上运行, 经常会出些莫名其妙的错误 一. /java: cannot execute binary file 在redhat 32位系统上安装sybase, 总是报上述错误,导致无法启动程序向导而安装失败.出现这个问题,一般是操作系统位数不对应. Sybase只提供了linux64位...原创 2013-11-07 16:17:30 · 115 阅读 · 0 评论 -
CentOS6.4 编译安装QT4.3
前面已经安装了CentOS, 现在开始编译QT4.3, 到目前为止,此操作系统没有安装常用软件, 缺少很多的类库,且看安装如何进行 一. 更新yum源 系统默认yum源非常缓慢,为了让系统使用速度更快的yum更新源,现更换成163的yum源. 1. 下载repo文件 wget http://mirrors.163.com/.help/Cen...原创 2013-11-07 14:57:18 · 142 阅读 · 0 评论 -
vmware10 安装centos6.4
CentOS 是Redhat的免费发行版,完全可以当作RedHat来使用,在CentOS官方网站下载最新的CentOS6.4, CentOS有LiveCD,LiveDVD,BinDVD三个不同版本. BinDVD版——就是普通安装版,需安装到计算机硬盘才能用,bin一般都比较大,而且包含大量的常用软件,安装时无需再在线下载(大部分情况)。太大了,不用考虑(7G). ...原创 2013-11-07 13:11:54 · 142 阅读 · 0 评论 -
liux下查询用户和用户组
1. groups 显示当前用户所在的组 2. cat /etc/group|grep root root:x:0:root 注: 组名:用户组:密码段:GID:用户列表(用逗号分隔) group_name:x:1000: 注: 说明group_name组只有一个用户,且为同名用户(即为group_name) 3. cat /etc/passwd 查看用户列表...原创 2012-08-07 13:06:46 · 114 阅读 · 0 评论 -
SecureCRT连接不上CentOS虚拟机
在VM上安装CentOS6.2后,用SecureCRT去连接,发现无法连接,但是可以ping通,网络没问题 1. 检测ssh服务有没有开启 ssh 127.0.0.1,发现无法连接上.重启服务一切OK 重启服务: /etc/init.d/sshd restart 2. ssh服务开机启动 ...原创 2012-08-07 11:19:42 · 749 阅读 · 0 评论 -
vm8.0下安装mac
以下教程,本人亲测, 一切正常: 查看教程 安装过程中遇到的问题: 1. 系统提示只需要等候17分钟,结果一等就是3个多小时啊 在这个大 X 画面,我至少遇到 3 处像是假死奇慢无比的位置 1 大X中间偏左点的地方.过了这里之后 2 在进入大 X 右下角那条腿内部偏右的位置.大概屏幕上显示剩余时间为4分钟的位置.这里也是整个安装过程中最最...原创 2012-08-01 10:30:35 · 116 阅读 · 0 评论 -
win7用户目录多了一个Administrator.xxx
Ghost安装64位的win7后,发现c:/users有两个目录,一个是Administrator, 一个Administrator.UCRWXDW7RTD。不管它先,但是启动命令行发现使用的目录是:C:\Users\Administrator.UCRWXDW7RTD, 这个目录才是真正的工作目录,而且该目录无法重命名删除操作,看着十分不爽,得想办法改成Administrator目录...原创 2013-03-26 22:18:39 · 911 阅读 · 0 评论 -
linux 下安装gcc
利用yum软件包安装gcc yum install gcc yum install gcc-c++原创 2012-07-16 17:44:20 · 100 阅读 · 0 评论 -
Pear OS
Pear OS8 正式版终于发布了, 附上vm10安装截图,真不错,有点MAC的意思原创 2013-11-19 15:03:00 · 195 阅读 · 0 评论 -
Linux 下获取进程PID
Linux查询pid有多种方式,可通过遍历/proc目录下进程运行信息及shell ps命令 1. 遍历/proc目录 Linux下每个运行的进程都会在/proc目录下建立该进程pid目录,/proc/pid 目录下有 status, cmdline等描述进程运行参数,状态等信息. 运行可能没有命令行参数,cmdline文件可能为空. 我们选择 status 文件...原创 2014-05-08 11:42:03 · 2142 阅读 · 0 评论 -
shell 实现tcp/udp通信
Linux下通信调试非常方便,系统提供了大量的网络调试工具,如 tcpdump,nc,lsof,netstat 可以快速调试tcp,udp服务。看到一篇文章shell 不借助上述工具,通过重定向也可实现通信,太神奇了。 Linux 下特殊文件,/dev/[tcp|udp/host/port , 只要读取该文件,系统会建立与host:port的socket连接,达到通信...原创 2014-10-11 10:18:51 · 2897 阅读 · 0 评论 -
keepalived 使用
keepalived 一般用于实现双机热备,两台服务器提供服务,当其中一台挂掉后,平滑切换到另一个服务上。对外提供一个虚拟IP。 环境准备:主机: 192.168.5.154 --- nginx负载均衡 --- tomcat 集群备机: 192.168.5.158 --- nginx负载均衡 --- tomcat 集群vip: 192.168.5.99...原创 2015-06-29 10:17:42 · 311 阅读 · 0 评论 -
ping unknown host www.baidu.com
1. unknown hostCentOS6.5 下ping百度域名时,ping不通,也无法上网了。 出现 unknown host( 无法识别的主机),原因可能是DNS未配置正常。ping谷歌公共DNS(8.8.8.8)发现也ping不通,查看/etc/sysconfig/network-scripts/ifcfg-eth0,发现没配置网关,添加 GATEWAY=192.168.1....原创 2014-09-19 23:46:45 · 149 阅读 · 0 评论 -
ifconfig 没有eth0
CentOS6.5上因为安装PF_RING,卸载了系统的libpcap,导致卸载了一系列的软件,终于没了eth0ifconfig -a能显示eth0,网上大多说是系统没安装网卡驱动,明显不是。查看/etc/sysconfig/network-scripts下只有ifcfg-lo,没有发现ifcfg-eth0解决方案:vi /etc/sysconfig/network-script...原创 2014-09-19 23:14:59 · 200 阅读 · 0 评论 -
CPU Affinity
CPU亲和性是linux 2.6后出现的新功能,在多核环境下,能将进程或线程绑定到指定的CPU上,减少多进程或线程切换引起处理器的频繁迁移带来的性能损耗。DPDK是Intel提供的高性能网络包采集库,能支持千兆万兆网卡数据采集,原因是其实现用到了CPU affinity,大内存管理,环形缓冲区等技术。将采集线程绑定不同的CPU上,避免线程在不同核上的切换,提高采集效率。 一. 测试...原创 2015-03-15 11:31:17 · 212 阅读 · 0 评论 -
WinPE 安装系统
一. 系统蓝屏: STOP: 0X0000007B 用一键U盘装系统等软件制作系统启动盘,BIOS设置U盘启动后,启动U盘中的WinPE环境,加载xp.gho开始安装XP,发现出现上述蓝屏代码. 出现蓝屏的问题是因为硬盘模式不兼容,XP只能在工作在硬盘的IDE模式下, BIOS下将STAT MODE从ACHI切换成ATA即可. 新买的电脑装XP未免有点浪费,不能发...原创 2013-09-28 15:07:46 · 200 阅读 · 0 评论 -
Linux 终端控制符
最近看redis源码,redis-cli源码中出现很多奇怪的字符串如"\x1b[0K",谷歌发现这是Linux终端特殊控制符,可以控制终端的显示效果,如清屏,前景背景色设置,字体设置等。可通过命令:man console_codes 查看详细文档。\x1b 表示16进制码1b,1b对应ascii码是ESC,参见ANSI标准,前缀1B赋予序列新含义。[是一个CSI(C...原创 2015-01-14 15:52:26 · 2583 阅读 · 0 评论 -
shell 操作字符串
url="http://www.google.com/test.htm"${url#word} 最小限度从左边截取word${url##word} 最大限度从左边截取word${url%word} 最小限度从右边截取word${url%%word} 最大限度从右边截取word示例:1.#号截取${url#*/} #左边搜索,删除第一次出现/前面所有内...原创 2014-12-23 16:53:16 · 238 阅读 · 0 评论 -
CentOS6.2 下安装中文语言包
用vm8新安装centOS6.2后, 一路next到最后, 出现英文的桌面界面,然后去prefence找language, 发现新版本里面没有这个语言选项了. 解决方法: 1. 打开菜单 Administrator / Add or remove software,安装chinese中文包. 安装完成之后, 重启发现依然是英文. 2. 那只有打开i18...原创 2012-07-16 16:48:36 · 290 阅读 · 0 评论