linux 基础操作

基础命令

一.  解压

  1. .tar结尾的文件: tar -zxvf java.tar.gz; tar -zxvf java.tar.gz -C /usr/java
  2. .gz结尾的文件:    gzip -d all.gzgunzip all.gz
  3. .tgz或.tar.gz结尾的文件:  tar -xzf all.tar.gztar -xzf all.tgz
  4. .bz2结尾的文件:   bzip2 -d all.bz2bunzip2 all.bz2
  5. tar.bz2结尾的文件:     tar -xjf all.tar.bz2
  6. .Z结尾的文件:      uncompress all.Z
  7. .tar.z结尾的文件:  tar -xzf all.tar.z
  8. .rar 文件: unrar x aa.rar
  9. .zip 文件:unzip ./data.zip

二.  压缩文件

tar -czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz

zip -r ./yasuo.zip ./data

三.  统计存储空间

du -sh -l: 查看当前目录总共占的容量。而不单独列出各子项占用的容量

du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。

du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序

du -sk filename 查看指定文件大小

 

四.  gdb

gdb --args ./testprg arg1 arg2

ulimit -a

五.  后台挂起

nohup abc.sh > nohup.log 2>&1 &

密码输入,后台操作

scp -r ./data zhangsan@192.100.12.35:/home/zhangsan/

输入密码后,输入ctrl + z 暂停;此时查看jobs:根据情况输入bg %1;可以通过jobs查看命令情况

六.  查看库,编译相关

ldd: 依赖库

nm *.so: 算法库接口查看

cat /proc/5590/maps: 运行时

七.  备忘小点

只显示文件夹:      ls -l | grep ^d

只显示文件:    ls -l | grep ^-

只查找文件:find ./picture/20140116/9 -type f -name "*.txt"

管道命令

常用管道命令

  1. 格式
  2. grep; awk; sed; cat; xargs;shuf; sort; tail; head

常用应用示例

-替换文本内容

sed -i “s/oldstring/newstring/g” data.txt

-批量替换指定目录下文本内容

sed -i “s/www.admin99.net/admin99.net/g” grep www.admin99.net -rl /home

-内行前面加入行数

cat -n a.txt > b.txt

awk ‘{print $0" "FNR}’ file.txt >result.txt: $0表示当前处理的文件行内容,FNR表示当前处理的文件行行号

截取列(awk 擅长处理列)

awk '{print $1}' military_train.txt

对比

awk '{print $5,$8}'

awk '{print $5","$8}'

查找图像 统计图像个数

ll -lR ./FILE |grep -E ‘.jpg|.png’ |wc -l

ll -lR ./FILE |grep ‘.model_[0-9]*’ |wc -l

批量杀死进程

ps -ef|grep xxxxxx|grep -v grep |awk ‘{print $2}’|xargs kill

ps -ef|grep name|grep -v grep|cut -c 9-15|xargs kill -9

批量删除文件

find . -name “*.txt” | xargs rm -rf

批量复制

find -type f -name "*.sh" -exec cp {} /tmp \;

find -type f -name "*.sh" | xargs cp -t /tmp

find -type f -name "*.sh" | xargs -i cp {} /tmp

使用sort 命令将文件随机排序,选择前100行

sort --random-sort file | head -n 100

两行合并一行

awk '{if(NR%2==0){printf $0 "\n"}else{printf "%s:",$0}}' file

sed 'N;s/\n/ :/' file

sed 'N;N;s/\n/ :/g' file

:N 追加下一个输入行到模式空间,用了两次把当前行的后两行都追加到了模式空间,即多行模式空间。让后用s将\n换行符替换成空格。最后的g是全

shell脚本

变量赋值

PATH_IMG='./image/rank_test/'

log_filename=$(date "+train_%F_%H-%M.log")

log_out=$root_path/projects/vechile_yolov3_type3/logs/$log_filename

 

按照行读取文本,while

cat ./image/rank_test.txt |while read line

ls ./image/rank_test/ |while read line

do

      echo

done

判断语句

if [ "x${checkpointIter}" != "x" ]; then

 

vim

替换

:m,ns/\<字符串\>//gn

:%s/p1/p2/(等同于:g/p1/s//p2/) 替换每一行的第一个p1为p2

:%s/p1/p2/g(等同于:g/p1/s//p2/g) 替换每一行

:s/p1/p2/   替换当前行第一个p1为p2

:s/p1/p2/g  替换当前行所有的p1为p2

:n1,n2s/p1/p2/g  将第n1至n2行中所有p1均用p2替代。其中n1和n2为行号,可以为.代表当前行,可以为$代表最后一行

:.,$s/p1/p2/g 用字符串p2替换当前行到末尾所有出现的字符p1

:1,$s/p1/p2/g 用字符串p2替换所有出现的字符p1

 

posted @ 2021-02-05 21:34  ScarlettChan  阅读(35)  评论(0)    收藏  举报