携手创作,共同成长!这是我参与「掘金日新计划 · 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命令,后续会继续添加更多的常用命令,敬请期待。