什么是Linux

是一套免费的 和 自由传播的 操作系统

windows macos linux andorid ios 鸿蒙

测试环境:jdk(java开发工具箱、用来支持运行Java的程序)+ mysql(数据库) +tomcat(web应用服务器,公司的项目软件会直接部署安装在tomcat里面), 外界可以通过互联网访问tomcat中的项目软件

查日志: 查看软件运行时的报错信息、以及运行信息、提示信息,这些个信息都会保存在一个.log 或.out 文件中

开源:一个软件系统、它的所有的代码可以给任何人、任何组织使用并且开发 发行 传播
只有开源才有未来

多进程: 多个任务同时运行
多用户: 多个用户同时访问 操作

肯汤普森: 世界最杰出的程序员
丹尼斯里奇:
C语言之父、
2006:加入到谷歌, go语言: golong C+python
unix操作系统是Linux系统的前身
UTF-8 编码的作者

服务器:不仅可以安装linux 还可以安装 windows MacOS

Linux主要的发行版本:
国外: Red Hat、 CentOS 、 ubuntu (乌班图):桌面形式的Linux操作系统

国内: 优麒麟UbuntuKylin(桌面形式操作系统,根据乌班图编译而且)
红旗Linux(自研的命令行模式操作系统)

Xshell原理: 在windows本地使用Xshell、通过互联网,连接云端远程的服务器(腾讯云服务器)
在远程服务器进行的操作,不会影响到本地环境

image.png
显示这种情况,说明与服务器断开连接了
image.png
显示这种 说明连接成功
=============================================================
目录、文件操作命令

目录:文件夹或文件列表
根目录: 系统最底层的目录,任何一个目录都是从最底层写起, 根目录也叫作一级目录
windows下的根目录: C:\ D:\ E:\
Linux下的根目录: /

路径: 一个完整目录位置名称
比如:C:\windows\boot

【root@VM-0-7-centos /】#
root: 表示当前用户 超级管理员
@VM-0-7-centos:表示主机的名称
/ : 表示你当前在哪, 表示当前的位置
#:表示权限, #代表的是管理员权限
$:表示普通用户

基本命令:

1、cd: 切换路径 、切换目录

语法: cd 空格 路径
cd /
返回上一级:
cd 空格 ..

2、 ls : 查看目录

语法: ls
参数: -l
用法: ls 空格 -l
ls -l 以列表的形式展示出目录的详细信息
ll 效果与ls -l 一致, 一般这种用法比较多

3、pwd : 显示当前所在位置, 当前你在哪

语法: pwd

4、clear : 清屏,清空当前屏幕区域

语法:clear
快捷键: ctrl + l

5、history: 查看历史记录,所有敲过的命令

语法: history

6、who : 查看当前系统下所有登录的用户

语法: who
image.png

7、whoami: 显示登录的用户名

语法:whoami
image.png

8、hostname: 显示主机名称

语法:hostname
image.png

9、ifconfig : 查看IP地址

语法: ifconfig
image.png
windows下 查看IP地址:
win+R 输入cmd 在命令提示符窗口中,输入ipconfig
image.png

10、 ping : 查看网络连接状态

语法: ping 空格 网址
停下来: ctrl +z 或 ctrl + c都可以

11、shutdown 关机
12、 reboot 重启

image.png
========================================================================
========================================================================
进入根目录下的usr目录下的local文件夹, 并且查看都有哪些内容
第一种: 一级一级的去进入
cd / cd usr cd local
第二种: 一步到位
cd /usr/local
image.png
========================================================================

文件操作相关的命令

1、创建文件: touch

语法:touch 空格 文件名
在/usr/local下, 创建helloworld文件
image.png
touch命令创建的文件,都是一个普通文件
同时创建多个文件:
语法: touch 空格 文件名1 空格 文件名2 空格 文件名3

在当前目录下,创建a1 a2 a3 三个文件
image.png
————————————————————————————————————————————————————————-

2、创建文件夹或目录: mkdir

语法:mkdir 空格 文件夹名称
在当前目录下,创建test71文件夹
image.png
创建多个文件夹:
语法: mkdir 空格 文件夹1 空格 文件夹2 。。。
在当前目录下,创建taofei01 taofei 02 taofei 03 三个文件夹

创建多级目录、多级文件夹:
语法: mkdir 空格 -p 空格 文件夹名称1/文件夹名称2/文件夹名称3
在当前目录下,创建fanmao01/fanmao02/fanmao03 这样的目录
————————————————————————————————————————————————————-

3、删除文件或文件夹: rm

参数:
-r:强制删除
-f :陆续删除目录下的所有内容
-v:显示删除的过程
-i : 删除前的提示
用法: rm 空格 -rf 既可以删文件,也可以删目录,彻底删除
语法: rm 空格 -rf 空格 文件名称

删除多个文件: rm 空格 -rf 空格 文件名称1 空格 文件名称2 。。。
image.png
清空当前目录下的所有内容:
语法: rm 空格 -rf 空格 *

思考: rm -rf / 可不可以执行?? ** 慎重!!**
rm -rf /usr/local/*
————————————————————————————————————————————

4、编辑文件: vi 或 vim vim 与 vi 用法一样

语法: vi 空格 文件名
在当前目录下创建一个aaa文件, 并且进行编辑保存
输入内容:按一下i 键, 可以输入内容
保存退出:先按esc键,在输入冒号, 在输入wq, 敲回车
不保存退出: 输入 :q
强制退出: 输入 :q!
强制退出 ctrl +z ctrl +c
强退不会保存
————————————————————————————————————————————

5、复制文件 cp

语法: cp 空格 文件名称(要复制啥) 空格 目标位置(要复制到哪儿去)
将当前目录下的aaa文件,复制到test文件夹里面去
image.png
复制多个文件:
cp 空格 文件名1 空格 文件名2 空格 文件名3 空格 目标位置
在当前目录下,创建bbb ccc文件, 并且将这两个文件复制到 test文件夹里
复制整个目录包含所有内容:
cp 空格 -r 空格 文件夹名称 空格 目标位置
image.png
总结: 复制单个文件 cp 复制整个目录 cp -r
———————————————————————————————————————————————————————————

6、文件移动或剪切: mv

语法: mv 空格 文件名 空格 目标位置

剪切多个文件:
mv 空格 文件名1 空格 文件名2 空格 文件名3 空格 目标位置

重命名:(只能当前目录下)
语法: mv 空格 文件/文件夹名称 空格 新名字
image.png
—————————————————————————————————————————————————————————
练习题:
进入到 /usr/local 目录下,清空当前目录
cd /usr/local
rm -rf *
创建 a1 a2 a3 3个文件夹
mkdir a1 a2 a3
创建名为Test71的3级目录,二级目录名为Test71-02,三级目录名为Test71-03
mkdir -p Test71/Test71-02/Test71-03
创建 fanmao1 fanmao2 fanmao3 文件
touch fanmao1 fanmao2 fanmao3
将a1 重命名为 fanmao
mv a1 fanmao
将fanmao1 fanmao2 fanmao3 文件剪切到 fanmao目录
mv fanmao1 fanmao2 fanmao3 fanmao
删除 a2
rm -rf a2
将fanmao 目录下所有的文件 复制到 a3 目录
cp -r fanmao a3
———————————————————————————————————————————————————————-

查看文件相关命令:

7、cat 查看文件全部内容

语法: cat 空格 文件名
查看zongjie文件
image.png

8、head 查看文件的头几行 前几行

语法: head 空格 -n 空格 行数 空格 文件名
例:查看文件的前5行
image.png

9、sed 查看文件中间几行到几行

语法:sed 空格 -n 空格 ‘行数,行数p’ 空格 文件名
例: 查看文件中的3行到8行
sed -n ‘3,8p’ haha
image.png

10、tail 查看文件末尾几行

语法: tail 空格 -n 空格 行数 空格 文件名
查看文件末尾5行
tail -n 5 haha

*
动态查看文件末尾几行, 参数:-f
语法: tail 空格 -fn 空格 行数 空格 文件名
动态查询文件末尾100行
tail -fn 100 文件名

tail -fn 一般用来查询日志文件, 加了fn 相当于对这个日志文件进行监控
取消监控 ctrl +z
**

11、 wc 查看文件总共多少行,统计行数

语法: wc 空格 文件名
参数:
-l : 统计行数或个数
-c : 统计字数
image.png

12、more 查看文件(一般查看大文件)

语法: more 空格 文件名
翻页查看:
按【Enter】,往下翻一行
按【Space】,往下翻一页
按【q】,中断退出

13、less 查看文件

语法: less 空格 -N 空格 文件名
参数:-N 显示每行的行号
less -N 文件名
操作方法:
按【Enter】,往下翻一行
按【Space】,往下翻一页
按【page down】:往下翻一页
按【page up】:往上翻一页
按【q】:退出查看

关键字搜索: 使用less命令打开文件后:
输入/关键字: 向下搜索关键字
输入?关键字: 向上搜索关键字

总结查看文件的命令: cat head sed tail more less
================================================================================================================================================

绝对路径与相对路径

绝对路径:

从根目录写起,有层级关系、一直写到具体的目标文件,一个完整的路径
/usr/local/taofei/test.txt

相对路径:

不从根目录写起,指的是你当前位置的路径
比如你当前在local下, local里面包含test1 test2文件夹

因为test1 test2属于local的下一级目录,所以可以直接用相对路径直接进入
cd test1 或 cd test2 不用从/写起

只要一个路径,从/目录写起的,都叫做绝对路径 不是从/目录写起,就叫相对路径

同一级目录下,进入任意一个文件夹,可以直接cd进入,不用从/目录写起

只要跨目录操作(复制或剪切),都要写绝对路径
cp /var/log/messages /usr/local

练习:
1、在/usr/local下,清空所有文件,并且创建fanmao1/01/02三级目录;
2、进入到 fanmao1/01/02 目录下,创建fanmao2文件夹
3、使用相对路径切换到 fanmao2 文件夹下
4、使用绝对路径切换到 /usr/local/fanmao1 目录
5、使用绝对路径切换到 /usr/local目录
6、使用相对路径切换到fanmao1 目录
—————————————————————————————————————————————————————————
—————————————————————————————————————————————————————————

管道符 ‘|’

也叫连接符,是将两个或多个命令连接在一起执行
例:在创建test1文件的同时,又创建test2文件夹
touch test1 | mkdir test2
image.png
查看test1文件,并统计有多少行
image.png
查看/目录下有多少个文件
ls | wc -l

|
左边命令的结果 是右边命令的输入

cat test | wc -l

先展示查看结果, 在统计行数
—————————————————————————————————————————————————
使用管道符,查看test文件中的3行-5行

head -n 5 test | tail -n 3

首先执行head -n 5, 先查看文件前5行,
在执行tail -n 3, 再查看后3行,

先获取前5行, 在获取前5的行的结果上,再获取后3行

先拿到前5, 在5行里面,再取后3

也可以直接写(省略n):head -5 test | tail -3
——————————————————————————————————————————————————-
查看3-6行
head -6 test | tail -4
先看前6, 在前6里面,再看后4
——————————————————————————————————————————————————-

重定向 : >

将命令执行的结果,保存到一个指定的新文件中,新文件名自定义,新文件是系统自动创建的
image.png
如果重定向到同一个文件的话,最后一次的结果,会覆盖上一次执行的结果
image.png

追加:>>

将执行命令的结果,追加到一个已有的文件中,并不会覆盖原有的结果, 继续在原有的结果后面继续添加新的内容
image.png

练习
清空/usr/local目录
1、在/usr/local目录下,创建一个名为myself.txt的文件
2、在myself.txt文件中录入10行数据,数据内容任意
3、查找前1-5行数据、 查找5-10行数据
4、将查找出的1-5行数据,重定向为一个新的文件名为myself01.txt
5、将查找出的5-10行数据,重定向为一个新的文件名为myself02.txt
6、查找出3-6行数据,追加到myself01.txt中
7、查找出7-9行数据,追加到myself02.txt中
————————————————————————————————————————————————————————————-

vi命令进阶

进入编辑模式: i, a , o 左下角出现insert ,表示进入编辑模式

vi命令所支持的功能

显示跟取消行号

显示行号: 输入冒号set 空格 nu (:set nu)
image.png
取消显示行号: 输入冒号set 空格 nonu (:set nonu)
image.png
显示的行号不会也不能保存
——————————————————————————————————————————————-

移动光标

n: n表示具体的数字,比如按5空格, 效果: 向右移动5个字符
操作方式: 先按数字5键,在按空格键 不需要输入冒号
nG: n表示具体的数据,比如 5G 效果:移动到第5行
GG: 移动到文件最后一行第一位
gg: 移动到文件第一行第一位
——————————————————————————————————————————————-

查找与替换

需要用户确认
首先用vi命令进入到要编辑的文件内,输入冒号
:n1,n2s/关键字1/关键字2/c
n1,n2为具体的数字,表示在n1到n2行, 3,5s
关键字1,表示要查找的关键字
关键字2,表示要替换的关键字
c,表示需要用户一个一个的确认
g, 表示不需要确认

:3,5s/aaa/bbb/c 把3-5行的所有的aaa替换成bbb,并且需要逐一确认

不需要用户确认

:n1,n2s/关键字1/关键字2/g
:1,9s/a/b/g 把1-9行的所有的a替换成b,并且不需要确认

全文替换:
:1,$s/a/b/g 把整个文件中的a 替换成b ,并且不需要确认

文件另存为:
vi进入到文件内
用法:
:w 空格 路径斜杠文件名字
:w /usr/local/new.txt
路径要写绝对路径

提取文中某几行,并保存在一个新文件中

:n1,n2w 空格 路径斜杠新文件名字

:1,10w /usr/local/new2.txt
将1到10行的内容提取出来,保存在/usr/local下的new2.txt文件中
================================================================================================================================================

tar:文件打包与压缩

常用参数:
c : 创建新的文件集合包, 相当于打包
x:释放新的文件,相当于解包
v: 打包或解包过程中,显示打包或解包的文件, 就是显示过程
f: 创建新打包文件后 使用自己起的名字 自己命名的
z:在打包或解包的同时,启动gzip工具进行压缩或解压
gzip工具是linux自带的压缩工具

用法一:打包或者解包

语法: tar 空格 参数 空格 文件名(自己命名的).tar 空格 源文件(你要打包的文件)
比如:我现在有test01 test02 test03 3个文件, 我要将这3个文件打包起来,并且命名为dabao.tar
tar -cvf dabao.tar test01 test02 test03
image.png

将整个目录内的所有内容打包?
tar -cvf daobao.tar *
image.png

解包:
语法: tar 空格 参数 文件名.tar
将dabao.tar这个文件释放出来

tar -xvf dabao.tar
image.png
在当前目录下解包

指定路径释放文件 或 解压: 参数 : -C

tar 空格 -xvf 空格 dabao.tar 空格 -C 空格 /usr


用法二:打包并且压缩和解压缩

打包并且压缩:
语法:tar 空格 -zcvf 空格 yasuo.tar.gz 空格 源文件
image.png

将test 01 test02 test03 打包并且压缩, 压缩包名为yasuo.tar.gz

解压缩:
语法: tar 空格 -zxvf 空格 文件名.tar.gz
将yasuo.tar.gz解压缩到当前目录下
tar -zxvf yasuo.tar.gz

将yasuo.tar.gz解压缩到指定目录下
tar -zxvf yasuo.tar.gz -C /usr

image.png
————————————————————————————————————————————————————————

文件上传与下载

文件下载: sz

语法: sz 空格 文件名
将/usr/local下的alltest.tar.gz文件下载到windows桌面上

指定路径下载:
sz /usr/local/test01

文件上传:rz

将windows桌面上alltest.tar.gz 上传到/usr/local下
首先要进入到/usr/local里面
然后在输入rz
在弹出的对话框中选择alltest.tar.gz文件,点击打开上传
或者在windows桌面上选中alltest.tar.gz文件, 直接拖拽到/usr/local中
—————————————————————————————————————————————————

find 查找文件

语法: find 空格 指定搜索路径 空格 -name 空格 文件名

搜索/usr/local下的alltest.tar.gz文件
image.png

若不知道文件具体在什么位置,可以直接从/目录开始搜索
image.png

在local下查找以test开头的文件
find /usr/local/ -name ‘test
在local下查找以test结尾的文件
find /usr/local/ -name ‘
test’
在local下查找包含test的文件
find /usr/local/ -name ‘test


grep:条件过滤 **

用处最多的地方: 查询进程, 查询端口号,查看文件内的关键字
用法: 一般结合 ‘|’ 管道符使用

查看/etc/man_db.conf 文件中的包含‘80’的内容显示出来

ps:查询进程 **

启动一个应用程序后,都会以进程的方式来显示
查看服务器的所有运行的进程:ps
常用的参数:
-e: 显示全部进程
-f: 显示全部信息,全部格式
最常用用法: ps 空格 -ef
UID: 用户id
PID:进程号
PPID : 父进程号
C : cpu的使用率
STIME: 启动时间
TTY: 终端的位置
TIME: 使用cpu的时间
CMD:所下达的是什么指令

在实际工作中,最常见的用法: ps -ef | grep 应用名称(比如:nginx)

安装nginx:

nginx: 反向HTTP代理web服务器

yum 在线安装软件的命令

用法:yum 空格 install 空格 应用名称

安装nginx服务:
命令:yum install nginx
启动nginx服务:
命令:systemctl start nginx
验证服务是否正确:打开浏览器, 输入自己的服务器ip地址(公网),比如我的服务器ip地址为 1.117.45.85, 那么在浏览器的地址栏中输入 http://1.117.45.85
查看 nginx 进程信息:

ps -ef | grep nginx

杀进程:kill

windows下结束进程: 打开任务管理器,选中进程,右键,点击结束任务

一般要结合 -9 这个参数来使用
-9是强制结束

用法: kill 空格 -9 空格 pid

用法二: killall 结束相关应用的全部进程

killall 空格 nginx
结束Nginx的全部进程

—————————————————————————————————————————————————————
—————————————————————————————————————————————————————

netstat : 查询端口号

端口号: 一个应用程序在一个屋子里, 端口相当于门, 通过这个门去查看访问应用

常用的默认端口号:
nginx默认端口号:80
tomcat默认端口号:8080
mysql默认端口号:3306
linux默认端口号:22
抓包工具默认端口号:8888

用法:
netstat 空格 参数 空格 | grep 空格 要查询端口号
参数:-an -ap -anp
-a : 显示所有
-n,不用别名显示,只显示数字
-p: 显示进程号和进程名

image.png

netstat 空格 -anp 空格 | 空格 grep 空格 3306

不知道端口号去查端口:

用法: netstat 空格 参数 空格 | grep 空格 应用名称
image.png

如何查询3306端口号?

———————————————————————————————————————————————————-
———————————————————————————————————————————————————-

top 实时查看任务状态

主要用在做性能测试测试的时候,需要用top命令,监控cpu和内存的使用率

面试题:怎么监控系统任务状态? 或监控cpu的使用率? 或监控内存的使用率?
就是使用top命令

结束监控: ctrl + z

%MEM (内存)
———————————————————————————————————————-

查看磁盘: df

常用用法: df 空格 -h 查看磁盘大小

Filesystem :文件系统
Size: 大小
image.png
—————————————————————————————————————————————-

远程登录: ssh

语法: ssh 空格 用户名@ip地址
例: ssh 空格 root@服务器ip地址

image.png

image.png

远程复制 :scp

语法: scp 空格 文件名 空格 用户名@IP地址:路径(目标位置)

将当前目录下的abc.tar.gz文件,复制到121.4.18.70(目标服务器)地址里的/usr/local下
image.png
远程复制整个目录:
scp -r

================================================================================================================================================

用户相关的命令

创建与删除用户:

创建用户: useradd
语法: useradd 空格 用户名
给创建的用户设置一个密码: passwd
语法: passwd 空格 用户名

在任意地方都可以创建用户,只能是root用户才可以创建
root用户不能创建root用户, 只能创建普通用户
image.png

查看创建的用户: cat /etc/passwd

切换用户: su
语法: su 空格 用户名

删除用户: userdel
语法: userdel 空格 参数 空格 用户名
参数: -r 连同用户的主目录一同删掉, 彻底删除用户

退出当前登录的用户: exit
image.png
——————————————————————————————————————————————-

创建与删除用户组:

创建用户组: groupadd
语法: groupadd 空格 组名

创建用户组,不需要创建密码
查看创建的用户组: cat /etc/group

核心用法:将用户添加到创建的用户组里去
将用户添加到组: gpasswd 空格 -a 空格 用户名 空格 组名
把zhangsan添加到test71组里去
image.png
将用户从组里删除: gpasswd 空格 -d 空格 用户 组名

把lisi从组里删除
image.png

删除用户组: groupdel
语法:groupdel 空格 组名

—————————————————————————————————————————————————————————-
—————————————————————————————————————————————————————————-

修改权限: chmod

d rwx rwx rwx
第一位:代表文件类型
d:代表一个文件夹 或者目录
-:代表一个普通文件
l: 代表一个链接文件 :把当前这个文件指向另一个文件

后面9位: 我们用3组来划分: 第一组和第二组和第三组,每一组有3个字母
在Linux里,关于权限角色的划分:
第一类:用户 (u)
第二类:用户组(g)
第三类:其他人(o)
对应关系: 用户(u)对应第一组前3个字母, 用户组(g)对应第二组中间3个字母,其他人(o)对应最后一组最后3个字母
在Linux里,关于权限种类:
第一个:r 读取
第二个:w 写入
第三个:x 执行
在Linux里,关于权限二进制:
1、读取: r = 4
2、写入:w =2
3、执行:x = 1
考虑: chmod 7 7 7 什么意思?
7就是 可读可写可执行
用户 用户组 其他人 都是可读可写可执行权限
chmod 635 什么意思

以数字表示权限的方法:

语法: chmod 空格 数字 空格 文件名

练习: chmod 766 635 000 权限具体含义是?
image.png
——————————————————————————————————————————————————-

以‘=’号来赋予权限,ugo可以写在一起,分开写的话用逗号隔开

u = rwx , g = wx , o = w
ugo = rx
语法: chmod 空格 具体的赋值语句 空格 文件名

考虑:用赋值法怎么清空全部权限?
image.png
——————————————————————————————————————————————————————

用“+” 或 “-” 来增加或减少权限

u+rw,g+rx,o+w
u-r,g-x,o-w
语法: chmod 空格 具体增加或减少权限 空格 文件名
image.png
=======================================================================
=======================================================================