14天学习训练营导师课程: 互联网老辛《 符合学习规律的超详细linux实战快速入门》
努力是为了不平庸~
学习有些时候是枯燥的,但收获的快乐是加倍的,欢迎记录下你的那些努力时刻(学习知识点/题解/项目实操/遇到的bug/等等),在分享的同时加深对于知识点的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~
1.5 linux基本实操
1.5.1 linux远程登录
在实际工作中,linux服务器是开发小组共享的,并不是存放在每个用户的本地电脑上,linux服务器一般会存在在一台独立的电脑上(独立的机房里)。所以我们需要远程的登录到linux进行相关的操作。
在这里我们介绍两个远程操作工具。一个是远程登录linux操作系统的工具,一个是进行远程文件传输 下载的工具。
第一个工具:远程连接 登录linux服务器的工具 Xshell7
- 安装:
- 直接解压文件得到问了目录Xshell。
- 进入Xshell目录:点击
!绿化.bat
,桌面会自动化生成Xshell程序。
- 打开Xshell-帮助-关于Xshell,查看破解情况。
如果出现以上信息说明破解成功。
- 通过Xshell7远程连接linux
- 首先我们需要获取远程连接linux操作系统的ip地址。
[root@xq100 ~]# ip addr
我们可以本地windows系统下面ping一下ip,看能否ping成功:
Microsoft Windows [版本 10.0.17763.1577]
(c) 2018 Microsoft Corporation。保留所有权利。
C:\Users\kriss>ping 192.168.10.137
正在 Ping 192.168.10.137 具有 32 字节的数据:
来自 192.168.10.137 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.10.137 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.10.137 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.10.137 的回复: 字节=32 时间<1ms TTL=64
192.168.10.137 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms
C:\Users\kriss>
我们发现,可以ping成功。
- 建立连接
打开Xshell,点击文件-->新建:
点击确定,再输入登录用户名和密码即可即可。
第二个工具:进行文件远程传输和下载的工具 FileZilla
- 下载FileZilla
- 安装
傻瓜式安装,直接点击下一步即可。
- 使用FileZilla连接linux操作系统
注意:
主机的连接地址必须是sftp协议。也就是必须输入: sftp://192.168.10.137
用户名和密码是连接linux操作系统的用户名和密码。
端口号可以不写,默认就是22。
- 上传文件
上传文件:在windows操作系统(左边)选择指定文件,右键-->上传 即可。
下载文件:在linux操作系统(右边)选择指定文件,右键-->下载 即可。
1.5.2 linux vi/vim编辑器
所有的 Linux 系统都会内置 vi 文本编辑器。Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
1.5.2.1 vi/vim的三种模式
- 正常模式: 以vim打开一个档案就是直接进入了一般默认(这是正常的模式),在这个模式中,可以通过上下左右来移动光标,你也可以使用【删除字符】【删除整行】来编辑档案中的内容,也可以使用【复制】【贴上】来处理你的文件数据。
- 插入模式: 按下i,l,o,O,a等任意一个字母之后才会进入编辑模式,一般情况按下i即可。
- 命令行模式: 在这个模式当中,可以提供你相关指令,完成读取,存盘,替换vim,显示行号等操作是在此模式下完成的。
1.5.2.2 使用vim工具
现在我们完成一个简单的需求,使用vim编辑器,编辑一个Hello.java文件。我们就在Xshell中完成。
[root@xq100 ~]# vim Hello.java
我们输入
vim Hello.java
命令,然后回车,此时进入到正常模式。
此时我们直接在里面写内容是没有反应的,因为正常模式下,不能进行内容的编辑,我们需要容正常模式切换到插入模式。如何切换?
我们一般按下i键即可。此时,屏幕左下角会显示成INSERT字样:
这个时候我们可以在插入模式下面进行内容的编辑:
接下来我们需要保存文件,我们需要切换到命令行模式:
首先按ESC键,然后输入:wq 然后回车 就是保存并退出。
6.使用快捷键回到文件内容的最起始处和最末尾处
切换到正常模式。
G : 回到文件的末尾处(光标回到文件的末尾处)
gg:回到文件的最开始处(光标回到文件的最开始处)
7.快速的定位到某个位置
切换到正常模式。
5 shift + g (快速到定位到第5行)。
8.在文件中输入内容,执行撤销操作
切换到正常模式。按快捷键u
- 要搜索当前行中字符串“World”的首次出现,并将其替换为“shijie”
:s/World/shijie/
- 要替换当前行中搜索到的所有内容,可以添加
g
标志:
:s/World/shijie/g
- 想搜索和替换整个文件中的匹配内容,使用百分比字符
%
作为范围。此字符指示从文件第一行到最后一行的范围
:%s/World/shijie/g
1.5.3 linux关机重启
- shutdownshutdown -h now 表示立即关机shutdown -h 1:表示一分钟后关机shutdown -r now :立即重启
- halt就是直接使用,效果等同于关机
- sync把内存的数据同步到磁盘
- reboot就是重启系统
注意细节:
- 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写入到磁盘中。
- 目前的shutdown、reboot、halt命令在关机前都进行了sync。
1.5.4 用户登录和注销
- 切换用户 su root 切换到root用户
- exit 退出 注销
注意:在切换用户的时候,如果从低级别的用户切换到高级别的用户,需要输入密码的(wen --> root)。如果从高级别的用户切换到低级别的用户(root --> wen),那么是不需要输入密码的。
1.6 linux用户管理
linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
1.6.1 添加用户
在root用户下,我们可以创建很多其它的用户,并且这些用户都会生成对应的目录,这些目录位于/home/用户名的目录下面。如果我们使用自己创建的用户登录,默认的情况下,用户所在的目录就是/home/用户目录所在的位置。
如何创建用户? useradd [选项] 用户名
[root@xq100 ~]# useradd kobe #创建用户名为kobe的用户
[root@xq100 ~]# cd /home # 切换到home目录
[root@xq100 home]# ll # 查看home目录所在的文件夹
total 0
drwx------. 3 kobe kobe 78 Aug 27 17:49 kobe
drwx------. 5 xq xq 147 Aug 27 16:02 xq
细节:
- 当用户创建成功后,会自动的创建和用户同名的目录。这个目录位于/home下面。
- 也可以通过 useradd -d来指定目录新的用户名,给新的用户名指定目录
[root@xq100 home]# useradd -d /home/test king # 创建一个用户名为king的用户 用户目录位于/home/test
[root@xq100 home]# cd /home
[root@xq100 home]# ll
total 0
drwx------. 3 kobe kobe 78 Aug 27 17:49 kobe
drwx------. 3 king king 78 Aug 27 17:52 test
drwx------. 5 xq xq 147 Aug 27 16:02 xq
1.6.2 给用户添加密码
创建密码的命令: passwd 用户名
[root@xq100 home]# passwd kobe # 给kobe这个用户设置密码
Changing password for user kobe.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
我们执行logout指令,然后使用kobe进行登录,发现可以成功登录。
1.6.3 删除用户
删除用户有两种情况,一种是删除用户,保存用户对应的目录。还有一种是删除用户,连用户对应的目录也删除掉。
- 删除用户,保存用户对应的目录
userdel 用户名
注意,我们切换到root用户下面,执行用户的删除操作。
[root@xq100 home]# userdel kobe
[root@xq100 ~]# cd /home
[root@xq100 home]# ll
total 0
drwx------. 5 1001 1001 147 Aug 27 18:03 kobe # 我们发现用户所属的目录还在
drwx------. 3 king king 78 Aug 27 17:52 test
drwx------. 5 xq xq 147 Aug 27 16:02 xq
- 删除用户,对应的用户目录也删除掉
userdel -r 用户名
[root@xq100 home]# useradd lisi #创建用户lisi
[root@xq100 home]# ll
total 0
drwx------. 5 lisi lisi 147 Aug 27 18:03 kobe
drwx------. 3 lisi lisi 78 Aug 27 18:09 lisi
drwx------. 5 xq xq 147 Aug 27 16:02 xq
[root@xq100 home]# userdel -r lisi # 删除用户的同时也删除lisi对应的目录
[root@xq100 home]# ll
total 0
drwx------. 5 1001 1001 147 Aug 27 18:03 kobe
drwx------. 5 xq xq 147 Aug 27 16:02 xq
1.6.4 查询用户信息
- 查询用户的详细信息
id 用户名
[root@xq100 home]# id root uid=0(root) gid=0(root) groups=0(root) [root@xq100 home]# id kobe uid=1001(kobe) gid=1001(kobe) groups=1001(kobe)
uid: 用户id gid:用户组id groups:组名
- 查看当前的用户的信息
who am i / whoami
[root@xq100 home]# who am i root pts/1 2022-08-27 18:06 (192.168.10.1)
- 切换用户
su 用户名
注意:从高级别的用户切换到低级别的用户不需要输入密码。比如从root切换到kobe用户。
从低级别的用户输入到高级别的用户,需要输入密码。必须从kobe用户切换到root用户。
[root@xq100 home]# su kobe #从root切换到kobe 不需要输入密码
[kobe@xq100 home]$ whoami
kobe
[kobe@xq100 home]$ su root #从kobe切换到root 需要输入密码
Password:
[root@xq100 home]#
1.6.5 用户组
用户组类似于角色,系统可以对有共性(权限)的多个用户进行统一管理。我们可以通过下面一幅图来理解组的概念。
- 创建、删除用户组
groupadd 组名
[root@xq100 ~]# groupadd gaibang #创建一个组
groupdel 组名
[root@xq100 ~]# groupdel gaibang #删除一个组
- 增加用户的时候,直接指定组名称
之前我们创建用户的时候,没有指定组,其实系统会自动给用户分配一个组,这个组的名称和用户名称是一样的。
现在我们创建用户的时候直接指定组名称。
基本语法: useradd -g 用户组 用户名
[root@xq100 ~]# useradd -g gaibang guojing #创建用户指定组名称
[root@xq100 ~]# id guojing
uid=1002(guojing) gid=1002(gaibang) groups=1002(gaibang)
- 修改用户所在组
比如我们之前有一个用户guojing,所在组为gaibang。现在我们想将guojing这个用户放在taohuadao这个组里面去(前提是这个组必须存在)。
基本语法: usermod -g 用户组 用户名
[root@xq100 ~]# groupadd taohuadao #创建组 名称为taohuadao
[root@xq100 ~]# usermod -g taohuadao guojing #将用户guojing移动到taohuadao这个组里面去
[root@xq100 ~]# id guojing
uid=1002(guojing) gid=1003(taohuadao) groups=1003(taohuadao)
- 用户和组相关的文件
(1)/etc/passwd文件
用户的配置文件,记录用户的各种信息。
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
使用cat命令浏览这个文件: cat /etc/passwd
xq:x:1000:1000:xq:/home/xq:/bin/bash
kobe:x:1001:1001::/home/kobe:/bin/bash
guojing:x:1002:1003::/home/guojing:/bin/bash
(2)/etc/shadow文件
口令的配置文件,用户登录的时候需要口令(密码)。口令的验证都是通过这个shadow文件去验证的。
每行的含义:登录名:加密口令:最后一次修改的时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
xq:$6$O2FlTZ6TIC6rD2dZ$xQb7mhEuE10P4lodcj5OaGhU5FqrdO7FifH2VjSvwPouqzGLrtTdZLtG8L3l2AvnFQi47x0uRLYMt6LMGWHfc0::0:99999:7:::
kobe:$6$Ij/jhx8A$CYTNMbK0N0DQOIh6A6qQ0Ucnst6GcNTHeS1X4pca3MwXI1ntM0NWsA0/HfUZTrgZKzUPC5m0ZBhpiLG9ZZlrw.:19231:0:99999:7:::
guojing:!!:19231:0:99999:7:::
我们发现guojing这个用户没有加密口令,所以没有显示。我们给guojing这个用户设置密码就可以看到加密口令了。
guojing:$6$.AdhAmZA$gbKCNrwqHBZAot8DxqxrtA7a0uCtc07iKnQltVWdLAk20wLg/58eHF5Ude81Zoo8P.onVZbS0wh/acETjipEv1:19231:0:99999:7:::
(3)/etc/group文件
组的配置信息,记录linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
1.7 linux运行级别
- linux操作系统运行的7种级别
关于linux的运行级别,一共有7种,我们给大家分别介绍一下:
0:关机
1:单用户(找回用户丢失的密码,可以使用单用户模式)
2:多用户状态但没有网络服务(一般很少用)
3:多用户状态但有网络服务(没有图形化界面,但是有网络,这种用的最多)
4:系统未使用,保留给用户(很少用)
5:图形界面
6:系统重启
常用的运行级别是3和5,我们也可以指定系统默认的运行级别。
切换运行级别的口令: init[0 1 2 3 4 5 6]
我们在linux操作系统(带有图形化界面的操作系统)输入init 3。此时linux操作系统就会以纯命令行模式启动
- 如何修改linux操作系统默认的运行级别
在centos7中,有一个文件/etc/inittab文件中,描述了运行级别的相关信息
现在我们就来演示linux操作系统的运行级别:
[root@xq100 ~]# systemctl get-default #获取linux操作系统默认的运行级别
graphical.target # 图形化的运行级别
[root@xq100 ~]# systemctl set-default multi-user.target # 设置linux操作系统默认的运行级别为纯命令行级别
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
[root@xq100 ~]# reboot
建议:同学们在初学的时候,还是使用带有图形化界面的运行级别。
版权归原作者 康来个程 所有, 如有侵权,请联系我们删除。