Linux笔记
1.Linux文件
linux系统中一切皆文件
Linux没有类似于Windows的盘符(C盘,D盘),目录结构展开类似于一颗树,而windows的目录结构展开类似于森林
linux目录结构
linux到不同层级是以/划分,而Windows是以\划分。
在ASCII码当中\是转义的意思,所有在代码编写的时候一般会在路径下使用两个反斜杠进行转义。
linux的目录是一种逻辑结构,并没有一定确切的物理位置
linux下的目录结构
bin目录:(binary)存放的是直接可以执行的常用命令(在bin目录右下角有个箭头,是一个链接指向usr/bin)
sbin目录:存放的系统管理员可以使用的超级命令(也是一个链接,指向usr/sbin)
lib目录: 库目录,存放系统和应用程序所需要的一些库文件,类似于Windows上的dll文件(动态链接库)
lib64目录:64位相关的一些库文件存放在这里
usr目录:存放用户的所有的应用程序和所需要的文件
usr目录下存在一个local目录,专门用于存放对当前用户单独的一些命令等
boot目录:引导启动的时候所需要的一些文件(千万别写数据到此目录)
dev目录:设备目录,管理我们的所有设备
etc目录:主要放置一些系统管理需要的配置文件和子目录(如数据库的配置文件)
home目录:每一个用户都有一个自己的主目录
root目录:系统超级管理员的目录
opt目录:可选目录,给第三方软件包留下的位置
media目录:识别一些可移动媒体的设备,作为可移动媒体设备的挂载点
mnt目录:也是一个挂载目录
proc目录:进程目录(虚拟目录),相当于我们系统内存进程的一个映射,存放的现有的
一些硬件和当前进程的一些信息(比较重要,最好不要动)
run目录:运行目录,存放当前系统运行以来的所有实时信息(重启后就没了)
srv目录:service目录,和系统服务相关的东西
sys目录:存放系统硬件信息相关的文件
tmp目录:临时目录的缩写,临时存储某些文件的地方(可以删除)
var目录:可变目录,存放经常被修改的那些文件(日志等)
2.VIM编辑器
VIM编辑器的三种不同模式
普通模式:
常用命令:
编辑模式:
常用命令:
指令模式:
在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、
离开 vi 、显示行号等动作是在此模式中达成的!(对文件整体进行操作
常用指令:
3.linux中进程与服务
进程与服务的基本概念
计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。
启动之后一只存在、常驻内存的进程,一般被称作“服务”(service)。
systemctl使用(centos7以后版本)
语法:systemctl start | stop | restart | status 服务名(centos6 service 服务名 start | stop |· restart | status)
查看服务的方法:/usr/lib/systemd/system
4.系统运行级别
centos6版本之前是基于SysV,启动的是init,由它来启动所有的服务。
chkconfig --list命令可以列举出SysV在各个运行级别的服务开关情况。
chkconfig --level 3 network off 命令表示关闭运行级别3的network服务
centos7版本及以后就被systemd取代了,对于init的优势在于,init只能单一启动,而systemd可以并行启动,
启动速度会快很多。
centos7以后配置开机是否自启动:systemctl enable/disable 服务名
查看所有服务是否自启动:systemctl list-unit-files
配置防火墙(firewalld):systemctl start/stop firewalld.service(开启/关闭防火墙)
sytemctl enable/disable firewalld.service(开启/关闭开机自启动)
运行级别
setup命令可以打开图形化界面进行服务是否开启设置
CentOS7 的运行级别简化为
multi-user.target 等价于原运行级别 3(多用户有网,无图形界面)
graphical.target 等价于原运行级别 5(多用户有网,有图形界面)
运行级别的查看与改动
查看当前运行级别
systemctl get-default
修改当前运行级别
systemctl set-default TARGET.target (这里 TARGET 取 multi-user 或者 graphical)
切换当前运行级别
init 运行级别
5.关机重启
1)shutdown [选项] 时间
选项 功能
-H 相当于--halt,停机
-r -r=reboot 重启
参数 功能
now 立刻关机
时间 等待多久后关机(时间单位是分钟)。
2)halt (功能描述:停机,关闭系统,但不断电)
3)poweroff (功能描述:关机,断电)
4)reboot (功能描述:就是重启,等同于 shutdown -r now)
5)sync (功能描述:将数据由内存同步到硬盘中)
Linux 系统中为了提高磁盘的读写效率,对磁盘采取了 “预读迟写”操作方式。当用户保存文件时,
Linux 核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时
再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数
据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用 sync 指令可以
立即将缓冲区的数据写入磁盘
6.常用基本命令
1.帮助命令
一部分基础功能的系统命令是直接内嵌在 shell 中的,系统加载启动之后会随着 shell
一起加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其它命令
被称为“外部命令”
如何查看是内置命令还是外部命令?type [命令]
1).外部命令帮助获取:man [命令或配置文件]或[命令或配置文件] --help
2).内部命令帮助获取:help [内部命令]或 man -f [命令]
2.通用命令
1)pwd:print working directory 打印工作目录
2)cd [参数]
3)ls:list 列出目录内容
选项 功能
-a 全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-l 长数据串列出,包含文件的属性与权限等等数据;(常用)等价于“ll”
3.目录操作命令
1.创建目录:mkdir [选项] 要创建的目录 (-p 创建多层目录)
2.删除目录: rmdir 要删除的空目录
4.文件操作命令
1.touch 文件名称(创建空文件)
2.cp [选项] source dest (功能描述:复制source文件到dest)
选项:-r 递归复制整个文件夹
强制覆盖不提示的方法:\cp
3.rm [选项] deleteFile (功能描述:递归删除目录中所有内容)
选项:
-r 递归删除目录中所有内容
-f 强制执行删除操作,而不提示用于进行确认。
-v 显示指令的详细执行过程
4.mv命令(实际上就是cp和rm一起完成的)
文件移动到文件:mv oldNameFile newNameFile (功能描述:重命名)
文件移动到目录: mv source_file target_directory (移动文件)
目录移动到目录:mv source_directory target_directory
这个就要分两种情况:
-如果target_directory不存在,这就相当于目录重全名。
-如果target_directory存在,就会把整个 source_directory 目录移动到 target_directory 目录中,
相当于剪切整个目录,然后粘贴。
5.查看文件的命令
1)cat命令:cat [选项] 要查看的文件(-n 显示所有行的行号,包括空行)
一般查看比较小的文件,一屏幕能显示全的。
2)more命令:more 要查看的文件(more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式
按页显示文本文件的内容。)
空白键 (space) 代表向下翻一页;
Enter 代表向下翻『一行』;
q 代表立刻离开 more ,不再显示该文件内容。
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
3)less命令:less 要查看的文件
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加
强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之
后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
空白键 向下翻动一页;
[pagedown] 向下翻动一页
[pageup] 向上翻动一页;
/字串 向下搜寻『字串』的功能;n:向下查找;N:向上查找;
?字串 向上搜寻『字串』的功能;n:向上查找;N:向下查找;
q 离开 less 这个程序;
5.控制台输出和输出重定向命令
1).echo [选项] [输出内容](输出内容到控制台)
选项:-e:支持反斜线控制的字符转换
控制字符:\\ 输出\本身 \n 换行符 \t 制表符,也就是 Tab 键
2).> 输出重定向和 >> 追加
(1)ls -l > 文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写)
(2)ls -al >> 文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)
(3)cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
(4)echo “内容” >> 文件(功能描述:将内容追加到文件的末尾)
cs cq
6.head,tail命令以及监控文件变化命令
1)head 文件 (功能描述:查看文件头10行内容)
head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
2)tail 文件 (功能描述:查看文件尾部10行内容)
tail -n 5 文件 (功能描述:查看文件尾部5行内容,5可以是任意行数)
监控文件变化命令:tail -f 文件 (功能描述:实时追踪该文档的所有更新)
对某个文件操作此命令,相当于挂起一个服务,我们在另外一个终端对该文件进行尾部增加,是可以监控到的;
若直接进行覆盖则无法监测到,原因涉及到linux底层文件都具有一个索引节点号ls -i 文件命令可以查询出来,
进行覆盖后文件的索引节点号就发生了变化,自然就监控不到了。
7.ln软链接
/bin目录就是一个链接到/usr/bin目录下的软链接
软链接也称为符号链接,类似于 windows 里的快捷方式,有自己的数据块,主要存放
了链接其他文件的路径。
语法:ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
注意点:
删除软链接: rm -rf 软链接名,而不是 rm -rf 软链接名/
如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉
8.history
history -c 清空以前输入过的命令记录(干坏事记得清)
9.用户管理
1). useradd 用户名 (功能描述:添加新用户)
useradd -g 组名 用户名 (功能描述:添加新用户到某个组)
2). passwd 用户名 (功能描述:设置用户密码)
3). id 用户名(功能描述:查看用户是否存在)
4). su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称(功能描述:切换到用户并获得该用户的环境变量及执行权限)
5). who am i (功能描述:显示登录用户的用户名以及登陆时间)
whoami (功能描述:查看当前会话的用户)
6). sudo设置普通用户具有root权限
步骤如下
①修改配置文件 vim /etc/sudoers
修改 /etc/sudoers 文件,找到下面一行(91 行),在 root 下面添加一行,如下所示:
root ALL=(ALL) ALL
[需要添加的用户名] ALL=(ALL) ALL
②修改完毕,现在可以用 添加过后的帐号登录,然后用命令 sudo ,即可获得 root 权限进行
[tony@hadoop100 root]$ su tony
密码:
[tony@hadoop100 root]$ sudo ls
[sudo] tony 的密码:
anaconda-ks.cfg hello4 info initial-setup-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面
7).删除用户
(1)userdel 用户名 (功能描述:删除用户但保存用户主目录)
(2)userdel -r 用户名 (功能描述:用户和用户主目录,都删除)
8). 用户分组
usermod -g 用户组 用户名 (功能描述:修改用户组名)
groupadd 组名 (功能描述:新增组)
groupdel 组名 (功能描述:删除组)
groupmod -n 新组名 老组名 (功能描述:修改组名)
cat /etc/group 查看创建了哪些组
10.文件权限类
文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做
了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属
的用户和组。
1)从左到右十个字符表示(如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示)
①0 首位表示类型
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等
- 代表文件 d 代表目录 l 链接文档(link file);
②第1-3位确定属主(该文件的所有者)拥有该文件的权限。—User
③第4-6位确定属组(所有者的同组用户)拥有该文件的权限,—Group
④第7-9位确定其他用户拥有该文件的权限 —Other
2)rwx 作用文件和目录的不同解释
①作用到文件:
[ r ]代表可读(read): 可以读取,查看
[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前
提条件是对该文件所在的目录有写权限,才能删除该文件.
[ x ]代表可执行(execute):可以被系统执行
②作用到目录:
[ r ]代表可读(read): 可以读取,ls查看目录内容
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
[ x ]代表可执行(execute):可以进入该目录
3)文件基本属性介绍
①如果查看到是文件:链接数指的是硬链接个数。
②如果查看的是文件夹:链接数指的是子文件夹个数。一般文件夹自带两个子文件夹’.‘(本目录)和’…'(上级目录)
chmod改变权限
第一种方式变更权限
chmod [{ugoa}{±=}{rwx}] 文件或目录 (u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和))
第二种方式变更权限
chmod [mode=421 ] [文件或目录] (r=4 w=2 x=1 rwx=4+2+1=7)
修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。(-R 递归操作)
[root@hadoop101 ~]# chmod -R 777 xiyou/
chown 改变所有者
chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
chgrp 改变所属组
chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)
11.查找定位文件
1)find [搜索范围] [选项]
-name<查询方式> 按照指定的文件名查找模式查找文件
-user<用户名> 查找属于指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件,单位为:
b —— 块(512 字节) c —— 字节 w —— 字(2 字节) k —— 千字节 M —— 兆字节 G —— 吉字节
案例:[root@hadoop101 ~]find /home -size +204800
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
2)locate 搜索文件
locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给
定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确
度,管理员必须定期更新 locate 时刻。
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创
建 locate 数据库。
12.管道符"|" 和grep过滤查找
1)管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
2)grep 选项 查找内容 源文件(-n 显示匹配行及行号)
//单独使用
[root@hadoop100 ~]# grep -n boot initial-setup-ks.cfg
3:xconfig --startxonboot
12:# Run the Setup Agent on first boot
13:firstboot --enable
23:network --bootproto=dhcp --device=ens33 --ipv6=auto --activate
24:network --bootproto=dhcp --hostname=localhost.localdomain
31:# System bootloader configuration
32:bootloader --location=mbr --boot-drive=sda
38:part /boot --fstype="xfs" --ondisk=sda --size=1024
//配合管道符使用
[root@hadoop100 ~]# ls | grep /*.cfg
anaconda-ks.cfg
initial-setup-ks.cfg
13.压缩和解压类
1)gzip/gunzip 压缩
① gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)
② gunzip 文件.gz (功能描述:解压缩文件命令)
(1)只能压缩文件不能压缩目录
(2)不保留原来的文件
(3)同时多个文件会产生多个压缩包
2)zip/unzip 压缩
①zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
-r 压缩目录
②unzip [选项] XXX.zip (功能描述:解压缩文件)
-d<目录> 指定解压后文件的存放目录
zip 压缩命令在windows/linux都通用,可以压缩目录且保留源文件
3)tar 打包
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
-c 产生.tar 打包文件 -v 显示详细信息 -f 指定压缩后的文件名
-z 打包同时压缩 -x 解包.tar 文件 -C 解压到指定目录
(1)压缩多个文件
[root@hadoop100 ~]# tar -zxvf temp.tar.gz -C /tmp
wangz.txt
initial-setup-ks.cfg
info/
(2)解压到指定目录
[root@hadoop101 ~]# tar -xvf xiyou.tar.gz -C /opt
[root@hadoop101 ~]# ll /opt/
14.磁盘管理类
1)du查看目录占用空间大小
语法:du 目录/文件 (功能描述:显示目录下每个子目录的磁盘使用情况)
-h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-a 不仅查看子目录大小,还要包括文件
-c 显示所有的文件和子目录大小后,显示总和
-s 只显示总和
--max-depth=n 指定统计子目录的深度为第 n 层
示例:查看当前用户主目录占用的磁盘空间大小
[root@hadoop100 ~]# du -sh
84M
2)df查看磁盘使用情况
语法:df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)
-h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
示例:查看磁盘使用情况
[root@hadoop100 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 13M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda3 15G 5.0G 11G 33% /
/dev/sda1 1014M 169M 846M 17% /boot
tmpfs 394M 24K 394M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
3)lsblk查看设备挂载情况
语法:lsblk (功能描述:查看设备挂载情况)
-f 查看详细的设备挂载情况,显示文件系统信息
示例:查看设备挂载情况
[root@hadoop100 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs d80fe7f8-a09b-4c98-bae4-23fd49cb14a8 /boot
├─sda2 swap 2462f22c-d0d8-4ed1-927f-29f5fcc72c2a [SWAP]
└─sda3 xfs a9053ea1-5cc7-44ea-8fcf-69cbd1c13461 /
sr0 iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00 /run/media/root/CentOS 7 x86_64
4)mount/umount 挂载/卸载
对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根
目录、一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理
方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,
要载入的那个分区将使它的存储空间在这个目录下获得。
基本语法
mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)
umount 设备文件名或挂载点 (功能描述:卸载设备)
-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:
光盘或光盘镜像:iso9660 DOS fat16 文件系统:msdos
Windows 9x fat32 文件系统:vfat Windows NT ntfs 文件系统:ntfs
Mount Windows 文件网络共享:smbfs UNIX(LINUX) 文件网络共享:nfs
-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
device 要挂接(mount)的设备
dir 设备在系统上的挂接点(mount point)
示例:挂载光盘镜像
[root@hadoop100 root]# mount /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@hadoop100 root]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 4G 0 part [SWAP]
└─sda3 8:3 0 15G 0 part /
sr0 11:0 1 4.4G 0 rom /mnt/cdrom
示例:卸载光盘镜像文件
[root@hadoop100 ~]# umount /mnt/cdrom
5) fdisk分区
基本语法
fdisk -l (功能描述:查看磁盘分区详情)
fdisk 硬盘设备名 (功能描述:对新增硬盘进行分区操作)
#进行分区操作
[root@hadoop100 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x90f229bd 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x90f229bd
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@hadoop100 ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b0c3a
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 10487807 4194304 82 Linux swap / Solaris
/dev/sda3 10487808 41943039 15727616 83 Linux
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x90f229bd
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux
[root@hadoop100 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 4G 0 part [SWAP]
└─sda3 8:3 0 15G 0 part /
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sr0 11:0 1 4.4G 0 rom /run/media/root/CentOS 7 x86_64
#设置文件系统
[root@hadoop100 ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310656 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242624, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@hadoop100 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs d80fe7f8-a09b-4c98-bae4-23fd49cb14a8 /boot
├─sda2 swap 2462f22c-d0d8-4ed1-927f-29f5fcc72c2a [SWAP]
└─sda3 xfs a9053ea1-5cc7-44ea-8fcf-69cbd1c13461 /
sdb
└─sdb1 xfs 9413aa0f-61f3-4c0c-b0e4-d851661dbff5
sr0 iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00 /run/media/root/CentOS 7 x86_64
#设置挂载点
[root@hadoop100 ~]# mount /dev/sdb1 /home/zhang
[root@hadoop100 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs d80fe7f8-a09b-4c98-bae4-23fd49cb14a8 /boot
├─sda2 swap 2462f22c-d0d8-4ed1-927f-29f5fcc72c2a [SWAP]
└─sda3 xfs a9053ea1-5cc7-44ea-8fcf-69cbd1c13461 /
sdb
└─sdb1 xfs 9413aa0f-61f3-4c0c-b0e4-d851661dbff5 /home/zhang
sr0 iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00 /run/media/root/CentOS 7 x86_64
15.进程管理类
(1)ps查看当前系统进程状态(快照)
基本语法
ps aux | grep xxx (功能描述:查看系统中所有进程)
ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)
#两种方式的区别
[root@hadoop100 ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
...
...
[root@hadoop100 ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
...
...
1)ps aux 显示信息说明
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:多线程、+:前台显示
START:该进程的启动时间
TIME:该进程占用 CPU 的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
2)ps -ef 显示信息说明
UID:用户 ID
PID:进程 ID
PPID:父进程 ID
C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,
执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU 时间
CMD:启动进程所用的命令和参数
结论:如果想查看进程的 CPU 占用率和内存占用率,可以使用 aux;
如果想查看进程的父进程 ID 可以使用 ef;
(2)kill终止进程
kill [选项] 进程号 (功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
选项:-9 表示强迫进程立即停止
(3)top实时监控系统进程状态(动态)
top [选项]
选项:
-d 秒数 指定 top 命令每隔几秒更新。默认是 3 秒在 top 命令的交互模式当中可以执行的命令:
-i 使 top 不显示任何闲置或者僵死进程。
-p 通过指定监控进程 ID 来仅仅监控某个进程的状态。
操作:
P 以 CPU 使用率排序,默认就是此项
M 以内存的使用率排序
N 以 PID 排序
q 退出 top
u 筛选指定用户
k 终止进程选项
(4)pstree查看进程树
pstree [选项]
选项:-p 显示进程的 PID -u 显示进程的所属用户
(5)netstat显示网络状态和端口占用信息
基本语法:
netstat -anp | grep 进程号 (功能描述:查看该进程网络信息)
netstat –nlp | grep 端口号 (功能描述:查看网络端口号占用情况)
选项:
-a 显示所有正在监听(listen)和未监听的套接字(socket)
-n 拒绝显示别名,能显示数字的全部转化成数字
-l 仅列出在监听的服务状态
-p 表示显示哪个进程在调用
16.系统定时任务
基本语法:crontab [选项] (-e 编辑定时任务 -l查询定时任务 -r删除当前用户的定时任务)
#-e 编辑 crontab 定时任务
[root@hadoop100 ~]# crontab -e
进入 crontab 编辑界面。会打开 vim 编辑你的工作。
#第一个“*” 一小时当中的第几分钟 0-59
#第二个“*” 一天当中的第几小时 0-23
#第三个“*” 一个月当中的第几天 1-31
#第四个“*” 一年当中的第几月 1-12
#第五个“*” 一周当中的星期几 0-7 ( 0 和 7 都 代 表 星 期日)
* * * * * 执行的任务
#* 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。
#, 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的 8 点 0 分,12 点 0 分,16 点 0 分都执行一次命令
#- 代表连续的时间范围。比如“0 5 * * 1-6 命令”,代表在周一到周六的凌晨 5 点 0 分执行命令
#*/n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔 10 分钟就执行一遍命令
#-l 查询 crontab 任务
[root@hadoop100 ~]# crontab -l
*/1 * * * * echo "hello world" >> hello
#使用tail监控
[root@hadoop100 ~]# tail -f hello
hello,world
hello,world
hello world
hello world
#-r 删除当前用户所有的 crontab 任务
[root@hadoop100 ~]# crontab -r
[root@hadoop100 ~]# crontab -l
no crontab for root
况)
选项:
-a 显示所有正在监听(listen)和未监听的套接字(socket)
-n 拒绝显示别名,能显示数字的全部转化成数字
-l 仅列出在监听的服务状态
-p 表示显示哪个进程在调用
#### 16.系统定时任务
**基本语法**:crontab [选项] (-e 编辑定时任务 -l查询定时任务 -r删除当前用户的定时任务)
```shell
#-e 编辑 crontab 定时任务
[root@hadoop100 ~]# crontab -e
进入 crontab 编辑界面。会打开 vim 编辑你的工作。
#第一个“*” 一小时当中的第几分钟 0-59
#第二个“*” 一天当中的第几小时 0-23
#第三个“*” 一个月当中的第几天 1-31
#第四个“*” 一年当中的第几月 1-12
#第五个“*” 一周当中的星期几 0-7 ( 0 和 7 都 代 表 星 期日)
* * * * * 执行的任务
#* 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。
#, 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的 8 点 0 分,12 点 0 分,16 点 0 分都执行一次命令
#- 代表连续的时间范围。比如“0 5 * * 1-6 命令”,代表在周一到周六的凌晨 5 点 0 分执行命令
#*/n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔 10 分钟就执行一遍命令
#-l 查询 crontab 任务
[root@hadoop100 ~]# crontab -l
*/1 * * * * echo "hello world" >> hello
#使用tail监控
[root@hadoop100 ~]# tail -f hello
hello,world
hello,world
hello world
hello world
#-r 删除当前用户所有的 crontab 任务
[root@hadoop100 ~]# crontab -r
[root@hadoop100 ~]# crontab -l
no crontab for root