Linux简介
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux系统一切皆可文件(硬件设备也由文件做管理)
Linux目录结构:
挂载:这一动作就是把某个设备(文件系统)与目录树中的某个特定位置进行关联,以便于操作系统能够从根目录开始找到这个刚刚加入的设备,从而访问该设备的内的文件数据。
因此Linux目录结构与底层物理存储方式无关,只是逻辑结构。
目录结构介绍:
/home:每一个用户的主目录
/bin:存放可以直接执行的常用命令
/sbin:系统级的二进制命令目录
/lib:当前库目录
/root:系统管理员的主目录
/user:与用户相关目录
/dev:设备目录
/etc:系统配置文件
/boot:引导分区
/run:运行目录
/sys:系统硬件信息
vi vim编辑器
(1)VI VIM是什么
VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。
VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。
(2)VI三种工作模式切换
一般指令模式 :刚进入vi 时的默认模式。 这个模式下能够进行: 移动光标、整行的复制粘贴、整行删除 等基本操作。
编辑模式 :在一般指令模式下,按 "a" "i" "o" 均可进入编辑模式。 此模式下能够进行: 文本的输入、删除 。
命令行模式 (末行模式):在一般指令模式下,按 ":" "/" "?" 均可进入命令行模式。 由于此模式的输入会显示在窗口的最后一行,也叫末行模式。 此模式下能够进行: 搜索、保存、离开 等操作。
一般模式操作指令:以vi/vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用「上下左右」按键来移动光标,你可以使用「删除字符」或「删除整行」来处理档案内容, 也可以使用「复制、贴上」来处理你的文件数据。
语法 | 功能描述 |
yy | 复制光标当前一行 |
y数字y | 复制一段(从光标当前行到后n行) |
p | 箭头移动到目的行粘贴 |
u | 撤销上一步 |
dd | 删除光标当前行 |
d数字d | 删除光标(含)后多少行 |
x | 剪切一个字符(当前光标),X相当于del |
X | 剪切一个字符(当前光标的前一个),相当于Backspace |
yw | 复制一个词 |
dw | 删除一个词 |
shift+4($) | 移动到行尾 |
shift+6(^) | 移动到行头 |
w | 移动到下一个词(词头的位置) |
e | 移动到页头,数字 |
1+G | 移动到页尾 |
数字 N+G | 移动到目标行 |
进入编辑模式操作指令:
按键 | 功能 |
i | 当前光标前 |
a | 当前光标后. |
o | 当前光标行的下一行 |
I | 光标所在行最前 |
A | 光标所在行最后 |
O | 当前光标行的上一行 |
退出编辑模式:按「Esc」键
命令模式基本语法:
:w | 保存 |
:q | 退出 |
:wq | 保存并退出 |
:ql | 不保存强制退出 |
/ 要查找的词 | n查找下一个,N往上查找 |
:noh | 取消高亮显示 |
:set nu | 显示行号 |
:set nonu | 关闭行号 |
:s/old/new | 替换当前行匹配到的第一个old为new |
:s/old/new/g | 替换当前行匹配到的所有old为new |
:%s/old/new | 替换文档中每一行匹配到的第一个old为new |
网络配置和操作系统管理
使远程可以操作服务器,服务器也可以连接主机。
(1)查看虚拟网络编辑器,查看网络ip和网关
ping命令可以用来检测两台机器是否可以正常通信
ping+ip(ctrl c退出)
(2)查询当前网络配置:
cmd中:ipconfig 虚拟机中:ifconfig
VMware提供了三种网络连接模式:
1)桥接模式:虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用。这种模式下,虚拟机可以直接访问外部网络,|并且对外部网络是可见的。
2)NAT模式:虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换。虛拟机通过共享主机IP可以访问外部网络,但外部网络无法访问虚拟机。
3)仅主机模式:虚拟机只与主机共享一个专用网络,与外部网络无法通信。
(3)修改主机名称:
1)基本语法:hostname (功能描述:查看当前服务器的主机名称)。
2)案例实操:
查看当前服务器主机名称
[root@hadoop100桌面]# hostname
如果感觉此主机名不合适,我们可以进行修改。通过编辑/etc/hostname 文件
[ root@hadoop100 桌面]# vi /etc/hostname
注意:修改完成后重启生效,或者[ root@hadoop100 桌面]# hostnamectl set.hostname spark直接修改
远程登录
通常在工作过程中,公司中使用的真实服务器或者是云服务器,都不允许除运维人员之外的员工直接接触,因此就需要通过远程登录的方式来操作。
方法一:在cmd命令行中,用语句 ssh root@ 主机名 输入密码后即可远程登录且操作与虚拟机中一致。
方法二:直接使用远程登录工具登录,目前,比较主流的有Xshell, SSH Secure Shell, SecureCRT,FinalShell等,都是基于SSH协议的远程登录工具。
系统管理
Linux中的进程和服务
计算机中,一个正在执行的程序或命令,被叫做“进程”( process)。 启动之后一直存在、常驻内存的进程,一般被称作“服务”(service) 。
服务管理
service服务管理(CentOS 6版本)
1)基本语法
service 服务名 start | stop| restart| status
2)查看服务的方法: ls /etc/init.d/服务名 ,发现只有 两个服务保留在service
2、service服务管理(CentOS 7版本)
1)基本语法
systemctl start | stop| restart| status 服务名 2)查看服务方法 :ls /usr/lib/systemd/system
若想要配置某些服务自启动,或手动启动,可以使用 setup 命令,打开窗口进行配置。
在LInux系统中( CentOS7),init是系统的守护进程,会在开机最先被启动,之后会根据用户自定义的运行级别启用服务。
查看默认级别: vi /etc/inittab
Linux系统有7种运行级别(runlevel):常用的是级别3和5
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动。
运行级别1:单用户工作状态,root权限, 用于系统维护,禁止远程登陆(类似windows中的安全模式)。
运行级别2:多用户状态(没有NFS),不支持网络。
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式。
运行级别4:系统未使用,保留。
运行级别5: X11控制台,登陆后进入图形GUI模式(窗口)。
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。
CentOS7的运行级别简化为:
multi-user.target等价于原运行级别3 (多用户有网,无图形界面)
graphical.target等价于 原运行级别5 (多用户有网,有图形界面)
1)查看当前运行级别:
systemctl get-default
2)修改当前运行级别
systemctl set- default TARGET.target (这 里TARGET取multi-user或者graphical)
3)查看所有服务是否开机自启动
systemctl list-unit-files
4)修改是否开机自启动
systemctl enable/disenable 服务名
关机与重启
1)基本语法
(1) sync 功能描述:将数据由内存同步到硬盘中(手动存盘)
(2) halt 功能描述:停机,关闭系统,但不断电
(3) poweroff 功能描述:关机,断电
(3) reboot 功能描述:就是重启,等同于shutdown -r now
(4) shutdown 时间 功能描述:在指定时间关机,默认在一分钟后关机
shoutdown now 马上关机
shutdown -h/p 1 一分钟后关机
shutdown -r 重启
Shall命令
Shell可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以通过终端控制台来输入命令,由shell进行解释并最终交给内核执行。
帮助命令:
man获取帮助信息
1)基本语法 :man [命令或配置文件] (获取帮助信息)按‘q’退出。
2、shell内置命令:
部分基础功能的系统命令是直接内嵌在shell中的,系统加载启动之后会随着shell一起加载,常驻系统内存中。这部分命令被称为“内置(built-in) 命令”,相应的其它命令被称为“外部命令”。
判断是内置还是外部命令:type 命令 (查看是否为shall内嵌)
获取帮助信息:man -f 命令 (查看帮助信息目录手册)
例[root@hadoop100 桌面]# man -f cd
查看具体信息:man 目录 cd
直接查询內部命令帮助信息:
基本语法:help 命令 (获得shell内置命令的帮助信息,只能查看内置命令,且非汉化)
例:查看cd命令的帮助信息:[ root@hadoop101 ~]# help cd
help查看外部命令: 命令 - - help
常用快捷键:
CTRL + C | 停止进程 |
CTRL + L | 清屏,等同于clear |
reset | 彻底清屏 |
tab键 | 提示(自动补全) |
上下键 | 查找执行过的命令 |
文件目录类
1、pwd显示当前工作目录的绝对路径
pwd:print working directory 打印工作目录
基本语法:pwd (功能描述:显示当前工作目录的绝对路径)(绝对路径:从根目录开始,是一个完整的路径,是目标文件在硬盘上的真实路径,相对路径:相对于当前文件位置的路径,需要引用当前位置)
提示:pwd -P (抛开软连接等影响,直接显示实际的物理路径)
例:[root@hadoop100 ~]# cd /etc/sysconfig
[root@hadoop100 sysconfig]# pwd
/etc/sysconfig
2、cd:Ckange Directory切换路径
基本语法:cd [参数]
cd绝对路径 | 切换路径 |
cd相对路径 | 切换路径 |
cd ~或者cd | 回到自己的家目录 |
cd- | 回到上一次所在目录 |
cd . . | 回到当前目录的上一级目录 |
cd -P | 跳转到实际物理路径,而非快捷方式路径 |
案例实操:
用绝对路径切换到视频目录:[root@hadoop100 桌面]# cd /root/视频/
用相对路径回到桌面目录:[root@hadoop100 视频]# cd ../桌面/
绝对路径到wyc用户:[root@hadoop100 ~]# cd home/wyc/
3、ls: list列出目录内容
基本语法: ls [选项] [目录或是文件]
选项 | 功能 |
ls -a | 列出全部的文件,连同隐藏档(开头为 . 的文件)一起列出来 |
ls -l | 长数据串列出,包含文件的属性与权限等数据(等价于 'll' ) |
ls -al | 显示全部文件的信息,包括隐藏文件 |
ls 路径 | 列出某个路径下的全部文件 |
显示说明:
每行列出的信息依次是:文件类型与权限,链接数,文件属主,文件属组,文件大小用
byte来表示,建立或最近修改的时间,名字。
4、mkdir创建删除目录
mkdir创建一个新的目录(在Linux中一半蓝色字体的为目录,黑色字体的为文件)
基本语法:mkdir [选项] 要创建的目录
选项说明:-p (功能:创建多层目录)
案例实操:
(1)mkdir创建一个新目录
[root@hadoop100 ~]# mkdir a
[root@hadoop100 ~]# mkdir /b (在根目录下创建b目录)
[root@hadoop100 ~]# mkdir b c (同时创建多个目录)
(2)创建一个多级目录
[root@hadoop100 ~]# mkdir d d/e d/e/f
[root@hadoop100 ~]# mkdir -p g/h/i
rmdir删除一个空的目录
基本语法:rmdir [选项] 要删除的目录
选项说明:-p (功能:删除多层目录)
案例实操:
[root@hadoop100 ~]# rmdir a (删除一个目录)
[root@hadoop100 ~]# rmdir d/e/f d/e d/(删除一个多级目录)
[root@hadoop100 ~]# rmdir -p g/h/i/ (删除一个多级目录)
5、touch 创建空文件
基本语法:touch 文件名称
案例实操:
[root@hadoop100 ~]# touch hello
[root@hadoop100 ~]# cd /home/wyc (在另一用户里创建文件)
[root@hadoop100 wyc]# touch hollo2
[root@hadoop100 ~]# vim hello4 (利用vim文本编辑器创建文件,但是若不保存就退出,则该文件不存在,除非用:wq保存)
6、cp复制文件或目录
基本语法: cp [选项] source(源文件) dest(目标文件) (功能:复制source文件到dest)
选项说明:-r (功能:递归复制整个文件,将所有子文件和子目录全部复制)
提示:强制覆盖不提示的方法:\cp (“ / ” 直接使用Linux中的源生命令)
拓展:源生命令与别名
[root@hadoop100 ~]# alias (查看哪些命令是别名)
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
案例实操:
[root@hadoop100 ~]# cp initial-setup-ks.cfg ../home/wyc/ (利用相对路径将 initial-setup-ks.cfg目录复制到目录wyc中 )
[root@hadoop100 ~]# cp initial-setup-ks.cfg /home/wyc/ (已有目录会询问是否覆盖)
cp:是否覆盖"/home/wyc/initial-setup-ks.cfg"? y(y选择覆盖 n不覆盖)
[root@hadoop100 ~]# \cp initial-setup-ks.cfg /home/wyc/(使用源生命令不会询问是否覆盖)
7、rm删除文件或目录
基本语法:rm [选项] deleteFile (功能:默认是删除文件的,也可以递归删除目录中所有内容)
选项说明:
- r | 递归删除目录中所有内容 |
- f | 强制执行删除操作,而不提示用于进行确认。 |
- v | 显示指令的详细执行过程 |
案例实操:
[root@hadoop100 ~]# rm a (默认删除一个文件)
rm: 无法删除"a": 是一个目录
[root@hadoop100 ~]# rm -r a (利用选项递归删除目录)
rm:是否进入目录"a"? y
rm:是否删除普通文件 "a/initial-setup-ks.cfg"?y
rm:是否删除目录 "a"?y
[root@hadoop100 ~]# cd /home/wyc/
[root@hadoop100 wyc]# rm -rf a/ (若不想有提示,用rf)
[root@hadoop100 wyc]# rm -f ./*(删除wyc当前目录下的全部内容)
[root@hadoop101 ~]# rm xiyou/mingj ie/ sunwukong. txt(删除目录中的内容)
[ root @hadoop101 ~]# rm -rf dssz/(递归删除目录中所有内容)
8、mv移动文件与目录或重命名
基本语法:
(1) mv oldNameFile newNameFile (功能描述:重命名)
(2) mv /temp/movefile /targetFolder (功能描述:移动文件,常见写法:mv 文件名称 目录名称)
案例实操:
(1)重命名
[root@hadoop100 ~]# mv anaconda-ks.cfg 2.cfg (把该目录下的 anaconda-ks.cfg文件重命名为2.cfg)
(2)移动文件
[root@hadoop100 ~]# mv initial-setup-ks.cfg /home/wyc/1.cfg (将当前目录下的 initial-setup-ks.cfg文件移动到wyc目录中去并重命名为1.cfg)
9、cat查看文件内容
查看文件内容,从第一行开始显示。 (只查看不修改,不用vim)
基本语法:cat [选项] 要查看的文件
选项说明:-n (功能:显示所有的行号,包括空行)
经验:般查看比较小的文件,一屏幕能显示全的。
案例实操:(1)查看文件内容并显示行号。
[root@hadoop100 ~]# cat -n initial-setup-ks.cfg
10、 more文件内容分屏查看器
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。进入一个类似与vi编辑器的状态,及可以使用若干快捷键。
基本语法:more 要查看的文件。
快捷键操作说明:
空格键(space) | 代表向下翻一-页; |
Enter | 代表向下翻「一行」;。 |
q | 代表立刻离开more ,不再显示该文件内容 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
11、less分屏显示文件内容
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
基本语法:less 要查看的文件
操作说明:
操作 | 功能 |
空白键 | 向下翻动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
/字串 | 向下搜寻 [字串」的功能; n:向下查找; N:向上查找; |
?字串 | 向上搜寻 [字串」的功能; n:向下查找; N:向上查找 |
12、echo输出内容到控制台
基本语法:echo [选项] [输出内容]
选项:-e (功能:支持反斜线控制的字符转换)
控制字符:
控制字符 | 作用 |
\\ | 输出\本身 |
\n | 换行符 |
\t | 制表符,也就是tab键,空格 |
案例实操:[root@hadoop100 ~]# echo "hello \nword"
hello \nwordzhui
[root@hadoop100 ~]# echo -e "hello \nworld"(若没有用转义字符前因加一个空格)
hello
world
13、> 输出重定向和 >> 追加
基本语法:
(1) ls -I > 文件 (功能描述:将列表的内容写入文件中 (是覆盖写) )
(2) ls-al >> 文件 (功能描述:将列表的内容追加到文件的末尾,不会覆盖之前的内容)
(3) cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
(4) echo “内容” >> 文件 (将“内容”写到文件最后)
案例实操:
(1)将ls查看信息写入到文件中(若本身没有info文件,这条语句也会直接创建)
[ root@hadoop100 ~]# ls -l >inof
(2)将Is查看信息追加到文件中
[root@hadoop100 ~]# 1s - l >>inof
(3)采用echo将hello单词追加到文件中:
[root@hadoop101 ~]# echo hello world >>info
(4)[root@hadoop100 ~]# echo $ (加 tab 查看系统环境变量)
[root@hadoop100 ~]# echo $HOSTNAME >> info(将HOSTNAME环境变量的内容追加到info文件中)
14、head显示文件头部内容
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
基本语法:(1)head 文件(功能描述:查看文件头10行内容))
(2)head -n5 文件 (功能:查看文件头5行内容,5可以是任意行数)
选项说明:-n <行数> (功能:指定显示头部内容的行数)
案例实操:
[ root@hadoop101 ~]# head -n 2 smartd. conf
15、tail输出文件尾部内容
tail用于输出文件中尾部的内容,默认情况下tail 指令显示文件的后10行内容。
基本语法:(1) tail 文件 (功能描述:查看文件尾部10行内容)
(2) tail -n 5文件 (功能描述:查看文件尾部5行内容,5可以是任意行数)之一
(3) tail -f 文件 (功能描述:实时追踪该文档的所有更新,此时只能去追加内容,不可以复写,若想暂停检测:ctrl s,恢复检测:ctrl q ,结束检测:crtl c)
选项说明:-n<行数>(功能:输出文件尾部n行内容)
案例实操:[ root@hadoop101 ~]# tail -n 5 smartd. conf
[root@hadoop100 ~]# echo 111 >info(复写会显示 “文件以截断”,但还是会复写掉之前的内容)
16、In软链接
软链接也称为符号链接,类似于windows 里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径(类似与指针)。
基本语法:In -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
案例实操(创建软连接):
[root@hadoop100 wyc]# ln -s /root/info myinfo (在用户wyc下创建一个myinfo的软连接,在该文件下修改内容,root原文件中内容也会更改)
[root@hadoop100 ~]# mkdir folder (创建一个folder目录)
[root@hadoop100 ~]# touch folder/file(在该目录下创建一个文件)
[root@hadoop100 ~]# cd -
[root@hadoop100 wyc]# ln -s /root/folder/ /home/wyc/myfolder(在另一用户的/home/wyc/目录下指向/root/folder/创建一个myfolder软连接)
删除软连接: rm -rf 软链接名称,而不是 rm -rf 软链接名/
经验:如果使用rm-rf软链接名/删除,会把软链接对应的真实目录下内容删掉,如果把源文件删除,及时软连接还存在也是无效的,无法跳转。
查询:通过 ll 就可以查看,列表属性第1位是1,尾部会有位置指向。
案例实操:
[root@hadoop100 wyc]# rm myinfo(删除软连接 myinfo,但源文件中的info不会有任何更改)
rm:是否删除符号链接 "myinfo"?y
[root@hadoop100 wyc]# rm -rf myfolder ( f 不会提示是否删除,r 将软连接中子文件子目录全部删除)
[root@hadoop100 wyc]# rm -rf myfolder/ (软连接myfolder不会被删除,但原文件中的folder目录下的子文件被删除)
17、 history查看已经执行过历史命令
基本语法:
(1)history (功能描述:查看已经执行过历史命令)
(2)history 数字 (功能:查看指定条数的历史命令)
(3)!<行号> (功能:对该行命令进行重复调用)
(4)history -c(功能:清空历史命令)
案例实操:
[root@hadoop101 test1]# history 10
日期时间类
1)基本语法:date [OPTION 选项] [FORMAT 参数]
2)选项说明:
-d<时间字符串> (显示指定的“时间字符串”表示的时间,而非当前时间)
-s<日期时间> (设置系统日期时间)
3)参数说明:
<+日期时间格式> (指定显示时使用的日期时间格式)
1、date显示当前时间
基本语法:
(1)date (功能:显示当前时间)
(2) date +%Y (功能描述:显示当前年份)
(3) date +%m(功能描述:显示当前月份)
(4) date +%d(功能描述:显示当前是哪一天)
(5) date "+%Y %m %d %H:%M:%S"(功能描述:显示年月日时分秒)
案例实操:
[root@hadoop100 wyc]# date
2023年 10月 29日 星期日 18:25:38 CST
[root@hadoop100 wyc]# date +%Y
2023
[root@hadoop100 wyc]# date +%y
23
[root@hadoop100 wyc]# date +%m
10
[root@hadoop100 wyc]# date +%d
29
[root@hadoop100 wyc]# date +%y-%m-%d-%H:%M:%S
23-10-29-18:30:33
[root@hadoop100 wyc]# date "+%y-%m-%d %H:%M:%S"(取消掉连接符需要用引号连接起来)
23-10-29 18:31:36
[root@hadoop100 wyc]# date +%s
1698575527(小写s得到的是当前的时间戳)
2、date显示非当前时间
1)基本语法:
(1) date -d '1 days ago' (功能描述:显示前一天时间)
(2) date -d '-1 days ago' (功能描述:显示明天时间)
2)案例实操:
[root@hadoop100 wyc]# date -d '1 days ago'
2023年 10月 28日 星期六 18:38:00 CST
[root@hadoop100 wyc]# date -d '-1 days ago'
2023年 10月 30日 星期一 18:38:12 CST
[root@hadoop100 wyc]# date -d '-1 hours ago'
2023年 10月 29日 星期日 19:41:56 CST
3、date设置系统时间
基本语法:date -s 字符串时间
案例实操:[root@hadoop100 wyc]# date -s "2023-11-11 18:31:36"
2023年 11月 11日 星期六 18:31:36 CST(之后date获取的当前时间从修改的这里开始,重新获取当前时间用 tpdate 加服务器名称)
4、查看日历
基本语法:cal [选项] (功能描述:不加选项显示当前时间的日历)
选项说明:cal 年份 (功能:显示当前年份日历)
案例实操:
[root@hadoop100 wyc]# cal
[root@hadoop100 wyc]# cal 2022
用户管理命令
1、useradd 添加新用户
基本语法:
useradd 用户名 (功能:添加新用户)
useradd -g 组名 用户名(功能:添加新用户到某个组)
案例实操:
[root@hadoop100 home]# useradd tony (创建新用户的同时都会在home下创建一个主目录,默认与用户名相同)
[root@hadoop100 home]# useradd -d /home/dave david (创建新用户david 主目录是dave)
[root@hadoop100 ~]# useradd -g bigdata xiaoming
[root@hadoop100 ~]# id xiaoming
uid=1003(xiaoming) gid=1004(bigdata) 组=1004(bigdata)
2、修改用户密码
基本语法:passwd 用户名
案例实操:
[root@hadoop100 home]# passwd tony
更改用户 tony 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
3、查看用户是否存在
基本语法:id 用户名
案例实操:[root@hadoop100 home]# id tony
uid=1001(tony) gid=1001(tony) 组=1001(tony)
4、cat/etc/passwd 查看创建了那些用户
案例实操:[root@hadoop100 home]# cat /etc/passwd
或者:root@hadoop100 home]# less /etc/passwd
wyc:x:1000:1000:wyc:/home/wyc:/bin/bash(与系统交互的方式)
tony:x:1001:1001::/home/tony:/bin/bash
david:x:1002:1002::/home/dave:(主目录名)/bin/bash
5、切换用户
基本语法:su 用户名
提示:低级用户和同级用户之间不可以操作相关目录
案例实操:
[root@hadoop100 home]# su wyc
[wyc@hadoop100 ~]$ su tony
密码: (跳转到同级目录或高级别目录需要输入密码,若从最内层目录向外跳转可以用 exit 退回到上一用户)
6、查看当前用户身份
基本用法:who am i (有空格,查看的是最原始的用户,最外层的用户)
案例实操:
[tony@hadoop100 wyc]$ whoami (无空格 查看这条会话的用户)
tony
[tony@hadoop100 wyc]$ who am i
root pts/1 2023-10-23 21:18 (:0)
7、sudo 设置普通用户具有root权限
例:[tony@hadoop100 root]$ sudo ls
[sudo] tony 的密码:
tony 不在 sudoers 文件中。此事将被报告。
[root@hadoop100 ~]# vim /etc/sudoers(需要用root用户在sudors中配置普通用户)
:wq!保存退出即可
[root@hadoop100 ~]# su tony (再进行权限授予,填写密码即可获得root权限)
[tony@hadoop100 root]$ sudo ls
[sudo] tony 的密码:
8、删除用户
基本语法:userdel 用户名
案例实操:
[root@hadoop100 ~]# userdel tony
[root@hadoop100 ~]# cd /home
[root@hadoop100 home]# ls
dave tony wyc (删除该用户但是主目录还在)
[root@hadoop100 home]# rm -rf tony (删除主目录下的文件)
root@hadoop100 home]# userdel -r david (删除用户包括主目录)
9、用户组管理命令
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
[wyc@hadoop100 home]$ id tony
uid=1001(tony) gid=1001(tony) 组=1001(tony)
[wyc@hadoop100 home]$ sudo cat /etc/group(查看所有用户组)
10、 groupadd新增组
基本语法:groupadd 组名(功能:新建一个组)
提示:若用户改加到wheel组即可使用管理员权限 语句:usermod -a -G groupA user)
案例实操:
[root@hadoop100 ~]# usermod -a -G wheel wyc(添加用户wyc到用户组wheel)
[root@hadoop100 ~]# groupadd hairs(创建一个组)
[root@hadoop100 ~]# usermod -g hairs tony(修改用户组名,离开tony组到hairs组)
[root@hadoop100 ~]# groupmod -n haircat hairs(将组重命名)
[root@hadoop100 ~]# groupdel tony(删除组)