乐趣区

关于程序员:Linux

1 Linux

1.1 Linux 概述

1.1.1 Linux 介绍

Linux 是一套收费应用和自在流传的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、反对多线程和多 CPU 的操作系统。它能运行次要的 UNIX 工具软件、应用程序和网络协议。它反对 32 位和 64 位硬件。Linux 继承了 Unix 以网络为外围的设计思维,是一个性能稳固的多用户网络操作系统。

Linux 操作系统诞生于 1991 年 10 月 5 日 (这是第一次正式向外颁布工夫)。Linux 存在着许多不同的 Linux 版本,但它们都应用了 Linux 内核。Linux 可装置在各种计算机硬件设施中,比方手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux 这个词自身只示意 Linux 内核 ,但实际上人们曾经习惯了用 Linux 来形容整个基于 Linux 内核,并且应用 GNU 工程各种工具和数据库的操作系统。

1.1.2 Linux 发展史

1.1965 年,Bell 实验室、MIT、GE(通用电气公司)筹备开发 Multics 零碎,为了同时反对 300 个终端拜访主机,然而 1969 年失败了;

(刚开始并没有鼠标、键盘,输出设施只有卡片机,因而如果要测试某个程序,则须要将读卡纸插入卡片机,如果有谬误,还须要从新来过;Multics:Multiplexed Information and Computing Service)

  1. 1969 年,Ken Thompson(B 语言之父)利用汇编语言开发了 FIle Server System(Unics,即 UNIX 的原型)

(因为汇编语言对于硬件的依赖性,因而只能针对特定硬件;只是为了移植一款“太空游览”的游戏;)

  1. 1973 年,Dennis Ritchie 和 Ken Thompson 创造了 C 语言,而后写出了 UNIX 的内核

(将 B 语言改成 C 语言,由此产生了 C 语言之父;90% 的代码是 C 语言写的,10% 的代码用汇编写的,因而移植时只有批改那 10% 的代码即可;)

  1. 1977 年,Berkeley 大学的 Bill Joy 针对他的机器批改 UNIX 源码,称为 BSD(Berkeley Software Distribution)
  2. 1979 年,UNIX 公布 System V,用于集体计算机;

1984 年,因为 UNIX 规定:“不能对学生提供源码”,Tanenbaum 老师本人编写兼容于 UNIX 的 Minix,用于教学;

  1. 1984 年,Stallman 开始 GNU(GNU’s Not Unix)我的项目,开办 FSF(Free Software Foundation)基金会;

(产品:GCC、Emacs、Bash Shell、GLIBC;提倡“自由软件”;GNU 的软件不足一个凋谢的平台运行,只能在 UNIX 上运行;自由软件指用户能够对软件做任何批改,甚至再发行,然而始终要挂着 GPL 的版权;自由软件是能够卖的,然而不能只卖软件,而是卖服务、手册等;)

  1. 1985 年,为了防止 GNU 开发的自由软件被其他人用作专利软件,因而创立 GPL(General Public License)版权申明;

1988 年,MIT 为了开发 GUI,成立了 XFree86 的组织;

1991 年,芬兰赫尔辛基大学的研究生 Linus Torvalds 基于 gcc、bash 开发了针对 386 机器的 Linux 内核;

  1. 1994 年,Torvalds 公布 Linux-v1.0;

1996 年,Torvalds 公布 Linux-v2.0,确定了 Linux 的吉祥物:企鹅;

如图 - 9 所示

图 - 9

1.1.3 Linux 零碎层级构造

1.1.4 Linux 特点

  1. 零碎开源并且收费
  2. 对硬件要求很低 800M 3-4
  3. 零碎稳定性强
  4. 零碎安全性更好  (军工企业 断网)

1.1.5 Linux 零碎主流产品

如图 -10 所示

图 - 10

1.2 Linux 命令

阐明:Linux 全部都是基于文件的. 并且 Linux 中的目录都是树形构造

1.2.1 cd 命令集

