Linux基础

  • A+
所属分类:linux技术
摘要

模块为什么要学习linux?Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIN(可移植操作系统接口)和UNX的多用户、多任务、支持多线程和多CPU的操作系统。

模块

  1. 认识Linux
  2. 基本的命令(文件操作、目录管理、文件属性、Vim编辑器、磁盘、账户管理)
  3. 软件的安装与部署

简介

为什么要学习linux?

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIN(可移植操作系统接口)和UNX的多用户、多任务、支持多线程和多CPU的操作系统。

在服务端、在开发领域Linux越来越受欢迎,尤其是作为一个后端程序员,必须掌握Linux的

  • Linux一切皆文件
  • 根目录/ ,所有的文件都挂在在这个节点下

使用虚拟机或者服务器安装Linux

阿里云服务器相关操作====》 服务器购买及宝塔部署环境说明

阿里云ecs服务器搭建 ====》 阿里云ecs服务器搭建

走进Linux

关机

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

关机指令为:shutdown ;

执行前先同步 sync

sync # 将数据由内存同步到硬盘中  shutdown # 关机指令 可以用 man shutdown 查看文档  shutdown -h 10 # 10分钟之后关机  shutdown -h now # 立马关机  shutdown -h 10:30 # 10点30分关机  shutdown -r now # 系统立马重启  shutdown -r +10 # 系统10分钟之后重启  reboot # 重启 等同于 shutdown -r now   halt # 关闭系统 等同于shutdown -h now 

不管是重启系统还是关闭系统,首先都要运行sync命令,把数据写到磁盘中

系统目录结构

登录系统后,在当前窗口输入命令:

ls / 

如下图所示

Linux基础

树状目录结构:

Linux基础

解释:

Linux基础

Linux基础

常用基本命令(掌握)

目录管理

相对路径 、绝对路径

cd : 切换目录命令!

./ : 当前目录

cd. . : 返回上一级目录

Linux基础

ls / ll (列出目录)

在Linux中 ls 命令是最常用的

-a 参数 : all , 查看全部的文件,包括隐藏文件  -l 参数 : 列出所有的文件,包括文件的属性与权限,无法查看隐藏文件 

所有Linux可以组合使用

Linux基础

Linux基础

cd命令 切换目录

cd 目录名 (绝对路径/相对路径)

  • 绝对路径:以 /开头
  • 相对路径: ../

Linux基础

pwd 显示当前用户所在的目录

Linux基础

touch : 新建文件

touch index.js 

mkdir 创建目录

Linux基础

rmdir 移除目录

rmdir 只能删除空的目录,如果下面存在文件,需要先删除文件按

递归删除多个目录加 rmdir -p

cp (复制文件按或者目录)

cp (源地址,目标地址)

Linux基础

当文件名相同时询问你是否覆盖 y:覆盖/n:取消

rm (移除文件或者目录)

-f :忽略不存在的文件、强制删除  极其危险 -r : 递归删除目录! -i : 互动删除 询问是否删除 
rm -rf /  # 系统中所有的文件都被删除了 也就是删库跑路的做法 非常刺激! 

mv 移动文件或者命令 重命名文件

-f :强制移动 -u :只替换已经更新过的文件 

Linux基础

reset :重新初始化终端/清屏。
clear :清屏。
history :查看命令历史
help :帮助

基本属性

明白文件属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

在Linux中我们可以使用llls -l命令来显示一个文件的属性以及文件所属的用户和组,如:

Linux基础

实例中,boot文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:

  • 当为[ d ]则是目录
  • 当为[ -]则是文件
  • 若是[ b]则表示为装置文件里面的可供储存的接口设备(可随机存取装置)
  • 若是[ c]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

接下来的字符中,以三个为一组,且均为『rwx』的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x]代表可执行(execute)。

要注意的是,这三个根限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。每个文件的属性由左边第一部分的10个字符来确定(如下图) ∶

Linux基础

Linux基础
Linux基础

修改文件属性

chgrp 更改文件属组

chgrp [-R]属组名 文件名 

-R :递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

Linux基础

chown 更改文件属组,也可以同时更改文件属组

chown [-R] 属组名 文件名 chown [-R] 属组名:属组名 文件名 

Linux基础

上面两个很少使用

chmod 更改文件9个属性

解决 你没有权限操作此文件!

chmod [-R] xyz 文件或者目录 

Linux基础

可读可写不可执行    rw-	   6 可读可写可执行		 rwx-   7    chmod 777   文件赋予所有用户可读可写可执行 

Linux基础

文件内容查看

Linux系统中使用以下命令来查看文件的内容:

  • cat由第一行开始显示文件内容

  • tac 从最后一行开始显示,可以看出tac是cat的倒着写!

    Linux基础

  • nl显示的时候,顺道输出行号!

    Linux基础

  • more一页一页的显示文件内容

  • less 与more类似,但是比 more更好的是,他可以往前翻页!(空格下翻页,pageDown , pageUp键代表翻动页面!退出q命令,查找字符串/要查询的字符;向上查询用?要查询的字符; n搜索下一个 N搜索上一个)

  • head只看头几行

    Linux基础

  • tail 只看尾巴几行

