从现在开始摘录一些自己认为常用或者有用的linux命令或者脚本, 可能很简单, 可能写得很戳, 欢迎拍砖, 让彼此进步!
1. 经常要在svn目录下面搜索一些py代码文件里面是否含有某些词语, 例如检查代码里面的TODO的tag, 方便在提交之前做好检查。那么, 可以这样做:
grep -inR 'TODO' . | grep -v .svn | grep -v .pyc | grep -v .swp
进一步可以把这个命令做成一个更简洁的sh脚本, 只需要接受要搜索的词语和要搜索的目录就可以了。然后放到PATH里面。
2. 有时候我们要在ps命令的输出里面查找某些关键字(比如某些进程名), 但是由于ps的输出有很多列, grep完关键字之后并不清楚哪一列对应的列名是什么(比如究竟是USER还是CPU?). 所以我想让列名在grep之后也出现, 就像表头一样。
那么我们可以利用sed来完成, 因为他是按行处理并且支持将参数command按照顺序执行。
思路就是: 用sed先把ps的列名截取出来然后再grep。
ps aux | sed -ne '1p' -e '/wsgi/p' | grep -v sed
写成一个sh脚本的话可以这样:
#!/bin/sh
scriptname=`basename $0`
word=''
if [ $# -eq 1 ]; then
word=$1
elif [ $# -gt 1 ]; then
echo 'not support more than 1 parameter!'
fi
ps aux | sed -ne '1p' -e "/$word/p" | grep -v sed | grep -v $scriptname
3. 在vim里面, 想把文件的某些部分(第N到第M行,或者整个文件)拷贝到另一个文件可以这样做:
:N,M w newfile
如果想append内容到已有文件, 可以这样:
:N, M w >> newfile
如果被改写的文件是root的文件, 而你有sudo的权限的话, 要修改这样的root文件,可以这样:
:N, M w !sudo tee newfile
如果是想append内容到root权限的newfile, 要这样:
:N, M w !sudo tee -a newfile
4. ^foo^bar 这条命令能将上一条命令的第一个foo替换成bar, 这条命令被评为了linux10大最受欢迎命令了,
今天刚好用到,但是我的需求是替换所有的foo而不仅仅是第一个,按道理应该加一个类似正则里面的g参数就可以。
然后man sh, 查找^, 搜到原来这个命令等价于 !!:s/string1/string2/ , !!命令是获取上一条命令, s是替换命令,
就像sed里面一样, 然后manpage里面就找到要所有都替换的话是这样写的: !!:gs/string1/string2
功德圆满阿!不过就这样觉得其实描述这条命令的网页都没有最准确的描述, 应该强调下只是会替换第一个!!有木有!
5. 如果出现“Too many open files in system,connection closed错误”的话, 证明系统的文件句柄用完了。
那么如果查看文件句柄的情况和如何增加这个可用值就成了解决问题的关键了。
1)查看:
cat /proc/sys/fs/file-nr 会输入类似这样的值:
2688 0 65536
2688代表当前正在使用的句柄数; 0代表空闲的文件句柄数 ; 65536代表最大限制的文件句柄数量。
2)增加:
第一步:# vi /etc/sysctl.conf 修改fs.file-max=655360(如果没有fs.file-max=65536这一项的话则新加上)
第二步:# sysctl -p
搞定!
备注:
sysctl - configure kernel parameters at runtime
-p Load in sysctl settings from the file specified or /etc/sysctl.conf if none given.
6. 使用sort实现类似数据库的group by功能
例子(filename: test.txt):
1,5,4
1,5,7
1,2,1
1,4,7
如果要按照前2列来排序group by, 那么可以通过这样的命令:
sort -t, -k1,2 test.txt
-k参数可以指定sort要排序的key是从哪个位置开始和结束, 不过缺点就是只能是一个连续的范围,
对不连续的没用。
如果你还需要在group by之后做统计, 那么用uniq -c 就可以了, 完整命令如下:
sort -t, -k1,2 test.txt | uniq -c
分享到:
相关推荐
“摘要”式认证( Digest authentication)是一个简单的认证机制,最初是为HTTP协议开发的,因而也常叫做HTTP摘要,在RFC2671中描述。其身份验证机制很简单,它采用杂凑式(hash)加密方法,以避免用明文传输用户的...
用户输入需要通过MD5 digest的内容,程序给出digest输出结果
linux下apache页面认证+ssl
ISSCC2019 - Digest.docx ISSCC2019 - Digest.pdf 1 Plenary Session 2 Processors 3 Nyquist Rate ADCs 4 Power Amplifiers 5 Image Sensors 6 Ultra-High-Speed Wireline 7 Machine Learning ...
digest 用户认证 response生成算法.适用于大部分网络安全认证。
一个模拟http 401 Digest认证的登录海康NVR抓取摄像头列表的小demo
digest.php 浏览精华帖的功能 安装后如何调出使用?直接输入地址就可以打开页面,然后搞个自定义导航就好了。
Drawing on years of experience as an embedded Linux consultant and field application engineer, Christopher Hallinan offers solutions for the specific technical issues you're most likely to face, ...
gsoap编译,onvif示例,包含发现设备,获取设备能力,ptz控制,wsse鉴权和digest鉴权。
赠送jar包:t-digest-3.2.jar; 赠送原API文档:t-digest-3.2-javadoc.jar; 赠送源代码:t-digest-3.2-sources.jar; 赠送Maven依赖信息文件:t-digest-3.2.pom; 包含翻译后的API文档:t-digest-3.2-javadoc-API...
SM3国密算法第二部分,SM3DIGEST
t-digest 最新源码分享,t-digest 最新源码分享t-digest 最新源码分享t-digest 最新源码分享t-digest 最新源码分享t-digest 最新源码分享t-digest 最新源码分享t-digest 最新源码分享t-digest 最新源码分享t-digest ...
ISSCC 2012 - Digest .pdf ISSCC 2012 - Digest .doc word较大,打开比较慢
Digest-Perl-MD5
MK-QUERY-DIGEST也是一个用Perl脚本写的转存储日志分析程序。和MYSQLDUMPSLOW一样,也可以相对快速地进行筛选出需要优化的SQL语句,但是MK-QUERY-DIGEST的功能更加强大,可以将日志分析结果写入数据表中,可以很方便...
RFC2617描述了HTTP Digest Authentication,这个是中文版,根据原英文版进行了校正,并重新排版。
CentOS continues to be a popular Linux distribution choice, and setting up your own services is a key skill for anyone maintaining a CentOS network. You will learn how to install CentOS, and manage ...
RF Techniques for Communication and Sensing. 398 Power-Converter Techniques 420 Wireless Connectivity 440 Advanced Biomedical Systems 458 Emerging Memories 476 Computation in Memory for Machine ...
ISSCC 2023 Digest
2008~2011_isscc_Digest.rar