小Bin

Linux

 

第1节     为什么要学习Linux

1.1     Windows的不足:

对于Windows操作系统而言,大家应该不陌生,但Windows操作系统也存在一些不足的地方:

 

 

1)     Windows是需要花钱去购买

2)     系统长时间运行,安装多了,系统越来越慢,越来越不稳定。

3)     病毒和流氓软件很多

1.2     Linux的优势

相反,上述Windows的不足,恰好是另一款操作系统Linux的优势所在:

 

 

1)       Linux系统是免费,很多还是开源的。

2)       长时间运行,很稳定的

3)       几乎没有病毒和流氓软件

 

1.3     学习Linux的目的

学会对Linux的基本操作是后端JavaEE程序员的必修课。做为一个后端JavaEE程序员,通常在Windows中开发完程序后,需要部署到一个相对比较安全,稳定的服务器中运行,这台服务器上安装的往往不是Windows操作系统,而是Linux操作系统。

 

第2节     Linux的概述

Linux是基于Unix的开源、免费、多用户、多任务的操作系统,由于系统的稳定性和安全性。几乎成为程序代码运行的最佳系统环境。

2.1     Linux的分类

根据市场需求不同,分为两个方向:

1.    图形界面版:注重用户体验,但目前没有成为主流,主流的普通用户还是习惯在Windows下使用。

 

 

 

2.    服务器版:没有好看的界面,在控制台窗口中输入命令来操作系统的,是我们架设服务器的最佳选择,类似于DOS界面。

 

2.2     根据原生程度不同,分为两个方向

内核版本:在托瓦兹(Linux之父)领导下的内核小组开发维护的系统内核的版本号。

发行版本:一些个人/组织/公司在内核版基础上进行二次开发而重新发行的版本号。

内核版是唯一的,发行版可以很多,它封装了内核版,底层还是使用内核版操作机器的硬件设备。

 

 

2.3     常见的发行版本

如:ubuntu、redhat、centos、lubuntu、freeBSD等等

CentOS是一个Linux的发行版本,是目前企业中用来做应用服务器的主要版本。

 

 

第3节     Linux的安装

3.1     安装Linux系统的方式:

1)     使用双系统,在电脑开启的时候选择进入哪个操作系统,但不建议安装多个系统,一是浪费空间,二是可能造成系统不稳定。

2)     使用虚拟机,虚拟机就是Windows系统上的软件,通过软件来模拟一台电脑。我们可以在虚拟机中安装Linux系统。

3.1.1   虚拟机简介

虚拟机是一个软件,它可以使你在一台真实PC机器上同时运行两个或更多的操作系统,如:Windows或Linux。

它可以模拟一个标准的PC环境,这个环境和真实的计算机一样,有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器。

3.1.2   目前市场上流行的虚拟机有两种:

  1. VMware(威睿)公司的虚拟机软件,功能强大,收费产品,有30天试用期。
  2. VirtualBox (甲骨文)公司的虚拟机软件,免费的商品。

3.2     安装虚拟机软件

请参考《资料\01_虚拟机VMware安装\虚拟机VMware安装步骤.docx》

3.3     在软件中创建虚拟电脑并安装centos7

请参考《资料\02_centOS7系统安装\使用VMware虚拟机安装centOS7步骤.doc》

3.4     root用户登录和退出

l root用户登录进入Linux:

 

l root用户退出Linux:

 

 

手动开启网卡(在安装centos7系统是忘记了开启网卡才需要做)

 

 

保存退出,重启linux系统,网卡就启动了。

第4节     配置服务器端的网络

使用客户端Xshell在连接CentOS服务器之前要先要查看CentOS的局域网ip地址。

1)     使用命令查看Linux在局域网中的IP地址

 

 

4.1     网络相关的操作命令

命令

功能说明

ip addr

查看网卡的ip,与ifconfig功能是一样

ping 网络地址

