Linux基础教程


前言

我又回来了,再次入门linux之后回来更新一下这篇博客
我觉得我又行了???


一、概念

1.概述:

linux 是一个开源、免费的操作系统,就像Windows一样。只不过linux的界面没有图形化,大部分操作都要通过命令行操作

目前linux主要发行的版本也有CentOS、RedHat(红帽)、Ubuntu(乌班图)、Debain(蝶变)等

2.linux和unix

unix也是个操作系统,他的起源大概就是很久很久以前,贝尔实验室(很nb的实验室)里面的两位工作人员研发出了Unix系统(c语言)。
之后很多大公司觉得这个系统很好,就开始了二次开发,出了发行版。但是这些发行版只能运行在高性能计算机上,普通人是用不起的。
这时有一个人提出了一个观点:每个人都应该有阅读修改源代码的权利。于是他发起了一个计划(GNU计划)。
这时又出现了一个人,他就借此机会发出了linux系统。
因此Linux其实是GNU计划下的产物
大概的整个体系是这样子的
在这里插入图片描述

二、安装等基本操作

1.VMware

  1. 虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统。虚拟系统能生成操作系统的全新虚拟镜像,它具有真实操作系统完全一样的功能,在虚拟机中所有操作都是在这个全新的独立的虚拟系统里面进行的。简单来说:虚拟机生成一个虚拟系统,它的所有操作都是独立的。
  2. 安装虚拟机:
    • 百度vmware安装
    • 跟着教程走
    • 最后那个许可密钥也能百度到
    • 最后这样子就好了
      在这里插入图片描述

2.CentOS

  1. 我这里安装的是CentOS8系统
  2. 百度CentOS8安装,一步一步来就可以了
  3. 需要注意的点:
    - 内存2G+
    - 硬盘最小20G,建议60+,不然以后还要扩充磁盘
    - 设置镜像
  4. 安装完成之后就可以用了

3.克隆

如果想要克隆一台虚拟机,有两种方法

  1. 直接拷贝一分虚拟机文件
  2. 使用vmware的克隆操作(操作时需要关闭linux系统)

4.快照

就是标记一个节点,你在任意时刻可以返回至标记的任意节点。在vmware的快照管理进行操作

5.迁移和删除

其实这个操作就是文件夹的迁移和删除操作
你在电脑上安装了虚拟机之后,他其实就是一个文件,文件的迁移就是虚拟机的迁移

三.linux基础知识

1.目录结构

在这里插入图片描述

  • root,存放root用户的相关文件
  • home,存放普通用户的相关文件 bin,存放常用命令的目录,如vi,su
  • usr,安装一个软件的默认目录,相当于windows下的program files
  • etc,所有系统管理所需要的配置文件和子目录
  • bin,binary的缩写,存放着经常使用的命令
  • opt,这是给主机额外安装软件所摆放,一般安装我们下载的东西,默认为空。
  • sbin,要具有一定权限才可以使用命令
  • lib,系统开机所需要最基本的动态连接共享库
  • mnt,默认挂载光驱和软驱的目录 etc,存放配置的相关文件
  • var,存放经常变化的文件,如网络连接的sock文件 、日志
  • boot,存放引导系统启动的相关文件
  • proc,这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
  • srv,service缩写。该目录存放一些服务启动之后需要提取的数据
  • sys,这是linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统
  • tmp,这个目录是用来存放一些临时文件的
  • dev,类似于windows的设备管理器,把所有的硬件用文件的形式存储
  • media,系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。
  • selinux,selinux是一种安全子系统,它能控制程序只能访问特定文件。

2.vim

  1. vim是linux上最基本的文本编写器
  2. 三种模式:
    - 一般模式:vim打开文档就是一般模式,可以使用复制y、粘贴p、选择行V、撤销u
    - 编译模式:一般模式下按i进入,按Esc退回一般模式
    - 命令行模式:在一般模式下按:进入,离开q、保存离开wq、强制退出q!等
    在这里插入图片描述

3.运行级别

0 :关机
1 :单用户
2:多用户状态没有网络服务
3:多用户状态有网络服务(常用)
4:系统未使用保留给用户
5:图形界面(默认,常用)
6:系统重启

四、用户和组管理

1.用户

linux系统是一个多用户多任务的操作系统

  1. 添加用户
    - useradd 用户名
  2. 修改密码
    - passwd 用户名
  3. 删除用户
    - userdel 用户名
  4. 查询用户信息
    - id 用户名
  5. 切换用户
    - su - 用户名
  6. 注销用户
    - logout(注销)

2.组

每个用户必须属于一个组

  1. 添加组
    - groupadd 组名
  2. 删除组
    - groupdel 组名
  3. 更改用户所属组
    - usermod -g 组名 用户名
  4. 创建用户直接加入组
    - useradd -g 组名 用户名

3.文件所属

