Linux系统详细教程

目录

    • Linux的简介:
    • Linux的基础:
      • linux和unix的关系
    • 6.Vi和Vim编辑器:
      • 6.1 vi和vim的基本介绍:
      • 6.2 vi和vim的常用的三种模式:
      • 6.3 各种模式的相互切换:
      • 6.4 vi/vim的快捷键
    • 7. linux开机,重启,和用户登录
      • 7.1关机命令:shutdown 重启:reboot
      • 7.2 用户登录和注销
    • 8. 用户管理
      • 8.1 添加用户:useradd 用户名
      • 8.2 删除用户:userdel 用户名
      • 8.3 给指定的用户设置登录密码:passwd 用户名
      • 8.4 修改用户信息: usermod(选项)(参数)
      • 8.5 查询用户信息:id 用户名
      • 8.6 切换用户:su - 要切换的用户名
      • 8.7 查看当前用户/登录用户:whoami
      • 8.8 用户组
    • 9. Linux实用指令:
      • 9.1 指定运行级别:输入指令init 3或者init 5,init 0关机
      • 9.2 找回root密码
      • 9.3 帮助指令:man / help 命令
      • 9.4 文件目录类(重要)
    • 10. 组管理和权限管理
      • 10.1 基本介绍:
      • 10.2 文件/目录 所有者:
      • 10.3 组的创建: groupadd 组名
      • 10.4 修改文件所在的组:chgrp 组名 文件名
      • 10.5 更改用户所在的组:usermod -g 新组名 用户名
      • 10.6 查看电脑中所有的组:cat /etc/group
    • 11. 权限
      • 11.1 权限的基本介绍
      • 11.2 rwx权限详解(重点)
      • 11.3 修改权限
      • 11.4 修改文件所有者:
      • 11.5 改变文件/目录所在组:
    • 12 任务调度 crond
      • 12.1 概述
      • 12.2 任务调度语法: crontab [-e]
      • 12.3 快速入门:
      • 12.3 一次性的调度任务:at
    • 13.Linux网络配置:
      • 13.1Linux网络配置原理图:
      • 13.2 查看网络ip和网关
      • 13.3 ping:测试主机之间的网络连通性
      • 13.4 Linux网络环境配置(重点)
      • 13.5 设置主机名和hosts映射
      • 13.6主机名解析过程分析:
      • 13.7查看防火墙:

Linux的简介:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Linux的基础:

在这里插入图片描述

在这里插入图片描述

linux和unix的关系

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

VM的安装:
在这里插入图片描述

下载安装过程自己百度。

这里是引用

6.Vi和Vim编辑器:

6.1 vi和vim的基本介绍:

vi和vim:linux系统内置的一个文本编辑器

在这里插入图片描述

6.2 vi和vim的常用的三种模式:

在这里插入图片描述

我们常用:wq! 代表保存并强制退出。

:wq!

6.3 各种模式的相互切换:

在这里插入图片描述

6.4 vi/vim的快捷键

在这里插入图片描述

在这里插入图片描述

7. linux开机,重启,和用户登录

7.1关机命令:shutdown 重启:reboot

在这里插入图片描述

7.2 用户登录和注销

登录后切换用户:su - 用户名
注销:logout
在这里插入图片描述

8. 用户管理

8.1 添加用户:useradd 用户名

在这里插入图片描述
实例:
在这里插入图片描述

8.2 删除用户:userdel 用户名

在这里插入图片描述

8.3 给指定的用户设置登录密码:passwd 用户名

在这里插入图片描述

8.4 修改用户信息: usermod(选项)(参数)

usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。
选项

-c<备注>: 修改用户帐号的备注文字;

-d<登入目录>:修改用户登入时的目录;

-e<有效期限>:修改帐号的有效期限;

-f<缓冲天数>: 修改在密码过期后多少天即关闭该帐号;

-g<群组>: 修改用户所属的群组;

-G<群组>; 修改用户所属的附加群组;

-l<帐号名称>: 修改用户帐号名称;

-L: 锁定用户密码,使密码无效;

-s: 修改用户登入后所使用的shell;

-u: 修改用户ID;

-U: 解除密码锁定。

参数

登录名:指定要修改信息的用户登录名。

实例
将newuser2添加到组staff中:

usermod -G staff newuser2

修改newuser的用户名为newuser1:

usermod -l newuser1 newuser

锁定账号newuser1:

usermod -L newuser1

解除对newuser1的锁定:

