shell的一些一句话东西
- time -p [程序] 可以在运行结束之后打印出所需时间...其他用法可以man time
- rpm -qa 查询redhat linux里面安装的所有软件...ubuntu下面可能不行,不过反正大型机下面又不是ubuntu.分页查看用 rpm -qa|more 然后如果想sort一下并且保存的话就 rpm -qa|sort >softwarelist.txt, 查看xxx软件装没装就用 rpm -qa |grep xxx
- 命令后面加上&即可在后台执行,,,,不妨拿gedit试试..
- ssh -X 连接上远端服务器之后,就可以运行图形界面的程序了.
- sudo su 是用root登陆!
- 文件切割 dd if=待切文件名 of=切后文件名 bs=多少字节作为切割单位 count=要切多少 skip=切割起点
- 文件合并 dd if=待装文件名 of=装后文件名 bs=多少字节作为组装单位 count=要装多少 skip=组装起点(从文件头开始)
- 解决令人发指的E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?的方法是 (确认没有有用的程序正在用lock之后) sudo rm /var/lib/dpkg/lock
- ps -aux 进程们的列表!
- cut可以提取第n列,或者第n个字节,cut -f1 取第一列,cut -b1,2,5取第1,2,5个字节 cut -c3-7 取第3-7个字符,cut -c2-可以提取第二个到最后的字符。后面加上文件名字即可。提取字符串m中的后n个字符串,可用echo ${m: -n},从n开始到k的字符串,用echo ${m: n:k},第k个字符之前的字符串,echo ${m: :k},如果想提取从头到倒数第n个字符(不包括倒数第n个),用echo ${m: :${#m}-n}
shell的for 循环是这样的:
这里echo $X是要循环的部分($X前面的$表明其变量身份)。注意do和done 附近的换行。
- 【awk】想把两列交换怎么办?用awk '{print $2,$1}' filename吧,在管道操作里面可以 ...操作|awk '{print $2,$1}' ,多列操作同理,还可以这样计算两列之和什么的 操作|awk '{print $2+$1}' 。
- 获取一个软链接的指向,用readlink
- shell里面想把什么东西的结果直接转化成变量,就直接把他们括起来在前面加$就行了 例如 $(readlink $XXX)
- gzip -cd 直接把.gz拿来当普通文件用。。。在stdout上输出解压缩后的文件内容。。当然 .gz都是单文件压缩
- 默认的sh脚本是不支持alias的,如果想用脚本内的alias,需要在脚本前面加上shopt -s expand_aliases才行。至于脚本外的alias貌似没法用……
- tee命令可以把输出打印到屏幕的同时输出成文件
- if的单行指令为if [ XX = XX ] ;then XX;elif [ ! xx = xx ]; then XXX;else XXXX;fi
- for的单行指令为 for X in DDD;do kkkkk${DIR##*/}k $X;done
- 输出文件名(去掉目录名) 用 basename file ,只输出路径名用dirname file 。如果是文件夹的话只输文件夹名字,用${DIR##*/}其中DIR是文件夹的全路径
- 将目录下所有文件名存到数组中,用($DIR/*)其中$DIR是目录,这种方式下标是从0开始的
- 提取数组元素,用${ARRAY[0]}。。。获取数组长度(即数组元素个数)用echo ${#a[@]},遍历数组元素(从1到最后),用for i in ${a[@]}
- echo 里面,单引号表示既不替换$变量, 双引号替换$变量,echo -e 表示替换转义符(\n之类);echo 不加-e表示不替换转义符(\n等)
- “或者”可以用OR 表示二选一。例如ls /mydoc/*.txt OR *.jpg
- cp -d 在拷贝软链接的时候,会保持拷过去的是链接,而非链接指向的文件。
- `xxxx`表示``所夹函数的结果
- cat list|while read aa;do mv `echo $aa|awk '{print $1".sam"}'` `echo $aa|awk '{print $2".sam"}'`;done 这个语句按照列表list,将所有带有第一列前缀的sam命名为 第二列前缀.sam
- 【PBS】批量删除任务,例如删除从1672597开始的9个任务:k=1672597;for i in `seq 1 9`;do qdel $k;let “k=$k+1";done
- bash中得到数列的方法:seq .例如seq 1 5得到1 2 3 4 5,而更简单的办法是{1..5}或者{a..z},和perl里面差不多。。例如for i in {1..5};do;done。然后如果想写chr1 chr2 chr3....chr10,则可chr{1..10}
- 想写个循环,包括1,2,3,4, 5,X,Y。咋办? for i in `seq 1 5` 'X' 'Y' ...........
- 打印文件绝对路径: echo ${PWD}/filename
- sed -n '2,$p' filename打印文件除首行之后的行
- 输出第6列大于20000000的。。gawk '$6>200000000{print $0}' file1
从文件里一行一行的读,最好用while read i ;do XXXXXX $i;done<filename; 一次从文件里读两行,参见
- 将文件按第二列到第二列(-k2,2)的数值(-n)逆向(-r)排序sort -k2,2nr file
- 打印文件第一行第二列的数据sed -n "1p" file| cut -f2
- 【awk】匹配,拽出满足第4列不为[ATCGatcg]之一,且忽略大小写,第3列不等于第4列的行awk 'BEGIN{IGNORECASE=1;}$4!~/[ATCGatcg]/&&$3!=$4' file
- 计算字符串$var的长度${#var},从字符串$var里面计算字符$char的个数$var|tr -cd $char| wc -c
- 算式的结果,例如计算4+3 就用 $[4+3]
- 浮点计算,用外部计算器bc。scale代表保留的有效数字位数。echo "scale=4;1/3"|bc得到.3333,bc -l是直接算
- 【awk】打印匹配XXX的下一行:awk '/XXX/{getline;print;}'
命名管道
- ls *m8 |wc -w 好像这个能统计目录下面*.m8文件的个数。。
- 【VI】查找替换方法: % s/word1/word2/g 可以把全文的word1替换成word2
- 【awk】引用外面的变量咋办?可以用双引号套单引号的格式。var="test";awk 'BEGIN{print "'$var'"}。。PS:血的教训啊:如果引用的变量是数值,并且还是要用来比大小的,那么引用完一定要强制转换成数字啊,+0或者int或者把单引号写在双引号外面什么的都行 !例如 c=30;awk '($9> ("'$c'"+0))' T_20x.filtered.raw 否则就和没过滤过一样!
- 【awk】什么是BEGIN和END?BEGIN后面的{}里面装着循环起始前的内容,比如一些初始值。END后的{}装着循环结束后需要干的事情,例如打印XXX。而没有BEGIN和END的括号就是循环的时候对每行做的事情了。
- 【awk】 取消行末回车的办法:将print改成printf
- 【VI】改换外观方法:vi里面输入 :colorscheme 外观名(可用tab进行自动补全)
- touch 新建普通文件 mkfifo 新建命名管道文件
- paste 纵向拼接两个文件,相当于cbind。paste -s 矩阵转置。
- split 把一个大文件切成若干份。split -l 1000 file 把file切成若干份,每份1000行。
- whereis xx 在系统文件夹中寻找xx(打印所有路径),which xx 在系统文件夹中寻找xx(打印第一个路径)。locate file查找普通文件file,非即时但很快。find [目录] -name xx 在目录中寻找名字含xx的文件。
- 想找第一个文件中间的哪些行在/不在第二个文件中出现了?用comm 和diff吧。。具体用法请help。PS:用之前要sort。。
- kdesktop直接图形界面了……
【awk】分列符换行符怎么改?是什么??awk预定义RS(换行符),FS(读文件的分列符),ORS(输出时的换行符),OFS(输出时的分列符)变量分别为'\n'、'[ \t]+'、'\n'、' '。 awk 每一次输入文本时,NR(行数)变量自动加一,根据RS确定一次输入文本的内容将其赋给$0这一位置变量(是变量吆),再根据FS对其进行分域(也就是把各域的字符串分别赋给位置变量$1、$2、$3、... ;并且更新NR变量)
- 想改后缀,例如把*.txt都改成*.rar可以用 mv file ${file%.txt}.rar,一般#是去掉左边,%是去掉右边,一个符号是最小匹配,两个符号是最大匹配。更详细的看这里http://blog.163.com/cleave@126/blog/static/354763862010112183639209/
- 如果变量名称也是变量怎么办?中括号[]解决问题。ks=4;i='s';printf $[k$i] 结果返回4.
- 【awk】else if的写法:就是else if
- sort -g可以针对科学计数法排序;sort针对第4列然后在逆向针对第3列进行排序怎么办? sort -k4,4 -k3,3r逗号前面和后面表示排序参考块的起始和终止。r表示逆序,将r放在后面表示仅针对当前的块(也就是k3,3)逆序,而不是对所有。
- shell里面也有sleep,而且还是更加精锐的sleep,例如 sleep 1 睡眠1秒,sleep 1s 睡眠1秒,sleep 1m 睡眠1分,sleep 1h 睡眠1小时
- 【awk】拆分字符串:split($3,arr,",");将$3拆分,分隔符是逗号,,然后分割好的东西写到数组arr里面
- 【awk】数组循环遍历:可以for (i in arr){print arr[i]}
- 【awk】只针对某一列匹配awk '$3~/aaa/', 只针对某一段替换,awk '{gsub("-","",$2);}' file,但注意有时候可能会有分隔符错误,所以有必要在BEGIN里加上BEGIN{FS=“\t”;OFS="\t"}之类的
- 【awk】对多个文件进行操作除了用FNR(当前文件到了第几行)和NR(总共到了第几行)之外,还可以用ARGIND==X(注意,要gawk)过滤读到了第几个文件,X为1就是第一个文件。例如处理4个文件的: gawk 'BEGIN{FS="\t";OFS="\t"}(ARGIND==1){if(r!=$1&&NF>12){out[$1]=$12"\t"$13;tonmr[$1]=substr($7,4)}}(ARGIND==2&&NF>2){funcc[$1]=$2"\t"$3}(ARGIND==3&&FNR>1&&NF>13){ks=$4 ;for(i=5;i<=14;i++){ks=ks"\t"$i};exprr[$1]=ks}(ARGIND==4&&NF>2){splus="'$s'_"$3;if(out[splus]!=""&&funcc[$3]!=""&&exprr[tonmr[splus]]!=""){print $1"\t'$i'\t"tonmr[splus]"\t" exprr[tonmr[splus]]"\t"$3"\t"out[splus]"\t"funcc[$3];next} }' $ortorigin $symbolslist $expfile $genelist>$nu.temp1
fc-list查看linux下安装了哪些字体
- cal 9 1752 查看1752年9月的日历
- 【cat】把一大坨文件例如1.txt,2.txt....n.txt按照顺序cat到一起怎么办?无需艰难决定!for i in `seq 1 n`; do cat $i.txt >> output;done
- 【awk】如果需要匹配某个东西,并且该东西是变量的话,变量外面可以不用加//的。。。
- 【vim】对块进行缩进的方法:选中块 ,然后输入>
- 【awk】sub gsub gensub区别
sub(a,b[,c]) 替换第一次匹配,匹配正则a,用b替换,c为指定替换目标是哪个域如$1,$2,若无c指$0,返回值为替换成功次数
gsub(a,b[,c]) 全局替换,匹配正则a,用b替换,c为指定替换目标是哪个域如$1,$2,若无c指$0,返回值为替换成功次数
gensub(a,b,c[,d])全局替换,匹配正则a,用b替换,c为指定替换目标是第几次匹配,d为指定替换目标是哪个域如$1,$2,若无d 指$0,返回值为target替换后内容(未替换还是返回target原内容),与sub、gsub不同的是,target内容替换后不改变。
- 【awk】index函数返回子字符串第一次被匹配的位置,偏移量从位置1开始。格式如下:index(string, substring)
- 【awk】match函数返回在字符串中正则表达式位置的索引,如果找不到指定的正则表达式则返回0。match函数会设置内建变量RSTART为字符串中子字符串的开始位置,RLENGTH为到子字符串末尾的字符个数。substr可利于这些变量来截取字符串。函数格式如下:match( string, regular expression )
- 判断文件为空的方法 对于文件i,若[ -s $i ]为真,则文件不为空。输出当前目录下所有空文件的方法:for i in * ;do if [ ! -s $i ] ;then echo $i;fi;done
- 【grep】匹配“A或B”的方法:grep -E 'A|B'
- 在空格隔开的字符串两端加括号()可以将其转换为数组。因此可以用这种方式将【awk】中的数组传递到外面来。str=`awk 'BEGIN{OFS=" "}(NR==1){for(i=3;i<=NF;i++){print $i}}' statmiRNAinfo.xls`;k=($str);echo ${k[2]}
- 在管道中,可以用/dev/stdin 来指代通过管道传过来的数据,如less a.txt |cat b.txt /dev/stdin
- http://blog.163.com/cleave@126/blog/static/354763862010810112258973/http://blog.163.com/cleave@126/blog/static/354763862010810112258973/
shell的一些一句话东西相关推荐
- 【技术分享】linux各种一句话反弹shell总结——攻击者指定服务端,受害者主机(无公网IP)主动连接攻击者的服务端程序(CC server),开启一个shell交互,就叫反弹shell。...
反弹shell背景: 想要搞清楚这个问题,首先要搞清楚什么是反弹,为什么要反弹. 假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常 ...
- php一句话上传webshell,一句话shell,哪些是恶意的php一句话webshell
哪些是恶意的php一句话webshell PHP 是一种创建动态交互性站点2113的强有力的服务器端脚本语5261言. PHP 是免费的,并4102且使用广泛.对于像1653微软 ASP 这样的竞争者 ...
- 常用的一句话反弹shell总结
目录 常用的一句话反弹shell总结 1. bash直接反弹 2. python一句话反弹shell 3. python脚本反弹shell 4. php一句话反弹shell 5. php脚本反弹she ...
- Linux中一句话反弹Shell细说
简介 我们在渗透测试的过程中经常会遇到linux主机环境,而在获取linux主机shell是我们经常需要做的是工作内容之一,其中经常会遇到以下几个场景. 一.场景一 我们已经拿下主机的一个webshe ...
- linux各种一句话反弹shell总结
[技术分享]linux各种一句话反弹shell总结 作者:[myles007] 简介 我们在渗透测试的过程中经常会遇到linux主机环境,而在获取linux主机shell是我们经常需要做的是工作内容之 ...
- 生产力工具:shell 与 Bash 脚本
生产力工具:shell 与 Bash 脚本 作者:吴甜甜 个人博客网站: wutiantian.github.io 微信公众号: 吴甜甜的博客 注意:本文只是我个人总结的学习笔记,不适合0基础人士观看 ...
- 动手实现简易PHP一句话连接工具——FruitKnife
文章目录 效果展示 连接一句话 浏览服务器目录 打开文件 跳转目录 上传文件 前言 设计思路与需求分析 功能实现 连接一句话 浏览目录 打开文件 跳转路径 上传文件 节目清单 不足之处 工具名字的由来 ...
- php探针批量拿shell,地下黑产:自动批量SHELL一条龙
我偶然接触黑产冰山一角,得知黑产的发展比我们想象还快,已经进化到全自动批量扫描SHELL一条龙,结合前辈揭露的,他们配合,从批量扫描到挂马到挂黑页等,一个傻瓜按钮就完成.我们看看以前,下发命令实现全自 ...
- Shell编程(week4_day1)--技术流ken
本节内容 1.shell简介 2. shell分类 3. 查看shell 4. 第一个shell脚本 5. shell编程常用命令 5.1 grep 5.2 cut 5.3 sort ...
最新文章
- 英国熊孩子频繁攻击学校网络,政府被逼爹味儿下场:当白帽黑客吧!年薪45万...
- 关于Linux访问web遇到403 Forbidden的问题
- jdbc oracle添加数据库连接,JDBC与Oracle数据库连接最常用方法
- 产品 电信nb接口调用_电信NB-IoT云平台数据对接方案——唐山平升电子技术开发有限公司...
- 远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制
- matlab神经网络43个案例分析_10个经典案例,带你一起分析:高层结构设计难点...
- react学习(15)-getTime selectedRowKeys是this.props取值的
- XML与HTML的区别
- TensorFlow 中的 tf.train.exponential_decay() 指数衰减法
- Displaytag的使用四
- 京东店铺数据分析工具推荐
- Elastic Stack应用性能监控APM初窥门径
- java flv转mp3_java调用FFmpeg及mencoder转换视频为FLV并截图
- photoshop中如何在6寸相纸上打印1寸照片12张3X4模式(手动拖动模式)
- js和html:周岁年龄计算器
- ⽤户去输⼊⼀个⼈民币⾦额,然后程序会计算如何去⽤20元纸币,10元纸币,5元纸币和⼀元纸币去表⽰这个⼈民币⾦额。要求使⽤最⼩数⽬的纸币。
- python中的matplotlib用法
- 脉冲在matlab,脉冲时间信号MATLAB表示
- PTA_Pra 1012 数字分类 (20分)
- python参数内存地址