每个文件必须有

  • 所有者:一般为文件的创建者
  • 所有组:一般为文件的创建者所属的组
  • 其他组:除了其所属组的其他组
  1. 查看文件所有者和所有组
    - ls -ahl
  2. 修改文件所有者
    - chown 用户名 文件名
  3. 修改文件所有组
    - chgrp 组名 文件名

五、基本指令

1. 开关机

  • shutdown -h now(立刻关机) -h 1(一分钟后关机) -r now(立刻重启)
  • reboot(立刻重启)

2. 文件操作

  • ls
    -a:显示当前目录所有文件和目录,包括隐藏文件
    -l:以列表的形式显示
  • cd [参数]
    路径:切换到指定路径
    ~或者空格:回到家目录
    ..:回到上级目录
  • mkdir [参数] 目录名
    -p:创建多级目录
  • rmdir [参数] 目录名(删除空目录)
  • rm [参数] 文件/目录名
    -r:递归删除文件夹
    -f:强制删除
  • touch 文件名(创建目录)
  • cp [参数] 源 目的
    -r:递归复制整个文件夹
  • mv [参数] 源 目的
  • cat [参数] 文件名(查看文件内容)
    -n:显示行号
  • echo [参数] [输出内容]
  • pwd(显示当前文件路径)
  • find [搜索范围] [参数]
    -name:按照指定的文件名查找文件
    -user:查找用户名所有文件
    -size:按照文件大小查找文件

3.>和>>

就是将>前面要显示的内容写入后面的文件
例如:

  • ls -l>文件(列表的内容写入文件,覆盖写入)
  • ls -l>>文件(列表的内容写入文件,追加写入)
  • cat 文件 >> 文件

4.date

  • date (显示当前时间)
  • date +%Y (显示当前年份)
  • date +%m(显示当前月份)
  • date +%d (显示当前是哪一天)
  • date “+%Y-%m-%d %H:%M:%S”(显示年月日时分秒)

5.grep

  • grep [参数] 查找内容 源文件
    -n:显示行号和匹配行
    -i:忽略字母大小写

6.解压缩

  • tar [参数] 打包成的包名 打包文件路径
    -c:产生.tar打包文件
    -v:显示详细信息
    -f:指定压缩后的文件名
    -z:打包同时压缩
    -x:解压缩文件

六、权限管理

1.简介

在这里插入图片描述
0位是文件类型(d,-,l,c,b)

  • d:目录(文件夹)
  • -:普通文件
  • l:链接(快捷方式)
  • c:字符设备文件,例如鼠标、键盘
  • b:设备,例如硬盘

1-3位是所有者拥有该文件的权限
4-6位是所有组拥有该文件的权限
7-9位是其他用户拥有该文件的权限

2.rwx

  1. rwx作用到文件:
    r:可读
    w:可以修改
    x:可执行
  2. rwx作用到目录
    r:可以读取里面内容
    w:可以创建删除重命名目录
    x:可以进入该目录
  3. 数字表示rwx
    r:4
    w:2
    x:1

3.修改权限

  • chmod u=rwx,g=rx,o=x 文件/目录名
  • chmod o+w 文件/目录名
  • chmod g-x 文件/目录名
  • chmod 751 文件/目录名

七、定时任务调度

1.概述

任务调度:指的是系统再某个时间执行的特定的命令或程序

2.相关命令

  • crontab [参数]
    -e:编译定时任务
    -l:查询定时任务
    -r:删除当前用户所有的crontab任务

3.举例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

八、磁盘

1.分区

linux中的每个分区都是用来组成整个文件系统的一部分

linux采用了一种叫做“载入”的处理方法,一个分区和一个目录关联起来

采用lsblk -f查看设备挂载情况
在这里插入图片描述

2.举例

肝不动了,等过一天再来写。sorry

九、网络配置

先来介绍一下虚拟机的网络设置
在这里插入图片描述

  • 桥接模式:将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络。简而言之,就好像在上图所示的局域网中添加了一台新的、独立的计算机一样。因此,虚拟机也会占用局域网中的一个IP地址,并且可以和其他终端进行相互访问。
  • NAT模式:VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚拟机向外部网络发送的请求数据"包裹",都会交由NAT网络适配器加上"特殊标记"并以主机的名义转发出去,外部网络返回的响应数据"包裹",也是先由主机接收,然后交由NAT网络适配器根据"特殊标记"进行识别并转发给对应的虚拟机,因此,虚拟机在外部网络中不必具有自己的IP地址。从外部网络来看,虚拟机和主机在共享一个IP地址,默认情况下,外部网络终端也无法访问到虚拟机。此外,在一台主机上只允许有一个NAT模式的虚拟网络。因此,同一台主机上的多个采用NAT模式网络连接的虚拟机也是可以相互访问的。
  • 仅主机模式:NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。

简单来看就是如下一个图