查看是否可以连通指定的ip地址

 

注意: 在Linux中,按ctrl+c 强行终止程序执行

 

4.2     修改局域网自动生成ip地址

VM虚拟机网卡介绍

打开windows网卡适配器

 

 

只要成功安装了Vmware虚拟机就会默认生成的2个网卡(VMnet1和Vmnet6)

VMNet1,使用的是host-only的链接模式,即虚拟机只能与主机windows构成内部通信,无法对外网进行访问。

VMNet6

    模式:

      NAT网络模式

    场景:在宿主机安装多台虚拟机,和宿主组成一个小局域网,宿主机,虚拟机之间都可以互相通信,虚拟机也可访问外网.ens33就是使用这个VMNet6网卡。

修改VMNet6的ip(注意关闭虚拟机)

如下图点击“虚拟网络编辑器”

                                                                                       

打开的界面中,选中vmnet6,点击更改设置。

      

 

设置ip段

 

 

设置动态生成ip的起始ip地址

 

 

点击确定退出。点击打开虚拟电脑,查看ip

 

 

打开windows的dos命令窗口ping虚拟机中虚拟电脑ip

 

上图说明windows主机可以与虚拟机中linux系统可以正常通信连接

第5节     客户端工具使用

5.1     Linux客户端简介

在实际开发中,Linux服务器都在网络其他的电脑上,我们要通过Windows客户端工具去连接Linux并操作它。连接Linux的Windows客户端工具有很多,企业中常用的有SecureCRT、Xshell等。

SecureCRT和xshell都是企业中应用较多的.

 

第6节     目录操作命令

6.1     Linux 的目录结构

目录特点:不同于windows,一个硬盘分了几个区,有C盘。在Linux中没有盘符,所有的文件和目录都在根目录下面。

6.1.1   文件结构

 

 

常用的目录

说明

root

管理员的主目录,root用户登录以后自动进入目录

home

普通用户的目录,每个普通用户都有一个自己的主目录,在这个目录下。

bin

可执行文件所在的目录,今天学习的命令都在这个目录下

etc

系统配置和管理目录

usr

常用的资源和安装文件放在这个目录,是一个资源共享的目录

Unix Shared Resources

 

6.1.2   文件颜色说明:

这是Linux下文件不同颜色表示的含义

颜色

说明

白色

普通文件

深蓝色

目录(文件夹)

绿色

可执行文件

红色

压缩包

青色

链接,相当于Windows下快捷方式

橙色

设备文件

在修改客户端的配色方案,如下操作

选中options-“session options”,按照如下图进行勾选

 

 

下面效果

 

6.1.3   命令提示符

 

6.2     目录切换命令

6.2.1   语法格式

cd 目录名

作用

改变目录Change Directory,cd与目录名之间必须有空格

.

当前目录

..

上一级目录

6.2.2   操作演示

1)     切换到系统根目录

2)     切换到该目录下usr目录

3)     切换到上一层目录

4)     切换到用户主目录,如果是root管理员,则是到root目录

5)     切换到上一个所在的目录

6.2.3   执行结果

 

cd回车 ,去到root目录下

6.3     创建目录

6.3.1   语法格式

mkdir 目录名

作用

make directory 创建一个目录

6.3.2   操作演示

1)     进入root目录

2)     在root目录下创建aaa目录

3)     使用.方式的相对路径,在当前目录下创建bbb目录

4)     在root目录下,在bbb目录下创建ccc目录

5)     使用..在上一级目录下创建ddd目录

6)     使用绝对路径在root下创建目录eee目录

6.3.3   执行结果

 

 

6.4     查看

6.4.1   语法格式

语法:ls [参数]

显示当前目录下的文件和目录

-l

以详细的方式显示当前目录下的文件和目录

缩写ll

-a

显示当前目录下所有的文件和目录,包含隐藏的文件和目录。只要是.开头的文件和目录都是隐藏的

 