你可以使用 man [命令]=来查看各个命令的使用文档,如: man cp。

查看网络命令: ifconfig----Linux ipconfig-----Windows

网络配置目录:cd letc/sysconfig/network-scripts

链接

Linux分为两种:硬链接与软链接

硬链接:用户可以建立这种机制防止误删除

软链接:快捷方式

ln 创建链接

touch  文件名 :命令创建文件  echo "" >> 文件名 : 输入字符串 

Vim编辑器

什么是Vim编辑器?

vim通过一些插件可以实现和IDE—样的功能!

Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用 尤其是Linux中,必须要会使用Vim(查看内容,编辑内容,保存内容!)

键盘图:

Linux基础

三种使用模式

基本上vilvim 共分为三种模式,分别是命令模式(Command mode ),输入模式( Insert mode )和底线命令模式(Lastline mode )。这三种模式的作用分别是∶

命令模式∶

用户刚刚启动vilvim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。以下是常用的几个命令︰

  • i切换到输入模式,以输入字符。
  • ×删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。

输入模式:

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底线命令模式:

在命令模式下按下:(英文冒号)就进入了底线命令模式。光标就移动到了最底下,就可以在这里输入一些底线命令了!

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号) :

  • q 退出程序
  • w 保存文件
  • wq 保存退出

按ESC键可随时底线命令模式

使用Vim方法:

vim 文件名 

Linux基础

完整的演示说明

新建或者编辑文件,按i进入编辑模式,编写内容,编写完成后退出编辑模式,esc,退出之后进入底线命令模式︰wq保存退出!

第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等

Linux基础
Linux基础


Linux基础


Linux基础
Linux基础


第二部分∶一般模式切换到编辑模式的可用的按钮说明

Linux基础

第三部分:一般模式切换到指令行模式的可用的按钮说明

Linux基础

Linux基础

账户管理

一般在公司中 接触不到root账户呀......?

简介

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号 ,然后以这个账号的身份进入系统。

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。

用户账号的管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。

useradd 命令 添加用户

useradd -选项 用户名useradd-选项 用户名 useradd -m 用户名 -g 组名  # 添加用户时分配组 

Linux基础

理解一下本质:Linux中一切皆文件,这里的添加用户说白了就是往某一个文件中写入用户的信息了! /etc/passwd

userdel 删除用户

userdel -r 用户名   #删除用户时将目录一起删除 

usermod 修改用户

usermod  -d 路径 用户名 

切换用户

Linux基础
root:
Linux基础
切换用户:
Linux基础

hostname # 查看主机名 hostname 名字 # 修改主机名 

密码设置

我们一般通过root创建用户的时候!要配置密码!

Linux上输入密码是不会显示的,你正常输入就可以了,并不是系统的问题!

在公司中,我们一般拿不到公司服务器的root权限,都是一些分配的账号!

超级用户:

passwd username: new password: re password: 

普通用户:

passwd  (current) UNIX password: new password:  # 密码不能太简单 re password: 

锁定账户

password -l 用户名  # 该用户无法登录 password -d 用户名  # 清空用户密码 

用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同。如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对 /etc/group文件的更新。

创建用户组 groupadd

groupadd 组名  # 创建用户组 cat /etc/group  # 查看 

创建完用户组后可以得到一个组的id 指定id groupadd -g 520 组名入果不指定就是自增1

删除用户组 groupdel

groupdel 组名    # 删除 cat /etc/group  # 查看 

修改用户组信息 groupmod

-g  # 修改id -n  # 修改组名  groupmod -g 666 -n 新组名 旧组名 

切换用户组

# 登录当前用户 $ newgrp root  

扩展 文件的查看

完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。

与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd,/etclshadow,letclgroup等。

/ect/passwd

用户名:口令(登录密码 不可见):用户标识号:组标识号:注释性描述:主目录:登录she11 

Linux基础

这个文件中的每一行都代表这一个用户,我们可以从这里看出这个用户的主目录在那里,可以看到属于哪一个组!

登录口令:把真正的加密后的用户口令字存放到/etc/shadow文件中 保证安全性

用户组的所有信息都存放在/etc/group文件中。

磁盘管理

df (列出文件系统整体的磁盘使用量) du(检查磁盘空间使用量)

  • df
    Linux基础

  • du
    Linux基础

  • 检查根目录容量

