【Linux】常用命令总结(updating)

  • 1.date
  • [2.du(disk use)](#2.du(disk use))
  • [3.df(disk free)](#3.df(disk free))
  • 4.find

shell命令可以使用man查看命令文档说明,说明界面中可通过b(backward)向上翻页,f(forward)向下翻页,g(go to)跳到说明首页,G跳到说明尾页。

官方文档:https://www.gnu.org/software/coreutils/manual/html_node/

1.date

处理日期时间相关的命令,主要用到的参数-d,根据-d的参数值获取指定的日期时间,省略该参数获取当前日期时间。

sh 复制代码
map@gzdt-map-poi-yingxiang-offline04 coordinate$ date +%Y%m%d
20240703
map@gzdt-map-poi-yingxiang-offline04 coordinate$ date -d 'last day' +%Y%m%d
20240702
map@gzdt-map-poi-yingxiang-offline04 coordinate$ date -d '-1 day' +%Y%m%d
20240702
map@gzdt-map-poi-yingxiang-offline04 coordinate$ date -d '-1 days' +%Y%m%d
20240702
map@gzdt-map-poi-yingxiang-offline04 coordinate$ date -d '+1 day' +%Y%m%d
20240704
map@gzdt-map-poi-yingxiang-offline04 coordinate$ date -d 'sunday' +%Y%m%d
20240707
map@gzdt-map-poi-yingxiang-offline04 coordinate$ date -d 'last sunday' +%Y%m%d
20240630
map@gzdt-map-poi-yingxiang-offline04 coordinate$ date -d 'last sunday -1 week' +%Y%m%d
20240623

格式化字符串中常用:

%Y:year

%m:month (01...12)

%d:day of month (01...31)

%H:hour (00...23)

%M:minute (00...59)

%S:second (00...60)

2.du(disk use)

查看目录的磁盘占用大小。
du -h --max-depth=1 ./ 或者 du -h -d 1 ./:查看当前路径下各目录及文件的大小,对于目录是递归累计大小的。不指定路径默认为当前所在目录。--max-depth=1 & -d 1 ,一个长参数形式一个短参数形式,都是用来指定控制台输出时只输出顶层目录文件,不递归输出。

3.df(disk free)

也是用来查看磁盘使用情况的,和du不同的是,关注的是磁盘和挂载点目录的使用情况(包括总大小和已使用),而非某个具体目录。

所以df -h 无论在哪个路径执行默认都是输出所有磁盘或磁盘分区及对应挂载点&挂载点目录的使用情况,如果指定目录路径,则会输出该目录路径所在挂载点的磁盘使用情况。

sh 复制代码
map@gzdt-map-poi-yingxiang-offline04 disk1$ df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        126G     0  126G    0% /dev
tmpfs           126G   11M  126G    1% /dev/shm
tmpfs           126G  1.1G  125G    1% /run
tmpfs           126G     0  126G    0% /sys/fs/cgroup
/dev/sda2        19G   11G  6.6G   63% /
/dev/nvme1n1    917G  512M  917G    1% /ssd2
/dev/nvme0n1    917G   26G  892G    3% /ssd1
/dev/sda1       952M  9.9M  942M    2% /boot/efi
/dev/sda6       1.9G  425M  1.4G   24% /has
/dev/sda5       4.6G  765M  3.7G   18% /matrix
/dev/sda3        14G  1.4G   12G   11% /var
/dev/sda4        14G  1.7G   12G   13% /noah
/dev/sda8       3.6T  3.1T  518G   86% /home
/dev/sdc1       3.6T  3.2T  480G   87% /home/disk2
/dev/sdb1       3.6T  1.1T  2.6T   30% /home/disk1
/dev/sdd1       3.6T  3.4T  215G   95% /home/disk3
/dev/sde1       3.6T  3.4T  267G   93% /home/disk4
/dev/sda7       6.5G  4.6G  1.5G   76% /tmp
none            800M  152M  649M   19% /noah/download
none            800M  597M  204M   75% /noah/modules
none            400M  128K  400M    1% /noah/tmp
none            100M     0  100M    0% /noah/bin
tmpfs            26G     0   26G    0% /run/user/1006
tmpfs            26G     0   26G    0% /run/user/0
afs_mount        96P   68P   28P   71% /home/dfs/map_data_aoi
map@gzdt-map-poi-yingxiang-offline04 disk1$ df -h /home/disk1/map/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1       3.6T  1.1T  2.6T   30% /home/disk1

挂载点:可以理解为物理磁盘或物理磁盘的某个分区在文件系统中的入口,通过挂载点入口目录管理物理磁盘或分区中的内容。

4.find

find命令可以用来查找机器上的文件,一种比较常用的查找方式为find / -name "*filename* 2>/dev/null",表示从根路径下查找文件名包含filename的文件,后面的 2>/dev/null 表示忽略权限错误输出。

这个命令特别需要注意下传递给-name参数的值*filename*,加引号和不加引号的区别:

  • 加引号:则*filename*这个字符串会作为整体传递给name参数,由find命令来解释特殊字符*的含义,表示从指定路径下搜索所有包含filename的文件或文件夹,和搜索预期一致。
  • 不加引号:会先对*filename*中特殊含义的字符如*在命令执行路径下(非查找路径) 下进行拓展,查找该路径下是否存在可以匹配*filename*的文件,存在时就将第一个可以匹配的文件名传递给name,此时相当于按照第一个可以匹配的文件名精确查找了。不存在匹配结果时会和不加引号时一样将原字符串作为整体传递给name,此时加不加引号对于结果没影响。

引号测试:

sh 复制代码
map@gzdt-map-poi-yingxiang-offline04 test$ tree dir1
dir1
├── dir2
│   └── file2
└── file1

1 directory, 2 files

# dir1下模糊查找所有包含 file 的文件文件夹
map@gzdt-map-poi-yingxiang-offline04 dir1$ find ./ -name "*file*"
./dir2/file2
./file1

# dir1路径下file1匹配,所以实际查找效果相当于:find ./ -name file1
map@gzdt-map-poi-yingxiang-offline04 dir1$ find ./ -name *file*
./file1

# 当命令执行路径下不存在匹配文件时,效果等同于加引号
map@gzdt-map-poi-yingxiang-offline04 dir1$ ll .. | grep file
map@gzdt-map-poi-yingxiang-offline04 dir1$ cd .. && find ./ -name *file*
./dir1/dir2/file2
./dir1/file1

如果文件名较复杂,也可以通过-regex进行正则查找:

在find种正则查找时是全路径匹配,也就是当查找某个文件时,给出的正则必须要能满足对该文件的全路径进行匹配,而不是仅匹配文件名。

sh 复制代码
map@gzdt-map-poi-yingxiang-offline04 dir1$ find ./ -regex "file.*"
map@gzdt-map-poi-yingxiang-offline04 dir1$ find ./ -regex ".*file.*"
./dir2/file2
./file1
相关推荐
TeYiToKu30 分钟前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
dsywws33 分钟前
Linux学习笔记之时间日期和查找和解压缩指令
linux·笔记·学习
yeyuningzi41 分钟前
Debian 12环境里部署nginx步骤记录
linux·运维·服务器
上辈子杀猪这辈子学IT1 小时前
【Zookeeper集群搭建】安装zookeeper、zookeeper集群配置、zookeeper启动与关闭、zookeeper的shell命令操作
linux·hadoop·zookeeper·centos·debian
minihuabei1 小时前
linux centos 安装redis
linux·redis·centos
lldhsds2 小时前
书生大模型实战营第四期-入门岛-1. Linux前置基础
linux
wowocpp2 小时前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
山河君3 小时前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别
鹏大师运维3 小时前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源3 小时前
Elasticsearch-linux环境部署
linux·elasticsearch