
linux shell
jyb_haha
这个作者很懒,什么都没留下…
展开
-
【liunx脚本】文件描述符
我们在编写脚本时,经常要通过内容过滤将输出重定向到文件。当命令输出文本时,这些文本可能是错误信息,也可能是正常的;单从查看输出的文本本身,我们并不能看出是否是是正常输出。不过我们可以用文件描述符来解决这个问题。文件描述符是与一个打开的文件或数据流相关的整数。文件描述符0、1、2是系统预留的。0----stdin(标准输入)1-----stdout(标准输出)2-----st原创 2013-07-21 18:17:09 · 738 阅读 · 0 评论 -
【linux命令】排序、单一与重复
用到的命令: sort&&uniq$sort file1 file2 >sorted.txt或者$sort file1 file2 -o sorted.txt将一组文件的内容排序输出$ cat sortec.txt | uniq>uniq_lines.txt找出已排序文件中不重复的行SORT命令:对数字进行排序:$sort -n file.txt按逆原创 2013-07-21 18:30:02 · 1030 阅读 · 0 评论 -
【linux命令】校检和&&核实
校检和&&核实校检和程序 从文件中生成校检和密钥,来检查一个文件是否完整。校检:$ md5sum filename 565df6g78121......11 filename会生成32位十六进制的数据我们将输出的校检重定向到一个文件,然后用这个文件核实文件的正确性。$ md5sum filename > file_sum.mdfilename: OK原创 2013-07-21 18:29:18 · 680 阅读 · 0 评论 -
【linux命令】tr命令
tr [option] set1 set2将来自stdin的输入字符从set1映射到set2,并输出写入stdout中。若set1长度大于set2,set2会不断重复最后一个字符,知道和set1长度相等。若set1长度小于set2,set2会自动忽略超出长度。 $ echo “HELLO WORLD” | tr ‘A-Z’ ‘a-z’对数字简单的加密解密$echo原创 2013-07-21 18:28:52 · 733 阅读 · 0 评论 -
【linux命令】文件查找
文件查找1.根据文件名或正则表达式匹配搜索$ find /home -name “*.txt” -print #在目录下寻找名字中后缀是.txt的文件。$ find /home -iname “example*” -print #忽略大小写我们还可以用-o来找出符合多重条件的文件;$ find /home \( -name “*.txt” -o -name “*,log” \原创 2013-07-21 18:27:32 · 825 阅读 · 0 评论 -
【linux命令】script&&scriptreplay
录制和回放终端会话例子:开始录制会话:$ script -t 2> timing.log -a output.sessioncommands...exit# 一定要退出,否则要是直接执行命令回放的话,会一直回放命令并不停止。其中有两个文件,一个timing用来储存时序信息;另一个output.session用来储存命令输出。-t 将时序数据导入stderr;2>原创 2013-07-21 18:26:32 · 684 阅读 · 0 评论 -
【linux脚本】比较与测试
if条件:if condition;thencommandselif condition;thencommandselsecommandsfiif和else语句可以嵌套。简化if条件:[ condition ] && action; #如果condition为真,执行action[ condition ] || action ; #如果原创 2013-07-21 18:25:58 · 685 阅读 · 0 评论 -
【linux脚本】bash中的循环
for循环一种可以是 for var in list;docommanddone这里的list可以是string也可以是sequence另一种是:for i in {a..z};docommanddonewhile循环while conditiondocommandsdoneuntil循环x=0until原创 2013-07-21 18:25:26 · 601 阅读 · 0 评论 -
【linux脚本】字符分隔符
例子:#!/bin/bashline=”root:x:0:0:root:/root:/bin/bash”oldIFS=$IFS #保存默认的IFSIFS=”:” #新IFS是:count=0for item in $line;do[ $count -eq 0 ] && user=$item[ $count -eq 6 ] && shell=$itemlet原创 2013-07-21 18:24:54 · 895 阅读 · 0 评论 -
【liunx脚本】read指令
read指令可以从键盘读入n个字符存入某个变量中。read -n number_of_chars variable_name例如:$ read -n 5 var这个时候我们需要从输入5个字符,当输入完第五个后,命令自动结束。当然我们也可以输入到第三个时按回车自行结束。read还有其他的选项read -s var用不回显的方式读取密码read -p “Enter in原创 2013-07-21 18:24:23 · 719 阅读 · 0 评论 -
【linux脚本】读取命令序列输出&&子shell&&父shell
读取命令序列输出&&子shell&&父shell将多个命令或工具结合起来一起输出。一个命令的输出可以当做另一个命令的输入,而这个命令的输出又可以作为另一个的输入。这几个命令通常用通道(pipe)来链接,“|”。例如:$cmd1 | cmd2 | cmd3三个命令组合。cmd1将输出传给cmd2,cmd2的输出又传给了cmd3。例子:$ ls | cat -n > out原创 2013-07-21 18:23:37 · 1579 阅读 · 0 评论 -
【linux脚本】fork炸弹
fork炸弹fork炸弹是一种利用系统调用fork进行拒绝服务攻击。与病毒或蠕虫不同,fork炸弹没有传染性。在类UNIX系统的shell编程下触发fork炸弹的shell脚本代码,总共13个字符(包括空格):(){ :|:& };:其中::()是函数声明;|并用管道将其输出引至:|:表示每次调用函数“:”的时候会生成两份备份;& 调用间脱钩,以使最初的“:”被杀死后为原创 2013-07-21 18:22:46 · 2074 阅读 · 0 评论 -
【linux脚本】函数和参数
如何定义一个参数?function fname(){statements;}或者fname(){statemants;}即可;执行函数:$ fname;#执行函数传递参数:$fname arg1 arg2 ;#传递参数我们可以在函数中使用参数:fname(){echo $1 $2 #打印第一个和第二个参数echo原创 2013-07-21 18:21:04 · 726 阅读 · 0 评论 -
【linux脚本】脚本调试
最简单的方法就是我们可以使用:$ bash -x script.sh来进行脚本调试这一命令能打印所执行的每一行命令以及当前状态。当然,也可以使用 sh -x xxx.sh那么如果我们只是想将脚本某些命令及参数打印输出怎么办?这种情况我们可以使用 set bilud-in 来实现。set -x : 执行时显示参数和命令set +x :禁止调试set -v: 当命令原创 2013-07-21 18:20:20 · 574 阅读 · 0 评论 -
【linux脚本】获取终端信息
获取终端信息:获取终端的行数和列数:$tput clols80$tput lines24打印当前终端名:$tput longnameX11 .......移动光标位置:$tput cup 60 20注意:如果所需定位的位置小于终端所有的行或列那么直接定位到最底行。设置终端背景颜色:$tput setb no (no可以取 1~7)例题:原创 2013-07-21 18:19:43 · 1077 阅读 · 0 评论 -
【linux脚本】使用别名
使用别名:我们每次安装软件时都需要输入 sudo apt-get insrall xxx ,如果我们安装大量软件时需要频繁的运用这个指令,这会变得很麻烦。这时候我们就用到了------别名。$alias install=’sudo apt-get install’以后我们安装软件就可以是有那个命令:$install xxxx注意:alias命令只是暂时的,只要关闭终原创 2013-07-21 18:19:03 · 647 阅读 · 0 评论 -
【linux脚本】数组
数组包括:普通数组和关联数组。Bash中的数组与C/C++中的不一样,BASH中的可以数组元素可以任意修改。赋值:BASH的数组赋值与C/C++中的不一样,BASH赋值:Array = (1 2 3 4 5)注意:小括号, 元素用空格隔开;输出:打印某个值:$ echo ${array[0]}注意:大括号 ,$符号打印全部值:$ echo ${a原创 2013-07-21 18:18:14 · 609 阅读 · 0 评论 -
【linux命令】单行命令利器——xargs
bash黑客都喜欢单行命令——命令间并不用分好链接,而是使用链接操作符进行连接。xrags把从stdin就收到的数据重新格式化。在座位参数提供给其他命令。将多行数据单行输出:$cat example.txt 123456$cat example.txt | xargs1 2 3 4 5 6 将单行数据多行输出$cat example.tx原创 2013-07-21 18:28:24 · 1435 阅读 · 0 评论