磁盘管理

目录结构 tree

tree /xxx 查看 xxx 目录下递归子目录的所有内容,需要 yum 下载。

文件大小 du

du disk usage,可以查看磁盘使用情况。

du -ah /xxx 查看目录下所有文件大小情况。

du -sh /xxx 查看目录下文件总大小

du -ah --max-depth=n 查看目录下 n 层的文件大小情况

磁盘空间 df

df disk free 查看当前机器的磁盘空间,剩余量,挂载位置等等。

df -h -h 是 human 的意思,可以让数据方便易懂。

1
2
3
4
5
6
7
8
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 32K 919M 1% /dev/shm
tmpfs 919M 17M 903M 2% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/vda1 50G 4.1G 43G 9% /
tmpfs 184M 0 184M 0% /run/user/0
tmpfs 184M 0 184M 0% /run/user/1001

这里的 /dev.vdal 是挂载的硬盘。 tmpfs 是 temporary file system 的缩写,指的是 内存 和 虚拟内存。devtmpfs 指的是基于内存的文件系统,用来加快系统速度。

内存空间 free

free -h 查看内存和虚拟内存空间使用情况。

1
2
3
              total        used        free      shared  buff/cache   available
Mem: 1.8G 357M 233M 24M 1.2G 1.2G
Swap: 0B 0B 0B

设备挂载查看 lsblk

lsblk list block 表示展示块设备,也就是挂载的设备。

lsblk -f 详细展示信息。

1
2
3
4
5
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 16.5M 0 rom
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
# 硬盘 vda 的第一个也是唯一一个分区,vda1,挂载到 / 目录。

sr0 指的是 scsi rom 0,是设备中存在的一块光盘。

vda 表示 visual disk A 第一块虚拟硬盘,B 表示第二块。也可能会遇到 sda ,s 表示 sata 接口。

设备挂载/卸载 mount/umount

挂在之前需要查看 lsblk 看看是否存在为挂载设备,如果有可以挂载。

mount 设备地址 挂载地址 选项有很多,设备地址一般在 /dev 下面,挂在地址一般设置再 /mnt 目录下。

mount 设备地址/挂载地址 取消挂载。

比如 mount /dev/cdrom /mnt/cdrom 就是将设备 cdrom 挂载到 mnt 文件夹下面,然后就可以访问设备了。然后 umount /mnt/cdrom 解除挂载。


如果要实现设备开机自动挂载,在 /etc/fstab file system table 中添加设备即可。

磁盘分区 fdisk

fdisk -l list 展示磁盘分区信息,内容非常详细。

当插入一块新的硬盘的时候,需要重启计算机,然后才能看到此硬盘。第一块硬盘结尾是 a,第二块是 b …。硬盘不能够直接被挂载,能够被挂载访问的是硬盘的分区。

分区过程:

  1. fdisk /dev/sdb 对 sdb 新硬盘进行分区管理

  2. 输入 m 查看帮助。输入 n 进行分区,没有特殊要求一路回车,有特殊要求就研究一下。默认新的分区为 sdb1 设备,表示第一个分区。

  3. 分完之后输入 w 保存修改。然后就能在 fdisk 中看到分区,但是看不到文件系统信息。

  4. 然后对新的硬盘分区进行格式化,赋予文件系统。使用 mkfs make file system 命令: mksf /dev/sdb1 使用的是默认的 ext2 系统,我们可以用 -t ext4 指定最新的文件系统类型。

  5. 分区完之后就可以被 Linux 识别访问了,这个时候将硬盘分区挂载到想要挂载的目录即可。

进程管理

查看进程 ps

ps process status,查看进程状态。ps aux 显示所有进程详细信息,ps -ef 显示进程的父子关系。

命令返回内容。

1
2
3
4
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root 1 0.0 0.2 125664 3956 ? Ss Jul19 2:42 /usr/lib/systemd/systemd --switched-root --system --desroot 2 0.0 0.0 0 0 ? S Jul19 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< Jul19 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S Jul19 1:41 [ksoftirqd/0]

USER:该进程是由哪个用户产生的;
PID:进程的 ID 号;
%CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ:该进程占用虚拟内存的大小,单位 KB;
RSS:该进程占用实际物理内存的大小,单位 KB;
TTY:该进程是在哪个终端中运行的。对于 CentOS 来说,tty1 是图形化终端,tty2-tty6 是本地的字符界面终端。pts/0-255 代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示、< 高优先级、N 低优先级。
START:该进程的启动时间;
TIME:该进程占用 CPU 的运算时间,注意不是系统时间;
COMMAND:产生此进程的命令名;

杀掉进程 kill

kill 进程号 终止进程。kill -9 进程号 强行终止进程。

进程启动树 pstree

pstree -pu p 是 PID,u 是 user。表示 pstree 额外显示进程的 PID 和 User。

如果进程的所有者 User 和父进程相同,则不会显示 User ,不同才会显示。

监控进程状态 top

top [选项] 返回实时的进程状态。


参数:

  1. -d 秒数 指定 top 命令每隔几秒更新。默认是 3 秒在 top 命令的交互模式当
    中可以执行的命令:
  2. -i 使 top 不显示任何闲置或者僵死进程。
  3. -p 通过指定监控进程 ID 来仅仅监控某个进程的状态。

操作:(直接摁字母)

  1. P 以 CPU 使用率排序,默认就是此项
  2. M 以内存的使用率排序
  3. N 以 PID 排序
  4. q 退出 top
  5. u 显示输入用户的进程
  6. k 杀掉指定进程,并发送信号 9(等效于 -9)

网络端口和进程 netstat

netstat -anp | grep 进程号 查看和进程使用的相关端口。

netstat -lnp | grep 端口号 查看端口占用情况。

参数里面 a 表示 all,所有的端口都显示,无论是否处于监听状态。l 表示 listen,只显示处于监听状态的端口,如果有返回值则被占用。np 是为了更好的显示,不显示别名,显示网路端口占用进程。

设置定时任务

借助于 crontab 命令,使用之前需要检查负责执行此命令的服务是否在运行:systemctl restart crond

-e 编辑 crontab 定时任务
-l 查询 crontab 任务
-r 删除当前用户所有的 crontab 任务

剩下的具体设置方法,建议看一些更加详细的博文。

软件管理

管理工具 RPM

RPM(RedHat Package Manager),RedHat软件包管理工具。这是一个 RPM 包的名称:Apache-1.3.23-11.i386.rpm

  • “apache” 软件名称
  • “1.3.23-11”软件的版本号,主版本和此版本
  • “i386”是软件所运行的硬件平台,Intel 32位处理器的统称
  • “rpm”文件扩展名,代表RPM包

此管理工具对应的命令是 rpm

查询 -q

rpm -qa query all,查询所有安装的应用。

rpm -qi 应用名 query information,查询应用的具体安装信息。

推荐使用 rpm -qa | grep 应用名 来判断是否安装某应用。

卸载 -e

rpm -e 应用名 erase,检查应用依赖后再卸载。

rpm -e --nodeps erase with no dependence,不检查依赖,直接卸载应用。

安装 -i

需要有一个完整的 RPM 包,才可以安装。

rpm -ivh 安装包路径 install 安装,vh 表示显示详细过程。

应用商店 yum

基于 rpm 的一个 下载安装 管理程序,会从默认的服务器下载对应的安装包。

  1. install 软件名 下载安装软件
  2. update 软件名 更新软件
  3. check-update 软件名 查询更新

指定连接下载 wget

全称是 web get,直接输入 wget 资源URL 就会下载到当前目录里面。如果要重命名下载好的文件,则:wget -O 新名字 资源URL