Linux学习

Linux学习

1、Linux与CentOS的关系


1.1、什么是Linux?

  1. Lunix是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。

  1. Linux同时具有字符界面和图形界面。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

  1. Linux具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈。

  1. Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性。

  1. 目前主流的 Linux 版本有:

  • Debian(及其派生版本Ubuntu、Linux Mint)

  • Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)

  • openSUSE

1.2、什么是CentOS?

  1. CentOS是企业Linux发行版领头羊Red Hat Enterprise Linux的再编译版本(是一个再发行版本)。

  1. CentOS完全免费开源。

  1. CentOS独有的yum命令支持在线升级,可以即时更新系统,不像Red Hat Enterprise Linu那样需要花钱购买支持服务。

  1. CentOS同时拥有终端命令界面和图形界面。

1.3、两者之前的关系

  • CentOS是基于Liunx发版的新系统

  • CentOS与Linux都同时具有终端命令界面和图形界面

  • Linux CentOSLiunx都是属于开源系统

1.4、总结

严格意义来说,可以把Linux看做是一个内核,而现在人们已经习惯了用Linux来形容整个基于Linux内核的操作系统。换句话来说,就比如你电脑安装了Linux系统,那这个系统又包含了很多种版本,其中就包括Centos或者Ubuntu(也是基于Linux发版的系统之一)。

2、本地安装Centos7


详细操作参考:

https://blog.csdn.net/Augenstern_QXL/article/details/122251037

2.1、VMware下载安装

安装vmware:腾讯软件下载

秘钥:

ZF3R0-FHED2-M80TY-8QYGC-NPKYF

UA5DR-2ZD4H-089FY-6YQ5T-YPRX6

更改安装位置,一直下一步即可

2.2、Centos7下载

  1. 我们去网易开源镜像站进行下载:https://mirrors.163.com/

  1. 找到 7.6.1810 版本,进去有一个 readme 文件

  1. 下载 readme 文件,使用记事本打开,进入下图网站:http://vault.centos.org/

  1. 进入网站后下载 7.6 版本即可,路径为 /7.6.1810/isos/x86_64/

CentOS-7-x86_64-Everything-2003.iso

2.3、Centos7安装到VMware虚拟机

注意内存设置

2.处理器设置

3、网络适配器选择

NAT模式

即可

  • 桥接模式,虚拟系统可以和外部系统通讯,但是容易造成IP冲突。

  • NAT模式,网络地址转换模式,虚拟系统可以和外部系统通讯,不造成IP冲突。

  • 主机模式:独立的系统

2.4、centos7设置

1.选择软件安装

以后工作生活动我们可以默认选择 最小安装,但是在学习时尽量选择带有如下环境

![在这里插入图片描述](https://gitee.com/TheXMClassMate/markdownInsertPicture/raw/master/images/a6ce15e9e7764f38b339179dc8834566.png)

2.手动分区,Linux系统一般分三个区

  • /boot 分区:1G

  • swap 分区:一般以运行内存为准即可(上述我们分了2GB的运存)

  • / 根分区:剩余空间

3.设置完成后进入主页面如下

2.5、虚拟机克隆

方式一:找到安装目录直接拷贝一份安装好的虚拟机文件

特点:

  • 发送给其他电脑,其他电脑使用VMware打开,这样我们这里的Linux系统就可以被其他电脑使用了,包括root、tom账户等。

方式二:使用VMware提供的方式克隆,注意,在克隆之前我们要先关闭Linux系统

选择创建完整克隆

修改名称、位置,然后点击完成等待即可克隆成功

2.6、虚拟机快照

  1. 我们右键虚拟机-快照-拍摄快照

快照与克隆的区别

  • 克隆与快照的最大的区别:克隆之后是2 台机器,而快照之后依旧是1 台机器(类似windows的还原点)。后期的危险操作前建议使用快照。

2.7、虚拟机的迁移和删除

虚拟系统安装好了,它的本质就是文件(放在文件夹的)。因此虚拟系统的迁移很方便,我们可以把安装好的虚拟系统这个文件夹整体拷贝或剪切到另外位置使用。

删除也很简单,用VMware进行移除,再点击菜单->从磁盘删除即可,或者直接手动删除虚拟系统对应的文件夹即可。

3、Linux 系统启动过程


Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:

  • 内核的引导。

  • 运行 init。

  • 系统初始化。

  • 建立终端 。

  • 用户登录系统。

init程序的类型:
SysV: init, CentOS 5之前, 配置文件: /etc/inittab。
Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。
Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。

3.1、内核引导

当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。

3.2、运行init

init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。

init 程序首先是需要读取配置文件 /etc/inittab。

3.3、运行级别

许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)

