linux 命令
快捷键
ctrl+u -------清除光标之前的内容,快速删除shell中输入错误的命令,不必逐个字符删除
ctrl+k-------清除光标之后的内容
ctrl+r--------在历史命令中查找非常好用,输入关键字就联想出以前的命令了
ctrl+a/e------行首行/尾部
vim
查找:normal模式下键入 /字符 敲回车查找,n 就分别是向后找,N 向前找这个词
grep
查找文件夹包含字符的文件,并显示行号:
grep -rn “需要查的字符” *
netstat
端口被占用: 使用情况:
netstat -tln | grep 端口号
查看该端口的进程:lsof -i :端口号
kill -9 pid杀死进程
cut
按照指定字符(此处为空格)分割,并取出需要的列
cut -d ’ ’ -f 1,2,3 test.txt
paste
将文件"file"、“testfile”、"testfile1"进行合并存放(linux中可不加,因为系统可以识别不加.txt的文件)
paste file testfile testfile1 > new_col
nl
nl 可以将输出的文件内容自动的加上行号:
nl -b a -n rz 命令行号默认为六位,要调整位数可以加上参数 -w 3 调整为3位
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
sed (https://www.runoob.com/linux/linux-comm-sed.html):
打印5-7行:nl /etc/passwd | sed -n ‘5,7p’
搜索 /etc/passwd有root关键字的行:nl /etc/passwd | sed -n ‘/root/p’
替换:sed ‘s/要被取代的字串/新的字串/g’
删除第二行:nl /etc.passwd | sed ‘2d’
awk
- 取出第二列和第六列不想等的所有行并计数,0表示打印整个行,按照第四列排序
awk -F’\t’ ‘{if($2!=$6) print $0}’ tmp_predict.tsv | wc -l
awk -F’\t’ ‘{if($2!=$6) print $0}’ tmp_predict.tsv | sort -k 4
- 取出ip地址(NR表示行好)
ifconfig eth0 | awk ‘NR==2 {print $2}’ 或者。hostname -I
- 按照时间排序删除data目录下的文件只保留最新的三个文件
ls -t /data/* |awk ‘NR>=5’ |xargs rm -rf
- 添加一列:
awk -v FS=“\t” -v OFS=“\t” ‘{print $0, 1}’ site_train.tsv >>
site_train1.tsv
- 计算某一列每个字符串出现的次数并排序
hdfs dfs -cat *.csv | awk ‘{sum[$2]++}END{for(i in sum) print i “\t” sum[i]}’ | sort -k2 -nr
- 计算标签0/1占比
awk -F “\t” ‘{ total +=1; label[$1] += 1} END {for (x in label) print x"\t"label[x]"\t"label[x]/total }’ train.tsv
sort(https://www.runoob.com/linux/linux-comm-sort.html)
按照第二列排序:sort -k 2 testfile
scp 转载
scp -r local_folder remote_username@remote_ip:remote_folder 或者 scp -r local_folder remote_ip:remote_folder
du
du -h --max-depth=1
split 转载
split -d -l 1000000 jxpp_pretrain.csv raw/part.csv
kill parms process
ps x | grep wangjie648 | grep -v grep | awk ‘{print $1}’ | xargs kill -9