Linux基础

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
graph TD
subgraph unix时代
A[Unix] --> B[BSD]
A[Unix] --> C[Sun Solaris]
A[Unix] --> D[IBM AIX]
A[Unix] --> E[AT&T System V]
B[BSD] --> F[FreeBSD]
end
E[AT&T System V] -- 开源,大学教研用 --> G[Minix]
G[Minix] -- 适用于x86的个人计算机 --> H[GNU/Linux内核]
H[GNU/Linux内核] --> I1[Ubuntu]
H[GNU/Linux内核] --> I2[Redhat]
subgraph redhat系列
I2[Redhat] --> G1[redhat enterpise 5]
I2[Redhat] --> G2[CentOS]
end
H[GNU/Linux内核] --> I3[SUSE]
H[GNU/Linux内核] --> I4[Fedora]
H[GNU/Linux内核] --> I5[aliyun linux]

安装VM和Centos 7.0

使用Vmware虚拟机运行系统,系统以文件指令存储,可以方便移动存储。

虚拟机安装需要BISO修改开启虚拟化设备支持(intel核心)

虚拟机安装centos过程

VMware Workstation Pro 12

新建虚拟机

配置物理硬盘

物理分区可以日后挂载

点击完成

分配内存

设置为2G

分配处理器

查看自己处理器个数

任务管理器—>性能—>打开资源监视器—>CPU
可以看到自己本机硬件cpu个数

挂载centos镜像

阿里云站点

1
2
3
4
5
6
CentOS-7-x86_64-DVD-1810.iso 标准安装版(推荐)
CentOS-7-x86_64-Everything-1810.iso 完整版,集成所有软件(以用来补充系统的软件或者填充本地镜像)
CentOS-7-x86_64-LiveGNOME-1810.iso GNOME桌面版
CentOS-7-x86_64-LiveKDE-1810.iso KDE桌面版
CentOS-7-x86_64-Minimal-1810.iso 精简版,自带的软件最少
CentOS-7-x86_64-NetInstall-1810.iso 网络安装版(从网络安装或者救援系统)

配置网络

虚拟机网络连接的三种方式

桥接模式
1
2
3
4
5
graph LR
A[教室网络环境] ==> B1[主机A,IP:192.168.14.100]
A[教室网络环境] ==> B2[主机B,IP:192.168.14.110]
B1[主机A,IP:192.168.14.100] --> C1>虚拟机1,IP:192.168.14.120]
B2[主机B,IP:192.168.14.110] -. 直接通信 .- C1>虚拟机1,IP:192.168.14.120]
  • 优点:相同网段,可以直接访问
  • 缺点:网段地址有限,ip冲突(192.168.14.0~192.168.14.255[256-3])
NAT模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
graph LR
subgraph 教室的主机
A[教室网络环境] == 桥接 ==> B1[主机A,IP:192.168.14.100]
A[教室网络环境] == 桥接 ==> B2[主机B,IP:192.168.14.110]
A[教室网络环境] -- NAT --> B3[主机C,IP:192.168.14.130]

B1[主机A,IP:192.168.14.100] --> C1>虚拟机A,IP:192.168.14.120]
B2[主机B,IP:192.168.14.110] -. 直接通信 .- C1>虚拟机A,IP:192.168.14.120]
B3[主机C,IP:192.168.14.130] --> D[WINDOWS新IP:192.168.20.33]
subgraph 主机C的内部网络环境
D[WINDOWS新IP:192.168.20.33] --> C2>虚拟机C,IP:192.168.20.55]
end
end
B2[主机B,IP:192.168.14.110] -. XXXXXXXXXXXXXXXXXXX .-> C2>虚拟机C,IP:192.168.20.55]
C2>虚拟机C,IP:192.168.20.55] -. 正常通信 .-> B2[主机B,IP:192.168.14.110]

主机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
2
su root
./vmware-install.pl

默认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
2
useradd tom
userdel -r 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

Xshell官网-学生免费版

输入邮箱发送下载连接,可以一同下载Xshell6和Xftp6。

检查开启SSD服务

22端口,默认打开

打开终端,setup,系统服务,星号代表开启,sshd,让别的机器访问。

检查22端口是否打开

新建连接

输入用户名和密码,即可连接。

可以更改配色方案,设置字体大小。

  • 使用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打开一个档案就直接进入一般模式。在这个模式中,你可以使用↑↓←→按键来移动光标,你可以使用delbackspace来处理档案内容,也可以使用复制、粘贴来处理你的文件数据。

正常模式可以使用快捷键。

插入模式

按下iIoOaArR等任何一个字母之后才会进入编辑模式,一般来说按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
2
3
4
5
6
7
graph LR
A[在命令行下] == #vim xxx ==> B[正常模式]
B[正常模式] == i或者a ==> C[编辑模式]
C[编辑模式] == ESC ==> B[正常模式]
B[正常模式] == :或者/ ==> D[命令模式]
D[命令模式] == ESC ==> B[正常模式]
D[命令模式] == 在命令行下 ==> E[:wq :q :q!]

vi和vim的快捷键

快捷键使用案例

拷贝当前行,拷贝当前行向下的n行, 并粘贴。yy/5yy/p

1
2
3
4
5
vim ok.java
ok100
ok200
ok300
ok400

光标放在ok400

退出ESC

  • 拷贝当前行

输入yy,复制光标所在行

输入p,在光标后粘贴行

  • 拷贝当前行向下的5行

输入5yy,复制光标下五行
输入p,粘贴到光标下五行

删除当前行 , 删除当前行向下的n行。dd/5dd

1
2
3
4
5
vim ok.java
ok100
ok200
ok300
ok400

光标放在ok400

退出ESC

  • 删除当前行

输入dd,删除光标所在行

  • 删除5行

输入5dd,删除光标下边5行

在文件中查找某个单词。/关键字 回车/n

[命令行下/关键字,回车查找,输入n就是查找下一个]

1
2
3
4
5
6
7
vim ok.java
ok100
ok200
hello
uuuu
oooo
hello

退出ESC

光标位置随意

输入

1
/hello

enter回车

绿色光标跳到第一个

输入n绿色光标在下一个

设置文件的行号,取消文件的行号。:set nu/:set nonu

命令行模式下输入

设置行号:set nu

取消行号:set nonu

编辑文件,使用快捷键到底文档的最末行和最首行。[G]/[gg]

在正常模式下进行

1
vim /etc/profile

马上移动到最后一行,直接输入G

马上移动到第一行,直接输入gg

在一个文件中输入内容,然后又撤销这个动作。u

1
2
3
4
5
6
vim ok.java
ok100
ok200
ok300
ok400
hello

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有效。

文章作者: HibisciDai
文章链接: http://hibiscidai.com/2020/04/27/Linux基础/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HibisciDai
好用、实惠、稳定的梯子,点击这里