6.4.2   操作演示

1)       进入root目录,以精简形式查询当前目录下的内容

2)       以详细形式查询当前目录下的内容,可以缩写成ll

3)       在当前目录下创建一个隐藏的目录.ccc

4)       以精简形式查询当前目录下的所有的内容,包含隐藏文件

5)       以详细形式查询当前目录下的隐藏内容,-la和-al都可,也可以使用ll -a

6.4.3   执行结果

 

 

 

6.4.4   文件列表中第一列字母含义

字母

说明

d

directory 目录

-

文件

l

link 链接

 

l 演示案例:

1)     /lib是一个指向/usr/lib的链接

2)     进入/lib,显示所有的文件与进入/usr/lib显示的文件是同一个目录

6.4.5   执行结果

 

6.4.6   文件列表的含义

 

6.5     搜索

6.5.1   语法格式

find [目录名] [-name '查询字符串']

 

无参名

搜索当前目录和它的子目录所有的文件和目录

 

目录名

搜索指定目录下和它的子目录所有的文件和目录

 

-name '查询字符串'

指定具体查询字符串

 

 

*

匹配多个字符

 

?

匹配1个字符

       

 

6.5.2   操作演示

1)     在/root目录下,查询当前目录下所有的文件和目录

2)     查询/根目录下(包括子目录),名以abc开头的目录和文件

3)     查询根目录即其子目录下以cc开头的三个字符的目录或文件

 

6.5.3   执行结果

 

 

 

 

6.6     重命名

6.6.1   重命名

mv  旧名  新名

作用

move 将一个旧名字修改成一个新的名字,既可以改文件名又可以改目录名

 

²  在Xshell中复制字符串:ctrl + insert,粘贴使用shift+insert

6.6.2   操作演示

1)     将root文件夹下的aaa目录改成abc

2)     使用touch创建一个空文件为aaa,再使用mv将aaa文件改名为xyz

6.6.3   执行结果

 

 

6.6.4   移动

mv  源目录  目标目录

作用

move 将源目录移动到目标目录下

 

²  疑问:mv命令什么时候是改名,什么时候是移动?

如果目标目录存在,则是移动,如果不存在则是改名。

6.1     复制

6.1.1   语法格式

语法

cp [参数] 源文件或目录 目标目录

作用

将源文件或整个目录复制到目标目录下

-r

recursion 连同子目录下所有的文件全部复制

 

6.7.2   操作演示:

1)     当前是root目录,复制/proc/dma文件到root目录下的bbb目录中

2)     将/etc目录下所有c开头的文件复制到root目录下的bbb目录下

3)     将/etc目录下所有h开头的文件和目录复制到root目录下的eee目录,连同子目录下的内容一起复制

 

6.6     删除文件或目录

6.6.1   语法格式

语法:rm  [参数]  文件或目录1 文件或目录2

作用

remove 删除文件或目录,可以同时指定多个

-r

recursion 连同子目录一起删除,只用于删除目录

-f

强制删除,因为删除之前会有提问:yes或no,回答yes

 

6.6.2   操作演示

1)     同时删除eee目录下的hostname和hosts文件

2)     进入root下的bbb目录,删除所有文件名csh,任意扩展名的文件

3)     进入root目录下的eee目录,递归删除httpd目录和所有子目录的文件,不进行确认,强制删除。

6.6     目录操作命令小结

命令

功能

cd

切换目录

mkdir

创建目录

ls

查看文件和目录

find

查找目录和子目录下所有文件

mv

移动和改名

cp

复制文件和目录

rm

删除文件和目录

 

第7节     文件操作命令

7.1     查看文件内容

7.1.1   语法格式

查看文件的内容的命令:cat/more/head/tail/less

cat 文件名

查看文件所有的内容

more 文件名

查看文件所有的内容,可以分屏显示

回车键:一行一行显示

空格键: 一页一页显示