du -sm /* 

系统初期 usr目录最大,很多文件都在这里

Mac或者想使用Linux挂载我们的一些本地磁盘或者文件! 了解即可

  • 挂载:mount
    Linux基础

  • 卸载:umount -f [挂载位置] 强制卸载

除了这个之外,以后我们安装了JDK,其实可以使用java中的一些命令来查看信息!

进程管理

对于我们开发人员来说,其实Linux更多偏向 于使用即可! |

基本概念

  1. 在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号!
  2. 每一个进程呢,都会有一个父进程!
  3. 进程可以有两种存在方式∶前台!后台运行!
  4. 一般的话服务都是后台运行的,基本的程序都是前台运行的!

命令

ps 查看当前系统中正在执行的各种进程的信息

ps -xx: 	-a # 显示当前终端运行的所有信息 (当前的进程) 	-u # 以用户的信息显示进程 	-x # 显示后台运行进程的参数   # ps -aux  查看所有的进程 ps -aux|grep mysql   #查看mysql的进程 ps -aux|grep java   #查看java的进程  # | 在Linux叫管道符  # grep 过滤命令   查找文件中符合条件的字符串! 

ps -ef : 可以查看到父进程的信息

ps -ef|grep mysql  #看父进程可以通过目录树结构查看  # 进程树 pstree -pu 	-p # 显示父id 	-u # 显示用户组 

结束进程:kill

kill -9 进程的id  # 强制结束进程 

对于开发人员,常用的基本就以上这些

环境安装

安装软件一般有3种方式

  • rpm
  • 解压缩
  • yum在线安装

JDK安装

开发Java必要的环境

  1. 官网下载 JDK包 rpm
  2. 安装Java环境
# 检测当前系统是否存在Java环境 java -version # 如果有需要卸载 rpm -qa|grep jdk # 检测jdk版本信息 rpm -e --nodeps jdk  # 卸载后可安装 rpm -ivh rpm包  # 配置环境变量 

Linux基础
Linux基础

配置环境变量:/etc/profile

rpm 无需配置 解压缩需要配置
Linux基础
确保Linux的防火墙端口是开启的,如果是阿里云,需要保证阿里云的安全组策略是开放的!

# 查看firewall服务状态 systemctl status firewalld  # 开启、重启、关闭、firewalld.service服务 # 开启 service firewalld start # 重启 service firewalld restart # 关闭 service firewalld stop  # 查看防火墙规则 firewall-cmd --list-all    # 查看全部信息 firewall-cmd --list-ports  # 只看端口信息  # 开启端口 开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent 重启防火墙:systemctl restart firewalld.service  命令含义: --zone #作用域 --add-port=80/tcp  #添加端口,格式为:端口/通讯协议 --permanent   #永久生效,没有此参数重启后失效 

Tomcat 安装

  1. 将文件移动到/usr/tomcat/下,并解压!
# mv apache-tomcat-9.0.22.tar.gz /usr # cd /usr # ls apache-tomcat-9.0.22.tar.gz # tar -zxvf apache-tomcat-9.0.22.tar.gz   # 解压 
  1. 运行Tomcat,进入bin目录,和我们以前在Windows下看的都是一样的
# 执行:startup.sh -->启动tomcat # 执行:shutdown.sh -->关闭tomcat ./startup.sh ./shutdown.sh 
  1. 确保Linux的防火墙端口是开启的,如果是阿里云,需要保证阿里云的安全组策略是开放的!

安装MySQL

视频====》mysql安装

教程====》Linux环境yum,安装MySQL

部署SpringBoot项目

  1. 首先将项目打成jar包

  2. 将jar包上传至服务器

  3. 执行命令

$ nohup java -jar test.jar >temp.txt & //这种方法会把日志文件输入到你指定的文件中,没有则会自动创建。进程会在后台运行。 

安装Docker(yum安装)

  1. 官网安装参考手册:https://docs.docker.com/install/linux/docker-ce/centos/

  2. 确定你是CentOS7及以上版本

[root@192 Desktop]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 
  1. yum安装gcc相关(需要确保 虚拟机可以上外网 )
yum -y install gcc yum -y install gcc-c++ 
  1. 卸载旧版本
yum -y remove docker docker-common docker-selinux docker-engine # 官网版本 yum remove docker            docker-client            docker-client-latest            docker-common            docker-latest            docker-latest-logrotate            docker-logrotate            docker-engine 
  1. 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2 
  1. 设置stable镜像仓库
# 错误 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ## 报错 [Errno 14] curl#35 - TCP connection reset by peer [Errno 12] curl#35 - Timeout  # 正确推荐使用国内的 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
  1. 更新yum软件包索引
yum makecache fast 
  1. 安装Docker CE
yum -y install docker-ce docker-ce-cli containerd.io 
  1. 启动docker
systemctl start docker 
  1. 测试
docker version  docker run hello-world  docker images 

宝塔面板安装

https://www.bilibili.com/video/av91821322


完结~~ 本篇文章由作者借鉴B站狂神说视频而写 原文链接:https://mp.weixin.qq.com/s/aMJeiQW5z5FzeEdsRn44vA