Linux笔记

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
  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值