
Linux基础
[TOC]
Linux基础
第一章 Linux入门
开源、免费的操作系统,稳定、安全、处理多并发。
吉祥物
Tux,小企鹅
创始人
Linus Torvalds
主要发行版
Ubuntu乌班图
RedHat红毛
CentOs
Debain
Fedora
SuSE
OpenSUSE
linux是一个内核,发行版本进行包装。
大数据主要用CentOS,python主要用Ubuntu,基本相同。
Linux 和 Unix 的关系
1970s
贝尔实验室
unix分时操作系统,最终失败
Ken tompson最初的需求是文件操作系统
Dennis richres用C语言重写
1980s
IBM、Sun、HP三家公司
改革之后成本较高,收费版本,使用高性能才可以跑起来
Richard Stallman
提倡免费源代码开源分享,解除封锁
GNU计划
GNU的开发始于1983年,它是自由的类Unix操作系统,这使得计算机用户拥有了分享和改进其所用软件的自由。
Hard ware > Kernal > GNU Shell > Desktop/explorer/DBMS/FTP/Editor
1 | graph TD |
安装VM和Centos 7.0
使用Vmware虚拟机运行系统,系统以文件指令存储,可以方便移动存储。
虚拟机安装需要BISO修改开启虚拟化设备支持(intel核心)
虚拟机安装centos过程
VMware Workstation Pro 12
新建虚拟机




配置物理硬盘

物理分区可以日后挂载
点击完成
分配内存
设置为2G
分配处理器

查看自己处理器个数
任务管理器—>性能—>打开资源监视器—>CPU
可以看到自己本机硬件cpu个数
挂载centos镜像
1 | CentOS-7-x86_64-DVD-1810.iso 标准安装版(推荐) |

配置网络

虚拟机网络连接的三种方式
桥接模式
1 | graph LR |
- 优点:相同网段,可以直接访问
- 缺点:网段地址有限,ip冲突(192.168.14.0~192.168.14.255[256-3])
NAT模式
1 | graph LR |
主机C产生新的IP:192.168.20.33
主机C给虚拟机C分配IP:192.168.20.55
主机C的虚拟机C可以找到主机B
主机B不能找到虚拟机C
产生新的ip地址实际上是虚拟网卡VMware Network Adapter VMnet8
虚拟机中终端输入ifconfig
的网卡eth0
,激活之后才可以正常上网。
只要主机可以上网,本机的虚拟机就可以上网
- 优点:虚拟机不占用其他人的ip,所以不会ip冲突
- 缺点:内网其他人不能和虚拟机联系
仅主机模式
单独的一台电脑
安装centos系统
- 启动虚拟机

- 进入安装

选择语言
设置时间
选择软件安装
为centos安装那些软件,尽量少用
后边可以选择安装
真实的开发环境是不用装桌面,远程控制安装

选择带GUI的服务器安装
- 配置分区
选择 系统->安装源
/boot
系统分区,一般给200M/swap
交换分区,类似windows虚拟内存,等于物理内存。内存不够充当虚拟内存/
根目录分区,其他的全给硬盘分区。



- 配置网卡
选择 系统->网络和主机名

localhost.localdomain
开始安装
设置root密码
最高用户是root,密码一定要用复杂密码,随时更改。
复杂密码生成器,一定注意密码复杂度
Hibiscidai521.
- 创建用户
创建非管理员用户
hibiscidai:Hibiscidai521.

- 完成重启
等待进度条加载完成后重启系统即可
- kdump设置
系统崩溃时候保存错误信息,开发时候打开,一般耗费128内存
- 安装VMTOOLS
登录系统
使用root用户登录,开发中不使用root登录
- 终端配色
VM安装Centos 6.8








选择skip,ok会检查安装文件完整性






@Hibiscidai.521.$
















设置时间

开发中打开
使用root登录查看
vmware卡死解决方案
删除虚拟机锁在文件夹乱码
win+R
输入msconfig
选择服务,禁用vm系列服务,然后开机就可以解除虚拟机占用问题。
vm黑屏解决方法
- 右键点击虚拟机->设置->显示器->加速3D图形(把他的勾勾打掉)
- 关掉所有VM开头的进程,cmd按管理员身份运行,输入
netsh winsock reset
,重启计算机 - 删除虚拟机文件下的.lck文件夹
- 将虚拟机文件下的
XXX.vmx
以记事本方式打开,查找vmci0.present=“TRUE”
这个,将TRUE
改为FALSE
, 保存
然后运行虚拟机即可 - 关闭防火墙
重新启动
安装Vmware Tool
打开桌面的VMware Tools
拖拽.tar.gz
到桌面
右键解压缩
进入文件夹
右键,在终端中打开
1 | su root |
默认enter
安装成功重启
Centos终端使用和联网
终端使用
右键桌面打开终端
打开终端,编辑-侧写选项

