1. Linux与Windows的比较
对于windows操作系统而言,列举一些windows的不足:
- 个人用户正版windows需要收费
- 系统长时间运行不稳定,变慢,容易死机
- windows常招到病毒攻击
相反,上述windows的不足,恰好是另一款操作系统Linux的优势所在,这里是一些Linux的优点:
- 个人用户正版Linux不需要收费或安装特殊功能需要收费
- 系统长时间运行稳定,不会变慢,不容易死机
- Linux不常招到病毒攻击,也很难攻击
总之,做为一个后端JavaEE程序员,在windows中开发完程序后,得部署到一个相对比较安全稳定的服务器中运行,这台服务器上安装的不是windows操作系统,而是Linux操作系统。为了顺利的操作Linux操作系统,我们得学会:安装Linux操作系统,对目录,文件,权限等基本操作命令。
2. Linux的概念
Linux是基于Unix的开源免费,多用户,用任务的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。
3. Linux的分类
3.1 根据市场需求不同,分为两个方向
- 图形化界面版:注重用户体验,但目前成熟度不够。
- 服务器版:没有好看的界面,是以在控制台窗口中输入命令操作系统的,是我们架设服务器的最佳选择,类似于DOS界面。
3.2 根据原生程度不同,分为两个方向
- 内核版本:在Linux之父领导下的内核小组开发维护的系统内核的版本号。
- 发行版本:一些个人/组织/公司在内核版基础上进行二次开发而重新发行的版本号。
3.3 根据发行不同,分为多个版本
- ubuntu
- redhat
- centos
- lubuntu
- freeBSD
- 等等
4 Linux的安装
我们要安装的是:服务器版 + 发行版 + CentOS版
4.1 虚拟机简介
虚拟机是一个软件,它可以使你在一台真实PC机器上同时运行二个或更多window / linux等操作系统。它可以模拟一个标准PC环境。这个环境和真实的计算机一样,都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器。
目前市场上流行的虚拟机有两种:
- VMware(威睿)公司的虚拟机软件,功能强大,收费产品,有30天试用期
- VitrualBox (甲骨文)公司的虚拟机软件,免费商品
4.2 安装虚拟机
4.3 安装CentOS 7.0系统
5. Linux的分类
5.1 客户端简介
在实际开发中,Linux服务器都在其他的地方,我们要通过windows客户端工具远程去连接Linux并操作它,连接Linux的windows客户端工具有很多,企业中常用的有secureCRT、Putty、xshell、SSH Secure等。
课程中我们使用secureCRT客户端工具进行连接Linux操作系统,该工具是免费的图形化界面和命令行窗口集一身客户端工具。
5.2 安装客户端及使用客户端连接Linux
6. Linux 的目录结构
上述Linux目录结构中,主要关注:
- root目录:超级管理员所在的目录,用~表示
- home目录:普通用户所在的目录
- usr目录:安装用户文件所在的目录
- etc目录:Linux系统管理和配置文件所在的目录
7. 目录操作
7.1 查看
语法:ls [参数]
查看目录下的内容
参数解释:
- -l 以详细形式查询当前目录下所有文件和目录,不包括隐藏文件和目录
- -a 以精简形式查询当前目录下所有文件和目录,包括隐藏文件和目录
命令:
cd / 进入根目录
ls 以精简形式查询当前目录下的内容
ls ‐l 以详细形式查询当前目录下的内容,d表示目录,‐表示文件;此命令可以简写为ll
ls ‐a 以精简形式查询当前目录下的隐藏内容
ls ‐la 以详细形式查询当前目录下的隐藏内容,la和al都可
clear 清屏
在这里:
- d: 表示目录
- -: 表示文件
- l: 表示快捷方式
7.2 目录
切换目录
语法: cd 目录
命令:
cd ~ 当前用户目录
cd / 根目录
cd ‐ 上一次访问的目录
cd .. 上一级目录
cd 缺省当前用户目录
显示当前工作目录
命令 :
pwd
7.3 增加
语法:mkdir 目录
创建目录
命令:
cd / 定位于根目录
mkdir aaa 在当前目录下创建aaa目录,相对路径
mkdir ./bbb 在当前目录下创建bbb目录,相对路径
mkdir /ccc 在根目录下创建ccc目录,绝对路径
7.4 搜索
语法:find 目录 -name ‘条件’
根据条件,搜索目录下的内容
命令:
cd /
find / ‐name 'b' 查询根目录下(包括子目录),名为b的目录和文件
find / ‐name 'b*' 查询根目录下(包括子目录),名以b开头的目录和文件
在Linux中,按ctrl+c 强行终止程序执行
7.5 修改
语法:mv 旧目录 新目录
对目录进行重命名
命令:
cd /
mv aaa aaaa 将根目录下的aaa目录修改为aaaa
7.6 剪切
语法:mv 原目录位置 新目录的位置
对目录进行移动
命令:
cd /
mv /aaaa /bbb 将根目录下的aaaa目录,移动到bbb目录下,在bbb目录下也叫aaaa目录
mv bbbb usr/bbbbb 将当前目录下的bbbb目录,移动到usr目录下,且修改名为bbbbb
7.7 拷贝
语法:cp [参数] 目录 目录的新位置
对目录进行复制
参数解释:
- -r 递归处理,将指定目录下的文件与子目录一并处理
命令:
cd / 定位于/目录
cp ‐r /aaa /bbb 将/目录下的aaa目录复制到/bbb目录下,在/bbb目录下名字为aaa
cp ‐r /aaa /bbb/aaaa 将/目录下的aaa目录复制到/bbb目录下,且修改名为aaaa
7.8 删除
语法:rm [参数] 目录
对目录进行删除
参数解释:
- -r 递归处理,将指定目录下的所有文件及子目录一并处理,它会询问你,y表示是删除,n表示不删除
- -f 强制删除目录,它不会询问你
命令:
cd /
rm ‐r /aaa 询问式删除/目录下的aaa目录,y表示确认,n表示取消
如果aaa目录中还有子目录,则进入aaa目录下的所有子目录,依次询问
rm ‐rf /bbb 强行式删除/目录下的bbb目录
如果bbb目录中还有子目录,也会被强行式删除
8. 文件操作
8.1 增加
语法:touch 文件
在指定的目录中,创建文件
命令:
cd /aaaa 定位于/aaaa目录
touch a.java 在aaaa目录中创建a.java文件
touch b.txt 在aaaa目录中创建b.txt文件
touch c.xml 在aaaa目录中创建c.xml文件
8.2 查看
语法:cat/more/less/head/tail 文件
以只读方式查看文件的内容
命令:
cd /aaaa
cat a.java 查看a.java文件的最后一页内容
more a.java 从第一页开始查看a.java文件内容,按回车键一行一行的看,按空格健一页一页的看,q退出
less a.java 从第一页开始查看a.java文件内容,按回车键一行一行的看,按空格健一页一页的看,
支持使用PageDown和PageUp翻页,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行内容
8.3 删除
语法:rm [参数] 文件
从目录中删除文件
参数解释:
- -r 递归处理,对于文件删除,这个参数可带,也可不带,它会询问你,y表示是删除,n表示不删除
- -f 强制删除文件,它不会询问你
命令:
cd /aaaa
rm ‐rf a.java 强行式删除当前目录下的a.java文件
rm ‐rf ./a* 强行式删除当前目录下以a开头的所有文件
rm ‐rf ./* 强行式删除当前目录下所有文件
8.4 修改
修改已存在文件的内容
8.4.1 vi编辑器
linux 下的vi 是一种文字编辑器,后来的升级版本是vim。vi 分为三种模式:一般模式、编辑模式(插入模式)、命令模式(底行模式)。
8.4.2 vi编辑器的使用
两种语法 :
- vim 文件
- vi 文件
使用方式:
- 输入“vim 文件名”进入“一般模式”
- 按下“i”从一般模式,进入“插入模式”
- 按下“esc”从“插入模式”退出到“一般模式”
- 在“一般模式”下,输入“:wq”,退出编辑。
命令演示:
vim a.txt 用vi编辑器打开/创建a.txt文件
按i键,进入编辑模式
输入内容
按esc键,进入一般模式
按 Shift : 进行命令模式
输入wq回车,表示存盘退出;输入q!回车,表示不存盘强行退出
8.4.3 常用快捷键
编辑模式快捷键
快捷键 | 作用 |
---|---|
yy | 复制当前行 |
p | 粘贴 |
dd | 删除当前行 |
G | 到文件的最后一行 |
底行模式快捷键
9 压缩
windows的压缩文件的扩展名: .zip或.rar
Linux中的打包文件扩展名:.tar
Linux中的压缩文件扩展名:.gz
Linux中打包压缩的文件扩展名:.tar.gz
9.1 打包压缩包
压缩语法:tar [参数] 打包压缩后的文件名 要打包压缩的文件看,支持通配符*号
将多个文件打包并压缩成一个特定的文件
参数解释:
- -c 创建新的文件(必选项)
- -f 文件名由命令台设置(必选项)
- -v 输出文件清单(可选项)
- -z 自动识别压缩或解压(可选项)
常用方式: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 haha.tar.gz a.java b.java c.java
或
tar ‐zcvf haha.tar.gz ./* 将当前目录下的所有文件打包压缩成haha.tar.gz文件
9.2 解压压缩包
解压语法:tar [参数] 压缩文件
解压后的文件在当前目录中
解压语法:tar [参数] 压缩文件 –C目录
解压后的文件放入指定目录中,注意-C是大写字母C,后面不用接空格符
将一个特定的文件解包成多个文件,放在指定的目录下
参数解释:
- -x 取出文件中的内容(必选项)
- -f 文件名由命令台设置(必选项)
- -v 输出文件清单(可选项)
- -z 自动识别压缩或解压(可选项)
命令:
cd /soft 定位于/目录
rm ‐rf ./*.java 强制式删除当前目录下所有扩展名为java的文件
tar ‐xvf haha.tar.gz 解压haha.tar.gz这个压缩文件,里面的文件释放到当前目录下
tar ‐xvf haha.tar.gz ‐C/usr/local
解压haha.tar.gz这个压缩文件,里面的文件释放到/usr/local目录下
10 其他
10.1 查看进程
语法:ps [参数]
进程,正在执行的一个应用程序
常用参数组合:
- ps -ef
- ps -au
参数解释(了解):
- 无 显示当前用户通过终端启动的所有进程
- -a 显示所有用户通过终端启动的所有进程
- -u 显示所有用户通过终端启动的所有进程详细信息
- -x 显示所有用户通过终端和非终端启动的所有进程详细信息,内容相当多,少用
- -e 此参数的效果和指定"A"参数相同,显示所有程序
- -f 显示UID,PPIP,C与STIME栏位
10.2 杀死进程
语法:kill [参数] 进程号
最好只删当前用户在终端中启动的进程,而不要删除其它用户的进程,尤其是root用户的进程。
先用ps -au或者ps -ef来确认一下当前需要杀死进程号,再用kill 进程号将这个进程杀死
参数解释
- 无 普通式删除进程号对应的进程
- -9 强制式删除进程号对应的进程
命令:
ps au 显示所有用户通过终端启动的所有进程详细信息
kill 1128 杀死1128进程号,如果这个1128的进程杀不死,用下面这个命令:
kill ‐9 1128 强制性杀死1128进程号
10.3 搜索
语法:grep [参数] 搜索字符串 文件名
grep是Linux中强大的文本搜索命令。
参数解释:
- -i 搜索时不区分大小写,大小写不敏感
- -n 显示匹配行及行号,大小写敏感
- -v 显示不匹配行及行号,大小写敏感
命令:
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字符串,大小写不敏感,显示行及行号
10.4 管道
语法:
一个命令的输出,可以作为另一个命令的输入,至少有二个命令参与执行。
常用的需要使用管道命令有more ,grep 。
命令:
ps ‐au | more 分屏显示Linux中所有用户通过端终和非终端启动的所有进程的详细信息
ps ‐au | grep ‐i a 在ps ‐au的结果中,搜索字符串a,大小写不敏感
10.5 关机
语法:halt
命令:
halt 正常关闭安装Linux的虚拟机
也可以使用虚拟机软件将机器关闭.linux系统启动后,一般不做关机处理.
10.6 重启
语法:reboot
命令:
reboot 重新启动安装Linux的虚拟机
10.7 文件权限
10.7.1 权限的简介
Linux中对每个目录和文件都做了规定,只能由满足条件的用户才能操作,这个规定叫权限。
10.7.2 操作权限
chmod(change mode) 功能:变更文件或目录的权限。
语法:
参数如下:
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
权限范围的表示法如下:
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
符号如下:
+ 添加权限
- 取消权限
有关权限代号的部分:
r:读取权限,数字代号为"4"。
w:写入权限,数字代号为"2"。
x:执行或切换权限,数字代号为"1"。
-:不具任何权限,数字代号为"0"。
命令:
chmod u+x 1.txt # 给1.txt的拥有者添加执行权限,这种写法稍微有点麻烦,开发中一般使用数字代号
chmod 755 1.txt # 给1.txt的拥有者设置读写执行权限,给所属组添加读和执行权限,给其他用户添加读和执行权限
chmod 777 a.txt # 给所有人添加对此文件操作的所有权限