init进程的一大任务,就是去运行这些开机启动的程序

但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。

Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。

systemctl get-default查看运行级别

Linux系统有7个运行级别(runlevel):

  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

  • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录

  • 运行级别2:多用户状态(没有NFS)

  • 运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式

  • 运行级别4:系统未使用,保留

  • 运行级别5:X11控制台,登录后进入图形GUI模式

  • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

3.4、系统初始化

在init的配置文件中有这么一行: si::sysinit:/etc/rc.d/rc.sysinit 它调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit是一个bash shell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本。

它主要完成的工作有:激活交换分区检查磁盘加载硬件模块以及其它一些需要优先执行任务。

l5:5:wait:/etc/rc.d/rc5

3.5、用户登录系统

一般来说,用户的登录方式有三种:

  • (1)命令行登录

  • (2)ssh登录

  • (3)图形界面登录

对于运行级别为5的图形方式用户来说,他们的登录是通过一个图形化的登录界面。登录成功后可以直接进入 KDE、Gnome 等窗口管理器。

而本文主要讲的还是文本方式登录的情况:当我们看到mingetty的登录界面时,我们就可以输入用户名和密码来登录系统了。

Linux 的账号验证程序是 login,login 会接收 mingetty 传来的用户名作为用户名参数。

然后 login 会对用户名进行分析:如果用户名不是 root,且存在 /etc/nologin 文件,login 将输出 nologin 文件的内容,然后退出。

这通常用来系统维护时防止非root用户登录。只有/etc/securetty中登记了的终端才允许 root 用户登录,如果不存在这个文件,则 root 用户可以在任何终端上登录。

/etc/usertty文件用于对用户作出附加访问限制,如果不存在这个文件,则没有其他限制。

3.6、图形模式与文字模式的切换方式

Linux预设提供了六个命令窗口终端机让我们来登录。

默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 来切换它们。

如果你用的vmware 虚拟机,命令窗口切换的快捷键为 Alt + Space + F1~F6. 如果你在图形界面下请按Alt + Shift + Ctrl + F1~F6 切换至命令窗口。

3.7、shutdown关闭Linux

在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

正确的关机流程为:sync > shutdown > reboot > halt

关机指令为:shutdown ,你可以man shutdown 来看一下帮助文档。

例如你可以运行如下命令关机:

sync #将数据由内存同步到硬盘中。

shutdown #关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:

shutdown –h 10 ‘This server will shutdown after 10 mins’ #这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。

shutdown –h now #立马关机

shutdown –h 20:25 #系统会在今天20:25关机

shutdown –h +10#十分钟后关机

shutdown –r now #系统立马重启

shutdown –r +10#系统十分钟后重启

reboot #就是重启,等同于 shutdown –r now

halt #关闭系统,等同于shutdown –h now 和 poweroff

最后总结一下,不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。

关机的命令有 shutdown –h now halt poweroff 和 init, 重启系统的命令有shutdown –r now reboot init 6

4、Linux目录结构


  1. Linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录 /,然后在此目录下再创建其他的目录

  1. 在Linux世界里,一切皆文件

Linux会把所有的硬件映射成一个文件来管理

就是我们前面安装centos设置的

4.1、Linux文件结构

1、Linux严格区分大小写

Linux 和Windows不同,Linux严格区分大小写的,包括文件名和目录名、命令、命令选项、配置文件设置选项等。

  • 例如,Win7 系统桌面上有文件夹叫做Test,当我们在桌面上再新建一个名为 test 的文件夹时,系统会提示文件夹命名冲突;

  • Linux 系统不会,Linux 系统认为 Test 文件和 test 文件不是同一个文件,因此在 Linux 系统中,Test 文件和test 文件可以位于同一目录下。

我们在操作 Linux 系统时要注意区分大小写的不同。

2、Linux文件"扩展名"

我们都知道,Windows 是依赖扩展名区分文件类型的,比如,".txt" 是文本文件、".exe" 是执行文件,但Linux 不是。

Linux 系统通过权限位标识来确定文件类型,常见的文件类型有普通文件目录链接文件块设备文件字符设备文件等几种。Linux 的可执行文件就是普通文件被赋予了可执行权限+x

Linux 中的一些特殊文件还是要求写 "扩展名" 的,但 Linux 不依赖扩展名来识别文件类型,写这些扩展名是为了帮助运维人员来区分不同的文件类型。

  • 压缩包:Linux 下常见的压缩文件名有.gz、.bz2、.zip、.tar.gz、.tar.bz2、.tgz等。

  • 二进制软件包:CentOS 中所使用的二进制安装包是 RPM(Redhat Program Manage) 包,所有的 RPM 包都用".rpm"扩展名结尾,目的同样是让管理员一目了然。

  • 程序文件:Shell 脚本一般用 ".sh" 扩展名结尾。

  • 网页文件:网页文件一般使用 ".php" 等结尾,不过这是网页服务器的要求,而不是 Linux 的要求。

