认识Linux用户
在安装CentOS8.2时,设置过root用户的密码,同时也创建了用户guanglei。
其中root用户是系统自带的管理员账户,也被称为超级用户,root用户接近系统完整的控制能力,对系统损害几乎有无限的能力。运维人员在生产环境使用Linux时,除非必要,否则不要用root用户登录系统,而是使用普通账号(例如guanglei)来登录。等到需要root用户权限来执行某些操作时,从普通用户切换到root用户。
在跟光磊学Linux系统运维系列都会使用root用户登录,因为不是生产环境。
Linux终端
终端(Terminal)来源于Unix,早期的Unix没有图形界面,都是使用鼠标、键盘、显示器连接服务器然后通过基于字符界面的终端来登录系统
现在的终端都是软件模拟的,一台服务器可以提供多个终端来提供给多个用户使用,每个终端都有不同的类型,可以通过tty命令查看当前登录的终端类型
[guanglei@centos8 ~]$ tty/dev/pts/0
/dev/pts/0表示第一个伪终端,终端的编号从0开始,然后依次递增,后面使用XShell或者Moba xterm远程连接Linux时登录的终端也是伪终端。
除了伪终端以外,Linux还提供了6个虚拟终端,可以使用Ctrl+Alt+[F1-F6]之间来切换。其中Ctrl+Alt+F2是图形终端,其他的都是基于命令的字符终端。
[root@centos8 ~]#tty/dev/tty5
who命令可以查看当前登录的终端信息
[root@centos8 ~]# whoroot pts/0 2020-10-04 07:58 (10.0.0.1)guanglei tty2 2020-10-04 08:03 (tty2)guanglei tty3 2020-10-04 08:05guanglei tty5 2020-10-04 08:06
而runlevel表示当前的运行级别,其中5表示图形界面,3表示字符界面
[root@centos8 ~]# runlevel # 查看当前系统的运行级别,5表示图形界面模式N 5
Linux的图形界面运行占用系统内存1.4G,可以使用free -h命令来查看内存使用情况
[root@centos8 ~]# free -h total used free shared buff/cache availableMem: 7.8Gi 1.4Gi 5.7Gi 14Mi 649Mi 6.1GiSwap: 4.0Gi 0B 4.0Gi
之前使用Ctrl+Alt+F5 只是临时切换到字符终端,并没有关闭系统的图形界面(使用Ctrl+Alt+F2可以切换到图形界面),如果想要从图形界面切换到字符界面(关闭图形界面),可以使用命令init 3实现
[root@centos8 ~]# init 3 # 将当前的运行模式切换为字符界面[root@centos8 ~]# runlevel #查看当前系统的运行模式,5表示切换之前的图形界面模式,3表示切换之后的字符界面模式5 3
当从图形界面模式切换到字符界面模式后,再次使用free -h 命令查看系统使用的内存情况,此时系统已经使用的内存为391MB,相比图形界面模式的1.4G少了1G左右的内存。
生产环境通常不会运行图形界面,而是使用字符界面。
[root@centos8 ~]# free -h total used free shared buff/cache availableMem: 7.8Gi 391Mi 6.7Gi 9.0Mi 653Mi 7.1GiSwap: 4.0Gi 0B 4.0Gi
查看Ubuntu-Server-20.04.1在字符界面下内存的使用情况
guanglei@ubuntu-server:~$ free -h total used free shared buff/cache availableMem: 3.8Gi 250Mi 3.2Gi 1.0Mi 341Mi 3.3GiSwap: 7.8Gi 0B 7.8Gi
查看CentOS7.8在图形界面下内存的使用情况
[root@centos7 ~]# free -h total used free shared buff/cache availableMem: 3.8G 492M 3.0G 14M 357M 3.1GSwap: 4.1G 0B 4.1G[root@centos7 ~]# runlevelN 5
如果想要开启图形界面,只需要使用init 5命令切换到图形界面即可。
CentOS7.8和CentOS8.2都可以使用该命令切换到图形界面,而UbuntuServer20.04.1不能切换,因为没有安装图形
[root@centos8 ~]# init 5
有些程序(例如firefox浏览器,gedit编辑器)只能在图形界面运行,无法在字符界面运行。
在终端上启动gedit编辑器和火狐浏览器
[guanglei@centos8 ~]$ gedit[guanglei@centos8 ~]$ firefox
远程登录Linux
目前在VMWare WorkStation中安装了三台虚拟机,分别是CentOS7.8,CentOS8.2,Ubuntu Server20.04.1,在实际的工作场景中通常都是使用远程连接工具来登录服务器,然后进行日常的运维工作。目前主流的远程工具有XShell,MobaXterm,但是遗憾的是它们目前(2020/10/03)都只支持Windows系统,macOS系统的同学可以使用SecureCRT。
在连接服务器之前,首先需要获取服务的IP地址,使用hostname -I命令就可以获取三台服务器的IP地址
CentOS8获取IP地址
[guanglei@centos8 ~]$ hostname -I10.0.0.100 192.168.122.1
CentOS7.8获取IP地址
[root@centos7 ~]# hostname -I10.0.0.103 192.168.122.1
Ubuntu Server 20.04获取IP地址
guanglei@ubuntu-server:~$ hostname -I10.0.0.101
获取到IP地址之后,在XShell所在的物理机(Windows)上打开终端,然后使用ping命令来ping刚刚所获取到的三台服务器的ip,如果ping不通是无法使用XShell连接的。
ping 10.0.0.100ping 10.0.0.101ping 10.0.0.103
如果网络都是通的,还要检测端口是否通畅,因为SSH服务默认开启的是22端口,检测端口可以使用telnet命令
telnet 10.0.0.100 22
这里以10.0.0.100的机器为例,如果telnet 10.0.0.100 22能够返回OpenSSH服务的版本,表示端口通畅。
如果服务器的SSH端口通畅,那么此时就可以使用XShell或者是MobaXterm来远程连接三台服务器了。
在明确三台服务器的IP以及确认了telnet连接22端口通畅时,就可以使用远程连接工具来远程登录Linux了。 因为XShell是收费,而MobaXterm有个免费版本,官网也给出了免费版和付费版两者的比较
我这里就使用MobaXterm来演示登录Linux,在官网下载Moba Xterm时建议选择下载安装版
而MobaXterm的安装过程和普通软件的安装没有什么不同,默认的安装路径是C:Program Files (x86)MobatekMobaXterm,直接跟着安装程序提示安装即可。
Moba Xterm启动界面
在启动MobaXterm后就可以来远程登录Linux
这里以CentOS7.8为例,介绍MobaXterm如何远程登录Linux
首先创建一个远程会话
选择SSH类型的会话
设置远程机器信息, 书签设置可以设置更改会话的名称以及会话的Icon,设置完毕后点击左下角的OK就可以登录系统
首次登录系统时系统会提示需要输入密码
输入密码回车后,MobaXterm提示是否保存密码,这里点击Yes
如果密码正确,则会登录成功
MobaXtrem登录CentOS7.8后,使用tty命令查看终端
[root@centos7 ~]# tty/dev/pts/1
MobaXterm连接三台服务器
当连接Ubunutu Server 20.04.1时,只能使用户普通用户登录,不能使用root账号登录系统
MobaXtrem提供了Remote Monitoring,可以用于监控远程服务器的硬件信息。
SFTP视图可以实现文件的上传和下载,默认展示的是当前登录用户的家目录
- 开启MobaXtrem右键黏贴
如果你使用过SecureCRT(另一款远程SSH连接工具),它默认是支持鼠标左键选中文本,右键粘贴文本。MobaXtrem中也支持,不过默认是关闭的,这里可以在菜单栏settings
开启MobaXtrem的右键粘贴功能
- 定制字体
Linux登录提示
在Linux登录前,默认会显示/etc目录下的issue文件内容
[root@centos8 ~]# cat /etc/issue # 查看issue文件内容SKernel on an m
S 表示操作系统版本
Kernel on an m 表示内核版本
登录前提示别写Welcome,否则系统被黑容易产生法律纠纷。
查看Ubuntu Server 20.04.1的issue文件
guanglei@ubuntu-server:~$ cat /etc/issueUbuntu 20.04.1 LTS l
在登录Linux成功之后,默认会显示/etc目录下motd文件内容,默认该文件是空的
[root@centos8 ~]# cat /etc/motd #查看/etc目录下的motd文件内容
如果想要登录成功之后显示相关内容,可以修改/etc/motd文件。
执行命令
cat </etc/motd _oo0oo_ 088888880 88" . "88 (| -_- |) 0 = /0 ___/'---'___ .' | |// '. / ||| : |||// /_ ||||| -:- |||||- | | - /// | | | _| ''---/'' |_/ | .-__ '-' __/-. / ___'. .' /--.-- '. .'___ ."" '< '._____/___.' >' "". | | : '- '.;' _ /';.'/ - ' : | | '_. _ __ /__ _/ .-' / / ====='-.____'.___ _____/___.-'____.-'===== '=---=' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 佛祖保佑 iii 永不死机 EOT
然后重新开启会话,登录系统成功后会显示/etc文件的内容
Linux 主机名设置
hostname可以查看当前机器的主机名
查看UbuntuServer-20.04.1主机名
guanglei@ubuntu-server:~$ hostname # 查看UbuntuServer-20.04.1主机名ubuntu-server
查看CentOS7.8主机名
[root@centos7 ~]# hostname #查看CentOS7.8主机名centos7.ittimeline.net
查看CentOS8.2主机名
[root@centos8 ~]# hostname #查看CentOS8.2主机名centos8.ittimeline.net
Linux系统的主机名存储在/etc/hostname文件中,hostname实际上读取的就是/etc/hostname文件
查看/etc/hostname文件内容
guanglei@ubuntu-server:~$ cat /etc/hostname #查看/etc/hostname文件内容ubuntu-server
如果想要修改主机名,只要修改该文件即可,但是/etc/hostname文件只能由系统管理员修改,使用sudo nano /etc/hostname命令来修改hostname文件,其中nano是linux内置的一个文编辑器,使用起来比vim简单,建议初学者使用nano来编辑文件。
guanglei@ubuntu-server:~$ sudo nano /etc/hostname #使用nano编辑器来编辑hostname文件
nano编辑器修改hostname文件
修改完成后按ctrl+x退出编辑器,然后按y保存修改,按回车写入/etc/hostname文件。
然后可以使用cat /etc/hostname命令查看hostname文件修改的内容
guanglei@ubuntu-server:~$ cat /etc/hostname #查看UbuntuServer20.04.1系统的主机名ubuntu-server-20.04.1.ittimeline.net
hostname文件修改完成后需要重启系统才会生效,重启系统可以使用sudo reboot命令实现。
guanglei@ubuntu-server:~$ sudo reboot # 重启系统
系统重启后在MobaXterm中按R就可以重连系统,重新登录系统后输入hostname就可以查看到对应的主机名。
guanglei@ubuntu-server-20:~$ hostname #查看UbuntuServer20.04 系统的主机名ubuntu-server-20.04.1.ittimeline.net
除了使用nano编辑器修改/etc/hostname文件然后重启系统,修改的hostname会永久生效以外(因为修改文件存储在磁盘上,会永久保存,而修改内存的数据只是临时生效),还可以使用hostnamectl set-hostname 来同时修改内存中的hostname和/etct/hostname文件。
root@ubuntu-server-20:~# hostnamectl set-hostname ubuntu20.04.ittimeline.netroot@ubuntu-server-20:~# cat /etc/hostnameubuntu20.04.ittimeline.net
即使再次重启系统,修改的hostname也会永久生效,重启系统除了reboot命令以外,还可以使用init 6命令来重启。
root@ubuntu-server-20:~# init 6
生产环境的主机名一般使用地名-二级地名-服务名-节点名加公司域名的方式来命名主机名,例如 sh-hp-elk-node1.ittimeline.net,需要注意的是主机名不能使用下划线命名。
Ubuntu Server root用户设置密码
由于在安装UbuntuServer 20.04.1时没有办法像CentOS7.8和CentOS8.2那样设置root用户的密码,这里需要手动设置root账号的密码,
首先使用sudo passwd root命令来设置root账号的密码,然后输入当前登录普通用户guanglei的账号密码,再输入两次root账号的密码即可。
guanglei@ubuntu-server:~$ sudo passwd root # 设置root用户密码[sudo] password for guanglei:New password:Retype new password:passwd: password updated successfully
root账号的密码设置成功之后,就可以使用su命令从guanglei切换到root,然后使用who命令可以查看当前系统登录的用户名
guanglei@ubuntu-server-20:~$ su root #切换到root用户Password:root@ubuntu-server-20:/home/guanglei# whoami # 查看当前登录的用户名称root
Ubuntu Server 还有一种切换root用户的方式
guanglei@ubuntu-server-20:~$ sudo -i #切换root账号[sudo] password for guanglei:root@ubuntu-server-20:~# whoamiroot
who am i 命令可以查看当前登录的终端以及时间
root@ubuntu-server-20:~# who am iguanglei pts/0 2020-10-04 02:32 (10.0.0.1)