Tag Archives: shell
使用xargs命令实现文件批量重命名
关于xargs的说明,请参考维基百科的说明。 xargs是一条Unix和类Unix操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题 批量重命名的例子如下: 当前文件夹下有3个文件,后缀名都是txt adam@hdn1:~/test$ ls a.txt b.txt hello world.txt 现在想把后缀名txt的文件批量重命名,在原始文件名后增加.bak adam@hdn1:~/test$ ls | xargs -i -t mv {} {}.bak mv a.txt a.txt.bak mv b.txt b.txt.bak mv hello world.txt hello world.txt.bak adam@hdn1:~/test$ ls a.txt.bak b.txt.bak hello world.txt.bak 上面命令中xargs参数的说明: -i 表示使用在xargs中执行命令中,使用{}表示传入的参数 -t 表示将xargs后面执行命令的结果显示到标准输出设备,也就是输出到屏幕 如果刚才的操作还原回去,也就是把文件名中的后缀.bak批量去掉,该怎么处理? 其实也不难,中间增加一次sed命令就可以了。 adam@hdn1:~/test$ ls | sed ‘s/.bak$//g’ | xargs -i -p mv {}.bak [...]
lsof的两个用法
一、查看端口占用情况 adam@hdn1:~$ sudo lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME apache2 1371 root 3u IPv4 11004 0t0 TCP *:http (LISTEN) apache2 1374 www-data 3u IPv4 11004 0t0 TCP *:http (LISTEN) apache2 1375 www-data 3u IPv4 11004 0t0 TCP *:http (LISTEN) apache2 1376 www-data 3u IPv4 11004 0t0 TCP *:http (LISTEN) [...]
Linux一行执行多个命令
主要有三种用法 1、命令之间用分号分隔 所有命令不管对错都会执行一次,下面的例子中第二条命令错误,但第三条命令仍然执行 adam@hnn:~$ echo welcome; echo2 my; echo friend welcome No command ‘echo2′ found, did you mean: Command ‘echo’ from package ‘coreutils’ (main) echo2: command not found friend 2013-05-09,第2个和第三个用法,下面的举例没有什么实际意义,还是鸟哥的书上面的例子比较好 2、命令之间用&&分隔 第一条命令执行成功后,才会执行后续的命令。 如果某条命令执行时发生错误,它后面的命令不会执行。 下面的例子中第二条命令错误,第三条命令不会执行 如果存在~/downloads文件夹,创建index.txt文件 adam@hnn:~$ ls ~/download && touch ~/download/index.txt adam@hnn:~$ ls ~/download/index.txt /home/adam/download/index.txt adam@hnn:~$ echo welcome && echo2 my && echo friend welcome [...]
Linux下du用法总结
一直不理解du的设计方法,为什么默认要显示所有子文件夹的大小,平常不会这么用的啊,搞得每次使用都得加参数 1. 查看当前文件夹总的大小 du -sh 2. 查看第一层文件夹的大小 du -h -d 1 du -h –max-depth=1 3. 查看文件和第一层文件夹大小 du -ah -d 1 4. 最后是最简单的用法,列出所有子文件夹的大小 du 文件大小的单位 -k 按KB显示 -m 按MB显示 -h 按照文件大小,自行确定显示K或M
find命令中mtime时间的计算
内容来自于:鸟哥的私房菜–档案与目录管理 查找一天内修改过的文件: find . -type f -mtime 0 +4代表大于等于5天前的文件:ex> find /var -mtime +4 -4代表小于等于4天內的文件:ex> find /var -mtime -4 4代表4-5那一天的文件:ex> find /var -mtime 4
使用awk进行分类汇总
adam@adam-desktop:~$ cat test.txt round1 peter 100 round1 adam 20 round1 alice 50 round2 peter 20 round2 adam 50 round2 alice 30 round3 peter 20 round3 mike 50 round3 jack 80 adam@adam-desktop:~$ awk ‘{scores[$2]+=$3} END {for (i in scores) print i, scores[i]}’ test.txt peter 140 mike 50 jack 80 adam 70 alice 80
Linux命令:按修改时间和大小查找文件,不包含子文件夹
find . -maxdepth 1 -size +10k -ctime -600 -name “*.txt” 其它可选项 atime:File was last accessed n*24 hours ago atime, ctime后面数字的用法: +n for greater than n, -n for less than n, n for exactly n.
windows命令行使用的小技巧
一、在文件夹的右键,增加“open cmd shell here”的菜单,点击后可以打开命令行窗口,当前目录为开选中的文件夹。 直接导入这个注册表文件就可以了。 在我的电脑上选择这个菜单后当前路径为桌面,在我的文档选择这个菜单后当前路径为我的文档设置的路径。 二、设置环境变量 用SET命令设置的环境变量只对当前窗口生效,所以微软另外给了一个叫SETX的工具,可以设置用户或系统的环境变量,如: setx java_home e:jdk15 -m 三、命令行输入的快捷键,参考这篇文章:http://wjason.javaeye.com/blog/404107 右箭头:如果当前光标处字符空白,重复上一条命令中同一位置的字符,F1键也可以。 CTRL + 左、右箭头:按单词进行光标移动。 F2: 按F2后输入一个字符,在光标处增加上一条命令中当前光标位置和输入字符首次出现位置之间的所有字符。读起来比较拗口,举一个例子: 上一条命令为 setx java_home e:jdk15 -m 当前命令行输入set,加一个空格,按F2,再输入-,命令行字符变为: set java_home e:jdk15 F4: 按F4后输入一个字符,删除当前光标与其之后输入字符首次出现位置之间的字符。如果输入字符为空,则删除到行尾,如: 当前命令行字符为:setx java_home e:jdk15 -m 光标定位到第一个j字母,按F4,在输入j,命令行字符变为: setx jdk15 -m F7: 显示已执行的命令记录,按上下箭头进行选择,回车键执行。输入字符的话,按命令的第一个字母进行匹配选择。 F8: 在命令记录中,按输入顺序的反序,匹配当前已输入的命令行字符,如上面的过程中,输入set后: 第一次按F8, 出现最近一次匹配的命令: setx jdk15 -m 第二次按F8, 出现 setx home e:jdk15 -m 第三次按F8, 出现 [...]