q: 退出

head 文件名

查看文件前8行

head -n 行数 文件名

查看前面指定的行数

tail 文件名

查看文件后8行

tail -n 行数 文件名

查看文件后指定的行数

less 文件名

查看文件所有的内容

-N 显示行数

PageUp: 向前翻页

PageDown: 向后翻页

q: 退出

如果使用crt客户端翻页不好使,如果使用xshell是没有问题

 

7.1.2   操作演示:

1)     将素材目录的Demo.java文件,上传到root目录下。

2)     查看当前目录下Demo.java文件的全部内容

3)     分页查看当前目录下Demo.java文件内容,按回车键一行一行的看,按空格健一页一页的看

4)     查看当前目录下Demo.java文件的前8行内容

5)     查看当前目录下Demo.java文件的后8行内容

6)     查看当前目录下Demo.java文件的前5行内容

7)     查看当前目录下Demo.java文件的后5行内容

6)     使用less命令显示Demo.java文件,显示行号

7.2     创建文件

7.2.1   语法格式

touch 文件1 文件2

作用

创建一个或多个文件,0个字节大小

 

7.2.2   操作演示

1)     在当前目录中创建Hello.java文件

2)     在当前目录中同时创建Hello.txt文件和Hello.xml

7.3     编辑文件vim

编辑已存在文件的内容,我们在Linux中,通常使用vi/vim工具来修改文件内容。

7.3.1   vim介绍

vi(vim)是上Linux常用的编辑器,很多Linux发行版都默认安装了vi(vim)。vi是“Visual Interface”的缩写,vim是 (增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim。

 

vim 文件名称

作用

编辑文本文件

 

l vim编辑器的三种模式

三种操作模式

说明

命令模式

可以移动光标、删除字符等操作,打开文件时即进入这个模式

编辑模式

在此模式下可以输入字符,进行编辑等操作

底行模式

可以输入命令对编辑的文件进行查找,保存,退出等操作

 

7.3.2   vi或vim三种模式的切换

 

7.3.3   vim操作语法

l 命令模式下按键:

命令

描述

i

在当前光标的前面插入字符

a

在当前光标的后面插入字符

o

在当前光标的下一行插入字符

 

l 底行模式下常用的编辑命令

命令

描述

yy

复制当前行

p

如果前面已经复制了,在当前下面粘贴

dd

删除当前行

u

撤销

/字符串

搜索文本内容

n:向后搜索

N:向前搜索

wq

保存并退出

q!

不保存强制退出

wq!

强制保存退出(只读文件)

 

7.3.4   操作1:

1)       vim Hello.java  用vim编辑器创建/打开Hello.java文件,这时进入命令模式。

2)       按i键,进入编辑模式,输入以下内容:

 

3)       按Esc键,进入命令模式,按冒号进入底行模式

4)       输入:wq回车,表示存盘退出

5)       使用cat Hello.java查看文件的内容

 

7.3.5   操作2

1)       使用vim打开Hello.java文件,进入命令模式。

2)       将光标移动到System.out这一行,按yy复制

3)       按3次p,粘贴这一行三次

4)       按dd删除最后一行

5)       按i进入编辑模式

6)       再任意输入一些内容

7)       在按Esc进入命令,按冒号进入底行模式

6)       输入q!回车,不存盘强行退出。

7)       作用cat Hello.java发现Hello.java没有变化

 

第8节  压缩与解压命令

8.1   压缩文件扩展名

扩展名

分类

.zip或.rar

在windows下的压缩包

.tar

在Linux下的打包文件

.gz

在Linux下的压缩文件

.tar.gz

在Linux下的打包压缩文件

 

8.2   打包并压缩文件

8.2.1     tar的参数

语法:tar [参数] 压缩包名 一个或多个文件

作用

对一个或多个文件进行打包并压缩

-c

创建一个打包的文件(必选)

-v