usermod -U newuser1

8.5 查询用户信息:id 用户名

在这里插入图片描述

8.6 切换用户:su - 要切换的用户名

在这里插入图片描述

如 su - tom
tom是一个普通用户,也是通过su - 来切换用户的。

8.7 查看当前用户/登录用户:whoami

在这里插入图片描述

8.8 用户组

(1)新增组(groupadd 组名)/删除组(groupdel 组名)
(2)增加用户的时候直接分组:useradd -g 用户组 用户名
在这里插入图片描述
增加用户的同时分配组:

useradd -g 组名 新用户名
useradd -g yunwei zhangsan

在这里插入图片描述

(3)修改用户的组:usermod -g 用户组 用户名

在这里插入图片描述

通过id 用户名查询用户信息:
在这里插入图片描述
(4)用户和组相关的文件

在这里插入图片描述

9. Linux实用指令:

9.1 指定运行级别:输入指令init 3或者init 5,init 0关机

在这里插入图片描述
指定默认的运行级别:
在这里插入图片描述
指令:

systemctl get-default:获取当前的运行级别
systemctl set-default multi-user.target:设置默认的运行级别,这里设置的是多用户没图形界面的。
systemctl set-default graphical.target:设置每次开机后的默认级别是图形界面

指令输入完后使用reboot指令重启虚拟机即可。

实例:在工作中使用没有图形界面的
在这里插入图片描述

9.2 找回root密码

参考:
https://zhuanlan.zhihu.com/p/102802164

1.启动系统,进入开机界面,在界面按e进入编辑模式:
在这里插入图片描述
2.进入编辑界面,实用键盘的上下方向键往下移动,找到Linux16开头内容所在的行数,在行的左后输入:

init=/bin/sh

3.添加完成,按Ctrl+x组合键启动shell引导,最后进入单用户模式

4.要挂载根分区为可读写模式,执行如下命令

mount -o remount,rw /

在这里插入图片描述

5.然后就可以执行passwd命令重置密码了。

passwd

在这里插入图片描述

6.创建autorelabel文件(否则最后一步可能无法重启。)

touch /.autorelabel
在这里插入图片描述

7.密码修改完后,需要重启

直接执行reboot命令已经无效,需要输入全路径命令

exec /sbin/init

exec /sbin/reboot
这样就完成了密码重置,正常登陆系统,查看密码是否修改成功。

(注意:我在输入exec /sbin/init命令后,虚拟机中centos一直没反应,等了差不多一两分钟后才有反应。)

9.3 帮助指令:man / help 命令

在这里插入图片描述

实例:
如:man ls
如:help cd

9.4 文件目录类(重要)

(1)ls和pwd指令:

pwd 指令:显示当前工作目录的绝对路径
ls [选项] [目录或文件]:
常用选项:
-a:显示所有的all,包含隐藏文件。
-l : 以列表信息详细显示

组合使用实例:
ls - al 或者 ls -alh (这种方式把文件大小按照兆或者G显现)
或者ll 也可以查看。

在这里插入图片描述

在这里插入图片描述

(2)cd指令:
cd ~ 跳到自己的 home 目录

cd …/… 跳到目前目录的上上两层

cd … 中间有空格,回到自己的上层目录。
在这里插入图片描述

(3)创建目录指令:mkdir 要创建的目录
创建目录指令:mkdir -p 要创建的目录(多级目录创建)
在这里插入图片描述

实例:
在这里插入图片描述

(4)删除目录:rmdir 目录名/mdir -rf 目录名

rmdir 目录名: 只能删除空目录(如果目录下还有目录或者文件,则不能删除)
rmdir -rf 目录名: 强制递归删除任何目录(r:递归,f:force强制)

(5)创建空的文件(区别于文件夹):touch 文件名称

在这里插入图片描述

(6)文件拷贝:cp 【-r】 源文件 目标目录
在这里插入图片描述

(7)文件或者文件夹的删除:rm 【-rf】 要移除的文件或者目录
在这里插入图片描述

(8)文件的重命名/移动(剪切)mv 旧文件名 新文件名 (同目录下为重命名):
mv 文件及其所在目录 新的目录:移动文件
在这里插入图片描述

在这里插入图片描述

移动并重命名:

在这里插入图片描述

(10)文件查看:cat 要查看的文件名
在这里插入图片描述
实例:配合more 使用
在这里插入图片描述
(11)文件查看:more
在这里插入图片描述
(12)文件查看:less

