linux 基础操作
基础命令
一. 解压
- .tar结尾的文件: tar -zxvf java.tar.gz; tar -zxvf java.tar.gz -C /usr/java
- .gz结尾的文件: gzip -d all.gzgunzip all.gz
- .tgz或.tar.gz结尾的文件: tar -xzf all.tar.gztar -xzf all.tgz
- .bz2结尾的文件: bzip2 -d all.bz2bunzip2 all.bz2
- tar.bz2结尾的文件: tar -xjf all.tar.bz2
- .Z结尾的文件: uncompress all.Z
- .tar.z结尾的文件: tar -xzf all.tar.z
- .rar 文件: unrar x aa.rar
- .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"
管道命令
常用管道命令
- 格式
- 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

浙公网安备 33010602011771号