显示打包的详细过程(可选)

-z

压缩文件(可选)

-f <压缩文件名>

指定压缩包的文件名(必选),f要求后面紧跟着压缩的文件名,一般放在参数最后面

 

8.2.2     操作演示:

1)       定位于root目录,将当前目录下的Hello.java和Hello.txt文件打包成hello.tar文件,并显示详细信息。

2)       将当前目录下的Demo.* 打包并压缩成demo.tar.gz文件,显示详细信息。

8.3   解压文件

8.3.1     解压文件语法

语法1:tar [参数] 压缩文件

解压文件到当前目录

 

语法2:tar [参数] 压缩文件 -C 目录

解压文件到指定的目录

-x

解压指定的文件【必选】

-v

显示解压详细过程【可选】

-f<压缩文件>

指定要解压的文件【必选】

 

-C

解压到指定的目录下【可选】

 

8.3.2     操作演示

1)       定位于root目录下,删除所有大写的Hello开头的文件

2)       解压hello.tar到当前目录

3)       释放demo.tar.gz文件到abc目录下

第9节  其他命令

9.1   查看当前绝对路径

9.1.1     语法格式

pwd

Print Working Directory 打印当前的工作目录

9.1.2     操作演示:

1)     进入根目录,显示当前的目录

2)     进入/bin,显示当前的目录

3)     进入/usr/bin目录,显示当前的目录

9.2   查看进程

9.2.1     Linux进程启动的两种方式

1)     一种是用户通过终端输入命令启动的进程

2)     一种是Linux系统开机以后自动启动进程

9.2.2     bash进程

1)     每个用户登录以后都会分配一个终端操作的进程

2)     这个进程是所有终端命令的父进程bash,不要随意终止这个进程。

9.2.3     语法格式

ps  [参数]

无参

显示当前用户通过终端启动的进程

-a

显示所有用户通过终端启动的进程

-u

显示所有用户通过终端启动的进程的详细信息

-x

显示所有用户的所有进程

 

9.2.4     操作演示:

1)     在客户端中显示当前用户通过终端启动的所有进程

2)     在Linux命令行窗口运行vim Hello.txt编辑文件,在Xshell软件中显示所有用户通过终端启动的所有进程。

3)     显示所有用户通过终端启动的所有进程详细信息

4)     显示所有用户所有进程详细信息

9.2.5     各列的说明

列标题

说明

%CPU

CPU(处理器)使用百分比

%MEM

真实内存使用百分比

CMD

正被执行的命令的名称

COMMAND

正被执行的命令的完整名称

PID

进程ID

PPID

父进程的进程ID

RSS

内存驻留空间大小(内存管理)

START

定时启动的时间

STAT

状态代码(O,R,S,T,Z

TIME

积累CPU时间

TTY

控制终端的完整名称(?表示没有控制终端,该进程为守护进程)

USER

用户名

VSZ

虚拟大小(单位为KB

 

9.3   查看电脑整体内存耗用

Top命令:查看系统整体内存、cpu耗用情况

9.4   杀死进程

9.4.1     语法格式

kill  [参数]  进程号

进程号

通过ps可以查到进程号

-7

强制中止进程

 

9.4.2     操作演示

1)     在Linux命令行上使用vim 编辑Hello.txt文件
在Xshell客户端软件显示所有用户通过终端启动的所有进程,并杀死vim这个进程。
在Linux命令行可以看到进程被终止

2)     在Linux命令行使用ping www.itcast.cn
在Xshells客户端软件显示所有用户通过终端启动的所有进程,并强行杀死ping这个进程

在Linux命令行可以看到进程被杀掉

9.5   搜索文件内容

grep是一种强大的文本搜索工具,它能使用字符串搜索文本,并把匹配的行和行号打印出来。

9.5.1     语法格式

grep  [参数] 字符串 文件名

作用

搜索指定文件中字符串内容

-n

搜索结果中显示行号

