一、学习方式
1.认识Linux
2.基本的命令学习(重点:文件操作、目录管理、文件属性、Vim编辑器、账号管理、磁盘管理)
3.软件的安装和部署(java、tomcat、docker )
linux 是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(可移植操作系统接口)和UNXI的多用户(多个用户 最高root)、多任务、支持多线程和多CPU的操作系统。
kali linux 安全渗透测试使用! (有兴趣做安全了解 未来发展趋势) 补天 漏洞平台
社会的生存发展:优胜劣汰!
红帽认证工程师 :Linux没问题 面试条件
二、Linux系统文件
什么是文件?
一般都是一个独立的东西,可以通过一些特定的工具进行打开,并且其中不能在包含除了文字以外的东西。
什么是文件夹?
可以在其中包含其它文件的东西。
文件的重要性:
1.日常运维的工作中,有近一半以上的工作内容 精力 其实都是对文件的操作。
2.Linux 本身也是一个基于文件形式表示的操作系统。
有一句话说 Linux一切皆文件。
在Windows是文件的,在Linux下同样也是文件。
在Windows不是文件阿,在Linux上也是以文件存储。 Windows进程是服务 Linux是文件
日常学习和工作中,对于文件的操作都有哪些种类?
创建、编辑、保存、关闭、重命名、删除、恢复。
目录结构:
bin: 全称 binary ,含义是二进制。 该目录中存储的都是一些二进制文件,文件都是可以被执行的。
Dev:该目录中主要存放的是外接设备,例如:U盘、光盘其它的光盘等。在其中的外接设备是不能直接使用的,需要挂载。
提升:什么是挂载? Windows:当我们插入U盘的时候,系统会默认分配一个盘符。而Linux系统没有默认分配盘符,它是将U盘放在Dev上,我们想要使用的话需要自己去分配盘符
Etc: 该目录主要是存储一些配置文件
home: 表示"家",表示除了root用户以外的其它用户的家目录,类似于Windows的User用户。
Proc:process表示进程,该目录是root用户自己的家目录。
Root:该目录是root用户自己的家目录。
Sbin: 全称super binary ,该目录也是存储一些可以被执行的二进制文件,但是得有super权限的用户才能执行。
Tmp:表示临时的,当系统运行时候产生的临时文件会在这个目录存着。
Usr: 存放的是用户自己安装的软件。类似于Windows下的program files。
Var:存放的程序/系统的日志文件的目录
Mnt:当外接设备需要挂载到mnt目录下。
三、Linux的基本指令
一、指令与选项
什么是Linux指令?
指在Linux终端(命令行)中输入的内容就称为指令。
一个完整的指令的标准格式: Linux通用的格式
#指令 [选项] [操作对象] []可选的
一个指令可以包含多个选项
操作对象也可以是多个·
1.ls 指令
含义: ls(list) 列出当前工作目录下的所有文件/文件夹的名称。
用法2: ls 路径
含义:列出指定路径下的所有文件/文件夹的名称。
2.关于路径(重要):
路径可以分为两种:相对路径、绝对路径。
相对路径:相对首先得有一个参照物(一般就是当前的工作路径)
绝对路径:绝对路径不需要参照物 ,直接从“/”开始寻找对应路径。·
相对路径的写法:在相对路径中通常会用到两个符号 “./”【表示当前目录下】 、"… /" 上一级目录
用法3:#ls 选项 路径
含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
常见的语法:
#ls -l路径
#ls -la 路径
选项解释:
-l: 表示以list详细列表显示
第一列指定的是文档的类型 -表示该行对应的文档类型为文件。 d 指文档类型为文件夹。
root root 用户权限
17 单位是字节
日期:指最后修改的时间。
用法4: #ls -lh 以k来显示文件大小
3.pwd 打印当前的工作路径
4.cd 命令
命令:#cd (change directory)
作用:用于切换当前的工作路径
cd /进入跟目录
cd …/返回上一级目录
cd - 切换到上一次访问的目录
cd ~ 切换到home 目录
补充: ~ 表示当前用户的家目录
5.mkdir 创建目录
案例: mkdir 目录名
语法1:在指定路径下创建一个文件夹 “abc``”
语法2:一次创建多个分级目录
mkdir -p 一次创建多个分级目录
语法3:一次创建多个目录
mkdir 目录1 目录2 目录3
6.touch 指令
指令: touch
作用: 创建文件
语法: #文件路径 路径可以是直接的文件名也可以是路径。
案例: 使用touch来创建一个文件,命名为Linux.txt
也可以一次创建多个文件,只是没有-p 这个参数 创建不了分级文件。
案列:使用touch命令在/home/zmy目录下创建linux123.txt文件
7.cp指令
指令:cp (copy复制)
作用:复制文件/文件夹到指定的位置
语法:#cp 被复制的文档路径 文档被复制到的路径
案例:使用cp命令来复制一个文件
注意: Linux在复制过程中是可以重新对新位置的文件进行重命名的,但是如果不是必须的,建议保持前后名称一致。
案例:使用cp命令复制一个文件夹
注意:当使用cp命令复制文件夹的时候,需要加-r【表示递归复制,把文件夹里面的东西复制过去】参数,否则文件夹将会被略过。
8.mv指令
指令:mv (move,移动,剪切)
作用:移动文档到新的位置
语法: #mv 需要移动的文档路径 需要保存的文档路径
案例:使用mv命令移动一个文件
案例:使用mv命令移动一个文件夹[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3BsggTjX-1629892020607)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210824150042788.png)]
注意: 使用mv命令移动文件的时候后面可以不写名字 默认跟前面的名字一样。
补充:在Linux中重命名也是mv mv 旧名字 新名字
9.rm命令
指令:rm (remove,移除、删除)
作用: 移除/删除文档
语法 #rm 选项 需要移除的文档路径
选项:
-f :强制删除
-r: 表示递归
案例: 删除一个文件 (如果不带参数会出现提示是否删除)
提示:如果不想频繁的确认删除 可以加参数f 强制删除
案例:删除一个文件夹
注意:删除一个目录的时候需要递归删除,并且一般不需要频繁进行删除确认询问,所以移除目录的时候需要使用-rf选项。
案例: 删除多个文档 空格隔开即可。
案例:要删除一个目录下公共特性的文档,例如以Linux开头 rm -rf Linux*
10.vim 命令
指令:vim (vim是一款文本编辑器)
语法:# vim 文件的路径
作用:打开一个文件(可以存在,可以不存在)
案例: 打开一个文件
输入 vim test.sh
结果如下:
退出打开的文件shift+: 输入q即可 q代表不保存。
11.输出重定向
一般命令的输出都会在终端显示,有些时候需要将一些命令的执行结果保存到文件中进行后续的分析和统计,则这时候需要使用到输出重定向
~>: 覆盖输出,会覆盖掉原先的文件内容
~>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
案例:使用覆盖重定向,保存ls -la的执行结果,保存到当前目录下的ls.txt
注意:文件可以不存在,默认新建。
案例:追加
在刚才显示的结果上×2等于最终显示的结果。
12.cat指令
作用1:cat有直接文件的功能,不需要退出。
语法: #cat 文件的路径
提示:如果只需要查看文件,不需要编辑,建议用cat命令 而不是vim。
作用2: cat还可以对文件进行合并
语法2:#cat 待合并的文件路径1 2 …文件路径n>合并之后的文件路径
四、进阶指令
1.df 指令
作用:查看磁盘空间
语法:# df -h -h加上单位 建议加上
2.free 指令
作用:查看内存使用情况
语法:free -m 以M为单位查询
提示: windows 打开计算器 可以通过calc命令打开。
临时内存: 当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。
3.head指令
作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。
语法:head -n 文件路径(n表示数字)
4.tail 指令
作用:查看一个文件的后n行,如果不指定n,则默认显示后10行。
语法:tail -n 文件路径(n表示数字)
案例:查看文件的后5行和最后一行
作用2: 可以通过tail -F 查看文件的动态变化 也可以通过重定向(实时的读取内容)一般用来看日志。
提示:注意F是大写 不是小写。退出时按q键
5.less 指令
作用: 查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格、上下方向键)查看更多。
语法: #less 需要查看文件
6.wc指令
作用:用于统计文件信息(包括行数、单词数、字节数)
语法: #wc -lwc 需要统计的文件路径
-l lines, 行数
-w words 单词数
-c bytes, 字节数
7.date指令(重点)
作用:表示操作时间日期(读取、设置)
语法1: #date
语法2: #date + %F 输出年月日 等价于 +%Y-%m-%d
语法3: #date +"%F %T" 引号默认为一个整体
语法4: #date -d “+n day/year/month” “+%H:%M:S” (相当于运维的备份)
单位的可选值 day(天)、month(月份)、year(年) +n 表示往后推n 减n表示往前推n
%F 表示完整的年月日
%T 表示完整的时分秒
%Y 表示完整的四位数
%m 表示两位月份 (带前导0)
%d 表示日期 (带前导0)
%H 表示小时 (带前导0)
%M 表示分钟 (带前导0)
%S 表示秒 (带前导0)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DuNUPJsh-1629892020622)(C:\Users\zmy\AppData\Roaming\Typora\typora-user-images\image-20210824233609503.png)]
8.cal 指令
作用:操作日历
语法1: # cal 直接输出当月的日历 等价于 cal -1 1表示一个月
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l5ps73wp-1629892020622)(C:\Users\zmy\AppData\Roaming\Typora\typora-user-images\image-20210824235511803.png)]
语法2: #cal -y 年份 查看某年的日历
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1TJDW7K4-1629892020623)(C:\Users\zmy\AppData\Roaming\Typora\typora-user-images\image-20210824235629567.png)]
9.clear/ctrl+L 指令
作用: 清除终端显示的命令和信息。
语法:直接clear 或者快捷键 ctrl+L
注意:并不是真的清除了信息,可以通过键盘的上下键查看历史命令。
10.管道 (重要)
管道符: |
作用: 管道符可以用来过滤 、特殊、扩展处理。
语法:管道不能单独使用,必须配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。
过滤案例:需要通过管道查询出根目录下包含"y"字母的文档名称
ls/|grep y
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HKYz776X-1629892020624)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825093107021.png)]
注意: 针对上面这个命令说明:
1.以管道作为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出,通俗的讲前面的输出就是后面的输入。
2.grep指令: 主要用于过滤
案例2:通过管道的方法来实现less的等价效果(了解)
语法:cat 路径 |less
案例3: 扩展处理 请用学过的命令,来统计某个目录下的文档的总个数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0P54T40J-1629892020625)(C:\Users\zmy\AppData\Roaming\Typora\typora-user-images\image-20210825002756010.png)]
五、 高级指令
1.hostname 指令
作用:操作服务器的主机名 (读取、设置)
语法1: #hostname 含义:表示输出完整的主机名
语法2: #hostname -f 表示输出的当前主机名中的FQDN(权限的域名)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xA8rJt1X-1629892020626)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825095218547.png)]
2.id 指令
作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id),不指定就是查看当前用户。
语法1: #id 默认显示该用户的基本信息
语法2:#id 用户名 显示指定用户的基本信息。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aRiV4J6b-1629892020627)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825095837308.png)]
验证上面查到的结果是否正确?
用户id 是存在/etc/passwd
用户组id 存在/etc/group
既可以通过`swd cat /etc/group
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cfse1hSN-1629892020628)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825100641419.png)]
3.whomi 指令
作用:显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志。
语法:#whoami
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vooGMtCU-1629892020629)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825101350814.png)]
4.ps -ef 指令(重点)
指令: ps 主要是查看服务器的进程信息。
-e 等价于"-A". 列出全部的进程
-f 显示全部的列
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-woIVsUcV-1629892020630)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825102300386.png)]
. 列的含义:
UID : 该进程执行的用户ID
PID: 进程ID
PPID 该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称为僵尸进程
C: CPU的占有率。
STIME: 进行的启动时间
TTY :终端设备,发起该进程的设备识别符号,如果显示? 则表示该进程不是由终端设备发起。
CMD 该进程的名称或者对应的路径。
案例:查看mysql的进程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BT6fe0Ba-1629892020631)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825111505115.png)]
5.top 指令
作用:查看服务器的进程资源
语法:# top (动态显示)
退出命令:按下q键
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xH5YUffF-1629892020632)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825112110652.png)]
. 表头的含义
PID : 进程ID
USER : 用户
PR: 优先级
VIRT : 虚拟内存
RES :常驻内存
SHR :共享内存
计算一个进程的实际使用的内存=常驻内存(RES) -共享内存(SHR)
S : 表示睡眠状态
%CPU: 表示CPU的占用百分比
%MEM:表示内存占用的百分比
TIME+ : 执行的时间
COMMAND :进程的名称或者路径
快捷键:
p :表示将结果按照CPU使用率从高到底进行降序排列
1:切换显示各个cpu的详细信息。
6.du -sh 指令
作用:查看目录的真实大小
语法:#du -sh
选项含义:
-s : summaries,只显示汇总的大小
-h: 表示以较高可读性的形式进行显示
案例: 统计"linux1文件的大下"
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LF3kDJ1H-1629892020633)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825143749343.png)]
7.find 指令
作用:用于查找文件(其参数有55个)
语法: #find 路径 选项 选项的值
Everything windows查找文件工具
选项:
-name : 按照文档名称进行搜索(支持模糊搜索)
-type : 按照文档的类型进行搜索
文档类型: - 表示文件(在使用find的时候需要用f来替换) d 表示文件夹
·案例: 使用find 来搜索zmy文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VTvoUAPo-1629892020634)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825145142964.png)]
案例:使用find来搜索/home/bitnami/linux1/123/ 下的所有文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V7ZKFCdF-1629892020635)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825151417733.png)]
8.service 指令(重点)
作用:用于控制一些软件服务的启动、停止、重启。
语法:#service 服务名 start/stop/restart
例如: service mysql (可能名字会不一样) start /stop /restart
9.kill 指令(重点)
作用:表示杀死进程 (当遇到僵尸进程或者出于某些原因需要关闭进程的时候)
语法 : #kill 进程PID (语法需要配合ps一起使用)
案例 :需要kill 掉mysql进程
ps -ef |grep mysql
kill mysql的pid
再进行ps -ef |grep mysql
与kill命令作用相似但是比kill更加好用的杀死进程的命令 :killall
语法:#killall 进程名称
10.ifconfig指令(重点)
作用:用于操作网卡相关的指令
简单语法:#ifconfig
Enp0s8 表示Linux中的一个网卡,Enp0s8 是其名称。 Lo(loop, 本地回还网卡,其ip地址一般都是127.0.0.1)也是一个网卡的名称
注意: inet addr 就是网卡的ip 地址。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nPxmxyKE-1629892020635)(C:\Users\zhengmingyu3\AppData\Roaming\Typora\typora-user-images\image-20210825163145639.png)]
11.reboot 指令
作用:重新启动计算机
语法1:# reboot 重新启动
语法2:#reboot-w 模拟重启,但是不重启(只写关机与开机的日志信息)。
12.shutdown 指令
作用:关机 (慎用)
语法1: #shutdown -h now “提示” 现在关机 或者#shutdown -h 15.25
shutdown -h 12.00 “系统将在12.00关机 请保存好你的文档!”
注意 :