Linux开山篇
01_内容介绍
-
基础篇
- Linux入门
- vm和Linux的安装
- Linux目录结构
-
实操篇
- 远程登录(xShell XFtp)
- 实用指令
- 进程管理
- vi和vim编辑器
- 定时任务调度
- RPM和YUM
- 开机、重启
- 用户登录注销
- 磁盘分区、挂载
- 用户管理
- 网络配器
-
Linux之JavaEE定制篇
- Linux搭建JavaEE环境
- JDK安装
- Eclipse的安装
- Tomcat的安装
- MySQL的安装
- Linux搭建JavaEE环境
-
Linux之大数据定制篇
- Shell编程
- 概述
- Shell脚本执行方式
- Shell变量
- 运算符
- 条件判断
- 流程控制
- 函数
- 定时维护MySQL数据库
- Shell编程
-
Linux之Python定制篇
- Python专业开发平台-Ubuntu
- Ubuntu下开发Python开发环境
- APT软件管理和远程登录
02_学习方向
- Linux运维工程师
- Linux嵌入式工程师
- Linux下做各种程序开发
03_应用领域
个人桌面应用领域
此领域是传统Linux应用最薄弱的环节,传统 Linux由于界面简单、操作复杂、应用软件少的缺点, 一直被 Windows所压制,但近些年来随着Ubuntu、Fedora等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,Linux在个人桌面领域的占有率在逐渐的提高。
服务器应用领域
Linux在服务器领域的应用是最强的。
Linux免费、稳定、高效等特点在这里得到了很好的体现,近些年来Linux服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛。
嵌入式应用领域
近些年来Linux在嵌入式领域的应用得到了飞速的提高。
Linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百 KB 等特点,使其近些年来在嵌入式领域的应用得到非常大的提高。
主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、智能家居、智能硬件等都是其应用领域。以后再物联网中应用会更加广泛。
04_学习阶段和方法分享
学习Linux的阶段
linux 是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型,大型甚至是集群项目都在使用 Linux,很多软件公司考虑到开发成本都首选Linux,在中国软件公司得到广泛的使用。
可供参考学习Linux流程如下:
- 第 1 阶段:Linux环境下的基本操作命令,包括 文件操作命令(rm mkdir chmod, chown) 编辑工具使用(vi vim)Linux用户管理(useradd userdel usermod)等
- 第 2 阶段:Linux的各种配置(环境变量配置,网络配置,服务配置)
- 第 3 阶段:Linux下如何搭建对应语言的开发环境(大数据,JavaEE, Python 等) 第 4 阶段:能编写 shell 脚本,对 Linux 服务器进行维护。
- 第 5 阶段:能进行安全设置,防止攻击,保障服务器正常运行,能对系统调优。
- 第 6 阶段:深入理解Linux系统(对内核有研究),熟练掌握大型网站应用架构组成、并熟悉各个环节的部署和维护方法。
Linux的学习方法和建议
-
高效而愉快的学习。
-
先建立一个整体框架,然后细节。
-
不需要掌握所有的Linux指令,要学会查询手册和百度。
-
先 know how,再 know why。
-
计算机是一门“做中学”的学科,不是会了再做,而是做了才会。
-
适当的囫囵吞枣。
-
Linux不是编程,重点是实际操作,各种常用指令要玩的溜。
Linux基础篇
05_Linux介绍
- Linux怎么读?里纽克斯,利尼克斯,里纳克斯。
- Linux 是一款操作系统,免费,开源, 安全,高效,稳定, 处理高并发非常强悍,现在很多的企业级的项目都部署到 Linux/Unix 服务器运行。
- Linux创始人Linus Torvalds。
- Linux 的吉祥物:一只名叫Tux的企鹅。
- Linux发行版:
- RedHat
- CentOS
- Ubuntu
- Suse
- 红旗Linux
06_Linux和Unix的关系
07_Linux和Windows的比较
比较 | Windows | Linux |
---|---|---|
免费与收费 | 收费且很贵 | Linux 免费或少许费用 |
软件与支持 | 数望和质里的优势,不过大部分为收费软件,由微软官方提供支持和服务 | 开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质巢和体验欠缺主有全球所有的Linx开发者和自由软件社区提供支持 |
安全性 | 三天两头打补丁安装系统安全更新,还是会中病毒木马 | 要说Linux没有安全问题,那当然是不可能的,这―点仁者见仁智者见智,相对来说肯定比Windows平台要更加安全 |
使用习惯 | 普通用户基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作,用户上手容易入门简单 | 兼具图形界面操作和完全的命令行操作,可以只用键盘完成一切操作,新手A门较困雅,需要一些学习和指导,一旦熟练之后效军极高 |
可定制性 | 封闭的,系统可定制性很差 | 开源,可定制化非常强 |
应用场景 | 桌面操作系统主要使用的是Windows | 支挥百度,谷歌,淘宝等应用软件和服务的,是后台成千上方的Linux服务器主机世界上大部分软件和服务都是运行在Linux之上的 |
08_VMWare的安装和说明
学习 Linux 需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个 Centos 系统来学习。
-
先安装 virtual machine,VM12。
-
再安装 Linux (CentOS 6.8)。
-
原理示意图,这里我们画图说明一下 VM 和 CentOS 的关系:
VM安装过程略
09_CentOS的安装和说明
按照VM导向安装即可
设置硬件,配置网络连接时,有三种方式:
- 桥连接,Linux可以和其它的系统通信。但是可能造成ip冲突
- NAT:用于共享主机的IP地址,Linux可以访问外网,不会造成ip冲突。
- 主机模式:你的linux是一个独立的主机,不能访问外网
10_终端使用和联网
终端的使用:点击鼠标右键,即可选择打开终端。
配置网络:点击桌面右上角的画有两个显示器的图标,选择启用 eth0,即可成功连接到网络,就可以上网。
11_vmtools的安装和使用
vmtools安装后,可以让我们在windows下更好的管理vm虚拟机:
- 可以直接粘贴命令在windows和centos系统之间
- 可以设置windows和centos的共享文件夹
安装vmtools的步骤:
-
进入centos
-
点击vm菜单栏的“虚拟机”->install vmware tools
-
centos会出现一个vm的安装包,将其复制到桌面
-
点击右键解压,得到一个安装文件(或命令行 tar -xzvf vm安装包名 来进行解压)
-
进入该vm解压的目录
-
安装./vmware-install.pl
-
全部使用默认设置即可
-
需要命令行reboot,重新启动即可生效
设置Windows和CentOS的共享文件夹
- 点击VM菜单栏“虚拟机”->“设置”->“选项”->“共享文件夹”-“总是启用”。
- 添加假设共享目录路径D:\Share。
- 在CentOS的/mnt/hgfs路径下,便可看到共享文件Share
在实际公司开发中,文件上传下载是需要使用远程方式完成的。稍后有介绍。
12_文件系统目录结构
Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
深刻理解Linux树状文件目录是非常重要的。
记住一句经典的话:在Linux世界里,一切皆文件。
具体的目录结构:
- /bin[重点] (/usr/bin、/usr/local/bin)
- 是Binary的缩写,这个目录存放着最经常使用的命令。
- /sbin (/usr/sbin、/usr/local/sbin)
- s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /home[重点]
- 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /root[重点]
- 该目录为系统管理员,也称作超级权限者的用户主目录。
- /boot[重点]
- 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /proc
- 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。
- /srv
- service缩写,该目录存放一些服务启动之后需要提取的数据。
- /sys
- 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系
- /tmp
- 这个目录是用来存放一些临时文件的。
Linux实操篇
13_远程登录XShell5
- Linux服务器是开发小组共享的。
- 正式上线的项目是运行在公网的。
- 因此程序员需要远程登录到CentOS进行项目管理或者开发。
- 画出简单的网络拓扑示意图(帮助理解)。
- 远程登录客户端有XShell5、Xftp5,我们学习使用XShell5和Xftp,其它的远程工具大同小异。
Xshell是目前最好的远程登录到Linux操作的软件,流畅的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。Xshell是一个强大的安全终端模拟软件,它支持SSH1、SSH2,以及Microsoft Windows平台的TELNET协议。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。
特别说明:如果希望安装好XShell 5就可以远程访问Linux系统的话,需要有一个前提,就是Linux启用了SSHD服务,该服务会监听22号端口。
具体操作:
在Windows暗转XShell,根据安装向导步骤安装即可。
在Linux查看或开启SSHD:命令行setup->系统服务->SSHD,*号表示开启(空格键确定,TAB键改变焦点)。
在Linux用netstat -antp |grep sshd 看是否启动了22端口。
在Linux用ifconfig获取Linux IPv4地址。
用XShell新建会话:
确定后,输入Linux的用户名与密码,便后远程操控Linux:
14_远程上传下载文件XFTP5
是一个基于Windows平台的功能强大的SFTP、FTP文件传输软件。使用了Xftp以后,Windows用户能安全地在UNIX/Linux和Windows PC之间传输文件。
具体操作:
安装Xftp,跟随安装向导步骤即可。
新建会话属性:
如果出现文件或文件夹名中文乱码,可在选项中设置UTF8编码:
15_vi和vim的使用
所有的 Linux 系统都会内建 vi 文本编辑器。
Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vi/vim 的使用
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
命令模式(一般模式)
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式(编辑模式)
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式(指令行模式)
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序
- w 保存文件
按ESC键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
vi/vim 按键说明
第一部分:一般模式(命令模式)可用的光标移动、复制粘贴、搜索替换等
移动光标的方法
移动光标的方法 | - |
---|---|
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可! | |
[Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) |
[Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
[Ctrl] + [d] | 屏幕『向下』移动半页 |
[Ctrl] + [u] | 屏幕『向上』移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n | 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20 则光标会向后面移动 20 个字符距离。 |
0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
$ 或功能键[End] | 移动到这一行的最后面字符处(常用) |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个档案的最后一行(常用) |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) |
gg | 移动到这个档案的第一行,相当于 1G 啊! (常用) |
n | n 为数字。光标向下移动 n 行(常用) |
搜索替换
搜索替换 | |
---|---|
/word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用) |
?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! |
N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 |
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词! | |
:n1,n2s/word1/word2/g | n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。(常用) |
:1,$s/word1/word2/g 或 :%s/word1/word2/g | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用) |
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用) |
删除、复制与贴上
删除、复制与贴上 | |
---|---|
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
nx | n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。 |
dd | 删除游标所在的那一整行(常用) |
ndd | n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用) |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除游标所在处,到该行的最后一个字符 |
d0 | 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 |
yy | 复制游标所在的那一行(常用) |
nyy | n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
y1G | 复制游标所在行到第一行的所有数据 |
yG | 复制游标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所有数据 |
y$ | 复制光标所在的那个字符到该行 |