- 博客(622)
- 资源 (5)
- 收藏
- 关注
原创 iptables上如何封IP
一、封单个IP1、封锁单个ip:iptables -I INPUT -s IP-j DROP[root@node1 ~]# iptables -I INPUT -s 192.168.1.11 -j DROP[root@node1 ~]# iptables -LChain INPUT (policy ACCEPT)target prot opt source destinationDROP all -- 192.168.1.11 ...
2021-07-26 10:10:16 2845
原创 Python实现反复执行某个命令的简单处理办法
现实中,会需要反复以需要的时间间隔执行某个命令。 这个时候借助time.sleep和sys.argv提供了一种简单的解决办法。import timeimport osimport sysdef main(cmd, inc=60): while True: os.system(cmd) time.sleep(inc)if __name__ =...
2019-03-31 18:52:11 22312 1
原创 sed往指定位置插入变量的小技巧
sed中的常用往后插入的语法,比如往匹配到的行后面添加内容,可以使用-i参数和a参数来往后插入[root@linux ~#] sed -i '/Pattern/ a\String' FileName如果要插入的是个变量,则需要将注意两点:使用双引号来替代单引号 使用反斜杠对\进行转译下面就是个示例。示例文件: 1.txt,要往第四行后面添加字符串var="New Line Her...
2019-03-31 18:05:31 14915 4
原创 Linux要彻底删除某目录下的所有文件的小技巧
我们都知道,要删除某目录下的文件,可以使用[root@linux ~] rm -rf /dir/*但有的时候,上面的命令并不能删除.开头的文件,比如: .swp, .b.log, .a.txt这个时候,就要借助find组合命令来删除了。 先find,再通过管道传给rm命令来删除:[root@linux ~] find /dir -type f | xargs rm -rf {...
2019-03-31 17:30:46 11720
原创 Python中将print中内容定位到文件
当然logging模块完成这种任务,设置消息的级别,根据不同的级别将信息内容定位到文件中。 如果不借助于类似于这种模块,其实print也是可以定位到文件中。 而且Python2和Python3稍微有些差距。Python2的做法>>> logfile = open(r'D:\\1.log', 'a')>>> logtext = '2019-03-31 ...
2019-03-31 10:48:51 2808
原创 Linux从符合条件的所有文件中过滤出某一行
比如说,要找出/var/log目录下所有.log文件中含error的内容的行,并将其合并到一个文件中。这种场景就很实用,也很常见。 这个时候可以使用一个简单的命令完美的完成这个任务。[root@linux ~] find /var/log -name '*.log' | xargs cat | grep -i 'error' > all_error.log1. 先用find命令,找...
2019-03-31 09:48:43 8730 1
原创 Python从列表中找出所有元素索引的几种方法
在列表中使用index方法获取的只是第一个索引,比如想获取列表中的字符'A'>>> lst = ['A', 1, 4, 2, 'A', 3]>>> lst.index('A')0如果想获取所有'A'元素的索引列表,可以借助于下面的方法方法一: 常用方法>>> def get_index1(lst=None, item='...
2019-03-31 09:35:11 67110 3
原创 Python格式化14位时间输出
很多场景中会要求14位时间格式,比如20190331102020,即年月日时分秒拼接在一起的输出。 实现起来也很简单。当前时间的格式:>>> from datetime import datetime>>> fmt = '%Y%m%d%H%M%S'>>> datetime.now().strftime(fmt)'20190330...
2019-03-30 22:26:56 3273 1
原创 Python格式化输出数字字符串在随机选号中的应用
现实中经常碰到这种场景,比如数字字符串列表['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14']上面的数据有两个特点:1. 上面的数字首先是顺序,从1到14递增 2. 每个都两位字符串,不够的话,前面补齐0要生成上面的列表,可用格式化字符串来完成。能想到比较酷的实现...
2019-03-30 22:03:10 709
原创 Shell中如何删除首行和尾行
在Shell脚本中,要删除首行和尾行,可以使用一条命令很好实现>>> sed -n '1!P;N;$q;D' FileName
2019-03-13 21:32:41 6163
原创 Python轻松实现对英文文章单词总数统计
一篇英文文章,要统计其中单词总数。在Python中可以很轻松的实现,假如英文文章为this.txt,里面的内容就是import this这个彩蛋的内容。>>> import thisThe Zen of Python, by Tim PetersBeautiful is better than ugly.Explicit is better than implici...
2019-03-13 21:13:04 13387
原创 Python中按值来获取指定的键
Python字典中的键是唯一的,但不同的键可以对应同样的值,比如说uid,可以是1001。id同样可以是1001。这样的话通过值来获取指定的键,就不止一个!而且也并不太好处理。这里同样提供两种思路来处理。方法一:>>> dct = {'Name': 'Alice', 'Age': 18, 'uid': 1001, 'id': 1001}>>> de...
2019-02-24 20:27:55 5837
原创 Python中按键来获取指定的值
Python中按键来获取值,相对来说要容易些,毕竟只需要dict[key]就可以找到,但里面同样有个问题,如果其中的键不存在的话,会抛出异常,如果不用try...except...等异常处理机制的话,程序就会中断!这里提供两种很安全,很健壮的处理方法。 方式一: dict[key] + 判断>>> dct = {'Name': 'Alice', 'Age': 18, '...
2019-02-24 20:06:01 9046
原创 tr命令在统计英文单词出现频率中的妙用
tr命令我们很清楚,可以删除替换,删除字符串。 在英文中我们要经常会经常统计英文中出现的频率,如果用常规的方法,用设定计算器一个个算比较费事,这个时候使用tr命令,将空格分割替换为换行符,再用tr命令删除掉有的单词后面的点号,逗号,感叹号。先看看要替换的this.txt文件The Zen of Python, by Tim PetersBeautiful is better than u...
2019-02-24 19:42:10 646
原创 用join -a1来合并两个文件
要合并以下两个文件,一起合并在一起,合并到1.txt中# 1.txtJerry 20Alice 30David 40# 2.txtJerry manAlice womanDavid 40合并的后的1.txtJerry 20 manAlice 30 womanDavid 40上面的文件特点是有相同的,则合并,第二列缺少内容的。这个时候使用join -a1 1...
2019-02-22 22:47:52 842
原创 用random.uniform来生成6位的经纬度值
random模块的uniform(x, y)方法,会生成一个介于x,y之间的实数,先来看下该函数的帮助文档 >>> help(random.uniform)Help on method uniform in module random:uniform(a, b) method of random.Random instance Get a random num...
2019-02-22 22:14:19 1544
原创 一次export PATH=/New/Dir的导致的血案
一个同事找我帮他定位,为什么他的LINUX服务器很多的命令都使用不了,提示(command not found),而且更要命的是很多系统服务,脚本都跑不了。问了下,你之前做了些什么操作呢? 他说也做什么操作啊,只不过在/etc/profile文件里面增加了export PATH,又问,你怎么设置的呢? 得到的答案是:[root@localhost ~]# vim /etc/profile ...
2019-02-22 21:38:43 1766
原创 用expect命令实现登录远端服务器执行简单命令的脚本
很多时候,需要用expect命令实现登录远端服务器执行简单命令,诸如:重启服务器,ftp,ls, scp等命令。 里面涉及到输入密码的交互式场景,这个时候expect命令的巨大功效就出来了,下面是一个比较经典脚本实现:#!/usr/bin/tclshpackage require Expectset host_ip1 [lindex $argv 0]set host_usr [li...
2019-02-13 21:36:39 1706
原创 Python去除字符串前后空格的几种方法
其实如果要去除字符串前后的空格很简单,那就是用strip(),简单方便>>> ' A BC '.strip()'A BC'如果不允许用strip()的方法,也是可以用正则匹配的方法来处理。>>> s1 = ' A BC'>>> s2 = 'A BC '>>> s3 = ' A BC '>>
2019-02-13 21:18:48 56253
原创 Python一个字符串生成器
在做测试的测试,经常会碰到字符串的边界值进行测试,这个时候就需要造数据,比如说要生成只含字母或数字的256位任意字符串,如果一个个输入的话耗时,也很不明智。这个时候其实自己可以写个简单的字符串生成器函数来处理类似的需要。下面是简单的字符串生成器函数:>>> def str_generator(n):... import string... import ...
2019-02-13 20:58:45 3826
原创 Python中三元表达式介绍
要介绍Python的三元表达式,可以先看看其他编程语言比如C,JAVA中应用:public class java { public static void main(String[] args){ int x = 100; int y = 101; int MAX = (x > y)? x: y; System.out.println("MAX:" + MAX); ...
2019-02-12 21:54:09 10431
原创 Shell中去除字符串前后空格的方法
经常碰到的场景,需要去除字符串中的前后的空格。在Shell中不像其他语言有strip()来处理,不过也是可以使用诸如awk等命令来处理。 下面是一个简单示例:[root@localhost ~]# echo ' A B C ' | awk '{gsub(/^\s+|\s+$/, "");print}'^\s+ 匹配行首一个或多个空格 \s+$ ...
2019-01-31 21:40:48 44853 2
原创 Here document在回车键的处理技巧
碰到个实际场景: 挂载了几百块盘,需要对这几百块盘进行格式化处理,进行的都是同一个操作fdisk /dev/sdb,然后输入n,然后连续4个回车键,最后执行w(保存)设置操作。 上面的操作,比如获取所有几百块的硬盘符很好获取,并重定向到disk.txt文件中,这个时候借助于Here document来处理,可以很完美完成这个任务。 实际代码很简单# disk.txt/dev/sdab/d...
2019-01-31 21:19:08 450
原创 awk显示指定行到末尾行之间小技巧
使用awk来显示全部行,可以使用print $0来搞定,如果碰到要显示从第二行到第末尾的话,比如要显示/etc/passwd文件中,从第二列到第末尾的所有行,可以[root@localhost ~]# cat /etc/passwd | awk -F: 'print $2, $3, $4, $5, $6, $7'上面的是因为我们知道/etc/passwd就只有7行,可以一行行列出,如果是...
2019-01-27 22:20:02 8843 2
原创 Shell中在每个命令后添加日期的并定向指定文件的方法
有时候,在Shell脚本中,需要每个命令后添加日期的并定向指定文件,这个时候可以使用下面命令:[root@localhost ~] # vim script.sh#!/bin/bash{ pwd | tr '\n' '\t'; date; } > log.txt如果是遍历文件夹,在遍历出的每个文件夹后面添加时间,也可以这样写:#!/bin/bash{ for i i...
2019-01-27 21:51:39 2618
原创 Python中复制文件的两种简单方式
用Python拷贝文件的方式其实有很多,但个人觉得最简单、最直接的可能是这么两种:方法一:借助操作系统中本身的拷贝命令>>> import os>>> os.system("xcopy C:\\1.txt D:")C:\1.txt1 File(s) copied0方法二:借助shutil模块来完成拷贝操作>>> im...
2019-01-22 22:17:33 62578 2
原创 Python字符串通过+和join函数拼接新字符串的性能比较
有一道Python面试题, 以下代码有什么局限性,要如何修改def strTest(num): s = 'Hello' for i in range(num): s += 'x' return s上面的代码其实可以看出:由于变量str是不变对象,每次遍历,Python都会生成新的str对象来存储新的字符串,所以num越大,创建的str对象就越多,内...
2019-01-22 21:49:34 2959
原创 Shell中求字符串中单词的个数的几种方法
方法一:[linux@host ~]# echo 'one two three four five' | wc -w5方法二:[linux@host ~]# echo 'one two three four five' | awk '{print NF}'5方法三:[linux@host ~]# s='one two three four five' [linux@...
2019-01-21 21:19:12 4831 1
原创 Python两个字典键同值相加的几种方法
两个字典A = {'a': 1, 'b': 2, 'c': 3}, B = {'b': 4, 'c': 6, 'd': 8} 要合并这两个字典,键值同则相加。两个字典如果不考虑键相同则相加的话,可以使用d1.update(d2)可以很方便合并,但这样的后面的字典到中的值会覆盖字典d1中的值。>>> A = {'a': 1, 'b': 2}>>> B ...
2019-01-12 22:13:10 31021
原创 两个元祖T1=('a', 'b'), T2=('c', 'd'),使用匿名函数将其转变成[{'a': 'c'}, {'b': 'd'}]
一道Python面试题的几种解答: 两个元祖T1=('a', 'b'), T2=('c', 'd'),请使用匿名函数将其转变成[{'a': 'c'}, {'b': 'd'}]方法一:>>> T1 = ('a', 'b')>>> T2 = ('c', 'd')>>> list(map(lambda x:{x[0]:x[1]}, zi...
2019-01-12 21:33:35 539
原创 一条命令搞懂read命令中的常用参数
我们知道,在Shell中接收传入的参数有两种方式。一种是通过脚本进行参数传递,另外一种是通过read来接收传入的参数。通过脚本来传递参数的简单示例如下:# 通过脚本来传递,这里$0指脚本名,$1为第一个参数,$2为第二个参数[root@host ~]# ./script.sh 1 2Total = 3[root@host ~]# vim script.sh#!/bin/bash...
2019-01-11 21:42:52 1721
原创 Shell批量创建指定文件名脚本
假如要在/mydir目录下创建20个文件,文件格式如下:test_abcde_20190108_01.txt test_bcdef_20190108_02.txt test_booke_20190108_03.txt 第一个都是test开头,第二个是5位随机小数,第三个是年月日,第四个是01这样的有序数,最后是.txt的后缀。创建脚本如下:#!/bin/bashP...
2019-01-09 21:59:28 4451
原创 Linux设置每个进程打开文件数目
每个进程打开文件数目,默认为1024。要设置这个设置,可以临时性修改,或者永久性修改。临时性修改当次有效,再次登录生效。 永久修改是修改配置文件。临时性修改 [root@host ~]# ulimit -n 30665永久性修改[root@host ~]# vim /etc/security/limits.conf* soft nofile 30665* hard nofi...
2019-01-09 21:28:51 1779
原创 用egrep的-P参数来匹配日期
我们知道,sed, grep,awk都支持正则表达式,但支持力度显然没有Perl这样语言强。 有的时候如果对字符串来匹配其中的日期,可能会找不到,这个时候使用-P参数可能会收到很好的效果。比如:10101010222222_a_b_20190108102030_1234.zip这样的文件,前面数字有14位,其中日期也是14位,如果使用\d{14}会匹配出两个,而且grep还不支持\d格式要写成...
2019-01-09 20:47:46 1670
原创 Python小进度条显示代码
有的时候程序需要有进度条显示,比如说安装程序、下载文件等场合。 下面有一段小程序可达到效果 程序代码import timefor i in range(0, 101, 2): time.sleep(0.3) num = i // 2 if i == 100: process = "\r[%3s%%]: |%-50s|\n" % (i, '|' *...
2019-01-05 11:33:10 781
原创 Shell中如何获取文件指定行
比如要获取/etc/passwd文件, 要获取其第6-10行,并显示每行的行号。总结一下,方法有很多,行号的显示可以借助cat -n参数,或者sed =来显示。 小结一下,可以有以下方法来获取。 # 1). -n显示行号,tail -n +6显示第6行之后的行,结合head -n 5,获取前面5行,刚好6-10$ cat -n /etc/passwd | tail -n +6 | head...
2019-01-04 21:22:08 29431
原创 辗转相除法在求最大公约数的一个妙用
题目: 根据用户输入两个整数m, n; Python写代码求他们的最大公约数。先来看下一些基本概念,比如什么是最大公约数,什么是辗转相除法。 最大公约数最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a, b)。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。基本概念几个整数中公有的约数,叫做这...
2019-01-02 21:07:39 768
原创 DELL服务器如何配置RAID
名词解释DG(Disk Group) 磁盘组,这里相当于阵列,例如配置了一个RAID5,就是一个磁盘组 VD(Virtual Disk) 虚拟磁盘,虚拟磁盘可以不使用阵列的全部容量,也就是说一个磁盘组可以分为多个VD PD(Physical Disk) 物理磁盘 HS(Hot Space) 热备 Mgmt: 管理P...
2019-01-01 18:10:28 17128 3
原创 列表中的append,extend,+=,+的区别
先来看列表中的append和extend的帮助文档>>> help(list.append) # 往列表末尾添加对象Help on method_descriptor:append(...) L.append(object) -> None -- append object to end>>> help(list.ex...
2019-01-01 15:48:58 2961
原创 用Python获取本地主机名及IP地址的简单方式
方法一:>>> import socket>>> # 获取主机名>>> hostname = socket.gethostname()>>> hostname'USER-20150331GI'>>>>>> # 获取IP地址>&
2018-12-31 20:09:23 13644
Clean Code-代码整洁之道 中文完整版清晰版
2014-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人