Linux

简介

Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。

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

Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
linux发行版
linux发行版就是将linux的内核和应用软件做成一个打包
在这里插入图片描述
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
在这里插入图片描述
现在各种场合都有使用linux发行版,从嵌入式设备到超级计算机,并且再服务器领域确定了地位,通常服务器使用**LAMP(Linux+Apache+MySQL+PHP)或者LNMP(Linux+Nginx+MySQL+PHP)**组合

与windows的比较

:
在这里插入图片描述

环境搭建:

这里使用虚拟机安装,云服务器马上过期
首先下载好VMware,直接在网页版的腾讯应用中心就可以进行下载,之后安装一个contOS镜像,这里使用的7版本,链接如下:
http://mirrors.aliyun.com/centos/7/isos/x86_64/
如果是云服务器安装的话要掏钱,新用户白嫖一个月,期间单说安装就废了不少事
买完服务器后找到云服务器管理控制台,里面的那个实例就是买的服务器,拿到实例之后首先需要更改密码,然后其他地方才能通过设置的账号密码进行连接使用,注意,访问时使用外网ip,不用使用内网
在这里插入图片描述

第二件事就是要开放端口,便于接下来安装宝塔面板以及其他mysql,tomcat之类端口通过,不然一直都是连接被拒绝,端口访问权限预设在安全组里面进行添加或者更改:
在这里插入图片描述
下面是一些通用端口配置
20 、21、 39000-40000端口(linux 系统 )
22 (SSH)
80、443(网站及SSL)
3306 (数据库远程连接)
开放端口后就下载Xshell连接服务器,这里使用的xshell6,用来部署宝塔,宝塔官网:
https://www.bt.cn/
打开xshell之后新建连接,把公网ip复制上去连接成功之后粘贴上宝塔的安装链接就可以及进行下载,过程大概几分钟。下载完成之后会出来默认设置的宝塔账号密码以及面板地址
在这里插入图片描述

宝塔面板的打开方式和tomcat一样,都是网页打开的,只不过端口为8888,打开之后修改一下默认的账号密码之后,要想运行项目,还需要在宝塔面板自带的软件商店下载运行环境:
在这里插入图片描述

虚拟机上Linux系统开关机及目录

Linux大多用在服务器上面,极少遇到关机的操作
关机指令为:shutdown ;
使用关机指令时一定要先执行sync将数据由内存同步到硬盘中
数据持久化指令: sync
立马关机: shutdown -h now
20:10定时关机: shutdown -h 20:10
立马重启: shutdown -r now或者reboot
关闭系统: halt (相当于关机)和poweroff
不管是关机还是重启,首先都要运行sync将内存数据持久化到硬盘

系统目录结构

Linux系统一切皆文件
根目录/,所有的文件都挂载在这个节点下
可使用ls(代表查看)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
另外服务器的目录还有个/www
是用来存放服务器网站相关的资源,环境,网站的项目等

以下是关于文件夹创建/移动/查看的简单命令:
在当前目录创建: mkdir XXX
移动文件: mv XXX(要移动的文件) XXX(移动到哪个文件夹)
切换路径: cd XXX
查看所有文件(包括隐藏文件): ls -al
在这里插入图片描述

目录相关命令学习

目录指令:
cd: 切换目录命令
./: 当前目录
cd…:返回上级目录
ls: 列出目录

-a: all,查看所有的文件,包括隐藏文件
-l 参数,列出所有的文件,包括文件的属性和权限,但是不包括隐藏文件
可以组合使用
在这里插入图片描述
cd命令 切换目录
cd 目录名
linux的绝对路径都是以/开头的,
切换到上级目录可以使用 cd …
也可以通过使用绝对路径cd /home/XXX
可以使用pwd查看当前文件所在目录
注意:开始的时候并不是在根目录/中,而是在用户目录~中
在这里插入图片描述
mkdir 创建一个目录
如果递归创建一个多级目录可以在前面加上-p
在这里插入图片描述
rmdir 删除目录
rmdir只能删除空的目录,如果下面存在文件,需要先删除文件
如果递归删除多个目录,也需要加上-p参数并像上面一样罗列出每个目录

cp 复制文件或者目录
cp 原来的目录 新的目录,如果文件重复会让你选择覆盖或者放弃Y/N

rm 移除文件或者目录
-f 忽略不存在的文件,不会出现警告,强制删除
-r 递归删除目录
-i 互动,会询问是否执行

mv 移动文件或者目录
mv 原来的文件 移动后的位置
-f 强制移动
-u 只替换已经更新过的文件
也可以使用mv来重命名文件
mv test1 test2

文件属性查看和修改

Linux系统是一种多用户系统,不同的用户有不同的权限,可以使用ls -l或者ll来显示文件属性和文件所属的用户和组:
在这里插入图片描述
可以看到文件的前缀有十个字符,每个首字符代表不同的含义
d 代表目录
– 代表文件
l 代表链接文档
b 表示装置文件里面的可供储存的接口设备(可随机存取装置)
c 表示装置文件里面的串行端口设备,例如键盘,鼠标等
接下来的字符中,以三个为一组,且均为rwx三个参数的组合
r代表可读
w代表可写
x代表可执行
如果没有权限就为-
在这里插入图片描述
修改文件属性
首先是两个概念:属主和属组
属主代表文件主人是谁,属组代表文件主人所在的组,还有一个other就是其他用户
在这里插入图片描述
chgrp:修改文件属组
chgrp -R 属组名 文件名(注意,R要大写)
-R :递归更改文件属组,就是在更改某个目录文件的属组是,如果加上-R的参数,那么该目录下的所有文件的属组都会被更改
chown:更改文件属主,也可以同时更改文件属组
chown -R 属主名 文件名
chown -R 属主名: 属组名 文件名
chmod:更改文件九个属性
通俗一点说就是修改文件读写和运行的权限
chmod -R 三个权限数字 文件或者目录
Linux文件属性有两种设置方法,一种是数字(常用),一种是符号
数字来讲的话读写和运行分别代表不同的数字
读r:4 写w:2 运行x:1
然后直接用每个代表的数字累加就是文件的实际使用权限:
可读可写不可执行: rw- 6
可读可写可执行 rwx 7
chmod 777 就代表三组用户全都可读可写可执行
三组用户分别代表owner属主group属组other其他
如果想修改权限为rwxrwx—,那么就应该为
chmod 770 文件名

文件内容查看

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

  • cat由第一行开始显示文件内容
    在这里插入图片描述

  • tac由最后一行开始显示文件内容

  • 在这里插入图片描述

  • nl显示的时候顺便输出行号
    在这里插入图片描述

  • more 一页一页显示文件内容(空格翻页,回车跳转下一行,:f可查看行号,q可以退出)

  • 在这里插入图片描述

  • less 与 more类似,但是可以往前翻页上下左右翻页
    PS:文档查看的时候可以输入/XXX来向下查询文档内指定内容,?XXX来向上查询,查询指定内容之后可以使用n来往下跳跃查看符合内容,N往上跳跃

  • head 只看前面几行,可以通过head -n 20 文件名 来查看文件前20行内容

  • tail 只看后面几行

还可以使用man [命令] 来查看哥哥命令的使用文档,如 man cp
拿下面的这个ip配置文件举例(win系统是ipconfig,Linux是ifconfig)
网络配置目录:
(注意,只有CentOS7才在这个地址,不同版本可能不同)
在这里插入图片描述

硬链接和软链接

此处不是很重要,了解就行,
硬链接和软链接都是一种指向文件的方式,
比如B是A的硬链接,A和C为软链接
软链接C相当于A在windows系统中的快捷方式,如果修改A,软链接C就会无效
而A和B则类似指向同一个地址的指针,A和B之间修改任意一个,另一个或者多个都会改变
创建硬链接为 ln A B
软链接为 ln -s A C
如下:
touch为创建文件
echo为文件添加字符串
在这里插入图片描述
在这里插入图片描述
硬链接中修改任意一个,另一个或者多个就会改变
在这里插入图片描述

Vim编辑器

官网:https://www.vim.org/
Vim通过一些插件可以实现和IDE一样的功能
Vim是从Vi发展出来的一个文本编辑器.代码补完,编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用
尤其是Linux中,必须要会使用Vim(查看内容,编辑内容,保存内容)
所有的Unix Like系统都会内建vi文书编辑器,其他的文书编辑器不一定会存在
在这里插入图片描述
三种使用模式
基本上vi/vim供分为三种模式,分别是命令模式,输入模式,底线命令模式
命令模式
用户刚刚启动vi/vim,就进入了命令模式
此状态下敲击键盘动作会被vim识别为命令,而非输入字符,常用命令如下:

  • i 切换到输入模式,用以输入字符
  • x 删除当前光标所在字符
  • : 切换到底线命令模式,以在最下面一行输入命令

如果想要编辑文本,启动vim,进入命令模式,再按下i且换到输入模式
命令模式只有一些最基本的命令,仍要依靠底线命令模式输入更多命令
输入模式
命令模式下按下i进入,在输入模式下可以使用以下按键

  • 字符按键以及shift组合,输入字符
  • ENTER,回车键,换行
  • BACKSPACE 退格键,删除光标前的一个字符
  • DEL 删除键,删除光标后一个字符
  • 方向键 在文本中移动光标
  • HOME/END 移动光标到行首/行末
  • PU/PD上下翻页
  • INSERT 切换光标为输入/替换模式,光标将变为竖线/下划线
  • ESC退出输入模式,切换到命令模式
    底线命令模式
    在命令模式下按英文冒号 : 就进入了底线命令模式
    底线命令模式可以输入单个或者多个字符的命令,
    基本的命令有:
    w 保存文件
    q 退出程序
    数字+空格 横向移动光标
    数字+回车 竖直移动光标
    set nu 显示行号
    ESC可以随时退出底线命令模式
    在这里插入图片描述

Linux账号管理

useradd命令 添加用户
useradd -选项 用户名
-m : 自动创建这个用户的主目录 /home/xg
-G : 给用户分配组
Linux一切皆文件,关于用户的文件都保存在/etc/passwd目录下
userdel 删除用户
userdel -r 用户名 清理用户以及用户文件
usermod 修改用户
修改用户 usermod 对应修改内容 要修改的用户名
usermod -d /XXX/xxx 用户名 指定用户文件地址到指定位置
修改完查看配置文件即可
切换用户
root用户

  • 切换用户的命令为 su username username为你的用户名
  • 从普通用户切换到root用户可以使用sudo su
  • 在终端输出exit或者logout或者使用快捷方式ctrl+d,可以退回到原来的用户,其实ctrl+d也是执行的exit命令
  • 在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以再su和username之间加-,例如"su -root"

$代表普通用户
#表示超级用户,也就是root用户
注意,切换登录用户时
在这里插入图片描述

在这里插入图片描述

用户的密码设置
passwd+用户名 直接回车就会让你输入密码
注意:Linux输入密码时不会显示的(连星号都没有),正常输入就可以.
密码不能过于简单
锁定账户
passwd -l 用户名 锁定之后用户无法登录
passwd -u 用户名 清除用户密码
passwd -u 用户名 解锁用户

用户组管理

用户组的管理设计用户组的添加删除和修改,组的增加,删除和修改实际上就是对/etc/group文件的更新
创建用户组
groupadd 组名
创建完用户组之后可以的到一个组的id,这个id可以指定<-g>,如果不指定就自增1
删除用户组
groupdel 组名
修改用户组权限信息和名字
groupmod -g XXX -n XXX
<-g修改组id -n修改组名>
用户组的信息都是放在/etc/group目录下的
密码是在/etc/shadow目录下,不过都是经过加密的

Linux磁盘管理

df 列出文件系统整体的磁盘使用量
在这里插入图片描述

du 检查磁盘空间使用量
在这里插入图片描述
Mac或者Linux挂载本地磁盘或者文件
挂载:mount
在这里插入图片描述
卸载: umount [挂载位置] -f 为强制卸载

进程管理

进程的基本概念

在Linux中,每一个程序都有自己的进程,每一个进程都有一个id号
每一个进程都有一个父进程
进程可以有两种存在方式,前台或者后台
一般服务都是后台运行的,基本的程序都是前台运行的

命令

ps 查看当前系统中正在执行的各种进程的信息
ps -xx:
-a 显示当前终端运行进程的所有信息
-A 显示当前终端运行的所有进程
-u 以用户的信息显示进程
-x 显示后台运行进程的参数

ps -aux| grep XXX
#| 在linux中 "|" 叫做管道符,A|B 就是利用A命令运行的结果来执行B命令
# grep命令: 查找文件中符合条件的字符串
#合起来就是查询后台运行的所有进程信息,并通过grep过滤出关于XXX的进程信息

常用的就一个 ps -xx|grep [进程名字] 过滤进程信息
在这里插入图片描述

ps -ef: 查看父进程的信息
但是一般可以通过目录树结构来查看父进程的信息:
pstree:
-p 显示父进程id
-u 显示用户组
pstree -pu 这个命令查看进程树更明显
在这里插入图片描述
结束进程:
等价于windows里面任务管理器的结束任务
kill -9 [进程ID]
-9 为固定的命令 进程id就是进程树上面进程后的数字

rpm安装jdk上线项目

安装软件有三种方式:

  • rpm
  • 解压缩安装(tomcat)
  • yum在线安装

JDK安装

rpm安装
首先下载jdk rpm包,脚本之家什么的一搜一大堆,选择对应版本直接现在rpm格式文件
然后安装java环境,
检查一下当前系统是否存在java环境,java -version
如果有的话就先卸载

rpm -qa|grep jdk  #检测jdk版本信息
rpm -e  --nodeps jdk_  #卸载
rpm -ivh  [rpm包] # 直接安装 (输入jdk时直接按tab自动补全)

卸载完毕之后即可安装jdk,记得要先上传到服务器,我用的宝塔上传,然后cd跳转到含有rpm包的文件夹

在这里插入图片描述
Linux配置环境变量
注意!rpm安装不需要进行环境配置
Linux的环境配置文件地址为 /etc/profile
需要使用vim编辑器进入
在这里插入图片描述
java文件一般默认放在/usr/java目录下:
在这里插入图片描述
主要是要找到jdk1.8.0_221-amd64这个核心文件,然后利用vim编辑器在环境配置文件中插入环境变量,然后令配置文件生效

#查看firewall服务状态
systemctl status firewalld
#开启/重启/关闭防火墙
service firewalld start/restart/stop
#然后开启防火墙端口
firewall-cmd --zone=public --add-port=[端口号]/tcp --permanent
#命令含义:
--zone #作用域
--add-port=80/tcp #添加端口/协议
--permanent #永久生效,如果没有这个参数,重启之后就失效了
#重启防火墙服务
systemctl restart firewalld.service
#查看所有开启的端口,阿里云需要配置安全组规则
firewall-cmd --list-ports

将打包好的jar文件用xftp或者宝塔上传到服务器,然后直接java -jar [项目jar包]运行即可
注意,在xshell中不要使用ctrl+z停止,这种方式停止依然会占用端口,下次会启动不起来.要使用ctrl+c停止服务并杀死进程

Tomcat安装

上面讲了rpm安装jdk进行jar包项目上线,如果是war包的话就需要使用tomcat了.所以:
下载tomcat,直接官网下载tar.gz格式压缩包,在xshell中使用tar -zxvf命令解压
然后使用tomcat自带的运行停止即可
在这里插入图片描述
这里绿色的都是可执行文件,运行之前要检查8080端口是否打开

./startup.sh #运行
./shutdown.sh #停止

然后直接运行即可,这样输入公网ip就可以直接登录tomcat页面
在这里插入图片描述
之后记得关闭

yum安装docker

yum实际上就是在线安装.这里以安装docker为例子
官网:https://docs.docker.com/engine/install/
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口.
一个完整的Docker有以下几个部分组成:

  • DockerClient客户端
  • Docker Daemon守护进程
  • Docker Image镜像
  • DockerContainer容器
    在linux系统使用yum在线安装docker
    首先要对应版本信息,确保是centOS 7版本
cat /etc/redhat-release  #检测版本信息

然后安装准备环境

yum -y install [包名] #yun install安装命令 -y 所有的提示都为y
yum -y install gcc
yum -y install gcc-c++

清除以前的版本,后面根据官网安装即可
链接:
https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3e221b11h9qlgJ
一到四步骤一条龙即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值