ifconfig/ip addr 查看 IP 地址

pwd 查看以后的地位

tab 键 主动补齐 (留神唯一性)

cd 命令是 linux 中最根本的命令语句,必须熟练掌握

cd / 返回根目录

cd ~ 用户主目录

cd . 当前目录

cd .. 返回到上一级目录

cd /usr/ 进入到 usr 目录

cd – 返回上一个目录

cd 间接回家

1.2.2 ls 目录和文件

ls –l 具体格局,文件权限,工夫

ll 和 ls –l 作用雷同

ls *.txt 查看所有的 txt 类型文档

1.2.3 目录操作

mkdir 创立目录

mkdir a 创立 a 目录

mkdir -p a/b 创立 a 目录,并在 a 目录里创立 b 目录

mkdir -m 777 c 创立一个权限为 777 的 C 目录

rmdir  删除目录(如果目录里有文件,则不能用此命令)

1.2.4 Vi/vim 创立 / 查看 / 编辑文件

命令行:Esc 切换到命令行模式。

编辑模式:

按 i,在光标前开始编辑

按 a,在光标后开始编辑

按 o,在以后行的下一行开始编辑

按 u, 撤销之前的操作

底行模式:按 shift+:冒号。

:q! 不保留退出

:wq 保留退出

:/world 从以后光标处,向上查找 world 关键字

:?world 从以后光标处,向后查找 world 关键字

1.2.5 删除文件

rm 删除文件

rm n.txt 提醒 y 删除 n 放弃

rm –f n.txt 不提醒

rm –rf dirname 不提醒递归删除目录下所以内容

rm –rf * 删除所有文件