3、Linux中所有内容以文件形式保存

文件根据不同颜色背景分为(白色/黑色)

文件夹(蓝色)

可执行文件(绿色)

Linux下一切皆为文件,Linux文件类型分为七种

普通文件
d 目录文件
p 管理文件
l 链接文件
b 块设备文件
c 字符设备文件
s 嵌套字文件
4、Linux中所有存储设备都必须在挂载之后才能使用

挂载其实就是给这些存储设备分配盘符,只不过 Windows 中的盘符用英文字母表示,例如c:,d:,而 Linux 中的盘符则是一个已经建立的空目录。我们把这些空目录叫作挂载点(可以理解为 Windows 的盘符),把设备文件(如 /dev/sdb)和挂载点(已经建立的空目录)连接的过程叫作挂载

4.2、根目录结构

Linux 系统不同于 Windows,没有 C 盘、D 盘、E 盘那么多的盘符,只有一个根目录(/)树状结构,所有的文件(资源)都存储在以根目录(/)为树根的树形目录结构中。

路径:路径分为 绝对路径相对路径

  • 绝对路径:不管当前工作路径是在哪,目标路径都会从“/”磁盘根下开始。

  • 相对路径:除绝对路径之外的路径称之为相对路径,相对路径得有一个相对物(当前工作路径)。

只要看到路径以“/”开头则表示该路径是绝对路径,除了以“/”开头的路径称之为相对路径。

../:表示上级目录(上一级)

./:表示当前目录(同级),普通文件./可以省略,运行可执行文件(绿色)必须加./

文件夹名称/:表示下级目录(下一级),注意这个斜杠/

1、Linux系统的文件目录用途
  • /bin (/usr/bin、/usr/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令

  • /sbin(/usr/sbin、/usr/local/sbin)Super User 的意思,这里存放的是系统管理员使用的系统管理程序

  • /home存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名

  • /root该目录为系统管理员,也称作超级权限者的用户主目录

  • /lib系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库

  • /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件

  • /etc 所有的系统管理所需要的配置文件和子目录。比如安装 mysql数据库,mysql的配置文件会存放在此

  • /usr 这是一个很重要的目录,用户的很多应用程序文件都放在这个目录下,类似于 windows 下的 program files 目录

  • /boot 存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件

  • /media Linux系统会自动识别一些设备,例如U盘,光驱等,当识别后,Linux会把识别的设备挂载到这个目录下

  • /mnt系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在 /mnt/ 上,然后进入该目录就可以查看内容了。例如我们之前的共享文件夹 D:/myshare

  • /usr/local 这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码方式安装的程序

  • /proc这个目录是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息

  • /srvservice的缩写,该目录存放一些服务启动之后需要提取的数据

  • /sys 这是Linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs

  • /tmp 这个目录是用来存放临时文件的用完即丢的文件,比如安装包

  • /dev device(设备)类似于windows的设备管理器,把所有的硬件用文件的形式存储

  • /opt 这是给主机额外安装软件所存放的目录。如安装oracle数据库就可以放到该目录下,默认为空(与/user/local作用相似)

  • /var 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件

  • /selinux[security-enhanced linux] SELinux 是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置

注意:

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

  • /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

  • /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

  • 值得提出的是 /bin/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而/sbin,/usr/sbin 则是给 root 使用的指令。

  • /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

4.3、目录管理

处理目录的常用命令

接下来我们就来看几个常见的处理目录的命令吧:

  • ls(英文全拼:list files): 列出目录及文件名

  • cd(英文全拼:change directory):切换目录

  • pwd(英文全拼:print work directory):显示目前的目录

  • mkdir(英文全拼:make directory):创建一个新的目录

  • rmdir(英文全拼:remove directory):删除一个空的目录

  • cp(英文全拼:copy file): 复制文件或目录

  • rm(英文全拼:remove): 删除文件或目录

  • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

1、绝对路径,相对路径

cd:切换目录命令!

./: 当前目录

cd ..: 返回上一级目

./与/root指向同一个位置且位标志符为 ~

根目录标志符为/

2、ls(列出目录!)

lsit file 的缩写

在Linux中 ls 可能是最常常被使用的 !

ls -a参数:all ,查看全部的文件,包括隐藏文件

ls -l参数 列出所有的文件,包含文件的属性和权限,没有隐藏文件

所有Linux可以组合使用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值