Linux常见命令汇总

1 Linux下统计当前文件夹下的文件个数、目录个数

统计当前文件夹下文件的个数,包括子文件夹里的

ls -lR|grep "^-"|wc -l

统计文件夹下目录的个数,包括子文件夹里的

ls -lR | grep "^d" | wc -l

统计当前文件夹下文件的个数

ls -l | grep "^-" | wc -l

统计当前文件夹下目录的个数

ls -l | grep "^d" | wc -l

附:
统计输出信息的行数

wc -l

将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d

grep "^-"

转载自:https://www.cnblogs.com/zeze/p/6839230.html

2 解压缩命令详解

tar命令

解包:tar zxvf FileName.tar
打包:tar czvf FileName.tar DirName
(注:tar是打包,不是压缩!)

gz命令

解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName

tar.gz 和 .tgz

解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
压缩多个文件:tar zcvf FileName.tar.gz DirName1 DirName2 DirName3 …

bz2命令

解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName

.tar.bz2

解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName

bz命令

解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz

.tar.bz

解压:tar jxvf FileName.tar.bz

Z命令

解压:uncompress FileName.Z
压缩:compress FileName

.tar.Z

解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName

zip命令

解压:unzip FileName.zip
压缩:zip FileName.zip DirName

转载自:https://jingyan.baidu.com/article/6d704a13f9981a28da51ca70.html

zip或tar排除指定文件进行压缩

zip–>>>>可以使用zip命令的-x参数排除指定的文件

test目录下有1.png、2.tt、good.txt三个文件,现在将test目录压缩成test.zip,排除其目录下的good.txt

zip -r test.zip ./test -x "./test/good.txt"
tar–>>>>可以使用tar命令的–exclude参数排除指定的文件

123目录下有3个子目录,aa、bb、cc.我现在想只对aa和bb目录打包压缩,命令如下:

tar -zcvf 123.tar.gz  --exclude=cc ./123

转载自:https://blog.csdn.net/stf1065716904/article/details/83780420

3 文件或者目录复制

3-1 本地复制

命令说明
cp test.log /home/geshan/logs复制test.log文件到/home/geshan/logs/目录下
cp test.log /home/geshan/logs/cptest.log复制test.log文件到/home/geshan/logs/目录下并重新命名为cptest.log
cp -r logs/ /home/geshan/复制 logs目录及目录下所有文件到/home/geshan/目录下,此时该目录会有logs目录
cp -r logs/ /home/geshan/testlogs/复制 logs目录及目录下所有文件到/home/geshan/testlogs/目录下,并把logs目录重新命名为testlogs,前提是/home/geshan/目录没有testlogs目录

3-2 远程复制

情况1:当前机器—拷贝到—>远程机器

scp 本地Linux系统文件路径 远程用户名@IP地址:远程系统文件绝对路径名

