1、什么是Linux
Linux 是一种类 Unix 操作系统,它的内核(Kernel)由 Linus Torvalds 于 1991 年首次发布。作为一个开源、免费的操作系统,Linux 被广泛用于服务器、桌面计算机、嵌入式设备、移动设备等各种场景。
1、操作系统
操作系统是一组主管并控制计算机软硬件、资源以及服务的应用程序。简单来说,它还是一个软件。
2、常见的操作系统
1、PC
windows、MacOS、Linux、Unix
Unix创始人:汤普森、丹尼斯 里奇
2、移动端
Android、IOS、塞班、鸿蒙
3、Linux的前世今生
Linux是在Unix后出现的,他吸收了很多Unix的优秀理念和思想,又有自己的特点。
GNU组织,最初的想法就是要建立一个自由的Unix操作系统。
1990年,林纳斯·本纳第克特·托瓦兹开发了Linux第一个版本。
Linux是由Unix转变而来,Unix是收费的操作系统,Linux是免费的,他的理念是Free(自由)。Linux的源代码是开源的。
常见的LInux版本:
1、红帽企业版 (Linux Red Hat Enterprise Linux, RHEL )
2、Ubuntu
3、 社区企业操作系统 (Community Enterprise Operating System, CentOS )
由于我第一个接触学习的是centOS,所以本文将详细介绍centOS。
2、Linux应用在哪里
Linux大多情况应用在服务器,这也是Java方向程序员为什么必须要学习Linux的一个原因。
在少数情况也有在Linux上开发软件,或者应用到小型机、嵌入式、树莓派等设备上。
3、为什么要用Linux
Linux的优势:
1、跨平台的硬件支持
Linux的内核大部分是C开发的,而且遵循国际标准,所以对硬件的支持很好,跨平台的优势得以体现。
2、丰富的软件支持
Linux有丰富的软件库,包括办公、娱乐、开发工具等软件。尤其对程序员非常友好,编译工具基本都有。
3、支持多用户多任务
Linux支持多个用户,多个用户组操作,可以分配不同的权限;Linux对每个进程都是平等处理的,可以同时执行多个程序,而且之间是独立的。
4、更安全更可靠
Linux是开源的,有更多的人去维护它,而且它的机制也使得病毒很难侵入,自带的防火墙、安全认证等工具都很强大。
5、良好的稳定性
Linux非常稳定,可以常年开机不关,基本不会出现宕机事件,应用程序运行的也很稳定,不会出现莫名其妙的挂掉。
6、免费
Linux是开源免费的,商用不需要支付费用。
4、什么情况下用Linux
1、嵌入式开发
2、做为服务器
3、开发Linux应用时
4、就是喜欢的人
5、Linux安装
1、VirtualBox安装
运行安装程序,一直下一步即可。如果不想安装到C盘,可以自己选盘符。
注意:软件开发安装所有程序时,不要安装到有中文或特殊符号的路径下。
2、安装操作系统
点击新建,弹出如下对话框
名称:自己定义,不要用中文或特殊符号。
文件夹:建议不放在c盘,占用空间会比较大,可以自定义一个文件夹。
类型:选择Linux
版本:Other Linux 64-bit
下一步
内存分配,建议2048M。
下一步
创建虚拟硬盘,在这里不创建,后续还是要创建。
创建
重点核对内存和硬盘的大小。
注意网络设置,桥接网卡,选择正在用的网卡,可以在网络中心找到你的网卡名字。
选择操作系统的镜像文件
点击启动
启动成功后,按光标键,选第一个,回车
然后,就是等,看着输出一些日志。一直到弹出如下:
选择英文,不要选中文,后续兼容不好。
选择时间
选择安装到那个硬盘
开始安装
设置密码,我这里密码统一设置为:123456
安装成功后需要重启
可以登录,代表安装成功,用户名是root,密码统一的123456,注意,启动虚拟机后小键盘会被关闭,输入密码时光标不会移动,输入即可,回车登录。
输入命令:ip addr查看虚拟机ip地址
3、常见问题
1、设备虚拟化
一定要是已启用才可以按照虚拟机。
修改方法:根据自己电脑不同的型号,去设置BIOS。
2、连接不上网络
检查网络设置是否正确,选择的是否是桥接网卡,且选择的网卡对不对
3、终端连接不上
先检查ip是否正确
再检查宿主机和虚拟机是否在同一个网段下,ip地址前三个相同,代表在同一个网段下
4、报错
出现这种问题可以百度错误,百度关键字:virtualbox 80004005
4、常用工具
1、putty
2、Xshell
3、secureCRT
4、ssh-secure-shell
由于这个比较简单所以本文用的SSH,不过如果想要连接远程的服务器(比如阿里云),最好不要用这个,可以使用FinalShell或者Xshell 7
SSH使用方法:
第一个框是虚拟机的IP地址
第二个框是用户名,我们统一都是root
第三个框是端口号,22是用于远程登录的端口
第四个框是权限方式,用默认的就可以,后面用密码登录
第一次登录时会出现,以后都没有了
5、常用命令
命令是人向计算机发出指令,让计算机做某些事情。
命令的格式:
命令 [选项] [参数]
选项和参数是非必填的,比如说pwd,pwd是查看当前所在路径的命令,不需要有选项和参数
选项:会影响到命令的一些操作,一般以-开头
参数:命令作用的对象
1、ls
作用:查看当前目录下有哪些文件
语法:ls 或者 ls 目录,目录是参数,如果有,则显示参数对应目录下的文件,如果没有,显示当前目录下的文件
常用选项:
1、-l
列出文件的详细信息,如创建者、文件权限、文件大小、文件类型等
文件类型:
d:目录文件
-: 普通文件
l: 链接文件
p:管道文件
c: 字符设备文件
b: 块设备文件
颜色 | 代表文件类型 | 例子 |
---|---|---|
蓝色 | 目录文件 | /usr/local |
黑色 | 普通文件 | /anaconda-ks.cfg |
浅蓝色 | 链接文件 | /etc/localtime |
红色 | 压缩包 | jdk-8u231-linux-x64.tar.gz |
绿色 | 可执行文件 | /etc/init.d/network |
黑底黄字 | 设备文件 | /dev/vcs |
ll命令等价于ls -l
2、-a
列出目录下所有文件,包含隐藏文件
这两个红框内的文件就是隐藏文件,一个点代表当前目录,两个点代表上一层目录
3、-d
只看目录文件,不看目录内容
4、-S
文件大小倒序排序,注意大小写,小写的没有效果,如果想正序执行Sr
5、-t
文件修改时间倒序,-tr为正序,注意大小写
2、别名
把一个比较长的命令简短成一个简单的,一般应用于某个操作经常触发,不想输入太多的字符,可以定义一个别名。比如说:ll是`ls -l --color=auto'的别名,方便我们操作。
1、创建别名
alias vietc1='vi /usr/local/etc/1.txt'
执行vietc1 等同于执行 vi /usr/local/etc/1.txt
2、删除别名
unalias vietc1
3、cd
进入某个目录
语法: cd [参数],参数就是要进入的目录
cd:cd没有参数会进入用户目录文件,例如:root用户执行,会进入/root目录
cd .:进入当前目录,相当于没有操作
cd ...:进入上一级目录
cd - :返回切换前的目录
pwd:显示当前目录
4、history
显示历史执行过的命令
要善于光标键和tab键,光标键可以快速定位之前执行过的命令,tab键可以帮助补全文件名
5、快捷键
Ctrl+C:终止当前程序
Ctrl+L:清屏,相当于clear
Ctrl+D:退出
6、文件操作
1、新建目录
mkdir
2、新建文件
touch
3、拷贝文件
cp
cp [选项] [参数1] [参数2] ,参数1代表目标文件,参数2代表复制到哪里
-r选项代表递归
4、移动文件
mv [选项] [参数1] [参数2] ,参数1代表目标文件,参数2代表移动到哪里
-i选项是否覆盖文件
-f选项不做提示
5、删除文件
rm [选项] [参数] ,参数是要删除的文件
-r选项代表递归
-f选项不做提示
6、解压文件
tar [选项] [参数] ,参数是要解压的文件
tar -zxvf jdk-8u231-linux-x64.tar.gz
-z:通过gzip操作文件
-x:解压文件
-v:可视化,输出解压文件内容
-f:要操作的文件名
6、常用软件
1、vim
vim是一款功能强大,好用的编辑器,尤其适合程序员。
1、安装
yum -y install vim*
yum 安装命令 -y是不需要用户手动输入是否确认安装 install代表安装,vim是要安装的软件
安装完成后执行vim
(关于VIM我已经有别的文章详细讲解了,欢迎访问:)
链接: VIM的下载与使用教程
2、vim三种模式
- 普通模式,刚执行完vim看见的文件内容,此时不能对文件操作
- 编辑模式,在普通模式下输入i、a、A、r、R、o、O都会进入编辑模式
- 命令行模式,在编辑模式下按esc键,可以执行对文件的操作命令
3、编辑模式说明
输入i可以编辑,输入r替换当前光标位置字符,输入R进入replace模式,常用i,其他容易出错。
4、命令行模式说明
:q! 强制退出,不保存
:w 保存,不退出
:wq 保存并退出
2、JDK
1、上传tar文件
2、解压文件
tar -zxvf jdk-8u231-linux-x64.tar.gz
3、配置环境变量
打开环境变量文件:vim /etc/profile
找到一个合适的位置,某个export后,添加如下配置
java
#set java environment
JAVA_HOME=/usr/local/etc/jdk/jdk1.8.0_231
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin;$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
4、重新加载环境变量
source /etc/profile
5、验证是否配置成功
java -version
3、Tomcat
1、上传tar文件
同jdk
2、解压tar文件
同jdk
3、启动Tomcat
进入到Tomcat的bin目录,执行startup.sh文件
4、关闭防火墙
查看防火墙状态:systemctl status firewalld.service
关闭防火墙:systemctl stopfirewalld.service
禁止防火墙启动:systemctl disable firewalld.service
5、验证是否成功
宿主机浏览器访问虚拟机ip+8080端口
7、权限
权限分读、写和执行,分别对应了rwx,-代表没有这个权限
权限只对普通用户,超级用户有全部权限。
1、chmod命令
可以用chmod命令修改权限
语法1:chmod 所有权 权限 目标文件
chmod u/g/o +/- r/w/x 文件名
所有权:u代表文件拥有者,g是一个用户组,o是其他用户
权限:+代表增加权限,-是减少权限
语法2:chmod XXX 文件名
XXX是数字,代表的是三个权限(u/g/o+r/w/x),数字是rwx对应的二进制值
最简单粗暴的命令是chmod 777 文件名,在工作里要慎用。
8、Shell
shell是一种命令解释器,可以理解成一种语言。负责用户和操作系统内核之间对话,我们可以输入命令,让程序帮我们反应成计算机可以识别的命令。
比如说选择逻辑,循环逻辑。