2、文件系统命令
2.1 虚拟目录树
虚拟目录树的各个目录用途
2.2 df
查看系统挂载的磁盘情况
[root@node1 ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 devtmpfs 485816 0 485816 0% /dev tmpfs 497852 0 497852 0% /dev/shm tmpfs 497852 7788 490064 2% /run tmpfs 497852 0 497852 0% /sys/fs/cgroup /dev/mapper/centos-root 17811456 146482816346628 9% / /dev/sda1 1038336 140368 897968 14% /boot tmpfs 99572 0 99572 0% /run/user/0
以人能看懂的格式显示
[root@node1 ~]# df -h 文件系统 容量 已用 可用 已用%挂载点 devtmpfs 475M 0 475M 0% /dev tmpfs 487M 0 487M 0% /dev/shm tmpfs 487M 7.7M 479M 2% /run tmpfs 487M 0 487M 0% /sys/fs/cgroup /dev/mapper/centos-root 17G 1.4G 16G 9% / /dev/sda1 1014M 138M 877M 14% /boot tmpfs 98M 0 98M 0% /run/user/0 #列出根目录下的内容 [root@node1 ~]# ls / #进到boot目录 [root@node1 ~]# cd /boot
在linux中用到了虚拟目录树,它的存在就是为了解耦应用和底层存储。
2.3 mount
将光驱挂载到/mnt目录:
[root@node1 ~]# mount /dev/cdrom /mnt #进入到/mnt目录 [root@node1 ~]# cd /mnt #查看磁盘分区的挂载情况: [root@node1 mnt]# df -h
2.4 umount
卸载掉挂载的分区/mnt
[root@node1 mnt]# umount /mnt
注意卸载/mnt时,当前目录不能在/mnt下面,否则报出如下图所示 提示:
#再次查看磁盘分区的挂载情况: [root@node1 ~]# df -h #重新挂载 [root@node1 ~]# mount /dev/cdrom /mnt #再次查看 [root@node1 ~]# df -h
3、系统操作命令
3.1 du
du可以为目录递归地汇总每个FILE的磁盘使用情况。
• du:文件系统的磁盘使用量或是目录使用量
ᅳ a :列出所有的文件与目录容量
ᅳ h :以人们较易读的容量格式(G/M)显示 重要
ᅳ s :列出总量而已,而不列出每个各别的目录占用容量
ᅳ k :以 KBytes 列出容量显示
ᅳ m :以 MBytes 列出容量显示
[root@node1 ~]# cd /usr [root@node1 usr]# du ....... 0 ./etc 0 ./games 36 ./include/python2.7 36 ./include 24 ./libexec/getconf 16 ./libexec/awk ....... #添加-s参数可以生成指定目录的汇总信息,也就是共占用多大的磁盘空间 [root@node1 usr]# du -s ./ 1218820 ./ #添加-h参数可以显示为人类可以读懂的格式 [root@node1 usr]# du -sh ./ 1.2G ./ #将路径写成./*统计当前目录下每项内容占用的磁盘空间信息 [root@node1 usr]# du -sh ./* 61M ./bin 0 ./etc 0 ./games 36K ./include 695M ./lib 126M ./lib64 12M ./libexec 0 ./local 43M ./sbin 256M ./share 0 ./src 0 ./tmp
查看/etc目录下共占用多大磁盘空间
[root@node1 usr]# du -sh /etc/ 32M /etc/
3.2 stat
stat file :显示文件的元数据
change和modify的不同
modify指的是文件内容被修改的时间
change表示文件元数据被修改的时间
3.3 history
查看历史命令
[root@node1 ~]# history 1 clear 2 pwd 3 hostname 4 vi /etc/hostname 5 vi /etc/hosts 6 ping node0 7 ping node1 ......
3.4 date
基本语法
date [OPTION]... [+FORMAT]
获取当前时间
案例演示:
[root@node1 ~]# date +%Y 2021 [root@node1 ~]# date +%m 08 [root@node1 ~]# date +%d 18 [root@node1 ~]# date +%Y%m%d 20210818 [root@node1 ~]# date +%Y%m%d%H:%M:%S 2021081809:24:08 #指定时间的格式中出现空格是需要使用 ''或""括起来 [root@node1 ~]# date +%Y%m%d %H:%M:%S date: 额外的操作数 "%H:%M:%S" Try 'date --help' for more information. [root@node1 ~]# date '+%Y%m%d %H:%M:%S' 20210818 09:25:01 [root@node1 ~]# date "+%Y%m%d %H:%M:%S" 20210818 09:26:43 [root@node1 ~]# date "+%Y-%m-%d %H:%M:%S" 2021-08-18 09:26:43
获取非当前时间
#显示昨天的时间 [root@node1 ~]# date -d '1 days ago' 2021年 08月 17日 星期二 09:28:02 CST #显示明天的时间 [root@node1 ~]# date -d '-1 days ago' 2021年 08月 19日 星期四 09:28:06 CST
设置系统时间
基本语法: date -s 字符串时间
[root@node1 ~]# date -s "2021-08-18 09:36:43"
扩展了解:cal显示日历
[root@node1 ~]# cal 八月 2021 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
3.5 进程相关命令
3.5.1 ps
可以通过命令查看系统内进程信息
进程查看命令
ps(process status) :将某个时间点的程序运作情况截取下来
选项和参数
a :和输入终端(terminal) 关联的所有 process,通常与x一起使用,列出完整信息。
x :后台进程,通常与 a 这个参数一起使用,可列出较完整信息
u :有效使用者 (effective user) 相关的 process
常用组合
ps aux 观察系统所有的程序数据 (常用)
3.5.2 kill
基本语法
kill [选项] 进程号 :通过进程号杀死进程(只会杀死进程号对应 的一个进程)
killall 进程名称 :通过进程名称杀死进程,也支持通配符(杀 死对应的一个或多个进程)
选项说明
[root@node1 ~]# tail -f /etc/profile & [1] 1267 [root@node1 ~]# ps aux|grep tail root 1267 0.0 0.0 108092 616 pts/0 S 09:38 0:00 tail -f /etc/profile root 1270 84.0 0.0 112824 976 pts/0 R+ 09:39 0:00 grep --color=auto tail [root@node1 ~]# kill -9 1267 [root@node1 ~]# ps aux|grep tail root 1272 0.0 0.0 112824 972 pts/0 S+ 09:39 0:00 grep --color=auto tail [1]+ 已杀死 tail -f /etc/profile #killall 演示 [root@node1 ~]# tail -f /etc/profile & [2] 1277 [root@node1 ~]# tail -f /etc/passwd & [3] 1278 [root@node1 ~]# tail -f /etc/group & [4] 1279 [root@node1 ~]# ps aux|grep tail root 1274 0.0 0.0 108092 616 pts/0 S 09:42 0:00 tail -f /etc/profile root 1277 0.0 0.0 108092 616 pts/0 S 09:42 0:00 tail -f /etc/profile root 1278 0.0 0.0 108092 616 pts/0 S 09:43 0:00 tail -f /etc/passwd root 1279 0.0 0.0 108092 616 pts/0 S 09:43 0:00 tail -f /etc/group root 1282 0.0 0.0 112824 976 pts/0 S+ 09:43 0:00 grep --color=auto tail [root@node1 ~]# killall tail -bash: killall: 未找到命令
centos7精简安装后,使用中发现没有killall命令,于是我们想到需要 安装killall:
[root@node1 ~]# yum install killall -y 已加载插件:fastestmirror ...... 没有可用软件包 killall。 错误:无须任何处理
这是因为对应的yum源上并没有一个名字为killall的安装包,而是给 我们提供了一个psmisc安装包,安装它之后killall便可以使用了,另 外pstree也是这样。
[root@node1 ~]# yum install psmisc -y 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: mirrors.163.com * updates: mirrors.163.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 psmisc.x86_64.0.22.20-17.el7 将被 安装 --> 解决依赖关系完成 ...... 已安装: psmisc.x86_64 0:22.20-17.el7 完毕! [root@node1 ~]# killall tail [1] 已终止 tail -f /etc/profile [2] 已终止 tail -f /etc/profile [3]- 已终止 tail -f /etc/passwd [root@node1 ~]# ps aux|grep tail root 1299 0.0 0.0 112824 972 pts/0 S+ 09:47 0:00 grep --color=auto tail [4]+ 已终止 tail -f /etc/group
3.5.4 top
基本命令
top [选项] [参数]
选项说明
操作说明
3.5.5 netstat
基本语法
netstat [选项]
选项说明
常用命令组合
netstat -anp :查看进程网络信息
netstat -nlp :查看网络端口号占用情况
netstat -anp |grep 进程号 :查看该进程网络信息
netstat -nlp | grep 端口号 :查看该网络端口号占用情况
注意:centos7简易版安装后不带netstat命令,需要进行手动安装
[root@node1 ~]# netstat -nlp -bash: netstat: 未找到命令 [root@node1 ~]# yum install net-tools -y
3.6 设置定时任务
基本语法
crontab [选项]
选项说明
实战:添加一个定时任务,每分钟记录一次系统当前时间。
[root@node2 ~]# crontab -l no crontab for root [root@node1 ~]# crontab -e */1 * * * * /bin/echo `date` >> /root/crontest.txt [root@node1 ~]# systemctl restart crond #重启 crond服务才会生效 [root@node2 ~]# crontab -l */1 * * * * /bin/echo `date` >> /root/crontest.txt
格式: * 命令
特定时间执行命令
查看定时任务的结果:
[root@node1 ~]# cat crontest.txt 2021年 08月 18日 星期三 11:01:01 CST 2021年 08月 18日 星期三 11:02:01 CST 2021年 08月 18日 星期三 11:03:02 CST 2021年 08月 18日 星期三 11:04:01 CST 2021年 08月 18日 星期三 11:05:01 CST 2021年 08月 18日 星期三 11:06:01 CST [root@node2 ~]# crontab -l */1 * * * * /bin/echo `date` >> /root/crontest.txt [root@node2 ~]# crontab -r [root@node2 ~]# crontab -l no crontab for root