scp /usr/local/tools/* root@192.168.0.240:/usr/local/tools

递归复制 加参数 -r

scp -r /usr/local/tools/ root@192.168.0.240:/usr/local/tools

批量拷贝当前机器的多个文件夹到远程机器上

scp -r {products,scan_detail,storages,traces}/ root@121.56.166.188:/usr/local/solrconfig_data

情况2:远程机器—拷贝到—>当前机器

scp 远程用户名@IP地址:文件的绝对路径 本地Linux系统路径

scp -r root@192.168.0.241:/usr/local/tools/* /usr/local/tools

转载自:https://blog.csdn.net/wudinaniya/article/details/81141530
延伸: scp和rsync的区别和常用参数 https://www.cnblogs.com/jinxiao-pu/p/8833694.html

4 查看文件或日志

4-1 head
命令说明
head test.log查看test.log文件前几行日志内容
head -n 20 test.log查看test.log文件前20行日志内容
head -n -20 test.log查看test.log除了最后20行日志内容
4-2 tail
命令说明
tail -f test.log实时查看test.log文件最后几行日志内容
tail -f -n 20 test.log实时查看test.log文件最后20行日志内容
tail -n 20 test.log查看test.log文件最后20行日志内容
tail -n +20 test.log查看test.log文件20行后的所有日志内容
4-3 cat
命令说明
cat test.log查看test.log文件所有内容

5 修改权限

Linux系统文件或目录的访问权限分为只读,只写和可执行三种,分别代表可读、可写和可执行。

5-1 chgrp命令

改变文件或目录所属的组

命令说明
chgrp geshan test.log把test.log文件所属的组修改为geshan组
chgrp -R geshan logs/把logs目录及该目录下所有文件所属的组修改为geshan组
5-2 chown命令

更改某个文件或目录所属的用户

命令说明
chown geshan test.log把test.log文件所属用户修改为geshan用户
chown -R geshan logs/把logs目录及该目录下所有文件所属用户修改为geshan用户
5-3 chmod命令

用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。

命令说明
chmod 777 test.log把test.log文件修改可读写执行(即777)操作。
chmod -R 666 logs/把logs目录及目录下所有文件修改为读写(666)操作。

为了方便,把mode改为abc,其中a,b,c各为一个数字,分别表示user、group及other的权限。r=4,w=2,x=1,r表示Read读,w表示Write写,x表示eXecute。
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。

转载自:https://mp.weixin.qq.com/s?__biz=MjM5NTY1MjY0MQ==&mid=2650745247&idx=4&sn=5dd3ac8247b6777acb325a6e792c494c&chksm=befebcd1898935c7ea6469a3bffed14940c708fa6d1aec152d62c5cd89c95beef8b2a25ecf55&mpshare=1&scene=23&srcid=0413MemllzzJJuZaQ1aFiwsM#rd、

6 bash: /bin/cp: Argument list too long

bash: /bin/cp: Argument list too long
执行linux中的cp命令,当cp 的目录查过一定的数目会报Argument list too long 的警告
可以通过使用其他方式替换
如改

cp -r images/train2017/* images/val2017/

find images/train2017/ -name "*.jpg" | xargs -i cp {} images/val2017/

7 挂载共享盘

sudo mount -t cifs -o username="chintAI",password="Chint@0209!",dir_mode=0777,file_mode=0777 //10.132.1.170/data/ /home/share_data

8 删除大量文件脚本

find annotations/train2017/ -name "*.xml" | xargs -i rm -rf {} &&
find images/train2017/ -name "*.png" | xargs -i rm -rf {}  &&
find images/val2017/ -name "*.png" | xargs -i rm -rf {}  &&
find labels/train2017/ -name "*.txt" | xargs -i rm -rf {} &&
find labels/val2017/ -name "*.txt" | xargs -i rm -rf {} && 
rm -rf labels/*.cache && 
rm -rf img_list.txt

9 移动大量文件脚本

find images/train2017/ -name "*.png" | xargs -i cp {} images/val2017/ && 
find labels/train2017/ -name "*.txt" | xargs -i cp {} labels/val2017/

10 训练脚本

CUDA_VISIBLE_DEVICES=2,3 nohup python -m torch.distributed.launch --nproc_per_node 2 --master_port 444444 train_bigcut.py --batch-size 16 --data data/bigcut.yaml --cfg models/yolov5s_bigcut.yaml --weights runs/train/bigcut_20220113/weights/best.pt --hyp data/hyps/hyp.scratch-low.bigcut.yaml --sync-bn --cache --multi-scale >> bigcut.log 2>&1 &

nohup python train_barcode.py --batch-size 16 --data data/barcode.yaml --cfg models/yolov5s_barcode.yaml --weights runs/train/barcode_20220505/weights/best.pt --hyp data/hyps/hyp.scratch-low.bigcut.yaml --device 0 --cache --multi-scale >> barcode.log 2>&1 &
  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mingo_敏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值