-v

显示不匹配的行

-i

忽略大小写搜索

 

9.5.2     操作演示

1)     在Demo.java中搜索close字符串

2)     在Demo.java中搜索close字符串,并且显示行号

3)     在Demo.java中搜索没有close的行和行号

4)     在Demo.java中忽略大小写搜索insert字符串并且显示行号

9.6   管道

9.6.1     语法格式

语法

命令1 | 命令2

解释

管道命令符 | ,必须要有两条以上的命令参与操作。将第1个命令的执行结果,做为第2个命令的参数,继续进行下一个操作。

 

9.6.2     操作演示:

1)     分屏显示/etc目录所有文件的详细信息,将ll的输出做为more的输入,即分屏显示。

2)     在root目录下使用ll显示所有文件的详细信息,再在显示结果中使用grep查询Demo字符串

3)     显示Linux中所有进程的详细信息,查询ssh的字符串

9.7   关机

9.7.1     语法格式

语法

shutdown now

解释

关闭服务器

 

Windows系统关机

shutdown -s 立刻关机

shutdown -s -t 秒数 ,指定多少秒后立刻关机

shutdown -a 清除定时计划

9.6   重启

9.6.1     语法格式

语法

reboot

解释

重启Linux

 

9.7   其它命令小结

命令

功能

pwd

显示当前绝对路径

ps

显示进程信息

kill

杀死进程

grep

查询字符串

|

管道命令

shutdown now

关机

reboot

重启

 

第10节  文件权限

10.1   权限的简介

Linux中对每个目录和文件都做了规定,只能由满足条件的用户才能操作这个目录或文件,这个规定叫权限。

10.1.1     用户和组的概念

 

 

概念

解释

属主

目录或文件的拥有者

属组

拥有者所在的组

其他用户

除了属主和属组之外的用户

 

10.1.2     7个字母的含义

-,普通文件

d, 目录

l,  链接文件

10.1.3     权限的范围

权限范围

说明

u

User 属主,文件和目录的拥有者

g

Group 属组,拥有者所在的组

o

Other 其他用户

a

All 所有的用户

 

10.1.4     权限的操作

权限符号

说明

+

添加权限

=

修改权限

-

删除权限

 

10.1.5     权限的字母和数字

权限字母

权限数字

说明

r

4

Read 读取权限

w

2

Write 写权限

x

1

eXecute 执行权限

-

0

没有权限

 

10.2   添加权限

10.2.1     语法格式

chmod 用户或组+权限 目录或文件

对指定的文件或目录,给用户或组赋予权限。多种类型的用户之间使用逗号分隔

 

10.2.2     操作演示

1)     给Demo.java文件的拥有者添加执行权限

2)     给Demo.java拥有者所在的组添加写和执行的权限

3)     给Hello.java所有的用户添加所有的权限

4)     给Demo.html拥有者添加执行权限,其它用户添加写权限

10.3   修改权限

10.3.1     语法格式

chmod 用户或组=权限 目录或文件

对指定的文件或目录,针对不同的用户修改权限。多种类型的用户之间使用逗号分隔

 

10.3.2     操作演示

1)     给Hello.txt拥有者改为读写执行权限,所在的组有写的权限,其它用户有执行的权限

2)     修改Hello.txt的权限,使用数字的方式给拥有者,所在组,其它组都是读写权限

10.4   删除权限

10.4.1     语法格式

chmod 用户或组-权限 目录或文件

对指定的文件或目录删除权限,多种类型的用户之间使用逗号分隔

 

10.4.2     操作演示

1)     删除Hello.txt拥有者写入的权限,用户组写入权限

2)     使用数字的方式删除Demo.java所有的权限

 

 

 

 

 如有更好需求,请联系小Bin。我会为你更好地服务

 

posted on 2019-01-17 23:29  小Bin  阅读(853)  评论(0编辑  收藏  举报

导航