1. 终端指令
1.1 查找
1.1.1 查找确定的文件及位置
参考一 参考二
1.1.1.1 find
指令
- find命令是一个实时查找工具,通过遍历指定路径而完成对文件的查找;
- 在使用该命令时,如果不选定参数,则
在当前目录下查找子目录与文件并显示之
; - 另外,任何位于参数之前的字符串,都将视为欲查找的目录名。
- 由于是实时遍历查找,find有如下特性:精确实时查找,速度慢可能只搜索用户具备读取和执行权限的目录。
语法
find [OPTION]... [查找路径] [查找条件] [处理动作]
-
查找路径:指定具体目标路径,默认为当前目录
-
查找条件:指定的查找标准,可以是文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件
1. 根据文件名和inode查找
2. 根据属主、属组查找
3. 根据文件类型查找
4. 根据逻辑组合条件查找
5. 根据文件大小来查找
6. 根据时间戳来查找
7. 根据权限来查找 -
处理动作:对符合条件的文件做操作,默认输出至屏幕
- -print: 默认动作,显示至屏幕
- -ls: 类似于对查找到的文件执行 ls -l 命令
- -delete: 删除查找到的文件
- -fls file: 查找到的所有长格式的信息保存至指定文件中
- -ok COMMMAND {} ; 对查找到的每个文件执行由COMMAND指定的命令,且都会交互式要求用户确认
- -exec COMMAND {} ; 对查找到的每个文件执行由COMMAND指定的命令;
- {}: 用于引用查找至的文件名称自身
- find 传递查找到的文件至后面指定的命令时,查找到所有符号条件的文件一次性传递给后面的命令
- 有些命令不能接受过多的参数,此时命令执行可能会失败,用 xargs 来规避此问题
举例:
sudo find / -name g2o
它会显示出搜索路径下所有匹配文件名的路径,在这里它显示了根目录所有名称为g2o的路径。
1.1.1.2 locate
指令
简介
- locate命令可以在搜寻数据库时快速找到档案,locate为模糊查找
- 数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的
- locate所找到的若是最近才建立或 刚更名的,可能会找不到
- 在内定值中,
updatedb每天会跑一次
,可以由修改crontab来更新设定值。(etc/crontab) - 在 执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达
update
强迫系统立即修改索引数据库。
命令格式:
locate filename
参数
命令参数:
- -e 将排除在寻找的范围之外。
- -1 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。
- -f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案 放在资料库中。
- -q 安静模式,不会显示任何错误讯息。
- -n 至多显示 n个输出。
- -r 使用正规运算式 做寻找的条件。
- -o 指定资料库存的名称。
- -d 指定资料库的路径
- -h 显示辅助讯息
- -V 显示程式的版本讯息
实例
locate 文件名
1.1.1.3 whereis
背景
- whereis 命令只能用户程序名称的搜索,只搜
- 二进制文件(参数-b)
- man说明文件(参数-m)
- 源代码文件(参数-s).
- 如果省略参数,则返回所有信息。
*和find相比,whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高
。
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件
,却无法查找到,原因就是因为数据库文件没有被更新。
whereis [-bmsu] 文件或者目录名
- -b: 只找二进制格式的文件
- -m: 只找在说明文件manual 路劲下的文件
- -s: 只找source 源文件
- -u: 查找不在上述三个选项中的其他特殊文件
实例
查询ifconfig文件名
whereis ifconfig
1.1.1.4 文件名
它不仅会像find显示出g2o文件路径,还会显示包含g2o文本的文件路径。
1.2 系统信息显示
1.2.1 查看内存占用和查看cpu
1.2.1.1 top 法
- 终端指令打印
top
- 想看到相关 cpu核数,以及相关占用情况,按数字"1"即可.
- 按
q
退出
1.2.1.2 使用htop(推荐)
- 安装
sudo apt-get install htop
- 命令行输入
htop
1.3 查看文件移动进度
1.3.1 iotop
参考1
iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。
相比其他工具而言,例如Linux下的I/O统计工具如iostat,nmon等大多数只能统计到per设备的读写情况,如果你想知道每个进程是如何使用I/O的就比较麻烦,使用iotop命令可以很方便的查看。
安装
sudo apt install iotop
使用
sudo iotop
2. 统计
参考
2.1 统计文件数量
1、统计当前目录下文件的个数(不包括目录)
ls -l | grep "^-" | wc -l
2、统计当前目录下文件的个数(包括子目录)
ls -lR| grep "^-" | wc -l
3、查看某目录下文件夹(目录)的个数(包括子目录)
ls -lR | grep "^d" | wc -l
4、统计当前文件夹下叫某某的文件的数量
find . -name filename | wc -l
5、统计当前文件夹下指定类型的文件的数量
#例如这里需要找 js 文件的数量:
find -name "*.js" | wc -l
3. 软连接
3.1 创建软连接
ln -s 【目标目录】 【软链接地址】
3.2 删除
rm -rf 【软链接地址】
- 软链接地址最后
不能
含有“/”
,当含有“/”
时,删除的是软链接目标目录下的资源
,而不是软链接本身
3.3 修改
ln -snf 【新目标目录】 【软链接地址】
2. vim常用指令
1. 文本的第一行或者最后一行
- 跳转到第一行
:0 或 :1 或 gg
- 跳转到最后一行
:$ 或 Shift + g
- 跳到某一行
# 就可以定位到任意行n
:n
2. 移动到行首或者行尾
2.1 行首
- 方法一:移到第一个字符
注意,不要加入:
,直接在esc
后输入命令
^
- 方法二:移到某行的行首,不管第一个字符
0
2.2 行尾
在esc
模式下,直接输入
$
2. 插入、复制、删除
参考一
2.1 复制
复制的命令是y
,即yank(提起) ,常用的命令如下:
-
y
在使用v模式选定了某一块的时候,复制选定块到缓冲区用; -
yy
复制整行(nyy或者yny ,复制n行,n为数字); -
y^
复制当前到行头的内容; -
y$
复制当前到行尾的内容; -
yw
复制一个word (nyw或者ynw,复制n个word,n为数字); -
yG
复制至档尾(nyG或者ynG,复制到第n行,例如1yG或者y1G,复制到档尾)
2.2 剪切
剪切的命令是d
,即delete
,d
与y
命令基本类似,所以两个命令用法一样,包括含有数字的用法.
-
d
剪切选定块到缓冲区; -
dd
剪切整行 -
d^
剪切至行首 -
d$
剪切至行尾 -
dw
剪切一个word -
dG
剪切至档尾
2.3 粘贴
粘贴的命令式p,即put(放下)
-
p
:小写p
代表贴至游标后(下),因为游标是在具体字符的位置上,所以实际是在该字符的后面 -
P
大写P代表贴至游标前(上)
2.4 撤销
在复制粘贴时,
- 一组常用的命令是
u
(撤销操作),U(撤销某一行最近所有修改) - Ctrl+R(重做),这些功能主要是vim中的,vi中略有差别
2.5 添加新行
# 字母大写 O
O
注意
- 在正则表达式中,
^
表示匹配字符串的开始位置,$
表示匹配字符串的结束位置。 - 命令前面加数字表示重复的次数,加字母表示使用的缓冲区名称。使用英文句号
.
可以重复上一个命令。
3. 文件及文件夹指令
3.1 查看文件及文件夹大小
3.1.1. df
df -h 目录名
3.1.2. du
- 输出当前目录下的所有文件和文件夹的大小,并按照大小排序
du -h -d 1 | sort -h
- 显示当前目录下所有一级子目录的大小
du -h -d 1
- 显示当前目录的总大小
du -sh
- 显示当前目录下所有子目录的大小,递进到最大深度
du -h
3.2文件夹内文件数量
参考
当前目录下文件的个数(不含子文件夹):
ls -l | grep "^-" | wc -l
当前目录下文件的个数(含子文件夹里的),注意:R,代表子目录:
ls -lR | grep "^-" | wc -l
当前目录下文件夹的个数(不含子文件夹):
ls -l | grep "^d" | wc -l
当前目录下文件夹的个数(含子文件夹里的):
ls -lR | grep "^d" | wc -l
指定目录下(这里是/abc)文件的个数(不含子文件夹):
ls -l /abc| grep "^-" | wc -l
通常一个种子在某个路径(这里看作abc文件夹下)下载后是一个文件或是一个文件夹,可以变相统计种子数:
ls -l /abc | wc -l
命令解释:
- ls:用于列出文件
- grep:用于过滤信息
- wc:用于统计各类信息,-l用于统计行数
3.3 压缩解压缩
参考
3.3.1 ZIP
zip可能是目前使用得最多的文档压缩格式。
- 优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。
- 缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。
3.3.1.1 压缩
我们可以使用下列的命令压缩一个目录:
zip -r archive_name.zip directory_to_compress
3.3.1.2 解压缩
下面是如果解压一个zip文档:
unzip archive_name.zip
3.3.2 TAR
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。
3.3.2.1 压缩
下面是如何打包一个目录:
# tar -cvf archive_name.tar directory_to_compress
3.3.2.2 解压缩
如何解包:
# tar -xvf archive_name.tar.gz
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
# tar -xvf archive_name.tar -C /tmp/extract_here/
3.3.3 TAR
TAR.GZ
这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。
3.3.3.1 压缩
使用下面这种格式去压缩一个目录:
tar -zcvf archive_name.tar.gz directory_to_compress
3.3.3.2 解压缩:
# tar -zxvf archive_name.tar.gz
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/
3.3.4 TAR.BZ2
这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。
这个就是你如何使用tar.bz2进行压缩。
3.3.4.1 压缩
# tar -jcvf archive_name.tar.bz2 directory_to_compress
3.3.4.2 解压缩:
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/
3.3.5多个分卷合并
3.3.5.1 tar.gz包
- 文件形式一。(参考)[https://blog.csdn.net/weixin_43692276/article/details/104921620]
#连接文件为单独一个
cat filename.tar.gz.a* >> filename.tar.gz
#解压文件
tar xvf filename.tar.gz
- 文件形式二.参考
1、合并使用spilt分割的文件
# cat sxrt5.0.dvd1.tar.gzaa sxrt5.0.dvd1.tar.gzab sxrt5.0.dvd1.tar.gzac >>sxrt5.0.dvd1.tar.gz
2、解压gz文件
# gunzip sxrt5.0.dvd1.tar.gz
3、解tar包
# tar xvf sxrt5.0.dvd1.tar
查看端口占用
参考一
- 查看所有的服务端口(ESTABLISHED)
netstat -a
- 查看所有的服务端口,显示pid号(LISTEN,ESTABLISHED)
netstat -ap
- 查看某一(**)端口,则可以结合grep命令:
netstat -apn | grep 9091
4. 用户及用户组
4.1 改变权限
sudo chmod -R 777 文件名
4.3 设置用户密码
sudo passwd root
[sudo] v100 的密码:
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
5. 监控及相关问题
nvidia 显卡
定时查看显卡状态
watch -n 1 nvidia-smi
-
1
表示每隔1s查看一次
通常存在显存占用,但是无进程问题
参考文章来源:https://www.toymoban.com/news/detail-785647.html
- 安装psmisc
sudo apt-get install psmisc
- 查看当前占用显存的进程
sudo fuser -v /dev/nvidia*
会出现如下结果,其中PID即为占用显存的进程号文章来源地址https://www.toymoban.com/news/detail-785647.html
USER PID ACCESS COMMAND
/dev/nvidia0: root 124 F...m python3
/dev/nvidiactl: root 124 F...m python3
/dev/nvidia-uvm: root 124 F...m python3
- kill 占用的进程,例如:
sudo kill 124
- 全部杀死
sudo fuser -v /dev/nvidia* |awk '{for(i=1;i<=NF;i++)print "sudo kill -9 " $i;}' | sh
监控电脑状态
到了这里,关于ubuntu常用指令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!