文章目录
一、磁盘与文件系统管理
1.磁盘与目录容量
df -h 显示已经挂载的分区列表
du -sh 显示当前文件夹总大小(以人类易读方式为单位Kb、Mb、Gb)
du -h --max-depth=1 显示当前文件夹下各子文件夹大小
du -h --max-depth=2 比上条指令递归深度又多了一层
2.硬链接与软链接
- 使用硬链接创建的文件与源文件共用一个inode号(即新建硬链接时,inode会加1),两个文件信息(包括属性、权限与内容)一模一样,并且新建的硬链接不会改变当前占用空间的大小,删除任何一个文件,都不会影响到另一个文件的访问。
- 软链接也即符号链接,类似于windows下的快捷方式。新建的软链接会重新有一个inode号,并且会占用空间。如果源文件删除,则软链接的文件也无法访问。
- 由于硬链接的使用存在限制,包括不能跨filesystem、不能link目录,因此没有软链接应用广泛。
link -[sf] 源文件 目标文件
-s: 如果不加参数,则默认创建硬链接,如果加-s表示创建符号链接
-f: 如果目标文件存在时,就主动将目标文件移除后再建立
3.磁盘的分区、格式化与挂载
lsblk
列出所有磁盘与分区信息
其中nvmeOn1为固态硬盘,sda为机械硬盘。gdisk、fdisk
磁盘分区工具
==MBR分区表使用fdisk分区,GPT分区表使用gdisk分区。==两个命令用法类似,下面以gdisk说明:
4.磁盘格式化
分区完毕之后,要进行文件系统的格式化。
mkfs.xfs 分区名 将分区格式化为xfs格式
mkfs.ext4 分区名 将分区格式化为ext4格式
mkfs -t 文件格式 分区名 将分区格式化为指定文件格式
5.文件系统挂载与卸载
mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在
umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出
fuser -km /mnt/hda2 当设备繁忙时强制卸载
umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用
mount /dev/fd0 /mnt/floppy 挂载一个软盘
mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件
mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统
mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享
二.压缩、打包与备份
1.压缩与打包
linux中的压缩文件扩展名:
压缩/解压缩命令:
其中,选项第一个字母表示使用的压缩/解压缩格式。-j表示使用bzip2;-z表示使用gzip;-J表示使用xz。
2.备份
文件的备份包括具体文件的备份和整个文件系统的备份,上述的cp、tar命令注重对具体文件的备份,一般用于备份用户比较重要的资料文件;而dump命令向于考虑备份整个文件系统。
文件的备份策略包括完全备份、增量备份和更新备份。其中,每隔一定时间对系统进行一次全面的备份,这样会导致在备份间出现了数据丢失或破坏,但可以使用上一次的备份数据将系统恢复到上一次备份时的状态。但是,这样每次的工作量相当大,而要很大的存储介质空间。
dump [选项] [目录或文件系统]
dump命令可以将目录或整个文件系统备份至指定的设备中,或备份成一个大文件。
具体可以参考链接
restore -if /tmp/home0.bak 还原一个交互式备份
dd
也是一个备份工具
三、RPM包与YUM软件包升级器(centos/redhat类似系统)
1.rpm
rpm -ivh package_name 安装软件包,必须先安装依赖包
-i: install的意思
-v: 查看更细的安装信息
-h:显示安装进度
rpm -Uvh package_name 更新软件包,如果包没有安装,则先安装
rpm -Fvh package_name 更新软件包,如果包没有安装,则不更新,不安装
rpm -qa 列出系统中所有安装的rpm包
rpm -q 软件名 查询该软件有没有被安装
rpm -ql 软件名 列出已安装软件所有的文件与目录所在文件名
rpm -qc 软件名 列出已安装软件所有配置文件
rpm -qi 软件名 列出已安装软件详细信息,包括开发商、版本等
rpm -qR 软件名 列出与该软件有关的相依赖的文件
rpm -V 软件名 若该文件所包含的文件被改动过,才会显示出来
rpm -Va 软件名 列出当前系统上所有可能被更动过的文件
rpm -Vf 系统上的某个文件 列出某个文件是否被更动过
rpm -Vp 某个RPM文件名 列出该软件内可能被更动过的文件
rpm -e package_name 删除包。注意:要先删除上层的包,再删除底层的依赖包,否则会发生
依赖错误而导致没法删除。
2.yum
yum install package_name 下载并安装一个rpm包
yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update package_name.rpm 更新当前系统中所有安装的rpm包
yum update package_name 更新一个rpm包
yum remove package_name 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search package_name 在rpm仓库中搜寻软件包
yum clean packages 清理rpm缓存删除下载的包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件
四、DEM包与APT软件包升级器(debian/ubuntu类似系统)
1.dpkg
dpkg -i package.deb 安装/更新一个 deb 包
dpkg -r package_name 从系统删除一个 deb 包 (保留配置)
dpkg -P package_name 删除一个包(不保留配置)
dpkg -l 显示系统中所有已经安装的 deb 包
dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表(即查看安装到什么位置)
dpkg -s package_name 获得已经安装在系统中一个特殊包的信息
dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表
dpkg -S /bin/ping 确认所给的文件由哪个deb包提供
2.apt
apt-get install package_name 安装/更新一个 deb 包
apt-cdrom install package_name 从光盘安装/更新一个 deb 包
apt-get update 升级列表中的软件包
apt-get upgrade 升级所有已安装的软件
apt-get remove package_name 从系统删除一个deb包 (保留配置)
apt-get remove --purge package_name 删除一个包(不保留配置)
apt-get check 确认依赖的软件仓库正确
apt-get clean 从下载的软件包中清理缓存
apt-cache search searched-package 返回包含所要搜索字符串的软件包名称