rm –rf /* 删除所有子目录所有和文件

1.2.6 复制和挪动文件

cp 复制文件

cp nginx.conf n.txt

cp –R tomcat1 tomcat2                #复制整个目录

mv 批改文件名,挪动文件

mv n.txt m.txt 批改文件名称

1.2.7 浏览文件

cat 输入文件所有的内容

more 输入文档所有的内容,分页输入,空格浏览下一屏,q 退出

less 用法和 more 雷同,只是通过 PgUp、PgOn 键来管制

tail 用于显示文件后几号,应用频繁

tail -10 nginx.conf 查看 nginx.conf 的最初 10 行

tail –f nginx.conf 动静查看日志,不便查看日志新增的信息

ctrl+c 完结查看

1.2.8 打包命令

tar 命令位于 /bin 目录下,它可能将用户所指定的文件或目录打包成一个文件,但不做压缩。个别 Linux 上罕用的压缩形式是选用 tar 将许多文件打包成一个文件,再以 gzip 压缩命令压缩成 name.tar.gz 的文件。

-c 创立一个新的 tar 文件

-v 显示运行过程的信息

-f 指定文件名

-z 调用 gzip 压缩命令进行压缩

-t 查看压缩文件的内容

-x 解开 tar 文件

tar –cvf n.tar ./* 压缩当前目录下的所有文件和目录,文件名为 n.tar

tar –xvf n.tar 解压压缩包中的文件到当前目录(如果长时间未解压胜利 Ctrl+ C 推出)

tar –cvzf m.tar.gz ./* 压缩文件

tar -zxvf m.tar.gz 解压 m.tar 文件到当前目录

1.2.9 grep 命令

grep root  /etc/passwd   在文件中查找关键字 root

grep root  /etc/passwd  –-color 高亮显示

grep root  /etc/passwd  –A5 –B5 高亮显示,A 后 5 行,B 前 5 行

grep -n root /etc/passwd  查找并显示行数

grep -v root /etc/passwd 取反,查出不含 root 的数据

1.3 虚拟机装置和应用

1.3.1 虚拟机介绍

虚构零碎通过生成现有操作系统的全新虚构镜像,它具备实在 windows 零碎齐全一样的性能,进入虚构零碎后,所有操作都是在这个全新的独立的虚构零碎外面进行,能够独立装置运行软件,保留数据,领有本人的独立桌面,不会对真正的零碎产生任何影响,而且具备可能在现有零碎与虚构镜像之间灵便切换的一类操作系统。虚构零碎和传统的虚拟机(Parallels Desktop,Vmware,VirtualBox,Virtual pc)不同在于:虚构零碎不会升高电脑的性能,启动虚构零碎不须要像启动 windows 零碎那样消耗工夫,运行程序更加方便快捷;虚构零碎只能模仿和现有操作系统雷同的环境,而虚拟机则能够模拟出其余品种的操作系统;而且虚拟机须要模仿底层的硬件指令,所以在利用程序运行速度上比虚构零碎慢得多。

1.3.2 运行虚拟机镜像

将课前材料中的虚拟机镜像解压到本地磁盘中 (不要有中文和空格), 之后双击运行.vmx 文件.

1.3.3 虚拟机配置

如图 -11 所示

图 - 11

内存: 个别最大为实在内存的 3 /4, 个别为 512M-1G

硬盘: 个别默认 20G

如果上述的设置一旦确定, 则间接向操作系统割裂对应数据的资源.

网络模式: 桥接模式 /NAT 模式

1.4 网络模式

1.4.1 桥接模式

相当于将虚拟机间接接入局域网中, 这时会独占 IP 地址. 能够与本机通过局域网通信.

特点: 所有的在局域网中的 IP 都能够拜访虚拟机.

依赖: 如果设置桥接模式, 则必须有物理设施的反对.

1.4.2 NAT 模式

相当于在网络环境中会开拓一块全新的网络空间. 只有主机可能拜访.

特点:NAT 模式只有主机拜访, 其他人通过 IP 地址禁止拜访.

如图 -12 所示

图 - 12

1.5 虚拟机克隆

阐明:JT 虚拟机中装置了很多插件和环境. 为了保护环境不被毁坏. 所以须要克隆虚拟机备份数据. 之后的操作全副在备份的机器上运行.

如图 -13 所示

图 - 13

如图 -14 所示

图 - 14

1.6 LinuxIP 划分和链接

1.6.1 IP 划分

本机 IP:192.168.126.1

虚拟机 IP:192.168.126.180

阐明: 以上的 IP 地址示意在同一个网络空间内. 如果前三项不统一, 则依照以下形式批改.

1.6.2 IP 地址动静批改

配置租约:

1.6.3 配置动态 IP 地址

设定 ip 地址:192.168.126.166

1.6.4 批改工夫

1.7 Xshell

1.7.1 Xshell 介绍

阐明:Xshell 是近程连贯 Linux 零碎的工具. 能够进行文件传输. 命令的编辑等一列的操作. 和操作实在的 Linux 零碎统一.

连贯步骤:

  1. 获取服务器 IP 地址
  2. 获取服务器用户名和明码
  3. Xshell 近程连贯工具都是加密传输 公钥和私钥

1.7.2 近程连贯形式

阐明: 新建会话后连贯近程虚拟机

图 - 15

1.8 Linux 零碎装置 JDK

1.8.1 上传 JDK 安装包

阐明: 将 JDK 安装包上传到指定文件目录下 /usr/local/src 下

如图 -16 所示

图 - 16

1.8.2 解压 JDK 文件

命令: tar -xvf jdk-7u51-linux-x64.tar.gz

如图 -17 所示

图 - 17

1.8.3 配置环境变量

阐明: 批改 Linux 零碎中环境变量须要批改 /etc/profile 文件

命令:vim /etc/profile

配置文件变量

set java env

JAVA_HOME=/usr/local/src/java/jdk1.7.0_51

JAVA_BIN=/usr/local/src/java/jdk1.7.0_51/bin

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME JAVA_BIN PATH CLASSPATH

环境变量失效:

source /etc/profile

1.8.4 检测 JDK 是否失效

命令:java -version

如图 -18 所示

图 - 18

退出移动版