常用Linux命令记录:磁盘占用、下载、解压缩

282 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

导语

Linux是最常见的服务器平台系统,笔者近期在使用过程中经常有一些常遇到的问题,特此记录,以备后续查找。

本次主要记录三个笔者最常用的需求:

  • 磁盘占用分析
  • 下载文件
  • 解压、压缩文件

Linux下查看各个用户的磁盘空间占用

在Linux系统中,我们可以使用如下

df -h

命令来查询磁盘剩余容量,例如:

(base) jxqi@han-server-01:~$ df -h
Filesystem                            Size  Used Avail Use% Mounted on
udev                                  126G     0  126G   0% /dev
tmpfs                                  26G  2.6M   26G   1% /run
/dev/mapper/han--server--01--vg-root  5.2T  4.9T   31G  99% /
tmpfs                                 126G  239M  126G   1% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
tmpfs                                 126G     0  126G   0% /sys/fs/cgroup
/dev/sda1                             511M  6.1M  505M   2% /boot/efi
tmpfs                                  26G     0   26G   0% /run/user/1009
tmpfs                                  26G     0   26G   0% /run/user/1006
tmpfs                                  26G     0   26G   0% /run/user/1010
tmpfs                                  26G     0   26G   0% /run/user/1012
tmpfs                                  26G     0   26G   0% /run/user/1007
tmpfs                                  26G     0   26G   0% /run/user/1002
tmpfs                                  26G     0   26G   0% /run/user/1008
tmpfs                                  26G     0   26G   0% /run/user/1001
tmpfs                                  26G     0   26G   0% /run/user/1013

该命令会列出所有挂载到这个服务器上的磁盘部分的总存储空间、已使用空间、剩余空间和使用率的情况。

如上显示可以看到,笔者所用服务器的当前磁盘总空间有5.2T,被占用了4.3T,还有711G的空间可以使用。

当磁盘被占用完全时,系统管理者需要找出是哪个用户过多的占用了磁盘,这时就需要分析/home目录下每一个用户的磁盘占用情况。

通常,我们可以使用(管理员账户使用sudo前缀)

du -h --max-depth=1

命令来进行查找,该命令的含义是查找当前目录下的各个目录及文件的大小,且只显示当前的一级子目录的大小。

使用该命令,我们可以清晰的看到每个用户的磁盘占用。

(base) hantek@han-server-01:/home$ sudo du -h --max-depth=1
279G    ./lzhou
193G    ./pychen
246G    ./jytang
26G     ./ycsong
4.3G    ./zhlin
470G    ./gryang
1.1T    ./jxqi
597G    ./zkli
13G     ./hantek
288G    ./xcpan
315G    ./zwhe
91G     ./yshuang
6.5G    ./yxwang
160G    ./htxue
16K     ./xhyin
1.3T    ./syhou
4.9T    .

可以看到,这里有两个用户的磁盘占用较高,都超过了1个T。我们也可以cd到相应的用户目录下使用

du -h --max-depth=1

命令来继续分析该用户目录下到底是哪个目录或文件占用硬盘较高,从而进行相应的删除和整理。

Linux下载文件

Linux下可以使用wget的方式非常方便的下载文件,使用格式为

wget [url]

例如,

wget https://www.python.org/ftp/python/3.10.5/python-3.10.5-macos11.pkg

可以下载python的MacOS安装包。

设置无限次重试的下载

在某次使用wget下载一个特别大的文件时(约22G),wget在下载过程中经常断开连接。

wget命令本身默认的重连次数是20次,但由于文件太大,重连20次大概只能下载到20G左右的进度,导致最终文件还是无法正常下载。此时,我们可以选择使用-t 参数来指定wget重连的最大次数,其使用格式如下:

wget [url] -t [num]

其中,[num]即重连的次数,比如可以设置50次。假如设置num=0,则wget将进行无限次的重新连接,从而完成下载。

Linux下解压文件

这里主要记录对zip和tar文件的压缩和解压缩命令。

zip文件

对于zip文件,其压缩和解压命令如下:

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

tar文件

对于tar文件,其压缩和解压命令如下:

解包:
tar xvf FileName.tar
打包:
tar cvf FileName.tar DirName

注意:对于tar文件,需要注意的是并没有untar这个命令!

总结

以上记录了笔者在最近的项目实践中用到很频繁的几个Linux命令,后续会继续添加更多的常用命令,敬请期待。

参考

  1. linux下解压命令大全
  2. wget命令详解