![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210043796-957625752.jpg)
一、Linux简介
1.Linux概述
Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为了程序代码运行的最佳系统环境。因源代码的开放性,现在已经衍生了上百种不同的Linux系统。
Linux系统的应用非常广泛,不仅可以长时间运行我们编写的代码,海葵鱼安装在各种计算机硬件设备中,比如手机,平板电脑,路由器等(Android的底层就是Linux)。
2.Linux的分类
(1)Linux根据市场需求不同,基本分为两个方向
1)图形化界面版:注重用户体验,类似Windows操作系统,但目前成熟度不够
2)服务器版:类似DOS,用于架设服务器(性能更好)
(2)Linux根据原生程度,又分为两种:
1)内核版本:在Linus领导下的内核小组开发维护的系统内核的版本号
2)发行版本:一些组织或公司在内核版基础上进行二次开发而重新发行的版本
(3)Linux发行版本不同,又可以分为n多种
ubuntu:图形化界面做的成熟的一个发行版
CentOS:服务器多用的一个版本(免费),基于redhat开发
redhat:收费
*学习Linux推荐书籍:鸟哥的Linux私房菜
二、Linux的安装
1.虚拟机的安装
因为Linux也是一个系统,本质上跟我们电脑的Window没有区别,所以我们要学习Linux就首先将我们电脑的Window系统换成Linux系统,或者在我们电脑上安装双系统,听上去是不是很可怕。其实我们可以在我们电脑上安装一个软件,这个软甲可以模拟一台或多台虚拟的电脑机器,这就是虚拟机 。
虚拟器常用的有两种:
VMware(威睿)公司的虚拟机软件,功能强大,收费产品
VitrualBox 虚拟机软件 Oracle公司的虚拟机软件,免费商品
由于市场上VMware使用率很高,所以我们安装VMware 《VMware安装手册》
2.CentOS的安装
CentOS是一个Linux的发行版本,是目前企业中用来做应用服务器系统的主要版本,CentOS的安装,其实是将该系统安装到VMware虚拟机软件中,让VMware虚拟机软件模拟出一台Linux系统的电脑。
三、Linux的基本命令
服务器版的Linux安装完毕后,没有图形化界面,只能通过控制台去操作系统。故需要学习类似DOS命令的Linux命令去操作系统。
Linux命令成百上千,学习基本的常用命令。
1.目录切换命令“cd”
cd usr 到该目录下usr目录
cd ../ 切换到上一层目录
cd / 切换到系统根目录
cd ~ 切换到用户主目录
cd - 切换到上一个所在目录
cd ../与cd 目录名 可以混用
如:
"/" :Linux文件系统的入口.也是最高一级的目录.
"/bin":基本系统所需要的命令,功能和"/usr/bin"类似,这个目录下的文件都是可执行的.普通用户也是可以执行的.
"/boot":内核和加载内核所需要的文件.grub系统引导管理器也在这个目录下.
"/dev":设备文件存储目录.像终端.磁盘等.
"/etc":所有的系统配置文件.
"/home":普通用户的目录默认存储目录.
"/lib":库文件和内核模块存放目录.
"/media":即插即用设备的挂载点自动存放在这个目录下.像U盘,cdrom/dvd自动挂载后,就会在这个目录下.
"/mnt":临时文件系统的挂载点目录.
"/opt":第三方软件的存放目录.
"/root":Linux超级权限用户root的根目录. *非root用户的根目录在/home下
"/sbin":基本的系统维护命令,只能由超级用户使用.
"/srv":存放一些服务器启动之后需要提取的数据.
"/tmp":临时文件目录.
"/usr":存放用户使用系统命令和应用程序等信息.像命令.帮助文件等.(共享的系统资源)
"/var":存放经常变动的数据,像日志.邮件等.
*在Linux下,所有资源都是以文件形式存在的(包括软件)
命令pwd可以显示当前所在文件夹目录
"]#"
2.目录的操作命令(增删改查)
(1)增加目录
命令:mkdir 目录名称
如:在根目录 / 下 mkdir test,就会在根目录 / 下产生一个 test 目录
(2)查看目录
命令:ls [-al] 父目录
如:在根目录 / 下使用 ls,可以看到该目录下的所有目录和文件
在根目录 / 下使用 ls -a,可以看到该目录下的所有目录和文件(包括隐藏的".*" 即以点开头的文件夹)
在根目录/下使用ls -l,可以看到该目录下所有目录和文件的详细信息 ls -l 可以缩写成ll
(3)寻找目录
命令:find 目录 参数
如:查找/root 下与 forRoot 相关的目录(文件):find /root -name '*forRoot*'
(4)修改目录名称
命令:mv 目录名称 新目录名称
如:mv oldFolder newFolder
mv命令不仅可以对目录进行重命名,也可以对各种文件,压缩包等进行重命名
(5)移动目录的位置---剪切
命令:mv 目录名称 目录的新位置
如:在 test 下将forRoot目录剪切到 / 下,用:mv forRoot /
mv命令不仅可以对目录进行移动,也可以对各种文件,压缩包等进行移动
*clear命令用于清理命令行
(6)拷贝目录/文件
命令:cp -r 目录名称 目录拷贝的目标位置 ("-r"代表递归拷贝)
如:将根目录的forRoot文件夹拷贝到test内 cp -r /forRoot /test 注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归
(7)删除目录
命令:rm [-rf] 目录 ("-r"代表递归删除,用于删除(内部不为空的)文件夹)
如:删除/test 下的forRoot,进入test内使用 rm -r forRoot 删除/test 下的testDel,进入test内使用rm -rf testDel 注意!不会询问是否删除,将强制删除!("-f"代表强制删除) 注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了增强大家的记忆,无论删除任何目录或文件,都直接使用rm
-rf 目录/文件/压缩包
3.文件的操作命令(增删改查)
(1)文件的创建(增)
命令:touch 文件名称----- 空文件
示例:在test目录下创建一个空文件 touch aaa.txt
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210048570-365772032.png)
(2)文件的查看(查)
命令:cat/more/less/tail 文件
示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210048964-224488251.jpg)
示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210049413-1865868888.jpg)
示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上和向下翻页,回车可以向下一行,空格可以向下一页,q结束查看
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210049809-1947050540.jpg)
示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束 尽量少用Ctrl+C强制结束
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210050262-903779009.jpg)
注意:命令 tail -f 文件 可以对某个文件进行动态监控,例如tomcat的日志文件,会随着程序的运行,日志会变化,可以使用tail -f catalina-2016-11-11.log 监控文件的变化
*(-f)代表动态监控
(3)修改文件的内容(改)
命令:vim 文件
示例:编辑/test下的aaa.txt文件,使用vim
aaa.txt
但此时并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式,可以 编辑文件
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210051025-818913461.jpg)
编辑完成后,按下Esc,退回命令模式
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210051338-498760767.jpg)
此时文件虽然已经编辑完成,但是没有保存,需输入冒号:进入底行模式,在底行模式下输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存。
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210051650-1763259368.jpg)
总结: vim编辑器是Linux中的强大组件,是vi编辑器的加强版,vim编辑器的命令和快捷方式有很多,但此处不一一阐述,大家也无需研究的很透彻,使用vim编辑修改文件的方式基本会使用就可以了。附:《vi使用方法介绍》和《vim命令合集》
关于vim使用过程:
在实际开发中,使用vim编辑器主要作用就是修改配置文件
vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件------->按Esc进入底行模式----->输入:wq/q!
(4)删除文件(删)
同目录删除:熟记 rm -rf 文件 即可
2.压缩文件的操作命令
(1)打包并压缩文件
Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。
命令:tar -zcvf 打包压缩后的文件名 要打包压缩的文件
用 tar -zcvf xxx.tar.gz ./* 打包当前文件夹全部文件(./代表当前文件夹)
其中:z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
示例:打包并压缩/test下的所有文件 压缩后的压缩包指定名称为xxx.tar.gz
或:tar -zcvf xxx.tar.gz /test/*
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210052048-713795369.jpg)
(2)解压压缩包(重点)
命令:tar [-xvf] 压缩文件
其中:x:代表解压
示例:将/test下的xxx.tar.gz解压到当前目录下
tar -xvf xxx.tar.gz示例:将/test下的xxx.tar.gz解压到根目录/usr下
tar -xvf xxx.tar.gz -C /usr------C代表指定解压的位置(C要大写)
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210052746-348360896.png)
3.其他命令
(1)显示当前所在位置
pwd
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210053074-2062485554.png)
(2)搜索命令(搜索文件内部的内容,类似Ctrl+F)
命令:grep 要搜索的字符串 要搜索的文件
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210053476-1642754847.jpg)
示例:搜索/usr/sudu.conf文件中包含字符串to的行 to要高亮显示
grep to sudo.conf --color
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210054094-2130563943.jpg)
(3)管道命令
命令:*|* 将前一个命令的输出作为本次目录的输入
示例:查看当前系统中所有的进程中包括system字符串的进程
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210054613-1091116125.jpg)
(4)查看进程
命令:ps -ef
示例:查看当前系统中运行的进程
(5)杀死进程
命令:kill -9 进程的pid
(6)网络通信命令
查看当前系统的网卡信息:ifconfig
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210054987-438957780.jpg)
查看与某台机器的连接情况:ping
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210055419-1186253185.jpg)
查看当前系统的端口使用:netstat -an
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210055860-791128609.jpg)
4.Linux的权限命令
权限是Linux中的重要概念,每个文件/目录等都具有权限,通过ls -l命令我们可以 查看某个目录下的文件或目录的权限
示例:在随意某个目录下ls -l
第一列的内容的信息解释如下:
文件的类型:
d:代表目录
-:代表文件
l:代表链接(可以认为是window中的快捷方式)
后面的9位分为3组,每3位置一组,分别代表属主的权限,与当前用户同组的 用户的权限,其他用户的权限
r:代表权限是可读,r也可以用数字4表示
w:代表权限是可写,w也可以用数字2表示
x:代表权限是可执行,x也可以用数字1表示
属主(user) | 属组(group) | 其他用户 |
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
修改文件/目录的权限的命令:chmod
示例:修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,
其他用户只有读的权限
chmod u=rwx,g=rw,o=r aaa.txt
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210057135-1094132579.png)
*巧妙之处:4 2 1 每种组合都能特定表示成三个数字的和
上述示例还可以使用数字表示:
chmod 764 aaa.txt
四、远程连接工具的使用
*远程连接工具主要用于拷贝文件,其余主要操作仍应使用命令行操作
实际开发中,Linux服务器都在其他的地方,我们要通过远程的方式去连接Linux并操作它,Linux远程的操作工具有很多,企业中常用的有Puttty、secureCRT、SSH Secure等。课程中我们使用SSH Secure工具进行远程连接,该工具是免费的图形化界面及命令行窗口集一身的远程工具。安装包如下:
安装后,会出现两个图标:
点击图形化界面图标:
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210058531-846212014.png)
进入界面:
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210058989-812155021.jpg)
关于远程工具乱码的解决:
使用远程工具进行连接时,如果linux有中文文件或目录,显示时会出现乱码,原因是linux编码是UTF-8,而远程工具默认是当前系统本地编码即GBK。所以解决方案是统一两者编码就OK了,但是该SSH Secure工具不能设置编码,所以通过修改linux的系统编码的方式进行统一编码。
在linux的/etc/sysconfig目录下有一个i18n的文件代表linux的系统编码
![](https://images2018.cnblogs.com/blog/1475862/201808/1475862-20180828210059392-635481427.jpg)
将其从UTF-8修改成GBK重现连接linux即可: