Linux进阶命令&文件系统(5.5)

Shell命令:

一、shell命令

 

1、history 显示我们历史命令

 

 

2、alias 给我们命令取别名

常用:alias dirlist='ls -l'

 

特殊路径:/home/ubuntu/.bashrc          shell命令默认搜索的路径

重启生效:source  /home/ubuntu/.bashrc

 

 

二、环境变量:操作系统能够提供给我们全局变量

 

(1)显示当前系统的环境变量

env

 

(2)PATH环境变量

它是shell默认可执行程序路径

 

查看PATH 环境变量的内容

echo $PATH

 

使用方法:

export PATH=$PATH:路径

 

 

练习:大家来写一个farsight.c文件,要求输出"welcome to farsight"

gcc farsight -o farsight

要求切换文件仍然可以使用它。

 

三、linux命令进阶

详解《linux进阶命令》

 

 

四、shell中通配符

 

 

*  匹配任意长度的字符串

? 表示匹配一个长度的字符串

[..] 匹配其中指定的一个字符  

[-]  匹配指定一个字符范围

[^]  匹配除了指定字符以外的单个字符

 

作业:1、在用户主目录以你的名字新建一个目录(chw),进入该目录

      2、用touch命令新建3个文件1.c 2.c a.c 12b.c

      3、利用*,来查看当前目录下,所有以.c结尾的文件

      4、以?来查看一个字符.c结尾的文件

        以??来查看两个个字符.c结尾的文件

        以???来查看三个字符.c结尾的文件

      5、利用[-],来查看[1-9]范围内的字符

      6、利用[]来查看当前目录下的1.c 2.c a.c

      7、以[^]来查看该目录下,出了a.c以外的以单个字符.c结尾的文件

 

 

五、命令置换

作用:将以命令的输出当作另外一个命令的参数

command1  `command2`

注:这里是反撇号,是esc下面那个键。

例如:find `pwd` -name hello.c

 

 

六、用户管理详解

<1>linux用户

UID:用户的唯一标识(相当于我们的人的身份证)

 

/etc/passwd 记录我们用户的一些信息

 

/etc/shadow 真正用户存放密码的地方

 

用户分类:

1、超级用户:也叫root用户,拥有最高权限 UID = 0,GID = 0

2、系统用户:主要服务于系统应用,不可登录

3、普通用户:登录的用户,例如:ubuntu

 

<2>linux用户组

 

用户组:具有相同权限用户的集合。拥有唯一的标识gid

 

 

七、进程详解

<1>进程和程序

进程:存储在磁盘上可执行指令的文件。

进程:程序一次执行的过程,并且伴随着资源的分配与释放。

 

区别:进程是动态的,而我们的程序是静态的。

 

<2>相关命令

1、查看系统的进程(给系统当前进程截了一个图)

ps -ef 

2、动态显示我们的进程

top

3、给我们的几次进程发发信号

kill -信号的编号 PID

 

宏名    信号的编号  作用

SIGKILL  9         杀死进程

SIGSTOP  18        让进程停止

 

 

八、文件系统

<1>文件系统命令

详见《linux文件系统命令》

 

<2>软链接和硬连接

详解《软链接和硬链接》


Linux进阶命令:

二、深入命令的学习

<1>grep  从文件中搜索字符串

 

例如: 在/etc/passwd中查找“chw”

grep "chw" /etc/passwd

常用参数:

a.搜索file文件中,以"string"开头的行

例如: grep "^string" file 

b.搜索file文件中,以"string"结尾的行

例如: grep "string$" file 

c.搜索file文件中,只包含“string”的行

例如:grep "^string$" file  

 

d.在搜索文件的时候,同时显示行号

例如:grep "chw" -n /etc/passwd

 

 

习惯的用法:

e.在当前目录下所有的文件中搜索"main"(包括子目录)

grep "main" * -nR

 

练习:1.在用户主目录新建一个hello.c文件。

  2.然后以带行号的方式搜索一下,我们的world单词。

<2>find :在指定路径下搜索文件

常用:

find 路径 -name  文件名

 

例如:find /home/chw -name test.c  

 

 

<3>管道链接符"|" ->将一个命令的输出当作另一个命令的输入

例如:cat /etc/passwd | grep "chw" 

ls  /usr/include | grep "stdio.h"

<4>head 显示文件开头的内容

 

a.查看/etc/passwd 文件开头10行

例如:head -10 /etc/passwd

 

<5>tail 显示文件尾部指定的行数

例如:tail -1 /etc/passwd

 

练习:如何获得/etc/passwd中第34行的信息

 

 

<6>cut : 字符串裁剪函数

注意:一般与管道联合使用

 

格式:

cut -d "分割字符" -f 字段

 

参数:

-d    指定我们的分割字符

-f    指定我们显示的区域

例如:

tail -1 /etc/passwd | cut -d ":" -f 1,3,4  

 

grep "chw" /etc/passwd | cut -d ":" -f 1,3,4  

 

练习:如何获取当前用户在/etc/passwd中的行号

 

 

<7> diff比较两个文件的异同点

常用:

diff file1 file2

 

注:显示的结果不直观 

    a表示追加,d表示删除,c表示更改

    <表示属于第一个文件

    >表示属于第二个文件

    

vim 使用小技巧:

vim  test1.c test2.c -d  直观的对比,哪里不一样

 

 

<8>wc :统计 行数 单词的个数 字节数

例如:

a.txt

123

abc

789 ABCD

 

参数:

-l   显示一个文件的行数

-w   显示一个文件的单词个数

-c   显示一个文件的字节数

 

 

 

三、其他命令了解

<1>清屏

clear

快捷键  ctrl + l

 

<2>查看日期及时间

date    显示时间日期

<3>echo 显示一行文本

 

a.输出单个单词

echo 123

echo 456

 

b.输出字符串

echo "hello world"

echo hello world

 

区别:""表示一个字符串,若是不扩起来表示多个字符串

 

<4>which 查找命令所在的路径

例如:which  ls

      which  pwd

 

注:不是所有的命令都能找到,内嵌的命令找不到 

例如:which alias 

      which cd    都找不到   

      

 

 

四、系统维护命令详解     

<1>shutdown关机命令

常用:

 

a.5分钟后关机

sudo shutdown +5

 

b.立即关机

sudo shutdown -h now

 

c.立即重启

sudo shutdown -r now

sudo reboot

  

     

<2>修改密码passwd

 

a.修改用户密码passwd

sudo passwd + 用户名

例如:sudo passwd chw 

 

 

<3>su临时切换用户

例如:

 

a.切换到root用户

su  + 回车

 

a.切换普通用户

su + 用户名

 

注:我们第一切换root用户的时候可能会提示密码错误

 

 

五、用户管理

详解《用户管理详解》


用户管理详解:

一、原理了解

在Linux系统中,所有的用户和组像一个国家。如果国家要繁荣昌盛的话,需要治理得当,需要有主席或者总统,以及地方官员和老百姓组成。在linux中如果你对安全需求比较苛刻,完全可以限制用户的各种行为,不同用户的权限是不同的。

在linux中系统中,它并不认识帐号名称。它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中。我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该帐号的user IDgroup ID同时该帐号的根目录和shell也读了出来。然后在去核对密码表,在/etc/shadow中找出我们刚刚输入的帐号和userID,核对我们输入密码是否正确。一切正确我们可以登录到当前用户shell。那么,我们首先了解一下一些基本的概念。

在我们的linu中各个用户以权限来区分.

Linux中一般有三种用户:

1、超级用户root:具有最高的权限,UID=0,GID=0

2、系统用户:主要服务于系统应用,维护系统运行,不能登录。例如:uucp 

daema等。

3、普通用户:登录的用户

组:具有相同权限的用户的集合。例如,我们的ubuntu组

二、特殊路径了解

 

1./etc/passwd我们使用cat命令查看一下这个文件

 

我们首先看第一行root这一行,一共有七项,每一项使用:分开,他们代表的意思如下:

 

 

帐号名称:帐号名称由于对应用户ID,这个是系统默认用户root超级管理员,在同一个系统帐号名称是唯一的,长度根据不同的linux系统而定,一般是8位。

密码:由于系统中还有一个/etc/shadow文件用于存放加密后的口令,所以在这里这一项是“x”来表示,如果用户没有设置口令,则该项为空。

用户ID:这个是系统内部用于来识别不同的用户的,不同的用户识别码不同,其中用户ID有以下几种:

0代表系统管理员

1-500系统预留的ID

500以上是普通用户使用。

ID:其实这个和用户ID差不多,用来规范群组,他与/etc/group有关。

描述信息:这个字段几乎没有什么作用,只是用来解释这个帐号的意义。一般常见的是用户全名信息。-

用户根目录:就是用户登录系统的起始目录,用户登录系统后将首先进入该目录。root用户默认的是/root,普通用户的是/home/用户名。

用户登录shell:就是用户登录系统时使用的shell路径

2./etc/shadow

在早期的unix操作系统中,用户的帐号信息和口令信息都保存在passwd文件中,尽管系统已经对口令进行了加密,并且以密文的方式保存在passwd文件中,但是由于passwd文件对于系统中的所有用户是可读的,口令比较容易破解,存在较大的安全隐患。现在使用“shadow”文件保存密文的用户口令,使用passwd文件保存用户帐号其它信息。“shadow”文件只有管理员用户才可以读取其中的内容。由于这个文件可能被破解,所以一定不要将该文件内容泄露给他人,保证系统安全。

 

同样,我们还是分析第一行,一共有以下几项,分别说明一下:

 

 

帐户名称:和/etc/passwd对应,和/etc/passwd的意思相同。

密码:这才是真正的密码,并且已经加密过了,只能看到一些特殊符号。需要注意的是这些密码很难破解,但是不等于不能。还有密码栏的第一个字符为“*”表示这个用户不用来登录,如果那个用户不想让他登录了,可以在他前面加个星;

 

上次改动密码的日期:这段记录了改动密码的最后日期,为什么是13798呢?这是因为linux计算日期的方法是以1970年1月1日作为1,1971年1月1日就是366,依次类推到我修改密码的日期表示为13798了。

密码不可被改动的天数:这个字段代表要经过多久才可以更改密码。如果是“0”代表密码可以随时更改。

密码需要重新更改天数:由于害怕密码被人盗取而危害到整个系统的安全,所以安排了这个字段,你必须在这个时间内重新修改密码,否则这个帐号将暂时失效。上面的99999,表示密码不需要重新输入。

密码到期的警告期:当帐号的密码失效期限快到时,系统依据这个字段的设定发出警告,提醒用户“再过n天您的密码将过期,请尽快重新设定密码。默认的是七天。

3. /etc/group查看一下这个文件,这个文件是保存的unix组成员的

 

我们还是分析第一行,一共有以下四项,依次为:

群组名称:就是群组的名称了。

群组密码:通常不需设定,因为我们很少使用群组登录。不过这个密码也被记录在/etc/shadow中了。

群组ID也就是组ID了。

支持帐号的名称:这个群组的所有帐号。

 

 

 

 

 

 

 

 

三、命令详解

1、adduser 添加用户。会要求输入新密码,全名。

常用:sudo adduser  farsight_chw

 

我们可以发现在/home/中出现了我们的用户

 

 

可以发现在我们的/etc/passwd 和 /etc/shadow中都有了该用户

 

 

2.只删除用户

 sudo deluser  farsight_chw

注意:删除后我们用户主目录还是存在

 

 

 

 

 

 

 

 

 

 

3.删除用户和用户主目录

 Sudo deluser  --remove-home farsight_chw

 

<1>先新建用户

 

 

<2>彻底删除

 

 

 

三、进程相关命令

<1>进程和程序

 

程序:存储在磁盘上可执行指令的文件。Windows .exe     Linux  .elf

 

进程:程序一次执行的过程,并且伴随着资源的分配与释放。

 

区别:进程是动态的,而我们的程序是静态的。

 

<2>进程相关的命令

1、查看系统的进程(相当于给当前进程截了一个图)

ps  -ef 

 

2、查看进程第一行的内容

ps  -ef   |  head  -1

 

 

我们只需要知道这几个就行了

UID   当前用户帐号    

PID    进程号  

 

 

PPID   父进程号

C      cpu占用率    

STIME 进程启动的时间

tty     进程所属的终端控制台,?表示这些进程不属于tty,由系统启动。

time    进程共占用的cpu的时间

cmd    启动进程的命令

 

3、top   动态显示我们的进程

 

 

注:按下crtl + c 可结束当前页面

由于参数比较多,这里只说几个重要的。

PID      进程号

USER    用户名

PR和NI   决定我们进程的优先级

 

4.给我们的进程发信号

Kill -信号的编号 PID

常用:

宏名       信号的编号         作用

SIGKILL      9               杀死进程

SIGSTOP      18              让进程停止

例如:

给进程发结束信号

Kill -9  PID号 

例如:我们新建一个

Hello.c

 

 

 

运行结果:

 

 

把当前进程杀掉


Linux挂载、分区详解:

一、linux文件系统简介

在我们的linux中,所有的一切都是从根目录开始的。我们可以这么说,所有的设备都是文件。例如,一块硬盘是一个文件,这个硬盘上的分区也是一个文件,声卡也是一个文件。

这种表示一个的文件叫做设备文件。设备文件一般来说保存在/dev这个目录中。

 

可以这么理解。如果你把数据保存到打印机这个设备文件里,打印机就开始打印;如果你把音频输入到声卡这个设备文件里,电脑就开始听音乐了。

 

而我们硬盘的设备文件就更有意思了。

一个硬盘是一个设备文件,一般是/dev/sda(第一块);而硬盘上的每一个分区也是设备文件,比如第一个分区叫做/dev/sda1,第二个是/dev/sda2。

 

 

你可以直接读写硬盘的设备文件,但是,你得到的是硬盘的原始数据,几乎是0/1这样的二进制。因此,你可以直接像修改文件一般的修改硬盘的分区表等结构。而每一个分区也是一个设备文件,同样,你得到的是原始数据。

 

但是,没有人可以手工修改0101,来复制文件、删除文件。为了使你操作里面的数据,而不是原始010101,就需要进行挂载。比如,你把/dev/sda1挂到了/boot上,此时,驱动程序就会将01的原始数据转换成能操作的结构,并装到/boot上,此时,对/boot的修改同等于修改/dev/sda1,只不过你可以复制、删除等,而不是看到0101的原始数据。

 

Linux文件系统命令:

一、基本命令了解 

<1>ls  : 查看目录的内容或文件属性信息

 

(1)ls  

    显示当前目录的内容

(2)ls -l  

显示当前目录下文件的属性信息

drwxrwxr-x 4 linux linux 4096 May 28 01:34 class

第一部分:文件类型 

d -> 目录文件 

 

常见文件类型标识字符

b : 块设备文件   bcd-lps

c : 字符设备文件 

d : 目录文件 

 

- : 普通文件

 

l : 软链接文件(windows快捷方式)

p : 管道文件(常用于进程通信) 

s : unix域socket文件(常用于进程通信)

 

第二部分: 权限 [文件所有者权限 + 文件所有者所在组的组员权限 + 其他人权限]

r 读, w 写, x 执行

 

111 111 101 

rwx rwx r-x

 

100

r--  ===>4

010

-w-  ===>2

001

--x ====>1

 

r--4  100

w--2  010

x--1  001

 

用八进制表示: 0775

 

第三部分:

4 -> 硬链接数

 

第四部分:

linux -> 文件所有者名

 

第五部分:

linux -> 文件所属于组

 

第六部分:

文件大小 (默认单位byte)

 

第七部分:

文件最后一次修改时间 

 

第八部分:

文件名 

 

    ls -R -> 递归显示所有的子目录 例:ls -R 多级目录 

 

    ls -a -> 显示所有的文件,包括隐藏文件 

 

    ls -lh -> 带单位(G,K,M)显示文件大小 

    

    

    

2.chmod 修该文件的权限

格式:

chmod  权限  文件名

常用:

u: user(普通用户)

g: group(组用户)

o: other(其他用户)

 

chmod u+x test.c

chmod u+w test.c

chmod g-r test.c 

chmod o+x test.c

 

常用:

  100 101 001  

  r-- -w- --x

故八进制表示:

r--->4

w---->2

x---->1

 

chmod 777 test.c

chmod 755 test.c

 

3.chown 修改文件所有者:

sudo chown 所有者名 文件

例如:sudo chown root  test.c 

 

 

4.chgrp 修改文件所在组

sudo chgrp  组名  文件

例如:sudo chgrp root  test.c 

 

 

5.df 查看磁盘空间的使用情况

常用:

df  -Th

 

 

6.mount挂载文件系统,文件系统挂载后才能进行使用

用法:挂载本地设备

 

sudo mount 设备文件 挂载点目录

 

例如:

查看磁盘使用情况

df -Th

Filesystem     Type      Size  Used Avail Use% Mounted on

/dev/sda1      ext4      7.4G  2.8G  4.2G  40% /

udev           devtmpfs  241M  4.0K  241M   1% /dev

tmpfs          tmpfs      50M  1.4M   49M   3% /run

none           tmpfs     5.0M     0  5.0M   0% /run/lock

none           tmpfs     248M  204K  248M   1% /run/shm

/dev/sda6      ext4       12G  1.6G  9.4G  14% /home

.host:/        vmhgfs     79G   67G   12G  85% /mnt/hgfs

 

把根目录的挂载到/mnt/udisk目录中

sudo mount /dev/sda1 /mnt/udisk

 

 

<6>umount 卸载设备

 

sudo umount 设备文件

例如:sudo umount /dev/sda1

 

练习:1.同学们自己来练习把U盘挂载到电脑上去

      2.把/目录挂载到 /mnt/udisk中去

      

<7>du 查看目录或者文件使用磁盘块数(占用磁盘空间的大小),常用于估算目录或者文件大小

参数:

 -s  显示当前目录的大小

 -h  以K,M,G为单位显示

例如:查看用户主目录占用磁盘块数

 

du -sh  /home/chw  显示我们用户主目录占用的磁盘块数

 

 

 

二、文档打包压缩命令详解(结合PPT64讲解)

<1>zip压缩

(1)压缩文件

 zip test.zip test1.c test2.c

 (2)解压文件

 unzip test.zip

 

<2>gzip压缩(注:只能对普通文件压缩,不能对目录文件压缩)

(1)压缩文件

gzip test.c

(2)解压文件

gunzip test.c.gz

 

<3>bzip2压缩(注:bzip2对一个文件进行高比例压缩,不能对目录文件压缩)

(1)压缩文件

bzip2 test.c

(2)解压文件

bunzip2  test.c.bzip2

 

 

<4>tar  对目录和普通文件都可以进行打包压缩 

参数:

 

c -> 创建

x -> 释放

z -> gzip操作

j -> bzip2操作

v -> 显示过程

f -> 指定文件名(一定需要放在最后)

 

(1)先打包再压缩

tar -cvf dir.tar dir

gzip dir.tar====>生成dir.tar.gz

 

(2)对一个目录直接进行打包压缩命令

sudo tar -czvf work.tar.gz work

sudo tar -cjvf work.tar.bz2 work

 

(3)释放一个文件

sudo tar -xzvf work.tar.gz

sudo tar -xjvf work.tar.bz2

或者

sudo tar -xvf work.tar.gz/work.tar.bz2(两种都可以释放)

参数:

-C 指定释放到一个指定的目录

 

tar  -xvf dir.tar.gz -C 指定的目录

 

练习: 

1.在用户主目录下以自己的名字创建一个目录(例如:chw)

2.进入该目录,并且在里面创建一个hello.c

3.将chw文件夹打包并压缩成chw.tar.gz

4.然后在新建一个(chw_test),然后将chw.tar.gz释放到该文件夹中。

5.最后删除删除chw,chw.tar.gz ,chw_test


硬链接与软链接:

一、简介

大家在windows下可以看到我们桌面上有一些程序。双击它就可以运行了。在我们桌面上的图标只是一个快捷方式,它真正的运行路径是在其他的磁盘中。这个就是我们的windows中链接。我们的Linux系统中也存在类似的形式,我们Linux中的链接形式有两种,一种叫做软链接,一种叫做硬连接。在讲解之前,大家需要先知道一些文件的基本知识。

 

Linux系统中一个文件由目录项inode表数据块组成。

目录项:包括文件名和inode节点号

Inode表:包含文件的一些信息。例如,inode号,文件类型,文件大小等待。

数据块:文件具体内容存放的地方。

 

当我们查看一个文件的时候,linux系统的运行过程如下图。

 

 

 

1、首先根据文件名,找到我们目录项中的inode号。

2、通过inode号进入我们inode表中,查找到该文件中一些信息。

3、然后通过inode表中的保存的数据区的指针,读取我们相应数据区的内容。 

 

 

 

一、硬链接

本质:是给我们的文件取别名。与源文件直接关联。修改一个,另一个同时被修改。删除一       个另一个不会有影响。

Linux系统中规定,只有在文件的打开次数为0(即文件这个时候没有打开),并且文件的硬连接数为0,此时文件才会被删除

 

 

 

特点:

(1)不占用硬盘空间

(2)不能对目录操作

(3)不能跨文件系统 

 

命令:ln  源文件名  硬链接文件名

 

例如:

 

由上面接口可以知道,我们新建的硬链接文件,只是给源文件起了一个别名,他们公用同一个inode号。

 

二、软链接(符号链接)

本质:类似于我们windows的快捷方式,用来记录我们目标的路径

特点:(1)占用磁盘空间 

       (2)可以对目录操作 

       (3)可以跨文件系统

 

命令:ln -s 源文件 软链接文件 

 

 

可以发现我们新建的hello2.c实质是我们hell1.c的快捷方式。并且他们的inode号不一样。

原理图:

 

从图上可以看出硬链接和软链接的区别:

1:硬链接原文件和新文件的inode编号一致。而软链接不一样。

2:对原文件删除,会导致软链接不可用,因为软连接存储是路径,而硬链接不受影响。

 

练习:

1、自己新建一个hello.c文件分别做软链接和硬连接操作

2、在用户主目录下(/home/ubuntu),通过软链接来链接链接一个share文件夹,

   链接的路径指向/mnt/hgfs/share


网络基本知识:

一、网络基本概念
<1>IP地址
接入因特网的计算机与我们接入电话网的电话很相似,我们每台计算机或者路由器都有
一个由授权机构分配的号码,称为IP地址。例如,我们中国的代号是086,如果中国境内某
单位的电话号码为85225566,所在的地区号为010,那么,这个单位的电话号码完整的表述
应该是086-010-85225566。该电话号码在全世界范围内是唯一的。这是一个很典型的分层结
构的电话号码的定义方式。
同样,我们IP地址也是采用分层结构。我们的IP地址由网络号和主机号两部分组成。
其中网络号用来标识一个逻辑网络,主机号用来标识我们网络中的一台主机。一个主机至少
有一个IP地址,并且我们这个IP地址是全网唯一的。例如:我们湖北的电信网络,我们可
以用我们的网络号来选择我们的电信网络,通过我们主机号在网络中寻找到我们的主机。
在表示IP地址的时候,若是我们使用我们的二进制数来表示的话,我们将看到的都是
0,1指令代码,这样不容易记忆,因此,为了方便记忆,我们将32位二进制码划分为4个字
节,每个字节转化成相应的十进制数,每个字节之间用“.”来分隔。IP地址的这种表示方
法,我们称之为“点分十进制表示法”。例如:IP地址10001010000010110000001100011111
记忆为138.11.3.31。
IP分类
A类[0,127] 0.0.0.0-127.255.255.255 它们之前相差2的7次方-1
B类[128,191] 128.0.0.0-191.255.255.255 它们之前相差2的6次方-1
C类[192,223] 192.0.0.0-223.255.255.255 它们之前相差2的5次方-1
D类[224,239] 224.0.0.0-239.255.255.255 它们之前相差2的4次方-1
E类保留
注意:所有的网络都必须扣除两个保留地址:”0“为网络号,”255“为广播,”1-254“分配
给主机使用
<2>子网掩码
子网掩码是一个32位地址,是与IP地址结合使用的一种技术。它的主要作用有两个,
一是用于屏蔽IP地址的一部分以区别网络标识和主机标识。二是用于将一个大的IP网络划
分为若干小的子网络。例如:
(1)获得网络号
十进制 二进制
IP地址 192.168.1.88 11000000 10101000 00000001 01011000
子网掩码 & 255.255.255.0 11111111 11111111 11111111 00000000
----------------------------------------------------------------------------------------------------------------------192.168.1.0 11000000 10101000 00000001 00000000
网络号:192.168.1.0
(2)获得主机号
十进制 二进制
IP地址 192.168.1.88 11000000 10101000 00000001 01011000
子网掩码 & 0.0.0.255 00000000 00000000 00000000 11111111
----------------------------------------------------------------------------------------------------------------------0.0.0.88 00000000 00000000 00000000 01011000
主机号:88
<3>网关
大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另
一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway)
就是一个网络连接到另一个网络的“关口”。也就是网络关卡。网关实质上是一个网络通向
其他网络的IP地址。
默认网关一般填写192.168.x.1或者192.168.x.254
<4>DCHP
DHCP:动态主机设置协议(DynamicHostConfigurationProtocol,DHCP)是一个局域网的
网络协议,它会自动检测我们当前未使用的IP地址,从而给我们新的主机来动态分配IP
地址。
<4>DNS服务器
大家还记得,我们平时上网的时候,输入的网址是什么样的呢?例如:www.baidu.com。
有没有人思考过,我们前面说我们进行通讯的都是通过我们的IP地址来的,这里英文字母
是什么东西?这里就要说到我们的DNS服务器了。
在我们的实际生活中,我们发现,我们通过点分十进制的IP地址也不是很方便,尤其是
在大规模的网络环境中,很容易就就记混淆了。因此,就有了我们的DNS服务器,它是把
我们人类便于理解的单词和名字转化成我们相应的IP地址。它的作用就是解析我们的域名。
例如:我们的可以ping一下,百度www.baidu.com
常用dns服务器:114.114.114.114
8.8.8.8
我们可以发现百度的真是ip其实是180.97.33.107。我们可以测试在网址上输入这个IP地址,
也是可以看到我们百度的页面的
<5>总结
举一个简单的例子来总结一下,我们的知识。比如,我们想要给晓明写一封信。首先
我们就需要知道晓明的住的地址,例如湖北武汉工程大学,信写好了之后,我们就需要把
投递到邮局去,到了邮局之后,邮局的阿姨发现,我们的信件没有写邮政编码,因此,她帮
我写上了邮政编码。最后,我们信就成功了寄给了湖北的晓明。
在上面的这个例子中。
IP地址:湖北+武汉工程大学[网络号+主机号]
网关:邮局[检测我们的信件是否合格]
邮政编码:DNS服务器[与我们的寄信地址来对应


ubuntu环境搭建:

tftp服务器搭建

[1] 基本原理

tftp服务器最好搭建在Linux系统上面,这里是在虚拟机(ubuntu)上搭建tftp服务器,搭建步骤如下: 

1. 确认虚拟机和外网连通

2. 安装tftp服务软件并启动

3. 配置tftp服务软件权限和参数

4. 本机验证tftp服务

 

[2] 具体过程

1. 确认网络连通

在ubuntu上,安装软件需要网络的支持,所以安装软件前必须保证已经联网,且DNS配置正确。检测命令如下:

ubuntu@ubuntu:~$ ping  –c4  www.baidu.com

PING www.a.shifen.com (119.75.218.77) 56(84) bytes of data.

64 bytes from 119.75.218.77: icmp_req=1 ttl=128 time=68.1 ms

表示网络和DNS已经配置正确。

 

2. 安装tftp服务软件

在ubuntu上,执行如下命令:

ubuntu@ubuntu:~$ sudo apt-get install tftp-hpa  tftpd-hpa

tftp-hpa是客户端,tftpd-hpa是服务器

3. 确认tftp服务运行

在ubuntu系统下,执行如下命令:

ubuntu@ubuntu:~$ ps -ef  | grep tftp

root      1019     1  0 06:58 ?        00:00:00 /usr/sbin/in.tftpd --listen --user tftp --address 0.0.0.0:69 --secure /home/ubuntu/work/tftpboot

ubuntu   10476  2841  0 17:29 pts/0    00:00:00 grep --color=auto tftp

/usr/sbin/in.tftpd程序进程存在表示tftp服务运行成功。 

4. 新建tftp根目录,修改tftp服务根目录

ubuntu@ubuntu:~$ cd  /

ubuntu@ubuntu:~$ mkdir  /tftpboot

ubuntu@ubuntu:~$ sudo chmod 777 /tftpboot

如果想修改tftp服务的根目录,运行如下命令:

ubuntu@ubuntu:~$ sudo vim /etc/default/tftpd-hpa

会出现如下界面:

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/tftpboot"

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-c  -s  -l" //-c表示create -s表示secure(安全) -l 表示listen 

修改TFTP_DIRECTORY="/tftpboot"这一行中引号中的路径,然后杀掉tftpd服务进程,命令如下:

ubuntu@ubuntu:~$ sudo service   tftpd-hpa   restart

ubuntu会自动重启服务,服务启动后,根路径设置就生效了。

5. 验证tftp服务配置成功

写一个hello.c文件存放到/tftpboot,然后在用户主目录运行tftp命令,过程如下:

ubuntu@ubuntu:~$ ls /tftpboot/hello.c

/tftpboot/hello.c

ubuntu@ubuntu:~$ cd  /home/ubuntu

ubuntu@ubuntu:~$ tftp 127.0.0.1

tftp> get  hello.c

tftp> quit

ubuntu@ubuntu:~$ ls hello.c

hello.c


nfs服务器搭建

nfs是网络文件系统,它可以将服务器上的一个文件夹挂载到本机作为一个文件系统。利用这个工具可以直接利用服务器上面的文件,而不用先下载到本地,给调试程序和文件系统带来极大的便利。

[1] 基本原理

nfs服务器最好搭建在Linux系统上面,这里是在虚拟机(ubuntu)上搭建nfs服务器,搭建步骤如下: 

1. 确认虚拟机和外网连通

2. 安装nfs服务软件并启动

3. 配置nfs服务软件权限和参数

4. 本机验证nfs服务

 

[2] 具体过程

使用nfs前需要在服务器端搭建nfs服务环境:

[1] 安装nfs服务程序及客户端程序

ubuntu@ubuntu:~$ sudo apt-get install nfs-kernel-server nfs-common

新建一个exports.d目录,如果不存在则新建,若是存在则不用执行,命令如下:

ubuntu@ubuntu:~$ sudo mkdir /etc/exports.d

[2] 导出nfs文件系统

1. 配置nfs文件系统

打开/etc/exports文件,添加如下行(注意:#表示注释,这里不添加):

    ubuntu@ubuntu:~$ sudo vi  /etc/exports

/source/rootfs  * (rw,sync,no_root_squash, no_subtree_check)

“/source/rootfs”是存放nfs文件系统的路径;“*”表示在所有的网段都可以共享;“rw”表示nfs文件系统允许读写;“sync”表示修改都会同步到nfs服务端,否则只是会暂存在本地内存;

新建nfs目录,修改权限:

ubuntu@ubuntu:~$ sudo mkdir  -p  /source/rootfs

ubuntu@ubuntu:~$sudo  chmod  777  -R  /source

2. 导出

ubuntu@ubuntu:~$ sudo exportfs –av

注意:这步一定要成功,否则下面mount会失败

[3] 重启服务

ubuntu@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server restart

[4] 测试

1. 新建客户端目录

ubuntu@ubuntu:~$ mkdir /srv/nfsclient

ubuntu@ubuntu:~$ ls /srv/nfsclient -ld

drwxr-xr-x 2 root root 4096 2012-01-10 20:43 /srv/nfsclient

2. 挂载到nfs服务器

ubuntu@ubuntu:~$ 

sudo mount -t nfs 127.0.0.1:/source/rootfs  /srv/nfsclient

[sudo] password for ubuntu: 

3. 确认挂载成功

ubuntu@ubuntu:~$ df

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/sda1             19609276   7010752  11602428  38% /

udev                    506028         4    506024   1% /dev

tmpfs                   205216      1396    203820   1% /run

none                      5120         0      5120   0% /run/lock

none                    513040       180    512860   1% /run/shm

/dev/sdb1       61926396   3774704  55006016   7% /home/ubuntu/work

127.0.0.1: /source/rootfs

                      61926400   3774592  55006080   7% /srv/nfsclient

ubuntu@ubuntu:~/work/rootfs$

确认粗体行一定要存在,这样表示nfs服务器搭建成功


samba环境搭建

samba服务器用于把Linux下的文件夹以windows共享的方式,共享给主机或局域网内其他的主机。

[1] 基本原理

samba服务器最好搭建在Linux系统上面,这里是在虚拟机(ubuntu)上搭建samba服务器,搭建步骤如下: 

1. 确认虚拟机和外网连通

2. 安装samba服务软件并启动

3. 配置共享目录

4. 重启samba服务

5. 创建samba用户

6. 测试samba服务

 

[2] 具体过程

1. 确认网络连通

在ubuntu上,安装软件需要网络的支持,所以安装软件前必须保证已经联网,且DNS配置正确。检测命令如下:

ubuntu@ubuntu:~$ ping  –c4  www.baidu.com

PING www.a.shifen.com (119.75.218.77) 56(84) bytes of data.

64 bytes from 119.75.218.77: icmp_req=1 ttl=128 time=68.1 ms

表示网络和DNS已经配置正确

2. 安装samba服务软件

ubuntu@ubuntu:~$ sudo apt-get install samba smbfs

3. 配置共享目录

打开我给你们发的smb.conf(在smb文件夹中),配置最后5行如下:

[ubuntu]

path=/home/ubuntu

valid users=ubuntu

public=yes

writable=yes

ubuntu是当前共享目录的用户,这里是将ubuntu的用户目录共享给主机。配置完成后拷贝到/etc/samba/目录下覆盖默认目录。

ubuntu@ubuntu:~$ sudo cp smb.conf  /etc/samba/

4. 重启samba服务

ubuntu@ubuntu:~$ sudo service smbd restart

5. 创建samba用户

ubuntu@ubuntu:~$ sudo smbpasswd -a ubuntu

创建samba用户,这里最后跟Linux用户名及密码相同,否则不便于记忆。

6. 测试samba服务

在主机下用windows系统访问虚拟机共享,如下图:

 

 

在地址一栏输入如下信息

 

出现如下图所示

 

 

或者可以使用我们的虚拟机的ip地址登录:

例如:\\192.168.1.125


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值