Linux常用操作

本文详细介绍Linux环境下各种实用命令,涵盖文件统计、系统信息查询、进程管理、文件传输等多个方面,帮助用户快速掌握Linux操作技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux统计某文件夹下文件、文件夹的个数

 

统计某文件夹下文件的个数 

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

统计某文件夹下目录的个数 

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

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

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

统计/imagedata/data/20161108目录(包含子目录)下的所有txt文件  

ls -lR /imagedata/data/20161108|grep txt|wc -l   

或者
 

ls -lR "/imagedata/data/20161108"|grep "txt"|wc -l

说明:

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

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

ls -lR
长列表输出该目录下文件信息(R代表子目录注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)

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

wc -l
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。

---------------------------------------------------------------

如果只查看文件夹

ls -d  只能显示一个.

find -type d    可以看到子文件夹

ls -lF |grep /    或 ls -l |grep '^d'  只看当前目录下的文件夹,不包括往下的文件夹

 

其他操作

1.opencv 版本查看

pkg-config --modversion opencv

 

2.linux 系统

显卡:

lspci | grep VGA

CPU 

cat /proc/cpuinfo

内存和硬盘

free -m  # 内存
df -h # 硬盘

 

查看系统版本:

sudo lsb_release -a

内核版本:

uname -r

路径查看

sudo find / -iname
# 查找文件
sudo find / -name xxx.x

确认删除文件是否被占用

lsof | grep deleted

根据第二列的pid,杀掉进程

kill -9 pid

垃圾箱清理

df -lh # 查看磁盘信息
du -h --max-depth=1 # 定位最大文件目录
ls -lhS # 定位最大文件

sudo rm -rf ~/.local/share/Trash # 垃圾箱清理

 cuda 版本查看:

cat /usr/local/cuda/version.txt

cudnn版本:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

查看被谁占用:

sudo fuser -v /dev/nvidia* 

查找当前活跃进程

ps -ef | grep "python"

 

3.文件传输

rsync不覆盖已经存在文件的方法

rsync

它比scp更强大,支持“不覆盖”原目录例子:

rsync -avzt --progress /root/client/   root@202.112.23.12:/home/work/      

//将本机的/root/client/拷贝至远程的202.112.23.12:/home/work/目录,--progress可以查看拷贝的过程。

例子:

rsync -avzut --progress /root/client/   root@202.112.23.12:/home/work/  

   -u选项,指定不覆盖原目录内容

-v, --verbose 详细模式输出 
-q, --quiet 精简输出模式 
-c, --checksum 打开校验开关,强制对文件传输进行校验 
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD 
-r, --recursive 对子目录以递归模式处理 
-R, --relative 使用相对路径信息
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-t, --times 保持文件时间信息

 

4.相关的进程管理bash cmd

nvidia-smi 监控GPU,

watch -n 1 nvidia-smi 实时监控GPU,

watch -n 1 lscpu 实时监控CPU,

ps -elf 进程查看,

ps -elf | grep python 查看Python子进程,

kill -9 [PID] 杀死进程PID。

 

Other

ubuntu安装谷歌浏览器

Ubuntu16.04搭建GTX1080+CUDA9.0+cuDNN7.0.5+Tensorflow1.6.0环境

 

ubuntu无sudo权限以及非root的用户apt安装软件

一般来说使用apt安装软件,必须要有root权限,因为apt安装时需要写/usr/bin /usr/lib /usr/share等目录,而这些目录只有root用户(或有sudo权限)才有写入权限的,所以没有sudo权限的普通要用apt安装软件的话,就只能以 源码安装方式 来安装了,具体操作如下:

apt source package	# package是要安装的软件名,包名和sudo apt instal package 中的一样
cd package 			# 进入下载的package目录,这个目录不一定就是package,名字中可能有版本号

# 使用--prefix是最关键的,它是用于指定安装目录的,如果没有它就可能要安装到/usr下了,此时需要sudo
# 必须是绝对路径,不能用~代表home,即必须以/开头,路径可以用双引号括起来
./configure --prefix=/path/to/install  # 该目录可以是不存在的,会自动创建
									  						  
make -j && make install # -j选项是make并行加速,&&是指只有前一条命令成功后才运行后一条


注意: 执行第一条命令可能出现如下错误:

E: You must put some 'source' URIs in your sources.list



这是因为你的/etc/apt/source.list中将所有deb-src的条目给注释掉了,所以apt命令找不到源码安装的地址,如果出现此错误并且你有sudo权限,则将所有deb-src前面的#去掉即可,但是很有可能你没有sudo权限,这个时候就需要自己手动去下载软件的源码,然后解压,然后从上面的第二条命令开始执行就可以了。

最后: 软件安装完成后,shell解释器可能找不到该软件,此时需要将该软件安装目录添加到PATH中,并且需要注意的是,必须是添加该软件(命令)的直接父目录,比如说我刚才的/path/to/install是写的$HOME/local,则安装好后一般会在local目录下生成bin目录,此时刚才安装好的软件就是在~/local/bin目录里,所以需要将 ~/local/bin添加到PATH中,而不是 ~/local。

# 添加bin目录到PATH中
vim ~/.bashrc # 打开shell的配置文件.bashrc

# 按shift+G,再按o,然后输入下面的命令
export PATH=$PATH:~/local/bin # 输入后,按ESC,然后按shift ZZ 即可保存并退出

# 使刚才的修改生效即可使用了
source ~/.bahsrc


如果没有vim编辑器,或者不太会使用vim,可以将上面的命令中的vim替换成gedit,就可以使用gedit来修改bashrc文件了。
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值