在这里插入图片描述
(13)输出内容到控制台:echo

在这里插入图片描述

在这里插入图片描述
(14)文件查看之tail:

tail -f 文件路径 :可用于服务器检测,时时抓包,监控网络的变化等

在这里插入图片描述

在这里插入图片描述

(15)文件覆盖和追加:>
在这里插入图片描述

在这里插入图片描述

(16)软链接:ln

在这里插入图片描述

(17)历史指令:history
在这里插入图片描述

(18)时间日期:date
在这里插入图片描述

日历:
在这里插入图片描述
ls 查看文件大小:ls -lh
在这里插入图片描述

(19)查找文件find:
在这里插入图片描述

(20)文件查找:locate
在这里插入图片描述

在这里插入图片描述

(21)过滤查找grep:
在这里插入图片描述

(22)压缩 和解压文件:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

10. 组管理和权限管理

10.1 基本介绍:

在这里插入图片描述

10.2 文件/目录 所有者:

查看文件的所有者:ls -alh
修改文件的所有者:chown 新的拥有者(即用户名) 文件名
在这里插入图片描述

10.3 组的创建: groupadd 组名

组的删除:groupdel 组名

在这里插入图片描述

10.4 修改文件所在的组:chgrp 组名 文件名

在这里插入图片描述

10.5 更改用户所在的组:usermod -g 新组名 用户名

在这里插入图片描述

10.6 查看电脑中所有的组:cat /etc/group

在这里插入图片描述

在这里插入图片描述

11. 权限

11.1 权限的基本介绍

0-9位为了方便记忆:我们叫1-3-3-3,
第0位确定文件类型
第一个3位是User的权限,即文件所有者的操作权限
第二个3位是组group的权限,即同一个用户组的权限
第三个3位是其他组other的权限

在这里插入图片描述

11.2 rwx权限详解(重点)

特别注意目录的rwx:
目录的可读:表示可以查看目录的中的内容。
目录的可写:表示可以在目录内创建爱你+删除+重命名目录。(即增删改文件夹)
目录的可执行:表示可以进入该目录。

在这里插入图片描述

案例:
在这里插入图片描述

11.3 修改权限

在这里插入图片描述

在这里插入图片描述

11.4 修改文件所有者:

在这里插入图片描述

11.5 改变文件/目录所在组:

在这里插入图片描述
案例1:
在这里插入图片描述
案例2:
在这里插入图片描述

在这里插入图片描述

练习:
在这里插入图片描述

12 任务调度 crond

12.1 概述

crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

Cron 是UNIX, SOLARIS,LINUX下的一个十分有用的工具。通过Cron脚本能使计划任务定期地在系统后台自动运行。这种计划任务在UNIX, SOLARIS, LINUX下术语为cron jobs。 Crontab (CRON 表)则是用来记录在特定时间运行的CRON的一个脚本文件。
在这里插入图片描述
示意图:

在这里插入图片描述

12.2 任务调度语法: crontab [-e]

语法指令:
crontab -e : 编辑定时任务(edit)
crontab -l :查询定时任务
crontab -r :删除所有的cron tab任务。

在这里插入图片描述

12.3 快速入门:

(一)设定定时任务的两种方式:一个是用户级别的,一个是系统级别的说一下两种方法的使用及区别:

方式一:用户级别设定任务:
使用命令 crontab -e 然后自动进去直接编写定时的任务。
这样执行以后,属于用户级别的。会被写到/varspool/cron目录下,生成一个和当用户名一致的文件(如root文件),文件的内容我们查看一下,就是我们刚才编写的定时任务。

用法:
(1)直接使用命令:crontab -e 进去编辑你要执行的命令。
(2)文件内输入命令: */1 * * * * date > /tmp/testdate.txt 然后保存退出:wq
(3)然后命令:cd /tmp 进入目录ll查看testdate.txt,使用cat/more/less查看文件。

查看我们刚才编写的任务存放的位置及内容:

[root@fancentos7 cron]# cd /var/spool/cron
[root@fancentos7 cron]# ll
总用量 4
-rw-------. 1 root root 80 7月  30 11:17 root
[root@fancentos7 cron]# cat root
*/1 * * * * date > /tmp/testdate.txt
*/1 * * * * date > /usr/temp/testcrond.txt
[root@fancentos7 cron]# 

方式二:系统级别设定任务:
使用命令vim /etc/crontab 编写定时任务:如下
在这里插入图片描述
两种方式的区别:系统级的,做系统配置我们会直接配置 /etc/crontab
用户级的:一般建议我们使用 crontab -e 这样系统也会帮我们检查我们的定时任务的语法。

(二)入门案例一:
(1)直接使用命令:crontab -e 进去编辑你要执行的命令。
(2)文件内输入命令: */1 * * * * ls -l /etc > /tmp/to.txt 然后保存退出:wq
(3)然后命令:cd /tmp 进入目录ll查看to.txt,使用cat/more/less查看

出现下图installing … ,代表任务写入成功:
在这里插入图片描述
(三)入门案例二:
第二步的指令换成查看日期的命令:
*/1 * * * * date > /tmp/testdate.txt 然后保存退出:wq
然后查看即可:
在这里插入图片描述
等一分钟后查看:cat /testdate.txt
在这里插入图片描述

(四)五个占位符的前后说明:【分,时,天, 月,星期】
在这里插入图片描述

特殊符号说明:
在这里插入图片描述

特定时间执行任务案例:
在这里插入图片描述
案例1:定时执行脚本文件
在这里插入图片描述

(1)写脚本:vim /home/my.sh 写入内容date >> /home/mycal
cal >> /home/mycal

在这里插入图片描述

这里也可以写相对路径:没有mycal系统会自动创建。
在这里插入图片描述
(2)赋权限:给脚本文件my.sh 增加执行权限:chmod u+x /home/my.sh

在这里插入图片描述
(3)定任务:crontab -e 增加 */1 * * * * /home/my.sh
注意:我们的可执行脚本为(即定时执行脚本文件) /home/my.sh

定时调度的示意图:
在这里插入图片描述

案例2:备份数据库
在这里插入图片描述

其他指令:
在这里插入图片描述

12.3 一次性的调度任务:at

at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行作业。atd守护进程会检查系统上的一个特殊目录来获取at命令的提交的作业,默认情况下,atd守护进程每60秒检查一次目录,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。

注意:at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。

在这里插入图片描述

在这里插入图片描述
使用at命令指定要确保atd进程在运行。

查看atd进程是否在运行 : ps -ef | grep atd
在这里插入图片描述
1、at命令格式

at [选项] [时间]
Ctrl + D 结束at命令的输入

2、at命令选项
在这里插入图片描述
3、时间定义

at允许使用一套相当复杂的指定时间的方法:

● 能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
● 能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
● 能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm
● 能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2009-03-1
● 能够使用相对计时法。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。 例如:now + 5 minutes 04pm + 3 days
● 能够直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
在这里插入图片描述

4、相关命令

1)at:在特定的时间执行一次性的任务;2)atq:列出用户的计划任务,如果是超级用户将列出所有用户的任务,结果的输出格式为:作业号、日期、小时、队列和用户名;3)atrm:根据job number删除at任务;4)batch:在系统负荷允许的情况下执行at任务,就是在系统空闲的情况下才执行at任务。

5、相关配置文件

1)时间规范的确切定义可以在/usr/share/doc/at-3.1.13/timespec中查看;2)默认情况下计划任务都是存放在/var/spool/at/文件夹中;3)root用户可以在任何情况下使用at命令,而其他用户使用at命令的权限定义在/etc/at.allow(被允许使用计划任务的用户)和/etc/at.deny(被拒绝使用计划任务的用户)文件中,默认没有文件需要自己创建允许用户和拒绝用户文件;4)如果/etc/at.allow文件存在,只有在该文件中的用户名对应的用户才能使用at;5)如果/etc/at.allow文件不存在,/etc/at.deny存在,所有不在/etc/at.deny文件中的用户可以使用at;6)at.allow比at.deny优先级高,执行用户是否可以执行at命令,先看at.allow文件中有没有才看at.deny文件;7)如果/etc/at.allow和/etc/at.deny文件都不存在,则只有root用户能使用at;8)一个空内容的/etc/at.deny表示任何用户都能使用at命令,这是默认的配置;9)一般情况下这两个文件存在一个即可。如果只有少数几个用户需要使用计划任务,那么就保留at.allow文件,如果大部分用户都要使用计划任务,那么保留at.deny即可。

6、at使用 案例
在这里插入图片描述

在这里插入图片描述

13.Linux网络配置:

13.1Linux网络配置原理图:

在这里插入图片描述

13.2 查看网络ip和网关

常用查linux的ip地址的两种方式:

ifconfig
hostname -i

