修改yum源
先下载wget模块
通过xftp将CentOS7-Base-163.repo传入三个虚拟机的/etc/yum.repos.d目录下
在xshell下面这个框中对三台机器同时操作
yum clean all
yum makecache
1.输入以下命令进入yum源(软件仓库)的配置文件所在的目录
cd /etc/yum.repos.d/
2.把默认的yum源(软件仓库)的配置文件改名,即备份默认的yum源
mv CentOS-Base.repo CentOS-Base.repo.bak
3.使用wget命令下载阿里云的yum源配置文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo
4.把阿里云的yum源配置文件名改为CentOS-Base.repo
mv Centos-7.repo CentOS-Base.repo
5、清理缓存
yum clean all
6、生成缓存
yum makecache
看到镜像为aliyun即为成功。
远程操作及免密登录
1.修改主机映射关系
进入/etc目录下的hosts文件中
cd /etc --->vim hosts
修改hosts文件如下,保存并退出 注意:主机名和ip地址间用tab键
在etc目录下使用scp命令将hosts文件传入node1,node2的/etc/hosts中
scp ./hosts node1:/etc/hosts scp ./hosts node2:/etc/hosts
然后输入yes及密码即可。
这样三台主机就可以使用主机名直接传输交流了
2.免密
把公钥给其他主机
在复制的时候,需要输入两个东西:
a. yes
b. 目标主机的密码
思考:能不能不输入就直接拷贝过去呢?可以要做一个免密的过程
解决方案:设置免密(三者都要)
ssh-keygen -t rsa 然后四次回车(任意目录)
ssh-copy-id -i 主机名
三台主机全部都要执行,总共9次操作
ssh-copy-id -i master
ssh-copy-id -i node1
ssh-copy-id -i node2
然后输入yes 密码,即完成
可以在主机下使用ssh 主机名的操作看看是否可以免密登录其他主机来进行验证
linux基本命令
目录结构
1.创建文件
a. touch 文件的名字
b. vi 文件的名字(创建并打开文件)
c. vim 文件的名字(创建并打开文件)
vi与vim的区别:
vi打开一个文件是没有任何颜色的
vim打开一个文件有颜色标识的
而centOS7不自带vim命令,需要使用yum进行通过网络下载yum install vim
2.编辑文件
a. vim或者vi打开一个文件
b. 按下i进入编辑模式,编辑好数据后,一定要记得切换回英文输入法
c. 按下esc退出编辑模式
d. : wq(保存退出)/q!(不保存退出)
可能会遇到的问题:习惯了使用ctrl+s保存导致的问题
删除交换文件:rm -rf .a1.txt.swp
在不进入编辑模式下,按俩下d可以直接删除光标所在那一行
3.查看文件内容(不打开文件查看内容)
cat 文件的名字
文件合并
4.删除
rm -rf 要删除的文件/文件夹 递归强制删除(一定要注意,后面文件或者文件夹的路径)
5.复制/拷贝文件
cp 要复制文件的路径 目标路径
a. 复制一个文件不改名
举例:cp ./bigdata22/a1.txt ./bigdata22test/
b. 复制一个文件并改名
举例:cp ./bigdata22/a1.txt ./bigdata22test/aaa.txt
6.剪切/移动
mv 要移动文件的路径 目标路径
a. 移动文件不改名
mv ./b1.txt ../bigdata22test/
b.移动文件并改名
mv ./b1.txt ../bigdata22/bbb.txt
7.远程复制
a. 将要互相传文件的虚拟机进行开启
b. 使用scp命令进行复制
配置好远程登陆(即hosts映射之后可以直接使用scp 文件或目录 主机名:文件夹 的形式进行远程复制)
可以发现,在node1的/usr/local/soft目录下传入了b.txt文件
如果要复制的文件目录与当前路径一致,可以使用`pwd`直接引用
复制文件夹,使用scp -r
8.压缩,解压
tar -zxvf 解压
9.创建文件夹
mkdir 文件夹名称
mkdir -p 文件夹序列 #递归创建文件夹
(tab键自动补全,如果产生冲突,多输入几个字符)
10.tail命令(监控)
tail -f 等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
tail -F 等同于--follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
不打开文件:
echo 'abc'>>a.txt 把abc追加到a.txt文件中
echo 'abc'>a.txt 把abc覆盖到a.txt文件中
11.文件大小查看
查看内存使用情况 top
查看磁盘使用情况: df -h
12.查看时间
13.grep
匹配关键字
用户管理
1.用户组管理
① 用户组添加
命令:groupadd
作用:添加组
语法:# groupadd [参数选项 选项值] 用户组名
选项:-g:设置用户组ID 数字,如果不指定,则默认从1000 之后递增(1-999系统组)
提示:linux下我们执行完命令,有时候会没有任何提示,直接回到#提示符,这种状态表明,命令执行成功,没有报错。==“没有消息就是最好的消息”==
存储用户组信息的文件:/etc/group 使用cat命令,查看/etc/group文件
/etc/group文件结构:
特别说明:
1) 密码位x代表占位符,用户组可以设置密码,但是大部分情况下不需要设置
2)组内用户名:表示附加组是该组的用户名称。
② 用户组修改
命令:groupmod
语法:# groupmod [选项 选项值] 用户组名
选项:-g :gid缩写,设置一个自定义的用户组ID 数字
-n :name缩写,设置新的用户组的名称
③ 用户组删除
命令:groupdel
语法:# groupdel 用户组名
案例:删除uesr2组
2.用户管理
①useradd添加用户
命令:useradd
作用:添加用户
语法:# useradd [选项 选项的值] … 用户名
选项:-g:表示指定用户的用户主(主要)组,选项值可以是用户组ID,也可以是组名
-G:表示指定用户的用户附加(额外)组,选项值可以是用户组ID,也可以是组名
-u :uid,用户的id(用户的标识符),系统默认会从500 /或1000之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ 的自选靓号情况】
-c:comment,添加注释(选择是否添加)
-s:指定用户登入后所使用的shell 解释器,默认/bin/bash【专门的接待员】,如果不想让其登录,则可以设置为/sbin/nologin (重要)
-d:指定用户登入时的启始目录(家目录位置)
-n:取消建立以用户名称为名的群组(了解)
当我新建一个账户叫user1, 同时,系统会自动建立一个组也叫user1
注意:不用任何参数,创建用户,系统会默认执行以下操作:
1)在 /etc/passwd 文件中创建一行关于user1用户的数据
用户名 : 密码 : 用户ID : 用户组ID : 注释 : 家目录 : 解释器shell
用户名:登录linux时使用的用户名
密码:此密码位置一般情况都是"x",表示密码的占位,真实密码存储在/etc/shadow 用户ID:用户的识别符,每个用户都有唯一的UID【-u】
用户组ID:该用户所属的主组ID;【-g】
注释:解释该用户是做什么用的;【-c】
家目录:用户登录进入系统之后默认的位置;【-d】
附加组:【-G】附加组可以有多个
解释器shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,转换成机器语言,传递给内核处理;如果解释器是==/bin/bash 表示用户可以登录到系统==,==/sbin/nologin表示该用户不能登录到系统==【-s】
2)在 /etc/shadow 文件中新增了一行关于user1密码的数据
3)在 /etc/group 文件中创建一行与用户名相同的组,例如user1
4)在 /etc/gshadow 文件中新增一行与新增群组相关的密码信息,例如user1
5)自动创建用户的家目录,默认在/home下,与用户名同名
实例:
公司新员工user2,属于usergroup部门,用户ID1200,不允许登录系统
思路:
创建用户user2,默认user2属于自己同名的主组,让user2 属于附加组usergroup,用户ID 1200,注释为"工程师user2",解释器为/sbin/nologin
useradd -G usergroup -u 1200 -s /sbin/nologin -c "工程师user2" user2
② id查看用户信息
命令:id
作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。
③ usermod修改用户
命令:usermod(user modify)
语法:# usermod [选项 选项的值] … 用户名
作用:修改用户的各种属性
选项:-g:表示指定用户的用户主组,选项的值可以是用户组的ID,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户组的ID,也可以是组名
-u:uid,用户的id(用户的标识符),系统默认会从500 之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ 的自选靓号情况】
-L:锁定用户,锁定后用户无法登陆系统lock
-U:解锁用户unlock
-c<备注>:修改用户帐号的备注文字
-d<登入目录>:修改用户登入时的目录
-s<shell>:修改用户登入后所使用的shell
实例
公司员工wangwu,属于bigdata22部门,现在要休产假,产假期间,暂时停止她登陆电脑的权限,同时原来属于shujia部门的员工lisi,负责wangwu的工作,所以,需要把lisi加入到bigdata22的组,同时,修改lisi的账户注释为“shujia bigdata22 user”
对于wangwu用户,我们要执行锁定和解锁操作
对于lisi用户,我们要将lisi加入到bigdata的附加组,同时修改lisi账户的注释
④ passwd修改用户密码
命令:passwd
语法:# passwd 用户名 【如果不指定用户名则修改自己的密码】
作用:修改用户密码
⑤ su切换用户
命令:su
语法:# su [-] 账号
作用:切换用户
注意:
a. 从root 往普通用户切换不需要密码,但是反之则需要root 密码;
b. 切换用户之后前后的工作路径是不变的,添加了选项[-]会自动切换到用户的家;
c. 普通用户没有办法访问root 用户家目录,但是反之则可以;
⑥用户权限管理
通过ll查看详细信息时:-rw-r--r--. 1 root root 11 4月 24 21:22 xiao.txt
-:表示类型
rw-:当前用户权限
r--:当前用户组权限
r--:其他用户权限
r:读 4
w:写 2
x:执行 1
u:当前用户
g:当前组
o:其他
a:所有
权限修改
权限分配 chmod:修改权限
格式1:(使用相加减表达权限) chmod [选项] [权限修改] [文件]
格式2:(使用数字表达权限) chmod [选项] [权限修改] [文件]
4:读
2:写
1:执行
7:全部
注意:如果只给一个数字表示修改o,两个表示修改go
选项: -R:迭代修改
chgrp:修改用户组
格式:
chgrp [选项] [组名] [文件或目录]
选项:
-R:表达迭代修改
注意:文件或目录的所有用户或所有组,都是以编号来查询所有用户或所有组
如果不存在就显示编号,存在显示名称
chown:修改所属用户
格式:
chown [选项] [组名] [文件或目录]
选项:
-R:表达迭代修改