学习目标
-
能够独立搭建Linux环境
-
能够安装SSH Secure客户端连接Linux
-
能够使用Linux进行目录操作的命令
-
能够使用Linux进行文件操作的命令
-
能够使用Linux进行目录文件压缩和解压的命令
-
能够使用Linux进行目录文件权限的命令
-
能够使用其它常用的Linux命令
学习Linux的目的
对于windows操作系统而言,大家应该不陌生,这里我列举一些windows的不足:
-
个人用户正版windows需要收费
-
系统长时间运行不稳定,变慢,容易死机
-
windows常招到病毒攻击
相反,上述windows的不足,恰好是另一款操作系统Linux的优势所在,这里我也列举一些Linux的优点:
-
个人用户正版Linux不需要收费或安装特殊功能需要收费
-
系统长时间运行稳定(全字符界面),不会变慢,不容易死机
-
Linux不常招到病毒攻击,也很难攻击
总之,做为一个后端JavaEE程序员,在windows中开发完程序后,得部署到一个相对比较安全稳定的服务器中运行,这台服务器上安装的不是windows操作系统,而是Linux操作系统。
为了顺利的操作Linux操作系统,我们得学会:安装Linux操作系统,对目录,文件,权限等基本操作命令,所以学会对Linux操作系统的基本操作是后端JavaEE程序员的必修课。
Linux的概念
linux系统是企业内部核心人员玩的,和架构师玩的。这是站在软件和硬件角度思考问题。运维人员也玩linux,但是他们不懂代码技术,也就是站在硬件角度思考问题。
-
Linux是基于Unix的开源免费,多用户,用任务的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。
-
软件安装在windows上是直接可以连外网的
-
软件安装在linux系统上是不可以直接连外网的,为了安全。
Linux的分类
根据市场需求不同,分为两个方向
- 图形化界面版:注重用户体验,但目前成熟度不够。安卓手机就是使用linux系统。
- 服务器版(推荐):字符界面。是以在控制台窗口中输入命令操作系统的,是我们架设服务器的最佳选择,类似于DOS界面。
根据原生程度不同,分为两个方向
-
内核版本:在Linux之父领导下的内核小组开发维护的系统内核的版本号。
-
发行版本:一些个人/组织/公司在内核版基础上进行二次开发而重新发行的版本号。
根据发行不同,分为多个版本
-
ubuntu,擅长界面方面
-
redhat,企业版的收费版本,基础已有功能不收费,但是系统维护升级和定制功能收费
-
centos,免费的,它是redhat源码编译过来的。
-
lubuntu
-
freeBSD
-
等等
Linux的安装
linux是个操作系统,与windows系统是平级的。
我们今天安装的是:服务器版 + 发行版 + CentOS版
安装linux系统方式:
方式一:电脑是可以双系统运行的,在电脑开启的时候会引导你,让你选择进入哪个操作系统。但是不建议一个电脑装多个系统,因为电脑会不稳定。
方式二(推荐):使用虚拟机。虚拟机就是一个windows系统上的软件,这个软件完全可以模拟一台电脑,我们可以在模拟的电脑上装linux系统,这样就可以了
虚拟机简介
虚拟机是一个软件,它可以使你在一台真实PC机器上同时运行二个或更多window /linux等操作系统。它可以模拟一个标准PC环境。这个环境和真实的计算机一样,都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器。
目前市场上流行的虚拟机有两种:
-
VMware(威睿)公司的虚拟机软件,功能强大,收费产品,有30天试用期
-
VitrualBox (甲骨文)公司的虚拟机软件,免费商品
安装Virtual Box虚拟机
参见<< 01_安装VirtualBox步骤.pdf >>
参见<< 02_在Virtual Box中创建虚拟机步骤.pdf >>
这里注意virtualbox创建虚拟机前需要电脑启动BIOS的虚拟化设置 | 开启CPU虚拟化支持(最近新买的电脑应该不用配置这一项,因为最近生产的电脑默认已经设置了)
1、进入到BIOS后,找到Configuration选项或者Security选项,然后选择Virtualization,或者Intel
Virtual Technology,就可以开始你的操作了。
2、然后回车,将其值设置成:设置为Enabled。
3、再然后,按下F10就是保存BIOS设置,重启计算机。
安装CentOS 7.0系统
参见<< 03_在虚拟机中安装CentOS 7.0步骤.pdf>>
1.新建系统
- 设置linux系统内存
- 下一步
- 设置默认硬盘空间,使用默认8G
- 启动虚拟电脑
选择iso镜像文件安装centos系统,选择下面的第一个“install Centos7”
选择语言
点击软件选择
选择安装基本网页服务器-开发工具
设置网络主机名
如下图操作,开启网卡
选择安装位置进入后,直接点击完成就可以看到“开始安装”按钮,并点击
设置root密码,点击完成,系统就一直在安装操作系统,安装完成后让你
重启,进入系统
此时linux操作系统式没有网卡的,配置网卡,需要首先关闭虚拟机当前电脑
创建虚拟机Host-only的网卡(局域网)
配置网卡1,外网网卡
配置网卡2:局域网网卡
重新启动虚拟机电脑。
进入系统后,使用ifconfig查看网卡信息
检查是否可以上外网,使用命令,ping www.itcast.cn,可以拼的通的效果如下
使用客户端工具连接linux系统使用
SSH Secure简介
在实际开发中,Linux服务器都在其他的地方,我们要通过windows客户端工具远程去连接Linux并操作它,连接Linux的windows客户端工具有很多,企业中常用的有Putty、secureCRT、SSH、Secure,xshell等。
我们使用xshell和xftp客户端工具进行连接Linux操作系统,该工具图像化界面更加友好。
安装SSH Secure
参见<< 04_安装SSH Secure 步骤.pdf>>
用SSH Secure连接CentOS
SSH Secure Shell Client,用于连接linux系统,执行命令
SSH Secure File Transfer Client,用于windows系统与linux系统传输文件
参见<< 05_SSH Secure客户端连接CentOS步骤.pdf >>
SSH Secure Shell Client 软件,用于连接linux系统可以执行linux命令的客户端界面
SSH Secure File Transfer Client 用于windows与linux系统传输文件的FTP工具
Xshell 5 类似于SSH Secure Shell Client软件,用于连接linux系统可以执行linux命令的客户端界面
xftp,类似于SSH Secure File Transfer Client,用于windows与linux系统传输文件的FTP工具
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1cd6b6ee62af585d083790a28bdddde9.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f3759fa20f5da9b24d5838fdb4bd8dae.png)
Linux 的目录结构
上述Linux目录结构中,请大家关注:
-
root目录:超级管理员所在的主目录,用~表示
-
home目录:普通用户所在的目录
-
usr(user share resources)目录:用户共享目录,只要将软件安装到共享目录,所有用户可以共享了。
-
etc目录:Linux系统管理和配置文件所在的目录
目录操作
增加
语法:mkdir 目录
创建目录
命令:
cd / 定位于根目录 cd和/之间有空格
mkdir aaa 在当前目录下创建aaa目录,相对路径
cd aaa 移动到aaa文件夹
mkdir ./bbb 在当前目录下创建bbb目录,相对路径
mkdir /ccc 在根目录下创建ccc目录,绝对路径
查看
语法:ls [参数]
查看目录下的内容
参数解释:
-
-l 以详细形式查询当前目录下所有文件和目录,不包括隐藏文件和目录
-
-a 以精简形式查询当前目录下所有文件和目录,包括隐藏文件和目录
命令:
cd /
ls 以精简形式查询当前目录下的内容
ls -l 以详细形式查询当前目录下的内容,d表示目录,-表示文件
ls -a 以精简形式查询当前目录下的隐藏内容`
ls -la 或者 ll -a 以详细形式查询当前目录下的隐藏内容,la和al都可
clear 清屏
搜索
语法:find 目录 -name ‘条件’
根据条件,搜索目录下的内容
命令:
cd /
find / -name 'b' 查询根目录下(包括子目录),名为b的目录和文件
find / -name 'b*' 查询根目录下(包括子目录),名以b开头的目录和文件
在Linux中,按ctrl+c 强行终止程序执行
修改
语法:mv 旧目录 新目录
对目录进行重命名
命令:
cd /
mv aaa aaaa 将根目录下的aaa目录修改为aaaa
剪切
语法:mv 原目录位置 新目录的位置
对目录进行移动
参数:-f或–force
若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录
命令:
cd /
mv -f cc dd 将cc强制覆盖剪切到dd里面
mv /aaaa /bbb
将根目录下的aaaa目录,移动到bbb目录下,在bbb目录下也叫aaaa目录
mv bbbb usr/bbbbb
将当前目录下的bbbb目录,移动到usr目录下,且修改名为bbbbb
总结:mv命令操作目标位置如果存在就是剪切,如果不存在就是重命名
拷贝
语法:cp [参数] 目录 目录的新位置
对目录进行复制
参数解释:
- -r 递归处理,将指定目录下的文件与子目录一并处理
命令:
cd / 定位于/目录
cp -r /aaa /bbb 将/目录下的aaa目录复制到/bbb目录下,在/bbb目录下名字为aaa
cp -r /aaa /bbb/aaaa 将/目录下的aaa目录复制到/bbb目录下,且修改名为aaaa
删除
语法:rm [参数] 目录
对目录进行删除
参数解释:
-
-r
递归处理,将指定目录下的所有文件及子目录一并处理,它会询问你,y表示是删除,n表示不删除。如果子目录比较多,会询问很多次。 -
-f 强制删除目录,它不会询问你
命令:
cd /
rm -r /aaa 询问式删除/目录下的aaa目录,y表示确认,n表示取消
如果aaa目录中还有子目录,则进入aaa目录下的所有子目录,依次询问
rm -rf /bbb 强行式删除/目录下的bbb目录
如果bbb目录中还有子目录,也会被强行式删除
文件操作
增加
语法:touch 文件
在指定的目录中,创建文件
命令:
cd /aaaa 定位于/aaaa目录
touch a.java 在aaaa目录中创建a.java文件
touch b.txt 在aaaa目录中创建b.txt文件
touch c. 在aaaa目录中创建c.xml文件
查看文件里面的内容
语法:cat/more/head/tail/less 文件
以只读方式查看文件的内容
q:退出查看模式
命令:
cd /aaaa
cat命令
cat a.java 查看a.java文件的最后一页内容
more命令
more a.java
从第一页开始查看a.java文件内容,按回车键一行一行的看,按空格健一页一页的看
空格,看下一页
B,上一屏(不好使)
enter回车,下一行
Q,退出
head a.java 查看a.java文件的前10行内容
tail a.java 查看a.java文件的后10行内容
head -n 7 a.java 查看a.java文件的前7行内容
tail -n 7 a.java 查看a.java文件的后7行内容
less -mN a.java 查看a.java文件,按照分页和带有行号查看
空格,下一页
pgup, 上一页
pgdn,下一页
q,退出
-m,分页
-N,带有行号
删除
语法:rm [参数] 文件
从目录中删除文件
参数解释:
-
-r
递归处理,对于文件删除,这个参数可带,也可不带,它会询问你,y表示是删除,n表示不删除 -
-f 强制删除文件,它不会询问你
命令:
cd /aaaa
rm -rf a.java 强行式删除当前目录下的a.java文件
rm -rf ./a* 强行式删除当前目录下以a开头的所有文件(不能玩)
rm -rf ./* 强行式删除当前目录下所有文件(不能玩)
修改
修改已存在文件的内容,如果修改不存在文件的内容会创建文件(前提保存)
vi或vim编辑器
linux 下的vi 是一种文字编辑器,后来的升级版本是vim。vi分为三种模式:一般模式(浏览模式)、编辑模式(插入模式)、命令模式。
vi编辑器的使用
语法 :vim 文件
命令:
vim a.java 用vim编辑器打开/创建a.java文件,进入一般模式(浏览模式)
按i键,进入编辑模式
输入Java代码
按esc键,进入一般模式
按 Shift : 进行命令模式(底行模式
输入wq回车,表示存盘退出,输入q!回车,表示不存盘强行退出
扩展(浏览模式一般模式下使用的命令)
i,在光标位置左侧插入
a,在光标位置右侧插入
o,在光标下一行插入
/,向后查找内容
?,向前查找内容
dd,删除一行
yy,复制一行
p,粘贴
搜索并修改某个文件
先find查找然后再使用vim编辑器
压缩
windows的压缩文件的扩展名: .zip或.rar,zip
Linux中的打包文件扩展名:.tar
Linux中的压缩文件扩展名:.gz
Linux中打包压缩的文件扩展名:.tar.gz
这里首先需要明确两个概念:打包和压缩。
打包是指将一大堆文件或目录合并成一个总的文件;
压缩则是将一个大容量的文件通过一些压缩算法(gzip、bzip2等命令)变成一个小容量的文件。Linux/Unix下的压缩命令通常都只能对一个文件进行压缩操作,所以通常需要使用tar命令对文件进行打包,然后进行压缩操作。
打包压缩包
压缩语法:tar [参数] 打包压缩后的文件名 要打包压缩的文件,支持通配符*号
作用:将多个文件打包并压缩成一个特定的文件
参数解释:
-
-c 创建新的归档打包文件,压缩(必选项)
-
-x 取出文件中的内容,解压(必选项)
-
-f 文件名由命令台设置,设置压缩或解压后的文件名(必选项)
-
-v 显示执行详细信息过程(可选项)
-
-z 自动识别压缩或解压gz格式文件(可选项)
语法:
tar -zcvf 压缩文件名 要压缩的文件或目录(多个使用空格隔开)
使用步骤:
cd / 定位于/目录
mkdir aaa 创建aaa目录
cd aaa 定位于aaa目录
touch a.java 创建a.java文件
touch b.java 创建b.java文件
touch c.java 创建c.java文件
tar -zcvf zhaojun.tar.gz a.java b.java c.java
或
tar -zcvf zhaojun.tar.gz ./*
将当前目录下的所有文件打包压缩成zhaojun.tar.gz文件
用的最多的是:
tar -zcvf zhaojun.tar.gz a.java b.java c.java
或
tar -zcvf zhaojun.tar.gz ./*
解压压缩包
解压语法:tar [参数] 压缩文件
解压后的文件在当前目录中
解压语法:tar [参数] 压缩文件 –C /usr/local
解压后的文件放入/usr/local目录中,注意-C是大写字母C,后面不用接空格符
将一个特定的文件解包成多个文件,放在指定的目录下
例子
tar -zxvf 解压的压缩文件名字 -C 解压后的目录
参数解释:
-
-c 创建新的文件(必选项)
-
-x 取出文件中的内容,解压(必选项)
-
-f 文件名由命令台设置(必选项)
-
-v 显示执行详细信息过程(可选项)
-
-z 自动识别压缩或解压gz格式文件(可选项)
命令:
重点:tar -zxvf zhaojun.tar.gz -C/usr/local
cd /soft 定位于/目录
rm -rf ./*.java 强制式删除当前目录下所有扩展名为java的文件
tar -zxvf zhaojun.tar.gz
解压zhaojun.tar.gz这个压缩文件,里面的文件释放到当前目录下
tar -zxvf zhaojun.tar.gz -C/usr/local
解压zhaojun.tar.gz这个压缩文件,里面的文件释放到/usr/local目录下
其他
查看当前工作目录位置
语法:pwd
命令:
cd /
pwd
cd /usr/local
pwd
查看进程
语法:ps [参数]
进程,正在执行的一个应用程序
参数解释:
-
无 显示当前用户通过终端启动的所有进程
-
-a 显示所有用户通过终端启动的所有进程
-
-u 显示所有用户通过终端启动的所有进程详细信息
-
-x 显示所有用户通过终端和非终端启动的所有进程详细信息
-
-e 显示进程使用的环境变量
-
-f 列出全部进程信息
命令:
cd /
ps 显示当前用户通过终端启动的所有进程
ps a 显示所有用户通过终端启动的所有进程
ps au 显示所有用户通过终端启动的所有进程详细信息,包括进程号,作者,CPU占用率等,常用
ps aux 显示所有用户通过终端和非终端启动的所有进程详细信息
其他常用组合
ps -ef 显示全部进程,没有cpu和内存耗用,多个ppid父进程id
ps -aux,显示全部进程,少了一个ppid父进程id,多了cpu和内存耗用
杀死进程
语法:kill [参数] 进程号
最好只删当前用户在终端中启动的进程,而不要删除其它用户的进程,尤其是root用户的进程。
先用ps au来确认一下当前需要杀死进程号,再用kill 进程号将这个进程杀死
参数解释
-
无 普通式删除进程号对应的进程
-
-9 强制式删除进程号对应的进程
命令:
ps au 显示所有用户通过终端启动的所有进程详细信息
kill 1114 杀死1114进程号,如果这个1114的进程杀不死,用下面这个命令:
kill -9 1114 强制性杀死1114进程号
案例:
ping www.baidu.com >> ip2.log & ping网络将输出信息输入到ip2.log,&代表后台运行
ps -aux ,查看进程
kill -9 9786
搜索文本内容
语法:grep [参数] 搜索字符串 文件名
grep是Linux中强大的文本搜索命令。
参数解释:
-
-n 显示匹配行及行号,大小写敏感
-
-v 显示不匹配行,大小写敏感
-
-i 搜索时不区分大小写,大小写不敏感
命令:
cd /
grep as 123.txt 在123.txt文件中搜索as字符串,大小写敏感,显示行
grep -n as 123.txt 在123.txt文件中搜索as字符串,大小写敏感,显示行及行号
grep -v as 123.txt 在123.txt文件中搜索as字符串,大小写敏感,显示没搜索到行
grep -i as 123.txt 在123.txt文件中搜索as字符串,大小写不敏感,显示行
grep -ni "Q q" 123.txt 在123.txt文件中搜索Q q字符串,大小写不敏感,显示行及行号
管道
语法:
命名1 | 命令2
介绍:
上面“|”就是管道
一个命令的输出,可以作为另一个命令的输入,至少有二个命令参与执行。
常用的需要使用管道命令有more ,grep 。
命令:
cd /
ps aux | more 分屏显示Linux中所有用户通过端终和非终端启动的所有进程的详细信息
ps aux | grep -i a 在ps aux的结果中,搜索字符串a,大小写不敏感,显示对应的行
关机
语法:halt
halt命令关机,但是该命令会出现卡机的情况,所以建议大家别去使用。
linux建议使用: shutdown now
window系统关机:shutdown -s
window系统关机:shutdown -s -t 秒 按照指定秒后关机
window系统关机:shutdown -a 清除计划任务
图形界面如下图:
重启
语法:reboot
命令:
cd /
reboot 重新启动安装Linux的虚拟机
文件权限
权限的简介
Linux中对每个目录和文件都做了规定,只能由满足条件的用户才能操作,这个规定叫权限。
第一个字符代表的是文件类型
d,目录
-,普通文件
l,连接文件
属主,就是资源目录或文件的拥有者的权限
属组,就是拥有者所属组内其他用户的权限
其他用户,就是其他组其他用户权限
- 权限范围的表示法如下:
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
- 符号:
+ 添加权限
-取消权限
- 有关权限代号的部分,列表于下:
r:读取权限,数字代号为"4"。
w:写入权限,数字代号为"2"。
x:执行或切换权限,数字代号为"1"。
-:不具任何权限,数字代号为"0"。
操作权限
添加权限
语法:chmod + [参数] 目录/文件
+:所有用户添加权限
命令:
chmod u+x a.java 增加所有用户对a.java文件的执行权限
chmod u+x a.java 增加所属用户对a.java文件的执行权限
修改权限
语法:chmod [参数] 目录/文件
可以针对不同的用户修改权限
参数解释:
-
u 作者
-
g 组员
-
o 它人
-
-r 只读
-
-w 只写
-
-x 只执行
命令:
chmod u=rwx,g=rx,o=x a.java 修改a.java文件的权限,所有者具有rwx权限,组员具有rx权限,其它人具有x权限
chmod 777 a.java 修改a.java文件的权限,所有者、组员、其他人具有全部的权限
删除权限
语法:chmod - [参数] 目录/文件
-:所有用户减少权限
参数解释:
-
-r 只读
-
-w 只写
-
-x 只执行
命令:
chmod -x a.java 减少所有用户对a.java文件的执行权限