连接方式连接网卡连接本机连接局域网连接公网
桥接模式本地真实网卡YYY
NAT模式VMnet8YNY
仅主机模式VMnet1NNN

1.过程

这里只给出NAT网络配置的过程图
在这里插入图片描述

2.查看ip地址和网关

这里是子网ip和网关
在这里插入图片描述
在linux里ifconfig就可以查看网络配置
在这里插入图片描述

3.ping

检测是否可以访问某个ip
比如ping www.baidu.com
或者ping 192.168.142.x

4.获取ip的方式

  1. 动态获取:每次登录时虚拟机的ip都不一样。对于在虚拟机上放置服务器很不友好
  2. 静态获取:即指定ip
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    设置如下东西
    在这里插入图片描述
    然后重启网络服务即可
    nmcli c reload

十、进程管理

1.概述

在linux中每个执行的程序都被称为一个进程。每一个进程都被分配了一个ID(PID),叫做进程号

每个进程都可能以两种方式存在。一种是前台,即屏幕上能够看到的。另一种是后台,即无法看到的进程。

2.查看进程

ps:查看进程

  • A :所有的进程均显示出来,与 -e 具有同样的效用;
  • a : 显示现行终端机下的所有进程,包括其他用户的进程;
  • u :以用户为主的进程状态 ;
  • x :通常与 a 这个参数一起使用,可列出较完整信息。
  • l :较长、较详细的将该PID 的的信息列出;
  • j :工作的格式 (jobs format)
  • f :做一个更为完整的输出。

在这里插入图片描述
解释一下什么意思

  • USER:用户名称
  • PID:进程号
  • %CPU:进程占用 CPU 的百分比
  • %MEM:进程占用物理内存的百分比
  • VSZ:进程占用的虚拟内存大小(单位:KB)
  • RSS:进程占用的物理内存大小(单位:KB)
  • TT:终端名称,缩写 .
  • STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-
    正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
  • STARTED:进程的启动时间
  • TIME:CPU 时间,即进程使用 CPU 的总时间
  • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

3.终止进程

kill [参数] PID:终止指定进程
killall:终止全部进程

十一、防火墙

在真正的生产环境,往往需要吧防火墙打开,但是这样外部的请求就不能跟服务器监听端口通讯,于是就需要打开指定的的端口

  • 打开端口: firewall-cmd --permanent --add-port=端口号/协议
  • 关闭端口: firewall-cmd --permanent --remove-port=端口号/协议
  • 重新载入,才能生效 : firewall-cmd --reload
  • 查询端口是否开放: firewall-cmd --query-port=端口/协议

十二、rpm与yum

1.rpm概述

rpm是用于互联网下载包的打包及安装工具

2.指令

rpm [参数] | grep xxx(用于检查某个软件是否下载)

  • a:查询所有套件;
  • b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
  • c:只列出组态配置文件,本参数需配合"-l"参数使用;
  • d:只列出文本文件,本参数需配合"-l"参数使用;
  • e<套件档>或–erase<套件档>:删除指定的套件;
  • f<文件>+:查询拥有指定文件的套件;
  • h或–hash:套件安装时列出标记;
  • i:显示套件的相关信息;
  • i<套件档>或–install<套件档>:安装指定的套件档;
  • l:显示套件的文件列表;
  • p<套件档>+:查询指定的RPM套件档;
  • q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
  • R:显示套件的关联性信息;
  • s:显示文件状态,本参数需配合"-l"参数使用;
  • U<套件档>或–upgrade<套件档>:升级指定的套件档;
  • v:显示指令执行过程;
  • vv:详细显示指令执行过程,便于排错。

3.yum概述

Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包

4.指令

yum list | grep xxx(查看yum服务器是否有需要安装的软件)
yum install xxx(安装yum包)

十二、安装常见应用

1.JDK

  1. 在opt里新建一个jdk目录
  2. 去官网下载jdk的压缩包:jdk-8u261-linux-x64.tar.gz
  3. 解压:tar -zxvf jdk-8u261-linux-x64.tar.gz
  4. 在local里面新建jdk目录:mkdir /usr/local/jdk
  5. 将解压好的文件转移到里面:6) mv /opt/jdk/jdk1.8.0_261 /usr/local/jdk
  6. 配置环境变量:vim /etc/profile
  7. export JAVA_HOME=/usr/local/java/jdk1.8.0_261
    export PATH=$JAVA_HOME/bin:$PATH
  8. 重新加载配置:source /etc/profile

2.IDEA

流程几乎和上面一样,不再赘述

十三、Shell

继续拖更,,,,十分对不起

十四、常见问题

1.设置中文

不要瞎听百度上奇奇怪怪的做法打开设置,到这个框框
在这里插入图片描述
添加一个中文pinyin就可以了,很简单,不要去修改文件啥的。不然就像我一样要重新再建一个虚拟机

总结

不慌,等我学明白了再回来更新…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值