十一 16

Linux CentOS6.5中更新为glibc2.14版本

注意:可能是个人水平问题,最后系统还是让我给弄挂了,我这是在虚拟机中的系统,挂了无大碍,只是一直没有找到正确的方法,有些愁苦,就这么地吧,以后再说了。下面只是自己当时的一些记录,仅供参考。

CentOS6.5(x86_64)中安装Perl时出错,提示内容是:perl/bin/perl: /lib64/libc.so.6: version `GLIBC_2.14′ not found (required by perl/bin/perl)

果然是没有2.14啊。

最新版本的Perl运行要求glibc最低版本是2.14的,所以准备安装glibc2.14,先了解一下glibc是干什么的?

glibc是gnu发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现…总的来说,不说运行在linux上的一些应用,或者你之前部署过的产品,就是很多linux的基本命令,比如cp, rm, ll之类,都得依赖于它。

有点冒汗,所以,不要装过高的版本,本身安装glibc就是有风险的,够用就行,那就装glibc2.14。 Continue reading

十一 16

新装CentOS系统,使用yum命令时报错

新装CentOS系统,使用yum命令时报错

解决方法:

打开文件后,在最末尾另起一行,加入如下内容,保存文件即可。

完成。测试>>

 

十一 13

WebStorm中错误提示:Unresolved function or method require()解决办法

Nodejs项目开发,使用WebStorm工具时,require()函数提示错误:Unresolved function or method require(),完美解决方案。

英文版WebStorm:

File >> Settings >> Languages & Frameworks >> JavaScript >> Libraries >> Download

点击“Download”后等待一小会,在列表中查找“requeuirejs”,点击高亮后,再点击对话框下的“Download and Install”,确定,确定,完成。

中文版WebStorm:

文件 >> 设置 >> 语言和框架 >> JavaScript >> Libraries >> Download

点击“Download”后等待一小会,在列表中查找“requeuirejs”,点击高亮后,再点击圣诞框下的“Download and Install”,确定,确定,完成。

十一 12

安装Nodejs+Express+socket.io方法

一、安装 Nodejs

官网 https://nodejs.org/
dist https://nodejs.org/dist/
进入dist查找版本号文件夹(如:v8.9.1/),进入后,此版本所有系统的下载安装包都在里面:
32位系统(x86),64位系统(x64)
windows系统下安装Nodejs(下载.msi后缀文件),一直点Next,设置一下安装目录就行了,过程省略。
Linux系统(CentOS6.5)下安装Nodejs,到官网按系统去复制下载地址或到dist目录下对应的版本文件夹下载.tar.xz后缀文件。

准备命令 gcc make gcc-c++ openssl-devel wget都是一会需要的,也可以略过此步,因为一般都会自带的,可以等需要的时候再安装

查看自带nodejs版本

输出 v6.10.3
查看系统32位/64位(32-bit/64-bit),我的是64位的,一会要下载64位的包

输出 /sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
创建一个下载文件夹

进入文件夹

下载(稍稍漫长的等待,三五分钟)

解压.xz得到.tar文件,再解压.tar即可

查看文件夹下所有文件

输出 CHANGELOG.md LICENSE README.md bin include lib share
这是源码包,不需要编译安装了,直接放到/usr/local下设置好环境变量就可使用
创建目录node并移动源码包 Continue reading

十一 10

Python print输出带颜色文字信息

Python项目开发时,查看各种测试信息时,为了更加醒目的显示输出内容,那就让它色起来吧。

 

 

十一 08

.bat文件操作命令

先晒个代码吧,脚本的意思是为了有选择性的在本地的指定位置为客户建立信息文件、文件夹,之后再自动打开的一套小流程。下面的代码还是有些看头的。

@echo off  ###关闭 echo 输出 ON 为开启

set /p input=请输入字符串:

echo 您输入的字符串是:%input% Continue reading

十一 08

Linux命令收集与概述

  1. linux CPU大小
    cat /proc/cpuinfo |grep “model name” && cat /proc/cpuinfo |grep “physical id”
    说明:Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. flags 如果有 ht 说明支持超线程技术 判断物理CPU的个数可以查看physical id 的值
  2. cat /proc/meminfo |grep MemTotal # 内存大小
  3. fdisk -l |grep Disk # 硬盘大小
  4. uname -a # 查看内核/操作系统/CPU信息的linux系统信息命令
  5. head -n 1 /etc/issue # 查看操作系统版本,是数字1不是字母L
  6. cat /proc/cpuinfo # 查看CPU信息的linux系统信息命令
  7. hostname # 查看计算机名的linux系统信息命令
  8. lspci -tv # 列出所有PCI设备
  9. lsusb -tv # 列出所有USB设备的linux系统信息命令
  10. lsmod # 列出加载的内核模块
  11. env # 查看环境变量资源
  12. free -m # 查看内存使用量和交换区使用量
  13. df -h # 查看各分区使用情况
  14. du -sh # 查看指定目录的大小
  15. grep MemTotal /proc/meminfo # 查看内存总量
  16. grep MemFree /proc/meminfo # 查看空闲内存量
  17. uptime # 查看系统运行时间、用户数、负载
  18. cat /proc/loadavg # 查看系统负载磁盘和分区
  19. mount | column -t # 查看挂接的分区状态
  20. fdisk -l # 查看所有分区
  21. swapon -s # 查看所有交换分区
  22. hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
  23. dmesg | grep IDE # 查看启动时IDE设备检测状况网络
  24. ifconfig # 查看所有网络接口的属性
  25. iptables -L # 查看防火墙设置
  26. route -n # 查看路由表
  27. netstat -lntp # 查看所有监听端口
  28. netstat -antp # 查看所有已经建立的连接
  29. netstat -s # 查看网络统计信息进程
  30. ps -ef # 查看所有进程
  31. top # 实时显示进程状态用户
  32. w # 查看活动用户
  33. id # 查看指定用户信息
  34. last # 查看用户登录日志
  35. cut -d: -f1 /etc/passwd # 查看系统所有用户
  36. cut -d: -f1 /etc/group # 查看系统所有组
  37. crontab -l # 查看当前用户的计划任务服务
  38. chkconfig –list # 列出所有系统服务
  39. chkconfig –list | grep on # 列出所有启动的系统服务程序
  40. rpm -qa # 查看所有安装的软件包
  41. cat /proc/cpuinfo # 查看CPU相关参数的linux系统命令
  42. cat /proc/partitions # 查看linux硬盘和分区信息的系统信息命令
  43. cat /proc/meminfo :查看linux系统内存信息的linux系统命令
  44. cat /proc/version # 查看版本,类似uname -r
  45. cat /proc/ioports # 查看设备io端口
  46. cat /proc/interrupts # 查看中断
  47. cat /proc/pci # 查看pci设备的信息
  48. cat /proc/swaps # 查看所有swap分区的信息
  49. uname 显示版本信息(同win2K的 ver)
  50. dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir)
  51. pwd 查询当前所在的目录位置
  52. cd cd ..回到上一层目录,注意cd 与..之间有空格。cd /返回到根目录。
  53. cat 文件名 查看文件内容
  54. cat >abc.txt 往abc.txt文件中写上内容。
  55. more 文件名 以一页一页的方式显示一个文本文件。
  56. cp 复制文件
  57. mv 移动文件
  58. rm 文件名 删除文件,rm -rf 目录名删除目录及子目录
  59. mkdir 目录名 建立目录
  60. rmdir 删除子目录,目录内没有文档。
  61. chmod 设定档案或目录的存取权限
  62. grep 在档案中查找字符串
  63. diff 档案文件比较
  64. find 档案搜寻
  65. date 现在的日期、时间
  66. who 查询目前和你使用同一台机器的人以及Login时间地点
  67. w 查询目前上机者的详细资料
  68. whoami 查看自己的帐号名称
  69. groups 查看某人的Group
  70. passwd 更改密码
  71. history 查看自己下过的命令
  72. ps 显示进程状态
  73. kill 停止某进程
  74. gcc 黑客通常用它来编译C语言写的文件
  75. su 权限转换为指定使用者
  76. telnet IP telnet连接对方主机(同win2K),当出现bash$时就说明连接成功。
  77. ftp ftp连接上某服务器(同win2K)
十一 06

Python MySQL使用持久连接

python连接mysql中没有长连接的概念,但我们可以利用mysql的ping机制,来实现长连接功能~
思路:
1 python mysql 的cping 函数会校验连接的可用性,如果连接不可用将会产生异常
2 利用这一特性,构造一个连接丢失的循环,不断尝试连接数据库,直到连接恢复
3 使用这样的机制不需要关闭数据库功能,对于驻留进程,有大量数据进行写操作时,很有用途

 

十一 06

python MySQLdb中cursor操作数据库

python 操作数据库,要安装一个Python和MySQLdb,这样就可以进行数据库操作了。

操作步骤如下:

1、建立数据库连接

import MySQLdb
conn=MySQLdb.connect(host=”localhost”,user=”root”,passwd=”sa”,db=”mytable”)
cursor=conn.cursor()

2、执行数据库操作

n=cursor.execute(sql,param)
我们要使用连接对象获得一个cursor对象,接下来,我们会使用cursor提供的方法来进行工作.
这些方法包括两大类:1.执行命令,2.接收返回值

3、cursor用来执行命令的方法:

callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
nextset(self):移动到下一个结果集

4、cursor用来接收返回值的方法:

fetchall(self):接收全部的返回结果行.
fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
fetchone(self):返回一条结果行.
scroll(self, value, mode=’relative’):移动指针到某一行.如果mode=’relative’,则表示从当前所在行移动value条,如果mode=’absolute’,则表示从结果集的第一 行移动value条.

5、下面的代码是一个完整的例子.

需要注意的是(或者说是我感到奇怪的是),在执行完插入或删除或修改操作后,需要调用一下conn.commit()方法进行提交.这样,数据才会真正保 存在数据库中.如果不用commit,那数据就不会保留在数据库中,但是,数据 确实在数据库呆过.因为自动编号进行了累积,而且返回的受影响的行数并不为0.

6、关闭数据库连接

需要分别的关闭指针对象和连接对象.他们有名字相同的方法
cursor.close()
conn.close()

Django操作数据库
django是一个出色的用于python的web框架。django连接有操作数据库的api,使用起来十分简洁。我们在settings.py中配置好所要连接的数据库,然后在modules、view、urls中分别写好业务逻辑

十一 06

命令行运行Python脚本时传入参数的三种方式

如果在运行python脚本时需要传入一些参数,例如gpusbatch_size,可以使用如下三种方式。

这三种格式对应不同的参数解析方式,分别为sys.argvargparsetf.app.run, 前两者是python自带的功能,后者是tensorflow提供的便捷方式。

sys.argv

sys模块是很常用的模块, 它封装了与python解释器相关的数据,例如sys.modules里面有已经加载了的所有模块信息,sys.path里面是PYTHONPATH的内容,而sys.argv则封装了传入的参数数据。
使用sys.argv接收上面第一个命令中包含的参数方式如下:

需要模块:sys
参数个数:len(sys.argv)
脚本名:    sys.argv[0]
参数1:     sys.argv[1]
参数2:     sys.argv[2]

test.py

脚本名:test.py
参数 1 hello
参数 2 world

python中使用命令行选项:
例如我们需要一个convert.py脚本。它的作用是处理一个文件,并将处理后的结果输出到另一个文件中。
要求该脚本满足以下条件:
1.通过-i -o选项来区别参数是输入文件还是输出文件.
>>> python convert.py -i inputfile -o outputfile
2.当不知道convert.py需要哪些参数时,用-h打印出帮助信息
>>> python convert.py -h

getopt函数原形:
getopt.getopt(args, options[, long_options])

convert.py

代码解释:
a) sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。
b) ”hi:o:”: 当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个”:”号。所以”hi:o:”就表示”h”是一个开关选项;”i:”和”o:”则表示后面应该带一个参数。
c) 调用getopt函数。函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串”。

getopt函数的第三个参数[, long_options]为可选的长选项参数,上面例子中的都为短选项(如-i -o)
长选项格式举例:
--version
--file=error.txt

让一个脚本同时支持短选项和长选项
getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="]) Continue reading