联网
动态分配ip,学习固定分配ip
点击网络连接,即可连接
在本机的cmd查看vmware的虚拟网卡ip(NAT)
Linux目录结构
基本介绍
文件系统采用级层式的树状目录结构,此结构最上层式根目录”/“,然后在此目录下再创建其他目录。
深刻理解linux树状文件目录十分重要。
在linux世界里,一而且皆文件。
|——/
根目录
|————/root
|————————/root/Desktop
|————————/root/maildir
|————————......
|————bin
(常用指令)
|————boot
|————dev
(管理设备,硬件映射为文件)
|————etc
(存放配置文件)
|————home
(家目录,创建用户时候会使用)
|————var
|————lib
(静态库,.so
文件)
|————usr
(用户的应用程序)
|————————/usr/bin
|————————/usr/lib
|————————......
|————media
(挂载文件夹,u盘、光驱、dvd)
|————opt
(安装的软件放入)
|————proc
(内存的东西)
|————root
|————sbin
(超级用户使用)
|————selinux
(安全目录)
|————sys
(系统)
|————tmp
(临时文件夹)
|————var
(变量)
具体目录
/bin ※
/usr/bin
/usr/local/bin
Binary的缩写,目录存放最经常使用的命令
/sbin
/usr/sbin
/usr/local/sbin
s就是Super User的意思,存放的是系统管理员使用过的系统管理程序
/home ※
存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名。
1 | useradd tom |
/root ※
系统管理员,也称为超级权限者的用户主目录。
/lib
系统开机锁需要最基本的动态连接共享库,作用类似于Windows里的DLL文件。几乎所有应用程序都需要用到这些共享库。
/lost+found
这个目录一般情况下是空的,当系统非法关机后,就存放了一些文件。
/etc ※
所有的系统管理所需要的配置文件和子目录,如my.config
。
/usr ※
非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与Windows下的program files目录。
/boot ※
存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。
/proc
虚拟的目录,系统内存的映射,访问这个目录来获取系统信息。
(进阶,别动)
/srv
service缩写,存放一些服务启动之后需要提取的数据。
(进阶,别动)
/sys
linux2.6内核的一个很大变化,
(进阶,别动)
/tmp
临时目录
/dev
类似windows的设备管理器,把所有的硬件用文件的形式存储。
/media ※
Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下。
/mnt ※
系统提供该目录是为了让用户临时挂载别的文件系统的,可以将外部的存储挂载在/mnt/
上,然后进入该目录就可以查看里边内容。
/opt
给主机额外安装软件时候所摆放的目录,如安装ORACLE数据库就可以放到该目录下,默认为空。(安装包文件)
/usr/local ※
给另一个主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。(安装文件释放目录)
/usr/local/mysql
/var ※
这个目录中存放着不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件。
/selinux
一种安全子系统,他能控制程序只能访问特定文件。黑客入侵时候出发。
security-enhanced linux
远程登录linux系统
远程登录的原因
真正运行的linux物理设备在远程,都是用命令行。
常用Xshell
/Putty
远程登录,进行shell命令操作。
常用Xftp
/Winscp
进行远程文件管理上传。
Xshell简介
流畅解决中文乱码问题,首选软件。
强大安全终端模拟软件,支持SSH1,SSH2,Microsoft Windows的TELENT。
用来访问远程不同系统下的服务器,较好达到控制远程端的目的。
Xftp简介
基于windows平台的强大的SFTP、FTP文件传输软件。使用了Xftp之后,windows用户可以安全地在UNIX/Linux和Windows PC之间传输文件。
安装Xshell6和Xftp6
输入邮箱发送下载连接,可以一同下载Xshell6和Xftp6。
检查开启SSD服务
22端口,默认打开
打开终端,setup
,系统服务,星号代表开启,sshd
,让别的机器访问。
新建连接

输入用户名和密码,即可连接。
可以更改配色方案,设置字体大小。