13.2.1查看虚拟机网络编辑器和修改IP地址
在这里插入图片描述
13.2.2查看网关
在这里插入图片描述
13.2.3查看linux下VMnet8的IP地址(ifconfig)

在这里插入图片描述

13.2.4查看windows下VMnet8的IP地址(ipconfig)
在这里插入图片描述

然后查看windows下的ipv4:
在这里插入图片描述

13.3 ping:测试主机之间的网络连通性

(1)语法:
在这里插入图片描述
(2)实例

在这里插入图片描述

(2.1)windows连接linux:

在这里插入图片描述

显示是通的。

(2.2)linux连接windows:
在这里插入图片描述

注意事项:在控制面板关闭windows的防火墙:才能完成ping 连通
在这里插入图片描述

完成ping通了:
在这里插入图片描述

13.4 Linux网络环境配置(重点)

13.4.1方式一:自动获取方式:
自动获取适用于自己玩,不适合服务器(服务器需要固定的ip)
在这里插入图片描述

查看linux网络配置获取ip的方式:

在这里插入图片描述

在这里插入图片描述

如果显示正在连接,却一直连接不上网络,则退到linux系统桌面,用浏览器测试网络是否连接:测试:www.baidu.com

如果不能连接或者出现如下图片:

在这里插入图片描述

解决:

1:win+R打开运行框,然后输入services.msc,点击确定

在这里插入图片描述
2:找到VMware DHCP Service,然后右击启动
在这里插入图片描述

如果VMware DHCP Service 服务无法启动,则
在这里插入图片描述

注意,如果此方法还是不能连接网络,则在上图多次取消勾选并应用,然后再次勾选并应用试试。
3:点击启动之后在虚拟机上重新连接网络,这时候网络连接成功




在这里插入图片描述

在这里插入图片描述

13.4.2方式二:程序员配置网络的方式(设置固定ip):

vim /etc/sysconfig/network-scripts/ifcfg-ens33
如我将ip地址设置成192.168.211.211

#ip地址,后两位可以自己设置任意的,但是要在一定范围内
IPADDR=192.168.211.211
#网关,也是自定义的,要和ip在同一网段211
GATEWAY=192.168.211.2
#域名解析器
DNS1=192.168.211.2

在这里插入图片描述

dhcp:为自动分配,将其换成static

在这里插入图片描述

在这里插入图片描述

然后修改这里:编辑–》虚拟网络编辑:
在这里插入图片描述

统一网段:192.168.211.1

在这里插入图片描述

统一网关:
在这里插入图片描述

然后重启机器或者重启网络:service network restart

或者重启虚拟机:reboot
在这里插入图片描述

然后测试:
找到windows主机ip:
在这里插入图片描述
找到linux虚拟机的ip:
在这里插入图片描述

可以互相ping测试,也可以ping百度测试(ping www.baidu.com)。

13.5 设置主机名和hosts映射

13.5.1设置主机名
在这里插入图片描述
13.5.2设置hosts映射
在这里插入图片描述
(1)linux下设置hosts映射:

第一步:

先进入此文件,设置映射的命令:
vim /etc/hosts

第二步:
然后查找windows的主机名:在我的电脑–>右键属性:如下
在这里插入图片描述

第三步:
然后在linux下测试ping windows主机:
在这里插入图片描述

(2)windows下设置hosts映射:

第一步,先查找linux的主机名:

hostname

第二步:复制目录路径修改:

C:\Windows\System32\drivers\etc

第三步:然后打开hosts文件编辑:

在这里插入图片描述

然后保存退出。

第四步:然后在windows下测试:

win+r 后输出cmd:测试成功如下
在这里插入图片描述

13.6主机名解析过程分析:

在这里插入图片描述

实例:
在这里插入图片描述

在这里插入图片描述

13.7查看防火墙:

运行service iptables status出现

在这里插入图片描述
解决方法:
yum install iptables-services

基本操作

# 停止防火墙service iptables stop  
# 启动防火墙
service iptables start 
# 重启防火墙
service iptables restart 
# 永久关闭防火墙
chkconfig iptables off  
# 永久关闭后重启
chkconfig iptables on 

开启80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没有此参数重启后失效)

提示success,表示设置成功,这样就可以继续后面的设置了。

systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启

ystemctl start firewalld开启防火墙,没有任何提示即开启成功。

通过systemctl status firewalld查看firewalld状态,显示running即已开启了。

重启防火墙

    service iptables restart


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部