Linux基础


模块

  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 /

如下图所示

image-20210710153213200

树状目录结构:

image-20210710153656840

解释:

image-20210710154600346

image-20210710154742698

常用基本命令(掌握)

目录管理

相对路径 、绝对路径

cd : 切换目录命令!

./ : 当前目录

cd. . : 返回上一级目录

image-20210710155422042

ls / ll (列出目录)

在Linux中 ls 命令是最常用的

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

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

所有Linux可以组合使用

image-20210710160417644

image-20210710160446940

cd命令 切换目录

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

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

image-20210710162516051

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

image-20210710162805353

touch : 新建文件

touch index.js

mkdir 创建目录

image-20210710163156251

rmdir 移除目录

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

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

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

cp (源地址,目标地址)

image-20210710164518256

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

rm (移除文件或者目录)

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

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

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

image-20210710165608693

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

基本属性

明白文件属性

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

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

image-20210710170309166

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

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

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

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

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

image-20210710170741582

image-20210710170855391
image-20210710171004401

修改文件属性

chgrp 更改文件属组

chgrp [-R]属组名 文件名

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

image-20210710171609523

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

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

image-20210710171913916

上面两个很少使用

chmod 更改文件9个属性

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

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

image-20210710172045751

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

image-20210710172923631

文件内容查看

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

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

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

    image-20210710174750473

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

    image-20210710174936017

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

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

  • head只看头几行

    image-20210710175235373

  • 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(查看内容,编辑内容,保存内容!)

键盘图:

image-20210710181902379

三种使用模式

基本上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 文件名

image-20210710183212267

完整的演示说明

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

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

image-20210710191108026
image-20210710191157877


image-20210710191400990


image-20210710191506700
image-20210710191554669


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

image-20210710191642158

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

image-20210710191757874

image-20210710191856982

账户管理

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

简介

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

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

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

用户账号的管理

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

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

useradd 命令 添加用户

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

image-20210710193042849

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

userdel 删除用户

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

usermod 修改用户

usermod  -d 路径 用户名

切换用户

image-20210710193916138
root:
image-20210710194250275
切换用户:
image-20210710194432082

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

image-20210711105456519

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

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

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

磁盘管理

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

  • df
    image-20210711110535318

  • du
    image-20210711110759093

  • 检查根目录容量

du -sm /*

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

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

  • 挂载:mount
    image-20210711111323542

  • 卸载: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包

# 配置环境变量

image-20210711120514805
image-20210711120542736

配置环境变量:/etc/profile

rpm 无需配置 解压缩需要配置
image-20210711121416803
确保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.bt.cn/bbs/thread-19376-1-1.html


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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM