linux -shell 命令

awk技巧 : https://www.cnblogs.com/kevingrace/p/8481965.html# 按列去重,保存两列两个结果

根据重复的URL merge来其他列
sort input.txt |uniq|awk '{a[$1]=(a[$1]" "$3);} END{for(i in a) print i "\t"a[i]}' > output.txt
按第二列筛出为1的数据
cat input.txt | awk -F'\t' '{if($2==1) print $0}' > 1
scp 后台执行
ctrl+z
jobs
bg %pid
disown -h %pid
文件格式转码
不忽略错误
iconv -f gb18030 -t utf-8 file_gb18030 > file_utf_8
忽略错误行
iconv -f gb18030 -t utf-8 file_gb18030 -c -o file_utf_8
字符串截取
${argv%.*} # argv截取.左边的字符串
src=${argv%%-*} # argv 截取”-“左边的字符串
dst=${argv##*-} # argv 截取“-”右边的字符串
或者
arr=(${i//-/ })
argv1=${arr[0]}
argv2=${arr[1]}
argv3=${arr[2]}
求交集、差集、并集
因为是通过uniq ,所以先自身去重
交集 -d 是 duplicate
sort a.txt | uniq > aa.txt
sort b.txt | uniq > bb.txt
cat aa.txt bb.txt | sort | uniq -d
并集
cat a.txt b.txt | sort | uniq
差集
sort a.txt | uniq > aa.txt
sort b.txt | uniq > bb.txt
cat aa.txt bb.txt bb.txt | sort | uniq -u
文件行截取
head -20000 query_random_4w.txt | cut -f 1 > query_random_2w.txt  截取前2W行以及第1列
cut -f 1,2 file_a > file_b          截取第1,2列
sed -n "33,35p" file_a > file_b     截取第33行到35行
split -l 3000 a.txt -d -a 4 BLM_    切分文件,每个3000行,后缀4位,以BLM_开头
shuf -n 100 data.txt > 1     在data.txt里随机100行
AWK-统计
cat data|awk '{sum+=$1} END {print "Sum = ", sum}'    按第一列求和
cat data|awk '{sum+=$1} END {print "Average = ", sum/NR}'    按第一列求平均
AWK-筛选
cat data | awk    通配符过滤字符串筛选
cat data | awk    通配符筛选字符串
排序 and 统计
cat data_set | sort -k1 | uniq -c   按照第一列排序并统计
sort -n data.txt | awk '{if($0!=line)print; line=$0}'    删除重复行
cat data.txt | awk -F '\t' '!a[$2]++{print}' > 1 按第二列去重
cat data.txt | awk '{print NF}' > 1    统计文件列数
查找
grep -r "要查找的内容" ./
find ./ -name "*wise_info*"
模拟 hdfs-mapper 测试python脚本问题
cat file_1 file_2 ... file_n | sort -k1 | python a.py
进程
查看正在运行的python程序
ps -ef|grep python
ps -ef|grep "tf_tencent*"|grep -v grep
lsof -i:端口号   端口号被占用
压缩 and 解压
tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -xzvf file.tar.gz // 解压tar.gz
tar xf file.tar // 解压tar
nohup jupyter notebook &
nohup ... > output.log 2>&1 &

# 删除字符串内的值

# 替换文件中的字符串

# 截取前2W行以及第1列
head -20000 query_random_4w.txt | cut -f 1 > query_random_2w.txt  
#截取第1,2列
cut -f 1,2 file_a > file_b    
#按照第一列排序并统计
cat data_set | sort -k1 | uniq -c       
#截取第33行到35行
sed -n "33,35p" file_a > file_b    

grep -r "要查找的内容" ./

find ./ -name "*wise_info*"
#删除重复行
sort -n $file | awk '{if($0!=line)print; line=$0}'.    
#非等列文件统计文件有几列
cat 1.txt | awk '{print NF}'   

# 测试脚本运行问题
cat file_1 file_2 | sort -k1 | python 

# 切分文件,每个3000行,后缀4位,以BLM_开头
split -l 3000 a.txt -d -a 4 BLM_

# 查看正在运行的python程序
ps -ef|grep python
ps -ef|grep "tf_tencent*"|grep -v grep

# 端口号被占用
lsof -i:端口号

1、tab 可以自动补齐命令,要习惯tab键,少用复制粘贴键
2、/表示在根目录下寻找

进程

查看正在运行的python程序

ps -ef|grep python
端口号被占用
lsof -i:端口号
解压
unzip filename.zip
unzip filename.zip
tar -jxvf filename.tar.bz2
tar -Jxvf filename.tar.xz
tar -Zxvf filename.tar.Z
tar -xvf filename.tar.gz
tar -xvf filename.tar.bz2
tar -xvf filename.tar.xz
tar -xvf filename.tar.Z
压缩
tar -zcvf [压缩后的文件名称全路径] [要压缩的文件]
zip -r [压缩后的文件名称全路径] [要压缩的文件]
编辑文件
vim [filename]

保存并退出
切记是在英文状态下

保存解释
i编辑
:w保存,不退出vi
:w!强制保存,不退出vi
:wq保存,并退出vi
:wq!强制保存,并退出vi
不保存解释
:q!不保存,并强制退出
:q保存,并退出
:e!放弃所有修改,从上次保存文件开始再编辑
删除文件

有时候文件名字中带有&,然后删不掉,或者可能是其他特殊符号
方法就是:删除的时候将名字带上“ ”

rm [命令开关..] [文件 | 目录] 

命令开关是 :

命令解释
-f不提示用户,删除目录下的所有文件。
-i交互模式。使用这个选项,rm命令在删除任何文件前提示用户确认。
-r/R递归的删除参数表中的目录及其子目录。 目录将被清空并且删除。 当删除目录包含的具有写保护的文件时用户通常是被提示的。

示例:
删除文件夹实例:
rm -rf /var/log/httpd
将会删除/var/log/httpd目录以及其下所有文件、文件夹
删除文件使用实例:
rm -f /var/log/httpd/access.log
将会强制删除/var/log/httpd/access.log这个文件

注意:使用 rm -rf 的时候一定要小心,Linux没有回收站。

查看文件详细信息
stat files.csv
下载文件

节约网费,用实验室的服务器下载数据?
url地址一定要加引号,否则下载的文件无法正常打开
还有更全的其他的下载命令参数:参见https://www.cnblogs.com/peida/archive/2013/03/18/2965369.html

wget -O [name] "url地址"
删除历史命令记录
vim ~/.bash_history
执行删除操作
history -r

也可以写shell脚本来执行一次性删除操作

查看文件信息

stat文件信息查看

删除linux命令记录

在这个文件中,.bash_history,直接运行

rm -f ./.bash_history

即可删除

查看文件内容

more命令可以查看更多文件内容

权限相关
./.viminfo:?/rankla
groupadd rankla
id rankla
useradd rankla
id rankla
useradd -g rankla rankla
id rankla
ftpasswd --file=/etc/proftpd.passwd --home=/home/rankla/ --shell=/bin/false --name=rankla --uid=522 --gid=525 --passwd
su rankla
usermod -G rankla,wangwu wangwu
su rankla
yum groupinstall rankla
usermod -a -G rankla zhansan
su rankla
mkdir rankla_extend_disk1
chgrp rankla rankla_extend_disk1/
chmod +wr rankla_extend_disk1/
chmod +w rankla_extend_disk1/
chmod 777 rankla_extend_disk1/
ln -s /home/disk1/rankla_extend_disk1/ rankla_extend_disk1
chgrp rankla rankla_extend_disk1/
chgrp rankla rankla_extend_disk1
chgrp rankla_extend_disk1 rankla
chgrp rankla rankla_extend_disk1
cd /home/rankla
su rankla
mkdir /home/disk2/rankla_ext2
ln -s rankla_ext2 /home/disk2/rankla_ext2
ln -s /home/rankla/rankla_ext2 /home/disk2/rankla_ext2
ln -s /home/rankla/rankla_ext2 /home/disk2/rankla_ext2
su rankla
# 给一个目录增加一个用户组的权限
mkdir /home/disk2/rankla_extend_disk2
chgrp rankla rankla_extend_disk2
chmod 777 rankla_extend_disk2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值