目录
3、查看当前Linux系统有多少用户cat /etc/passwd
一、安装环境
VMware:下载 VMware Workstation Pro | CN
centOS 7:Index of /CentOS/7.9.2009/isos/x86_64/
二、基础篇
2.1 文件系统
2.1.1 bin目录
存放是可执行的二进制命令文件,普通用户可以执行
bin文件夹的外观和其他不一样,有一个外指的箭头
其实bin目录并不在根目录/下,鼠标右击选择‘属性’:
可以看到根目录下的bin其实是一个链接,它真正的位置是usr/bin, 可以去这个目录看下
可以看到usr下面确实存在一个bin文件夹。
同理其他文件夹有外指箭头的也都是一个链接
2.1.2 sbin
存放的是系统级的二进制命令文件,系统管理员才能够使用的命令
2.1.3 lib
存放的是系统和应用程序需要的一些共享库文件,不能随意删除
2.1.4 lib64
存放的是系统和应用程序一些特殊的64位的共享文件
2.1.5 usr
存储的是用户所需要的所有的应用程序和对应需要的文件数据
2.1.6 boot
存放系统启动所需的文件和核心文件,包括一些链接文件和镜像文件
2.1.7 dev
device 设备目录,存放所有设备的数据,每个设备都会映射对应文件,如cpu 硬盘disk等
2.1.8 etc
存放系统管理所需的配置文件和对应的子目录,如数据库相关的配置文件
2.1.9 home
Linux中每个用户(普通用户不是root管理员)自己的主目录,存放的是用户的个性化的数据和文件
2.1.10 root
存放系统超级用户(即root管理员)的主目录
2.1.11 opt
optional 可选目录,存放第三方软件包,如果需要安装额外的软件可以放在这个目录下
2.1.12 media
存放可移动媒体设备,如U盘 光驱等外接的媒体(其实就是外部存储)就挂载在media下,所以media就是外部可移动媒体设备的挂载点。
2.1.13 mnt
mount 也是外部移动存储设备的挂载点
2.1.14 proc
process 进程目录,是一个虚拟目录,相当于系统内存进程的一个映射文件目录,存放现有的硬件和进程信息。很重要的系统文件目录,不要随意删除内容
2.1.15 run
运行目录,存放的是当前系统运行以来的所有执行信息,是一个临时文件系统,系统重启就会被清空。最好不要动
2.1.16 srv
service 存放和系统服务相关的文件,不要动。
2.1.17 sys
system 存放系统硬件相关信息的文件,不要动
2.1.18 tmp
临时目录,存放临时需要存放的文件,可以删除腾出空间
2.1.19 var
可变目录,存放经常被修改的文件,一般存放日志文件
2.2 VIM编辑器
2.2.1 vim的3种模式及相互转换
命令模式下的命令:
退出vim编辑器 :q 回车
保存修改的内容 :w 回车
修改后:w 回车保存后,如果需要撤回刚才的修改 点击u
保存并退出编辑器 :wq 回车
vim xxx进入文件后,输入:set nu展示行号
输入:set nonu 就不再展示行号
2.2.2 一般模式
一般模式下 可以进行的操作:复制 粘贴 删除
1、对行操作
数字 p :在当前光标下一行粘贴 指定次数 复制内容
数字 yy :复制从当前光标这一行开始 n行 内容
数字 dd:删除从当前光标行开始 n行 内容
y$:复制从光标开始位置直到这一行末尾的全部内容(包括光标位置的字符)
y^:复制从这一行开头到当前光标位置之间的内容(不包括光标位置的字符)
d$:删除从光标开始位置直到这一行末尾的全部内容(包括光标位置的字符)
d^:删除从这一行开头到当前光标位置之间的内容(不包括光标位置的字符)
^:移动到当前行行头
$:移动到当前行行尾
2、对一个单词的操作
w:跳转到下一个单词,并且光标停留在单词的第一个字母
e:跳转到当前单词尾部(这里不考虑单词后面的空格),如果已经在一个单词的末尾字母,则会跳转到下一个单词的末尾字母
b:跳到当前单词的词头(这里不考虑单词后面的空格),如果已经在单词词头了,就跳到上一个单词的词头
yw:复制从当前光标开始到这个单词结束(包含光标停留位置的字母)
dw:删除从当前光标开始到这个单词结束(包含光标停留位置的字母),如果光标停留的位置不是单词的第一个字母那就不是完整删除这个单词,每个单词后面都有一个空格,复制yw、删除dw时也会包含最后面那个空格
3、对单个字符的操作
x:剪切光标所在字符
X:剪切当前光标左侧的一个字符
r:按一次r选中当前光标所在字符,表示要替换它,再按一次r会把上一次剪切的那个字符粘贴在这里;或者不按第二次r直接输入一个字符进行替换
R:按一次R表示要替换从当前光标开始到行末尾的字符,之后可以自行输入内容,按Esc退出替换模式
4、整页操作
1+G:移动到整个文件的头部
H:移动到当前可视页第一行的头部
gg:移动到整个文件的头部
G:移动到整个文件的尾部
L:移动到当前可视页最后一行的头部
数字+G:移动到指定行的行头
2.2.3 编辑模式
2.2.4 命令模式
:%s/old/new/g 这个命令很常用
/要查找的内容 :查找指定内容并高亮突出,默认定位在从当前光标行向下查找匹配到的内容,按n向下查找,按N向上查找。
比如在27行输入/net,匹配的有 28、30行,则默认定位在30行的那个匹配内容上。
2.3 网络配置
2.3.1 网络连接测试
测试虚拟机和主机网络是否互通:
1、在Windows中打开cmd输入ipconfig命令,拿到主机IP
2、在虚拟机中打开终端 输入ping 主机IP
3、获取虚拟机IP的方法
1)系统工具——设置——网络——有线(设置)查看虚拟机IP
2)终端输入ifconfig
第一个是虚拟机所处的局域网,名字ens33是Linux创建的
第二个是服务器的IP
第三个是Linux又创建的一个虚拟网络,可用于接入其他虚拟设备,相当于主机里面套虚拟机,虚拟机里面又可以套虚拟机
4、去主机 打开cmd 输入:ping 虚拟机IP
至此主机和虚拟机的网络是互通的。
2.3.2 网络连接模式
在查看电脑的网络时,看到2个VMware的虚拟网络
是什么意思 干什么用的呢
虚拟机的IP是:192.168.253.130 可以看下这2个网络的状态:
,
在虚拟机的终端验证下网络是否能连通,发现连通是ok的
在VMware点击虚拟机名称 右击选中【设置】
可以看到我们之前设置的网路连接模式是NAT模式
也可以在VMware总点击【编辑】——【虚拟网络编辑器】查看
最最重要!!!:保证以下红框内ip前3位一致 不然你的虚拟机就可能连不上物理主机和网络了
1)物理主机VMnet8 右击——状态——详细信息
2)虚拟机
编辑——虚拟网络编辑器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
如果都做了 花还是不行,改下网关和DNS的最后一位数字,重启网络服务,试试物理主机 虚拟机 外网是否能连通
2.3.3 修改静态IP
把虚拟机的IP修改为固定的,当前使用的协议是dhcp 也就是动态分配IP
进入以太网配置文件:vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改IP配置协议
添加IP、网关和域名解析器
其他内容不用修改。
修改完成后需要重启网络服务:service network restart
之后输入ifconfig命令查看下虚拟机IP是否修改成功。
至此虚拟机的IP修改完成。
在主机的cmd中验证网络是否可用:
在虚拟机终端验证是否可以连接主机
验证虚拟机是否可以连接外网
可以看到虚拟机向外连接网络是没有问题的,主机连接虚拟机也是没问题的。
修改完成如果发现有ping不通的问题,可以按照如下步骤进行检查:
2.3.4 配置主机名
查看虚拟机主机名:hostname命令
修改虚拟机主机名:vim /etc/hostname
需改完成后需要重启虚拟机才能生效。
如果感觉重启虚拟机费时间,可以用如下方式:
查看虚拟主机相关信息:hostnamectl
设置新的虚拟主机名:hostnamectl set-hostname newname
再次查看虚拟主机名发现已经修改了 ,只是前面显示的还是之前的名字
使用hostnamectl查看发现也已经生效了。
此时重新打开一个终端就会发现前面显示的就是最新的虚拟主机名了。
修改虚拟主机名后还需要修改hostname和IP的映射文件。
先在虚拟机中修改映射文件:
复制新增的hadoop100~104 到物理机主机的映射文件
win10修改后不能直接保存,先另存为hosts.txt,之后删除文件后缀并把文件移动到etc目录下替换即可。
之后再物理主机cmd中ping以下hadoop100看是否可以连接
2.4 远程登录
Xshell 用于远程登录Linux服务器
Xftp7 用于远程传输文件
2.5 系统管理
2.5.1 Linux服务管理
前面虚拟机IP静态化中,修改完IP配置后需要执行service network restart命令重启网络服务,
其中service是一个命令,可以在 /usr/sbin/ 中找到这个service文件
先来理解概念:
1、进程:一个正在执行的程序或命令 process,如ls cd等命令
2、服务:启动之后一直存在、常驻内存的进程 service,如网络服务
Linux服务启动的时候需要很多服务支撑,一般在控制台是看不到这些服务的启动的,一般都是后台启动,系统运行期间这些服务会一直常驻内存,直到关闭系统这些服务才会关闭,这些服务统称为系统服务,执行这些服务的
进程就称为 守护进程。
1、CentOS 7 语法
systemctl start | stop | restart | status 服务名
ctl 其实是control的简写
在/usr/lib/systemd/system下面查看系统都有哪些服务
在CentOS7里使用NetworkManager服务替换了CentOS6里的network服务,可以通过命令:systemctl status network看下服务状态
使用systemctl status NetworkManager 看下服务状态
对于network和NetworkManager都是active状态时,肯会出现以下意想不到的问题,所以最好还是把其中一个停掉,因为目前使用的是CentOS7 所以保留NetworkManager,停掉network
之后如果看到虚拟机右上角的
消失了,只需要在终端重启下NetworkManager即可,之后ping www.baidu.com验证下是否可以联网即可
还可以在物理主机cmd中验证是否可以连接虚拟机ping hadoop100
2.5.2 系统运行级别
1、开机自启动设置
在Linux系统终端输入setup 出现选择窗口
选择 系统服务 回车
每个服务名前面都有一个中括号,里面有的有星号有的没有
有星号就表示这个服务是开机自启动的
2、查看当前Linux系统的运行级别
查看当前Linux系统的运行级别:systemctl get-default
更改Linux系统的运行级别:systemctl set-default multi-user.target
如果是CentOS6,查看Linux系统的运行级别,vim /etc/inittab 可以查看
3、切换Linux系统运行级别
如果想切换运行级别(当前是5切换为3):init 3
还可以使用快捷键:ctrl alt F2 切换为级别3 ctrl alt F1 切换回级别5
2.5.3 配置服务开机启动和关闭防火墙
1、 配置服务的自启动设置
CentOS6
chkconfig --list
可以看到这里只列出了system V 的服务,只有2个,里面的数字0 ~ 6指的就是在每个Linux系统级别下这个服务的自启动设置。
如果想关闭network服务的开机自启动,执行chkconfig network off
再次开启network 服务的开机自启动,执行chkconfig network on
指定某个Linux运行级别开启/关闭network的自启动,执行chkconfig --level 4 network on/off
CentOS7
查看服务的状态,执行systemctl status NetworkManager
第一个是当前服务的开机自启动设置是什么,第二个是系统默认的这个服务的开机自启动设置时什么,可以看到现在NetworkManager现在的开机自启动是开启(enable),并且NetworkManager服务的开机自启动设置也是开启(enable)。
关闭服务的开机自启动设置,执行 systemctl disable NetworkManager
开启服务的开机自启动设置,执行systemctl enable NetworkManager
查看全部服务的开机自启动设置:systectl list-unit-files
状态是static表示这个服务的启动依赖别的服务,所以部设置,只有当别额服务启动了这个才能启动。
2、 防火墙的开机自启动
先查看下防火墙服务的状态,执行systemctl status firewalld
可以卡到防火墙服务已开启active,并且当前的开机自启动设置是开启,系统默认的开机自启动也是开启,没有修改过。
关闭防火墙服务,执行systemctl stop firewalld
再次开启防火墙服务,systectl restart firewalld
关闭防火墙的开机自启动设置,执行systemctl disable firewalld
再次打开防火墙的开机自启动,执行systemctl enable firewalld
2.5.4 关机重启
1、shutdown
shutdown 等1分钟再关机
如果再1分钟内执行shutdown -c就可以取消关机操作
shutdown now 立刻关机
shutdown 数字x 在x分钟后关机
shutdown 15:28 制定了一个关机计划,在15:28:00关机
2、几种关机的命令
3、保险的关机操作
先sync保存缓冲区的数据到硬盘
然后执行shutdown或者poweroff
三、实操篇
3.1 shell命令整体介绍
3.1.1 man 命令
Manuel 简写
man 命令 可以查看这个命令的使用信息
如果这个命令是shell内嵌的命令,还需要加上-f 才能查看命令的使用
列出了关于这个命令解释的几个出处,数字1表示第一册,3tcl表示第3侧,1p中的p表示posix标准(基于Unix的可移植的软件开发标准协议)
使用man 1p cd 查看这个里面规定的cd的使用方法
3.1.2 type 命令
查看命令的类型,了解命令是内置的还是外调的
history命令——c查看使用过的命令历史
3.1.3 help 命令
使用help查看命令的使用文档可以看到比较简洁且重点的内容,方便我们快速学习如何使用命令。
help 命令名 ——只能查看shell内置命令的使用方法,而且解释文案都是英文的
查看外调的命令会提示没有这个命令
如果想使用help查看外调的命令,可以执行 命令名 --help
3.1.4 常用快捷键
3.2 文件&目录操作命令
3.2.1 查看和切换工作目录
1、pwd命令
print working directory 显示当前目录的绝对路径
2、cd
change directory
cd 绝对路径
cd 相对路径
使用cd - 在2个路径之间切换,cd - 就是回到上一次所在目录
回到当前用户主目录 使用cd
3.2.2 ls列出目录内容
list 简写
ls -a 显示全部的文件(包括隐藏文件和隐藏文件夹)
ls -l 按照行展示文件信息
d表示文件夹 -表示文件
ls -l 和ll 实现效果一样
3.2.3 创建和删除目录
1、mkdir 创建文件夹
mkdir 文件夹名
同时创建多个文件夹,如果这几个文件夹是父子关系那么需要加-p参数,否则会报错
在指定目录创建文件夹
2、rmdir 删除目录
如果文件夹内非空 删除需要连带其内部文件,可以先清空里面的内容在删除文件夹,也可以使用rmdir -p 目标文件夹及其子目录
需要先清空文件夹 才能继续删除文件夹
可以使用rmdir -p a/c/ 是因为c是最里层的文件夹且c里面没有任何的文件,如果c里有文件就不能删除成功了
保险起见还是先进入里面一层一层的删除,最后在删除最外层的文件夹。
3.2.4 touch创建文件
touch 文件名 创建一个空文件
如果创建文件时没有指定文件类型,默认创建的是文本文件
打开文件随便输入内容,使用file 文件名可以查看这个文件的类型
除了touch还可以使用vim 文件名创建文件,这个时候会自动打开vim编辑器,不管是否输入内容,执行保存退出(:wq)这个文件就创建成功了,如果是执行:q 或者:q! 就不会创建文件。
3.2.5 cp复制文件或文件夹
copy的简写
cp target address 把target复制到address里面,address可以是目录也可以是文件
如果不想Linux总是提醒确认可以使用 \cp
很多命令都是使用的别名,可以使用alias看下Linux系统中有哪些命令有别名
3.2.6 rm 删除和mv移动文件/目录
1、rm删除文件和目录
删除文件夹 如果文件夹里面有内容,Linux会依次询问是否要删除文件夹内部的每个文件,等文件夹内全部删除完 最后再询问是否要删除这个文件夹,比较谨慎 但很麻烦
使用-f可以强制删除,Linux不会再询问,但是要小心使用
2、mv移动文件和目录
移动并且重命名
只是重命名
只是移动
3.2.7 查看文件
1、cat
catch的简写
2、more
3、less
G:跳到文件末尾
g:跳到文件开头
3.2.8 控制台显示和输出重定向
1、echo输出到控制台
使用引号后Linux会按照原样输出到终端
查看Linux系统有哪些环境变量:echo $ 按tab键
查看指定环境变量的值:echo 环境变量
2、输出重定向 > 和 追加 >>
追加内容到文件末尾
直接覆盖文件内容
3.2.9 监控文件变化
1、head显示文件头部内容
2、tail 输出文件尾部内容
使用tail -f 文件名
之后按ctrl s 可以暂停实时追踪
再按ctrl q 可以恢复追踪
ctrl c 退出
查看文件info的索引号 ls -i info
使用tail -f info进行文件内容实时追踪的时候使用的是文件的inode编号,类似索引
如果使用vim info打开文件进行编辑,之后再查看下info的inode编号可以发现和之前的不一样了,所以如果是通过vim进行文件的修改,tail -f info是追踪不到的,且即使:wq(关闭保存)后再使用echo进行内容追加fail也追踪不到了
3.2.10 软链接ln
1、创建软链接
给文件创建软连接:ln -s info test
是l开头,并且会显示连接到哪里
对软连接操作其实就是对原文件操作,包括做任何修改
给目录创建软连接:
如果想要直到当前内容的实际物理位置可以使用pwd -P
如果想进入实际的物理目录不是软连接目录,可以使用cd -P 软连接名
2、删除软链接
rm -rf 软链接名
不管这个软链接对应的是文件还是目录,都使用软链接名,后面不要加/
对于目录软链接如果后面加/删除的不是软链接而是软链接下面的内容,就会导致原来目录下的内容被清空。
如果把原始文件/目录删除了,软链接显示会和之前不一样
这里的a会一闪一闪的
且再进入或者查看软链接时tab补齐功能就不能用了,手动输入软链接名回车,Linux就会提示找不到目标文件
3、硬链接
硬链接创建: ln 文件 链接名
软链接有自己的数据存储块,也就是有自己的inode,里面存储了链接其他文件/目录的路径
硬链接没有自己的数据块,直接指向了原始文件的inode
一般查看系统的链接数看的是硬链接的数量。
硬链接指向的文件的inode节点,所以只能针对文件创建硬链接,不能给目录创建硬链接。硬链接很少使用。
3.2.11 history查看历史命令
显示全部使用过的命令
显示最近使用的10条命令
查看第250条命令和它获取的结果内容
删除历史使用过的命令history -c