Linux
- windows问题
- 个人用户正版windows需要收费
- 系统长时间运行不稳定,变慢,容易死机
- windows常招到病毒攻击
- linux优点
- 个人用户正版Linux不需要收费(centos所有都是免费)
- 系统长时间运行稳定,不会变慢,不容易死机
- Linux不常招到病毒攻击,也很难攻击
总之,做为一个后端程序员,在windows中开发完程序后,得部署到一个相对比较安全稳定的服务器中运行,Linux就是最佳的选择。
Linux介绍
Linux是基于Unix的开源免费的多用户操作系统,相对于windows而言,其运行的稳定性和安全性都有着绝对的优势,因此它几乎成为程序代码运行的最佳系统环境。
Linux的核心代码一直由Linus Torvalds(林纳斯· 托瓦兹)开发维护,作者将源代码开源之后放到了社区,众多的linux爱好者加入了开发队伍,因为也就衍生了众多的linux版本。
Linux版本
- 内核版本:在Linux之父领导下的内核小组开发维护的系统内核的版本号。
- 发行版本:一些个人/组织/公司在内核版基础上进行二次开发而重新发行的版本号。
主流发行版本
Linux安装
1.虚拟机安装
产品:VmWare(收费、30试用期)、VirtualBox(免费,oracle公司产品)
1.准备好VmWare虚拟机
2.登录下载linux操作系统的镜像文件(http://mirrors.163.com/centos/)
3. 进入网站后点击isos,选择合适的版本,点击下载
4.下载完成后,进入vmWare进行虚拟机安装
2.创建虚拟机
进入VMware中点击创建新的虚拟机
3.创建虚拟机
虚拟机与真实物理鼠标切换 ctrl+alt
Linux的目录结构
1. root目录:超级管理员所在的目录,用~表示
2. home目录:普通用户所在的目录 /home/tom /home/jack
3. usr目录:安装用户文件所在的目录
4. etc目录:Linux系统管理和配置文件所在的目录
Linux基本命令
1.目录操作
cd目录名称:切换目录(change directory)
cd a:进入当前目录下的a目录
cd a/b:进入当前目录下的a目录的b目录
cd /a/b:进入根目录下的a目录的b目录
cd …:返回上一级目录
cd ~:回家。 root回到/root目录下;其他用户如tom回到了/home/tom
cd -:返回上次工作目录
cd /:回到根目录
mkdir目录名称:创建目录(make directory)
mkdir a:在当前目录下创建a目录
mkdir -p b/c:创建多级目录(-p:-parent父目录)
rmdir 目录名称:删除一个空目录 (remove directory)(了解即可)
ls:展示当前目录下可见文件和文件夹
ls -l:展示当前目录下可见文件和文件夹的详细信息一般使用ll代替
(ls:list(列表) -l:-long(详细信息))
ll -a:展示当前目录下所有的文件和目录(包含隐藏的)(-a:-all(所有的))
pwd:打印当前工作的目录(pwd:print working directory)
2.文件查看
cat 文件名:查看文件的所有内容适用于文件内容比较小
more 文件名:分页展示文件的内容,enter一行行查看,或者用空格一页页看,q退出
less 文件名:分页展示文件的内容,enter一行行查看,空格一页页查看,支持pageup和pagedown,q退出
tail 文件名:查看一个文件的后10行
- tail -n 文件名:查看一个文件的后n行
- tail -f 文件名:滚动的动态查看文件的内容 ctrl+c终止查看
3.清屏
clear
ctrl+l
4 文件操作
- 创建
- 复制
- 移动
- 删除
- 重命名
touch 文件名:创建一个空文件
cp 复制(copy)
- cp 文件名 目录:将文件复制到指定目录下
- cp 文件名 目录/新文件名:将文件复制到指定目录下并重命名
- cp -r 要复制的目录 目的地目录:将一个目录复制到指定目录下
mv 移动重命名
- mv 文件名 目录:将文件移动到指定目录下
- mv 文件名 目录/新文件名:将文件移动到指定目录下并重命名
- mv 要移动的目录 目的地目录:将一个目录移动到指定的目录下
rm删除
- rm 文件名:带询问的删除
- rem -f 文件名:不带询问的删除 暴力删除
- rm -r 目录名:带询问的逐层删除
- rm -rf 目录名:不带询问的暴力逐层删除
- rm -rf ./*:清空当前目录
- rm -rf *:清空当前目录
- rm -rf /*:自杀 千万不要用这个
5.tar 打包压缩 解包压缩
tar -cvf 打包后的文件名字.tar 要打包的目录或文件
tar -zcvf 打包压缩后的文件名字.tar.gz 要打包压缩的目录或文件
tar -xvf 要解包或解压的文件名字 :将文件解压解包到当前目录下
tar -xvf 要解包或解压的文件名字 -C 目的地目录 :将文件解压解包到指定目录下
6.查找
find 用来查找文件
- 格式 : find 目标目录 -name ‘文件名字*’
- 例如 :
find /etc -name '*ens3*'
在etc目录下查询名字带"ens3"的文件
grep 用来查找内容 - 格式 : grep 要查询的内容 文件名
- 例如 : grep -in dhcp ifcfg-ens33 在ifcfg-ens33文件中找 dhcp 不区分大小写且显示所在的行号
7.vi和vim编辑器
linux 下的vi 是一种文字编辑器,后来的升级版本是vim(关键词高亮显示)。
用法 :
方式1:vi 文件名
方式2:vim 文件名
有3种模式:
- 命令行模式 : 对行进行编辑
- 编辑模式 : 对字符进行编辑
- 底行模式 : 可以进行保存,退出等操作
3种模式切换
- 命令行模式–>编辑模式 按 i(插入) 或者 a(在光标之后插入) 或者 o(新起一个空行) 等
- 编辑模式 --> 命令行模式 按退出键
- 命令行模式 --> 底行模式 按 : 命令行模式下操作
- yy 复制当前行
- p 粘贴
- dd 删除当前行
- G 定位到文件末尾
底行模式下操作
- wq 保存退出
- q 退出
- q! 强制退出
8.管道
一个命令的输出,可以作为另一个命令的输入,至少有二个命令参与执行。
例如 : ll | grep *ens3*
将当前文件和目录的信息作为文本 在此文本中查询包含"ens3"的信息
9.文件权限
权限介绍Linux中对每个目录和文件都做了规定,只能由满足条件的用户才能操作,这个规定叫权限。
通过ll 可以查看文件和目录的详细信息,前十位代表的意义如下
第1位:文件的类型 d:目录 -:文件 l:链接(快捷方式)
234位:当前文件所属用户的权限
567位:当前组中其他用户的权限
89十:其他用户的权限
权限操作
* 语法
chmod [参数] [<权限范围><符号><权限代号>]
* 参数解释
-R 递归处理,将指定目录下的所有文件及子目录一并处理
* 权限范围
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
* 符号解释
+ 添加权限
- 取消权限
= 重置权限
* 权限代号
r:读取权限,数字代号为"4"
w:写入权限,数字代号为"2"
x:执行或切换权限,数字代号为"1"
-:不具任何权限,数字代号为"0"
* 命令
chmod u+x 1.txt 给1.txt的拥有者添加执行权限,这种写法稍微有点麻烦,开发中一般使用数字代号
chmod u=rwx,g=r,o=r aa.txt 当前用户拥有所有权限,组内用户可读,其他用户可读
chmod 755 1.txt 给1.txt的拥有者设置读写执行权限,给所属组添加读和执行权限,给其他用户添加读和执行权限
chmod 777 a.txt 给所有人添加对此文件操作的所有权限
10.进程
查看进程
ps -ef | grep java : 查看tomcat的进程信息
* 语法
ps -au
ps -ef
* 参数解释
-a 显示所有用户通过终端启动的所有进程
-A 显示所有进程
-u 显示所有用户通过终端启动的所有进程详细信息
-x 显示所有用户通过终端和非终端启动的所有进程详细信息
-e 此参数的效果和指定"A"参数相同,显示所有程序
-f 显示UID,PPID,C与STIME栏位
杀死进程
* 语法
kill 进程号
kill -9 进程号(强制杀死)
11关机重启
关机: poweroff 或者 shutdown
重启:reboot
Linux防火墙
防火墙设置
* 开启防火墙
systemctl start firewalld
* 重启防火墙
systemctl restart firewalld
* 关闭防火墙
systemctl stop firewalld
* 设置开机启动
systemctl enable firewalld
* 停止并关闭开机启动
systemctl disable firewalld
* 查看防火墙状态
systemctl status firewalld 或者 firewall-cmd --state
* 查看防火墙开机时是否启动
systemctl list-unit-files | grep firewalld
端口设置
* 添加
firewall-cmd --zone=public --add-port=80/tcp --permanent
* 更新防火墙规则
firewall-cmd --reload
* 查看
firewall-cmd --zone=public --query-port=80/tcp
firewall-cmd --zone=public --list-ports
* 删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
* 常用端口
8080 tomcat
80 http协议
22 ssh远程连接(默认开启)
3306 mysql
6379 redis