- 使用Xshell6连接后可能会提示“WARNING! The remote SSH server rejected X11 forwarding request.”,运行命令:
1 | yum install xorg-x11-xauth -y |
远程上传下载
新建连接类似Xshell。


- 显示中文乱码问题
修改字符编码格式为UTF-8

传送一个文件进行测试

相反,选择服务器上的文件,点击”向右传输”,就可以从服务器下载。

SecureCRT的安装和使用
基本介绍
用于远程登录Linux 的软件,在大数据开发中使用较多。
安装
拷贝版本,不用安装。拷贝到指定目录即可。
或者采用安装版本
连接过程

输入主机名,用户名



配置完成后,点击连接,输入密码就可以。

连接成功

- 解决中文乱码问题

Vi 和 Vim 编辑器
基本介绍
所有的Linux系统都回内建vi文本编辑器
Vim具有程序编辑的能力,可以看做是Vi的增强版本
,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
代码补充、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vi 和 vim 常用的三种模式
正常模式
默认的模式,以vim打开一个档案就直接进入一般模式。在这个模式中,你可以使用↑↓←→
按键来移动光标,你可以使用del
或backspace
来处理档案内容,也可以使用复制、粘贴
来处理你的文件数据。
正常模式可以使用快捷键。
插入模式
按下i
,I
,o
,O
,a
,A
,r
,R
等任何一个字母之后才会进入编辑模式,一般来说按i
即可。
命令行模式
提供先关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的。
入门案例-使用vim开发一个hello.java
安装vim
如果没有vim,输入yum -y install vim*

使用远程连接到服务器,然后输入
1 | vim hello.java |

进入正常模式
输入i
之后进入插入模式

按下ESC
退出插入模式,进入命令行模式,可以接着输入linux命令。
1 | :wq |

保存写入成功

再次输入
1 | vim hello.java |
:wq
打开,有修改,想保存:q
打开,没有任何修改:q!
打开,有修改,不想保存
vi和vim三种模式的相互转换 ※
1 | graph LR |

vi和vim的快捷键
快捷键使用案例
拷贝当前行,拷贝当前行向下的n行, 并粘贴。yy
/5yy
/p
1 | vim ok.java |
光标放在ok400
处
退出ESC
- 拷贝当前行
输入yy
,复制光标所在行
输入p
,在光标后粘贴行
- 拷贝当前行向下的5行
输入5yy
,复制光标下五行
输入p
,粘贴到光标下五行
删除当前行 , 删除当前行向下的n行。dd
/5dd
1 | vim ok.java |
光标放在ok400
处
退出ESC
- 删除当前行
输入dd
,删除光标所在行
- 删除5行
输入5dd
,删除光标下边5行
在文件中查找某个单词。/关键字 回车
/n
[命令行下/关键字,回车查找,输入n就是查找下一个]
1 | vim ok.java |
退出ESC
光标位置随意
输入
1 | /hello |
enter
回车
绿色光标跳到第一个
输入n
绿色光标在下一个
设置文件的行号,取消文件的行号。:set nu
/:set nonu
命令行模式下输入
设置行号:set nu
取消行号:set nonu
编辑文件,使用快捷键到底文档的最末行和最首行。[G]
/[gg]
在正常模式下进行
1 | vim /etc/profile |
马上移动到最后一行,直接输入G
马上移动到第一行,直接输入gg
在一个文件中输入内容,然后又撤销这个动作。u
1 | vim ok.java |
按ESC
回到正常模式,输入u
,撤销刚才的输入
编辑文件,并将光标移动到指定行。shift+g
1 | vim /etc/profile |
- 设置行号
:set nu
- 输入20
- 输入
shift+g
光标移动到第二十行
vi/vim快捷键盘
经典版

对应简体中文

不同编辑模式下的键位图







入门版

进阶版

增强版

文字版

开机/重启/用户注销
基本介绍
shutdown
- 立刻进行关机
1 | shutdown -h now |
- 1分钟之后关机
1 | shutdown -h 1 |
- 现在重新启动计算机
1 | shutdown -r now |
halt
直接使用,效果等价
- 关机
1 | halt |
reboot
- 现在重新启动计算机
1 | reboot |
sync
- 把内存数据同步到磁盘
1 | sync |
不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中。
用户登录和注销
少使用root
账号,最大的权限,避免操作失误。
以普通用户登录然后su -用户名
命令来切换成系统管理员身份。
提示符下输入logout
即可注销用户
logout注销指令在图形运行级别无效,在桌面终端运行无效。在运行级别3有效。