Linux
一、Linux的安装
Linux虽然是1个计算机,但是我们一般不会直接在系统界面操作它,我们会把它当做远程服务器,通过远程连接工具进行访问。
二、什么是Linux
Linux是一种自由和开放源码的操作系统。因为开源,有众多爱好者共同优化Linux,我们对该操作系统有更多的拓展操作。
三、Linux目录结构
/:代表根目录
四、Linux常用命令
1、列出文件列表:
- ls:显示所有文件或目录(不包括隐藏)
- ls -a :显示所有文件或目录(包含隐藏的文件)
- ls -l :显示更详细信息,什么权限啊…(简写:ll)
注意:
在linux中,以"."开头的文件都是隐藏的文件
2、切换目录命令cd
- 使用cd app :切换到app目录
- cd … :切换到上一层目录
- cd / :切换到系统根目录
- cd ~ :切换到用户主目录
- cd - :切换到上一个所在目录
- cd /urc/xxx:切换到指定的目录
注意:
使用tab键来补全文件路径
3、删除和创建目录
创建:
- mkdir aaa:创建aaa目录
- mkdir -p aaa/bbb:创建aaa/bbb目录(如果父目录不存在就会创建,不会报错)
- mkdir aaa/bbb:同上。(会报错,不会创建不存在的父目录)
删除:
- rmdir aaa:删除目录(只会删除空文件的目录)
4、浏览文件
- cat:用于显示文件的所有内容。
- more:一般用于要显示的内容会超过一个画面长度的情况。(按空格键显示下一个画面。)
q退出,或者,ctrl+c
- less:(下键 显示下一条,空格 下一画面)
q退出
- tail:用于显示文件后几行的内容。【常用】
- tail -10 /etc/passwd 查看后10行数据
- tail -f catalina.log 动态查看日志(*****):
指动态(监听)查看日志文件改变后的10行信息,一般用于查看报错信息。为什么是最后10行,因为异常信息都是追加进去的,多的是在最后面显示。
q退出
5、文件操作:
①复制or移动文件
复制:cp(copy)
- cp a.txt b.txt 将a.txt复制为b.txt文件
- cp a.txt …/ 将a.txt文件复制到上一层目录中
移动:
mv 移动或者重命名
mv a.txt …/ 将a.txt文件移动到上一层目录中
mv a.txt b.txt 将a.txt文件重命名为b.txt
②打包and解压
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。常用参数`
首先,要知道Linux的压缩格式是:***.tar.gz,而要压缩就得先打成tar包。
下面介绍一下具体命令:
常用参数:
- c:创建一个新tar文件
- v:显示运行过程的信息
- f:指定文件名
- z:调用gzip压缩命令进行压缩
- t:查看压缩文件的内容
- x:解开tar文件
1、打包:
tar –cvf xxx.tar ./*
格式:
tar -cvf 需要打包成什么名字 打包什么
2、打包并且压缩:
tar –zcvf xxx.tar.gz ./*
tar -cvf 需要打包成什么名字
3、解压:
tar –xvf xxx.tar
tar -xvf 需要被解压成什么名字
tar -zxvf xxx.tar.gz -C /usr/aaa
tar -xvf 需要被解压成什么名字 -C解压到哪个目录
③删除
rm a.txt 删除a.txt文件
删除需要用户确认,y/n
rm 删除不询问:
rm -f a.txt 不询问,直接删除rm 删除目录
rm -r a 递归删除不询问递归删除(慎用)
rm -rf a 不询问递归删除
rm -rf * 删除所有文件
rm -rf /* 自杀
④查找文件&内容
查找文件位置:find
find指令用于查找符合条件的文件
示例:
- find / -name “ins*” :查找文件名称是以ins开头的文件
- find / -name “ins*” –ls :同上(更详细)
- find / –user itcast –ls :查找用户itcast的文件
- find / –user itcast –type d –ls: 查找用户itcast的目录
- find /-perm -777 –type d-ls: 查找权限是777的文件
查找文件内容:grep
grey [字符串] [文件]
- grep lang anaconda-ks.cfg :在文件中查找lang字符串
- grep lang anaconda-ks.cfg -–color :同上(高亮显示)
- grep debug yum.conf --color:同上
- grep debug yum.conf --color -A5:显示最后5行(A:after)
- grep debug yum.conf --color -A5 -B5:显示前5行和后5行(B:before)
五、Vi和Vim编辑器
介绍:
在Linux下一般使用vi编辑器来编辑文件。vi(vim是增强版)既可以查看文件也可以编辑文件(一般用来编辑配置文件)。如果文件存在就直接编辑,如果不存在就会自动创建再编辑。
讲解:
编辑过程,需要经历3种模式:命令行模式、插入模式、底行模式
说一下流程:
1、打开文件:输入vim a.txt
【命令行模式】
2、修改文件:输入i
或a
或o
… 【插入模式】
3、修改完毕,切换到命令行模式:Esc
【命令行模式】
4、保存并退出::wq
【冒号:底行模式】
(补充:如果你不小心修改了,不行保存并退出,输入:q!
;如果是没有修改文件单单退出的话,输入:q
)
三种进入插入模式:
i:在当前的光标所在处插入
o:在当前光标所在的行的下一行插入
a:在光标所在的下一个字符插入
快捷键:
dd – 快速删除一行
yy - 复制当前行
nyy - 从当前行向后复制几行
p - 粘贴
R – 替换
六、重定向输出&系统命令
重定向输出>和>>:
- cat /etc/passwd > a.txt :将passwd输出显示的数据复制or覆盖到a.txt中
- cat /etc/passwd >> a.txt :追加数据
系统管理命令:
ps :正在运行的某个进程的状态
- ps –ef :查看所有进程
- ps –ef | grep java:在ps –ef 查询的基础上,查找某一进程(包含java字符串)
- kill 2868 :杀掉2868编号的进程
- kill -9 2868 :强制杀死进程(-9代表强制,2868指进程ID)
七、管道 |
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入
。
什么意思?
比如:A | B 是1个组合命令,B的操作数据来源于A的输出结果的数据,即:我的输出就相当于你的输入,你在我给你的数据基础上进行操作。
示例:
ls --help | more :分页查询帮助信息
ps –ef | grep java :查询名称中包含java的进程
ifconfig | more :分页查询
cat index.html | more :同上
ps –ef | grep aio:在ps –ef 查询的基础上,搜索含有aio字符串的进程
八、权限系统
为什么要学习分辨这些权限?
因为你有时候在安装的软件的时候,可能没有权限去执行,这是你需要去修改权限,但是修改之前你必须要先知道现在是什么权限。
小插曲:
文件的颜色:
- 白色:只读
- 绿色:可执行
- 红色:压缩
了解权限信息是什么:
再详细一点:
Linux三种文件类型:
- 普通文件: 包括文本文件、数据文件、可执行的二进制程序文件等。
- 目录文件: Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
- 设备文件: Linux系统把每一个设备都看成是一个文件
文件类型标识:
普通文件(-)目录(d)符号链接(l)
- 进入etc可以查看,相当于快捷方式字符设备文件(c)块设备文件(s)套接字(s)命名管道(p)
文件权限管理:(就是修改文件权限操作的意思)
chmod:变更文件或目录的权限。
- chmod 755 a.txt
数字是什么意思?根据下图得知:
说明:该文件无论是u、g、o都是可写可读可执行。
(4+2+1=7)
- chmod u=rwx,g=rx,o=rx a.txt
u:当前用户—>该文件可读、写、执行
g:当前组内其他用户—>可读、可执行、不可写
o:其他组的用户–>同上
九、Linux常用网络操作
我们在Linux虚拟机上要修改下面配置,为什么修改?
因为下面配置会出现2个问题:
1、当我重新打开虚拟机的时候,本机IP地址会随机生成,这样我远程连接需要频繁登录。(获取ip方式为dhcp:自动动态生成---->需要换成静态不变的)
2、当我虚拟机重新开启的时候,网卡(eth0)不会自动连接网络,这样我们在命令窗口无法查看本地IP(需要将ONBOOT改为yes)
还有一些设置不是很清楚为啥设置、
十、Linux安装软件
安装软件的方式
- 1.二进制发布包
软件已经针对具体平台编译打包发布,只要解压,修改配置即可
缺点:不同平台不兼容
- 2.RPM包
软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装
安装C,需要安装依赖A和B
- 3.Yum在线安装
软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题 - 4.源码编译安装
软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署。
Redis就是这样方式
上传与下载工具介绍
选第1种比较方便,选第3种纯命令行操作
1、JDK
2、Tomcat
3、MySQL
4、redis
5、Linux部署项目
关于部署后的日志查看
我在使用IDEA的时候,下面都会有日志信息提示,提示我们一些错误啊,状态啊,根据这些错误我们才能定位哪里出现问题。
它在哪里呢?
在tomcat
的目录下logs
中的catalina.out
,
我们使用动态查看来观测它的状态:tail -f catalina.out