【嵌入式入门学习笔记】-- 四、Linux常用命令

嵌入式入门学习系列笔记索引

一、Linux简介

二、deb软件包管理

三、shell中的特殊字符

四、Linux常用命令


目录

一、基本系统维护命令

1.man

2.passwd

3.su

4.echo

5.date

6.clear

7.df

8.du

二、Linux用户管理

2.1.用户管理相关文件

2.1.1./etc/passwd文件

2.1.2./etc/group文件

2.1.3.adduser配置文件

2.1.4.SKEL模板

2.2.用户管理相关命令

2.2.1.Linux添加新用户

2.2.2.设置初始口令- passwd

2.2.3.修改用户属性- usermod

2.2.4.删除用户- deluser

2.2.5.添加用户组- addgroup

2.2.6.删除用户组- delgroup

三、Linux进程管理

3.1.进程(process)

进程的状态标志:

3.2.使用命令查看进程

3.2.1.ps命令

3.2.2.top命令

3.2.3.pstree命令

3.3.使用kill命令终止进程

四、Linux文件系统

4.1.文件和目录相关的命令

4.1.1.flie命令

4.1.2.创建链接文件

4.1.3.ln命令

4.2.文件的归档和压缩

4.2.1.概念

4.2.2.gzip与gunzip命令

4.2.3.tar命令

五、Linux网络配置管理

5.1.网络配置基础

5.2.配置IP地址

5.3.网络相关命令

5.3.1.ifconfig命令

5.3.2.配置动态IP地址

5.3.3.动态IP的获取过程

5.3.4.IP地址存放位置

5.3.5.DNS客户端配置文件

5.3.6.ping命令

5.3.7.管理DNS服务器地址

5.3.8.nslookup命令

总结


一、基本系统维护命令

1.man

使用man命令可以找到特定的联机帮助页,并提供简短的命令说明。一般语法格式为

man commandname

联机帮助页提供了指定命令commandname的相关信息。通常联机帮助信息包括以下几个部分:

  • NAME:命令的名称

  • SYNOPSIS:命令的语法格式

  • DESCRIPTION:命令的一般描述以及用途

  • OPTIONS:描述命令所有的参数或选项

  • SEE ALSO:列出联机帮助页中与该命令直接相关或功 能相近的其他命令

  • BUGS:解释命令或其输出中存在的任何已知的问题或缺陷

  • EXAMPLES:普通的用法示例

  • AUTHORS:联机帮助页以及命令的作者

无论帮助有多长,都遵循这个格式显示。在页面很多的情况下使用PageUp和PageDown键翻页。最后,使用“:q”退出帮助页面。

2.passwd

出于系统安全考虑,Linux系统中的每一个帐号都必须同时具备用户名和密码。

可以使用passwd命令,为已有账户重新修改用户口令。需要说明的是,超级用户root可以修改所有其他用户的口令,而普通用户只能修改自己的用户口令,如果确要修改超级用户或其他用户口令的话,需要具有超级用户的权限。

passwd命令的一般语法格式为:

passwd username

单独使用passwd命令,意为修改当前用户自己的口令。下面命令实例用于修改用户自己的口令。

linux@ubuntu:~$ passwd
Changing password for linux      #修改当前用户口令
(current) UNIX password:        #用户输入旧口令
Enter new UNIX password:       #用户输入新口令
Retype new UNIX password:      #确认新口令
passwd:已成功更新密码

3.su

su命令用于临时改变用户身份,具有其他用户的权限。普通用户可以使用su命令临时具有超级用户的权限;超级用户也可以使用普通用户身份完成一些操作。

当需要放弃当前用户身份,可以使用exit命令切换回来。

su命令的一般语法格式为:

su [ -c | -m | - ] username

选项“-c”表示执行一个命令后就结束;-m表示仍保留环境变量不变;-表示转换用户身份时,同时使用该用户的环境。单独使用su命令,默认为要转换为超级用户root。

4.echo

echo命令用于在标准输出——显示器上显示一段文字,一般起到提示作用。echo命令的一般语法格式为:

echo [-n] information

选项-n表示输出文字后不换行。提示信息字符串可以加引号,也可以不加。

linux@ubuntu:~$ echo   "Hello     everyone."        #输入信息字符串使用引号
Hello     everyone.
linux@ubuntu:~$ echo   ‘$PATH’                      #严格的原样输出
$PATH.
linux@ubuntu:~$ echo    Hello     everyone.         #输入信息字符串不使用引号,字符串之间用一个空格隔开
Hello everyone.

5.date

date命令用于显示和设置系统日期和时间。date命令的一般语法格式为:

date [-d | -s | -u] datestr

选项-s表示按照datestr日期显示格式设置日期;

单独使用date命令,用于显示系统时钟中当前日期。时间的格式为:“hh:mm:ss”,日期格式为:“mm/dd/yy”。

linux@ubuntu:~$ date                      #查看当前时间
2007年 09月 16日 星期日 18:44:45 CST
linux@ubuntu:~$ sudo  date  -s  1:19:18   #设置新时间,需要系统管理员权限
Password:
2007年 09月 16日 星期日 01:19:18 CST

6.clear

clear命令用于清除屏幕上的信息。清屏后,shell命令提示符移动到屏幕左上角。

由于shell命令是逐行执行,执行结果也将随即显示。因此,用户在使用命令终端窗口时,终端窗口会很快就会被字符占满。

clear可以帮助清理一下窗口中杂乱的字符显示。

7.df

df命令用于查看磁盘空间的使用情况。查看磁盘空间是用户应当经常做的事情,因为谁也不希望看到根或/var分区在不经意间填满,以便及时清理。

df命令的一般格式为:

df  [-a | -T | -h | -k ]  Filesystem

其中,参数Filesystem表示物理文件系统。各选项的含义如表所示。

选项含义
-a

显示所有物理文件系统的使用情况,包括虚拟文件系统,如/proc/sys

-T

显示物理文件系统的文件格式类型

-h

物理文件系统大小按兆字节为单位显示

-k

物理文件系统大小按千字节为单位显示

从以下命令的执行结果可以看到,这台计算机只有一块硬盘(/dev/sda1),文件格式类型为Ext3,已经使用36%的存储空间。同时,可以发现计算机上还安装了CD-ROM(/dev/hdc)、USB存储器(/dev/sdb1)。其他分区均为专用的虚拟文件系统。

linux@ubuntu:~$ df –T
文件系统     1K-块      已用      可用       已用%    挂载点
/dev/sda1    ext3     7850996  2664868    4787316    36%      /
varrun       tmpfs    255960       104     255856     1%      /var/run
varlock      tmpfs    255960         0     255960     0%      /var/lock
procbususb   usbfs    255960        84     255876     1%      /proc/bus/usb
udev         tmpfs    255960        84     255876     1%      /dev
devshm       tmpfs    255960         0     255960     0%      /dev/shm
lrm          tmpfs    255960     33788     222172    14%      /lib/modules/2.6.20-16-generic/volatile
/dev/hdc     iso9660  712946    712946          0   100%      /media/cdrom0
/dev/sdb1    vfat     249582    211602      37980    85%      /media/disk

8.du

列出目录和文件所使用的磁盘块数,每块占512个字节。

常用参数

  • -a :仅列出空闲的文件数
  • -h :列出磁盘的使用情况(KB)
  • -s :列出总的空闲空间(KB)

二、Linux用户管理

用户的属性

  • 用户名
  • 口令
  • 用户ID(UID)
  • 用户主目录(HOME)
  • 用户shell

2.1.用户管理相关文件

2.1.1./etc/passwd文件

/etc/passwd文件是系统能够识别的用户清单。

用户登陆时,系统查询这个文件,确定用户的UID并验证用户口令:

  • 登陆名
  • 经过加密的口令
  • UID
  • 默认的GID(用户属ID号)
  • 个人信息
  • 主目录
  • 登录shell

每一项由冒号“  :”隔开。

2.1.2./etc/group文件

包含了UNIX组的名称和每个组中成员列表,每一行代表一个组,包括4个字段:

  • 组名
  • 加密的口令
  • GID号
  • 成员列表

2.1.3.adduser配置文件

adduser用法:

adduser newuser     #添加用户名为newuser的新用户

配置完信息后,可以在/home/目录下看到相应的文件夹生成,也可以在/etc/passwd文件中查看相应的信息。

adduser命令添加新用户时,会引导你输入用户相关的信息,完成新用户的创建。

adduser配置文件:/etc/adduser.conf

  • FIRST_UID=1000(起始UID)
  • LAST_UID=29999(末尾UID)
  • USERS_GID=100(用户属ID号)
  • DHOME=/home(默认主目录)
  • DSHELL=/bin/bash(默认登录shell)
  • SKEL=/etc/skel

2.1.4.SKEL模板

此文件是一个用户创建的时候一个模板,

如果该/etc/skel文件夹有文件的话,使用useradd命令则会将/etc/skel/下的文件拷贝到新建用户的/home/用户名文件夹下,常用的文件:

  • .bash_profile
  • .bashrc
  • .bash_logout
  • .dircolors
  • .inputrc
  • .vimrc 

2.2.用户管理相关命令

2.2.1.Linux添加新用户

手动添加新用户的过程

系统

  • 编辑passwd和shadow文件,定义用户账号
  • 设置一个初始口令
  • 创建用户主目录,用chown和chmod命令改变主目录的属主和属性

为用户所进行的步骤

  • 将默认的启动文件复制到用户主目录中
  • 设置用户的邮件主目录并建立邮件别名

useradd命令添加新用户过程

例:

useradd lamp

不要小看这条简单的命令,它会完成以下几项操作:

  1. 在 /etc/passwd 文件中创建一行与 lamp 用户相关的数据
  2. 在 /etc/shadow 文件中新增了一行与 lamp 用户密码相关的数据
  3. 在 /etc/group 文件中创建一行与用户名一模一样的群组
  4. 在 /etc/gshadow 文件中新增一行与新增群组相关的密码信息
  5. 默认创建用户的主目录和邮箱
  6. 将 /etc/skel 目录中的配置文件复制到新用户的主目录中

当然,如果你能彻底掌握 useradd 命令创建用户的整个过程,完全可以手动创建用户。

adduser命令添加新用户时,会引导你输入用户相关的信息,完成新用户的创建。

2.2.2.设置初始口令- passwd

使用passwd命令可以修改用户口令

root用户可以修改任何用户的口令:

#语法
passwd  [-k] [-l] [u] [-f] [-d] [-S] username
#使用方法
passwd  username

2.2.3.修改用户属性- usermod

usermod选项:

  • -c 用户说明:修改用户的说明信息,即修改 /etc/passwd 文件目标用户信息的第 5 个字段;
  • -d 主目录:修改用户的主目录,即修改 /etc/passwd 文件中目标用户信息的第 6 个字段,需要注意的是,主目录必须写绝对路径;
  • -e 日期:修改用户的失效曰期,格式为 "YYYY-MM-DD",即修改 /etc/shadow 文件目标用户密码信息的第 8 个字段;
  • -g 组名:修改用户的初始组,即修改 /etc/passwd 文件目标用户信息的第 4 个字段(GID);
  • -u UID:修改用户的UID,即修改 /etc/passwd 文件目标用户信息的第 3 个字段(UID);
  • -G 组名:修改用户的附加组,其实就是把用户加入其他用户组,即修改 /etc/group 文件;
  • -l 用户名:修改用户名称;
  • -L:临时锁定用户(Lock);
  • -U:解锁用户(Unlock),和 -L 对应;
  • -s shell:修改用户的登录 Shell,默认是 /bin/bash。

用法/语法:

usermod [-u uid [-o]] [-g group] [-G gropup,…] [-d home [-m]] [-s shell] [-c comment] [-l new_name] [-f inactive] [-e expire] [-p passwd] [-L|-U] name

其中[-u uid [-o]]指的是这个选项要以-u开头,以-o结尾,中间存放uid。

用户oldname改名为newname,注意要同时更改家目录:

usermod  –d  /home/newname  –m  –l  newname  oldname

2.2.4.删除用户- deluser

#语法
deluser <username>
#使用方法
deluser --remove -home user1   #删除用户user1的同时删除用户的工作目录

2.2.5.添加用户组- addgroup

#语法
addgroup <groupname>
#使用方法
addgroup groupname1

2.2.6.删除用户组- delgroup

#语法
delgroup <groupname>
#使用方法
delgroup groupname2

三、Linux进程管理

3.1.进程(process)

程序的一次执行就是一个进程。

程序的两次执行就产生了p1和p2两个进程。

进程的状态标志:

D:    不可中断的静止        

R:    正在执行中

S:    阻塞状态

T:    暂停执行

Z:    不存在但暂时无法消除

<:    高优先级的进程

N:    低优先级的进程

L:    有内存分页分配并锁在内存中

3.2.使用命令查看进程

3.2.1.ps命令

显示进程的动态。

#语法
ps [options]
#常见的用法
ps -elf
ps -aux

3.2.2.top命令

监视进程,通常会全屏显示,而且会随着进程状态的变化不断更新

整个系统的信息也会显示,为查找问题提供了便利

可以显示系统总共有多少CPU和内存资源以及负载平衡等信息。 

3.2.3.pstree命令

将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以init这个基本进程为根,如果有指定使用者id, 则树状图会只显示该使用者所拥有的进程。

参数:
      -a 显示该进程的完整指令及参数, 如果是被记忆体置换出去的进程则会加上括号
      -c 如果有重覆的进程名, 则分开列出

3.3.使用kill命令终止进程

kill [-signal] PID

kill命令向指定的进程发出一个信号signal,

在默认情况下,kill 命令向指定进程发出信号15,正常情下,将杀死那些不捕捉或不忽略这个信号的进程

四、Linux文件系统

4.1.文件和目录相关的命令

pwd  打印当前工作路径

ls  显示指定工作目录下之内容

cd  切换当前工作目录

touch  修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件

cp  复制文件或目录

mv  为文件或目录改名、或将文件或目录移入其它位置

rm  删除一个文件或者目录

cat  连接文件并打印到标准输出设备上

head  查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容

tail  查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件

mkdir  创建目录

rmdir  删除空的目录

详细用法参考:https://www.runoob.com/linux/linux-command-manual.html

4.1.1.flie命令

在Linux文件系统中,文件扩展名不总是被使用或被一致地使用。

如果一个文件没有扩展名,或者文件与其扩展名不符时怎么办呢?

file命令功能用于判定一个文件的类型。file命令一般语法格式为:

file <filename>

其中filename是文件名。命令的输出将显示该文件是二进制文件、文本文件、目录文件、设备文件,还是Linux中其他类型的文件。

linux@ubuntu:~$ file  /usr/games/banner
banner: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, dynamically linked (uses shared libs), stripped
linux@ubuntu:~$ file  Textfile.txt
Textfile.txt: UTF-8 Unicode text

4.1.2.创建链接文件

Linux中有两种类型的链接:

  • 硬链接   是利用Linux中为每个文件分配的物理编号——inode建立链接。因此,硬链接不能跨越文件系统。
  • 软链接(符号链接)是利用文件的路径名建立链接。通常建立软链接使用绝对路径而不是相对路径,以最大限度增加可移植性。

需要注意的是:如果是修改硬链接的目标文件名,链接依然有效;

如果修改软链接的目标文件名,则链接将断开;

对一个已存在的链接文件执行移动或删除操作,有可能导致链接的断开。

假如删除目标文件后,重新创建一个同名文件,软链接将恢复,硬链接不再有效,因为文件的inode已经改变。

4.1.3.ln命令

命令可以用于创建文件的链接文件。ln命令一般语法格式为:

ln [-s] <target_file> <link_file>

其中,选项“-s”表示为创建软链接。在缺省情况下,创建硬链接。参数target_file为目标文件,link_file为链接文件名。

如果链接文件名已经存在但不是目录,将不做链接。目标文件可以是任何一个文件名,也可以是一个目录。

linux@ubuntu:~$ ln  -s  /proc/cpuinfo   mycpuinfo
linux@ubuntu:~$ ls  –l  mycpuinfo 
lrwxrwxrwx  1  wdl  wdl  13  2007-09-22 00:43  mycpuinfo -> /proc/cpuinfo

以上命令为/proc/cpuinfo文件创建了一个软链接文件。使用“ls –l”命令可以查看到新创建的链接文件所指向的目标文件名。

4.2.文件的归档和压缩

4.2.1.概念

归档文件是将一组文件或目录保存在一个文件中。目前,归档工具使用最广泛的tar命令,可以把很多文件(甚至磁带)合并到一个称为tarfile的文件中,通常文件扩展名为.tar。然后,再使用zip、gzip或bzip2等压缩工具进行压缩。

压缩文件也是将一组文件或目录保存一个文件中,并按照某种存储格式保存在磁盘上,所占磁盘空间比其中所有文件总和要少。

归档文件仍是没有经过压缩的,它所使用的磁盘空间仍等于其所有文件的总和。因而,用户可以将归档文件再进行压缩,使其容量更小。

压缩工具解压工具文件扩展名
gzipgunzip.gz
bzip2bunzip2.bz2
zipunzip.zip

gzip是Linux中最流行的压缩工具,具有很好的移植性,可在很多不同架构的系统中使用。

bzip2在性能上优于gzip,提供了最大限度的压缩比率。如果用户需要经常在Linux和微软Windows间交换文件,建议使用zip。

4.2.2.gzip与gunzip命令

与zip明显区别在于只能压缩一个文件,无法将多个文件压缩为一个文件。

gzip命令符号模式的一般语法格式为:

gzip  [ -l | -d | -num ]  filename

其中,filename表示要压缩的文件名,gzip会自动在这个文件名后添加扩展名为.gz,作为压缩文件的文件名。

选项描述
-l

查看压缩文件内的信息,包括文件数、大小、压缩比等参数,并不进行文件解压

-d

将文件解压,功能与gunzip相同

-num

指定压缩比率,num1~9个等级

gunzip命令符号模式的一般语法格式为:

gunzip  [ -f ]  file.gz

其中,选项“-f”用于解压文件时,对覆盖同名文件不做提示。

在执行gzip命令后,它将删除旧的未压缩的文件并只保留已压缩的版本。

以下命令以最大的压缩率对文件file_1进行压缩,生成file_1.gz文件。

linux@ubuntu:~$ gzip  -9  file_1
linux@ubuntu:~$ gzip  -l   file_1.gz	
compressed  uncompressed    ratio    uncompressed_name
   1200                  4896           76.0%       file_1
linux@ubuntu:~$ gunzip    file_1.gz

使用“-l”选项可以查看压缩的相关信息。

最后使用gunzip命令对文件进行了解压。与压缩时相反,file_1.gz文件会被删除,继之生成file_1。

4.2.3.tar命令

tar命令主要用于将若干文件或目录合并为一个文件,以便备份和压缩。

当然,之后出现tar程序的改进版本,可以实现在合并归档的同时进行压缩。

tar命令符号模式的一般语法格式为:

tar  [ -t | -x | -u | -c | -v | -f | -j | -z ]  tarfile  filelist
选项描述
-t显示归档文件中的内容
-x释放归档文件
-u更新归档文件
-c

创建一个新的归档文件

-v

显示归档和释放的过程信息

-f

用户指定归档文件的文件名,否则使用默认名称

-j

tar生成归档,然后由bzip2压缩

-z

tar生成归档,然后由gzip压缩

例:

一,将myExamples/目录下的所有文件全部归档,打包到一个文件中myExamples.tar;

二,将myExamples/目录下的所有文件全部归档,并使用bzip2压缩成一个文件myExamples.tar.bz;

三,将myExamples/目录下的所有文件全部归档,并使用gzip压缩成一个文件myExamples.tar.gz。

linux@ubuntu:~$ tar  –cf   myExamples.tar      myExamples
linux@ubuntu:~$ tar  -cjf   myExamples.tar.bz   myExamples
linux@ubuntu:~$ tar  -czf  myExamples.tar.gz    myExamples
linux@ubuntu:~$ ls   -lh   myExamples.tar* 
-rw-r--r-- 1  wdl  wdl  9.3M  2007-09-23 00:42  myExamples.tar
-rw-r--r-- 1  wdl  wdl  8.6M  2007-09-23 00:43  myExamples.tar.bz
-rw-r--r-- 1  wdl  wdl  8.5M  2007-09-23 00:44  myExamples.tar.gz

如果想查看一下归档文件中的详细内容,使用类似以下命令:

linux@ubuntu~$ tar  –tvf   myExamples.tar.gz

使用以下命令完成tar文件的释放。其中,“ tar -xjf ”和“ tar –xzf ”等效与先解压缩后释放tar文件。

linux@ubuntu:~$ tar  –xvf    myExamples.tar
linux@ubuntu:~$ tar  -xvjf   myExamples.tar.bz
linux@ubuntu:~$ tar  -xvzf   myExamples.tar.gz

五、Linux网络配置管理

5.1.网络配置基础

用户既可以通过命令行的方式,也可以通过友好的图形界面,轻松完成网络配置。

实现Linux网络配置的唯一目标就是修改系统中众多的网络配置文件,如/etc/interfaces、/etc/hosts,/etc/resolv.conf 等等。

通常,用户可能使用普通以太网卡、无线网卡、调制解调器等不同类型的设备接入网络。

不同类型的网络设备在主机中被映射为相应的网络接口,比如以太网卡映射为eth,无线网卡映射为wlan。有时,用户还可能同时使用多个网络设备,就会出现eth0、eth1…,或wlan0、wlan1…的情况。

那么,如何标识每个连接到Internet的网络接口呢?

解决办法是:为每个网络接口分配一个全世界范围内惟一的32bit的标识符。这个标识符就是IP(Internet Protocol)地址。

5.2.配置IP地址

IP地址包括三部分:Internet网络号(Net-ID)、子网号(Subnet-ID)和主机号(Host-ID)。

三级IP地址net-idsubnet-idhost-id
子网掩码1111,1111,1111,11111111,11110000,0000

可以这样解释:一个IP地址唯一标识了,处在某个互联网中的,某个子网的,某个网络接口。

根据Internet网络号的字段长度(1,2,3字节长),IP地址区分为A类、B类、C类。三类IP地址的掩码如下所示。

  • A类地址的默认子网掩码是255.0.0.0,或0xFF000000;
  • B类地址的默认子网掩码是255.255.0.0,或0xFFFF0000;
  • C类地址的默认子网掩码是255.255.255.0,或0xFFFFFF00;

IP网络中通常用最小的IP地址标识网络本身,将最大的IP地址作为该网络的广播地址,其余所有IP地址都分配给网络中的主机。

然而,局域网中的主机并不能直接访问Internet,需要通过一个作为代理的网关或网络地址转换服务(NAT)才能访问Internet。

通常将IP地址的第一个或最后一个留给该网络的Internet网关。

接入网络的计算机主机依靠IP地址,唯一地标识其在网络中的身份,因此为主机配置IP地址是接入网络的关键。配置IP地址的方法有两种:

  • 配置静态IP:在主机进入网络之前,事先为主机设置固定  的IP地址;
  • 配置动态IP:选择DHCP网络服务,在主机进入网络之后,动态随机获取IP地址。

5.3.网络相关命令

5.3.1.ifconfig命令

ifconfig是GNU/Linux中配置网卡的基本命令,包含在net-tools软件包中。

它可用于显示或设置网卡的配置,如IP地址、子网掩码、最大分组传输数、IO端口等,还可以启动或禁用网卡。

ifconfig命令有以下两种格式:

ifconfig  [interface]
ifconfig  interface [aftype] option | address…

ifconfig的第一种格式用于查看当前系统的网络配置情况;第二种格式用于配置网卡,包括添加、删除网卡,以及绑定多个IP地址等。

从下面的运行结果可以看出,主机有两个接口eth0、lo。lo代表主机本身,也称回送接口(Loopback),其IP地址约定为127.0.0.1。

如果主机安装了第二块、第三块网卡,则有eth1,eth2标识。常见的接口类型还有以下几种(N表示接口号):

  • pppN表示调制解调设备
  • wlanN表示无线网卡
  • trN表示令牌环网卡

如果只是关心某个网络设备,可以在ifconfig后面加上接口名称,则只显示该设备的相关信息,例如:

linux@ubuntu:~$ ifconfig   eth0

假设主机现有的IP地址为192.168.1.200,需要为其重新分配IP地址192.168.1.199,即。使用ifconfig命令设置主机的第一块网卡(eth0)的IP地址。

linux@ubuntu:~$ sudo  ifconfig  eth0 192.168.1.199   netmask 255.255.255.0   
linux@ubuntu:~$ ifconfig   eth0
eth0		Link encap: Ethernet   HWaddr 00:0C:29:7E:77:96
		inet addr:192.168.182.128   Bcast:192.168.182.255   Mask:255.255.255.0
		inet6 addr: fe80::20c:29ff:fe7e:7796/64   Scope:Link
		UP BROADCAST RUNNING MULTICAST   MTU:1500   Metric:1
		RX packets:914   errors:0   dropped:0   overruns:0   frame:0
		TX packets:870   errors:0   dropped:0   overruns:0   carrier:0
		collisions:0   txqueuelen:1000
		RX bytes:423597 (413.6 KiB)   TX bytes:253856 (247.9 KiB)
		Interrupt:17   Base address:0x1400

5.3.2.配置动态IP地址

在大型网络中,由于存在许多的移动计算机系统,随时都可能进入网络,在每次更换网络时,就不得不重新配置网络信息。

如果计算机在网络里能够自动获取IP地址、子网掩码、路由表、DNS服务器地址等网络信息,具有动态配置IP的能力,就可以大大简化客户端的网络配置难度。

动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)可以实现动态分配IP资源。

只要在局域网中架设有DHCP服务器,在Ubuntu Linux中为主机配置DHCP客户端是非常容易的。

需要说明的是,通常普通以太网卡和无线网卡可以配置动态IP,而调制解调器等网络设备不能配置动态IP。

#使用动态主机配置协议动态的配置网络接口的网络参数,也支持BOOTP协议
linux@ubuntu:~$ dhclient

5.3.3.动态IP的获取过程

可比作一个“租赁”过程。DHCP服务器好比是IP地址的出租方,用户主机(即DHCP客户端)好比是IP地址的临时租用者。 

如果将用户主机设置为DHCP客户端之后,手动启动网络服务,就可以从执行结果中看出获取动态IP的过程。

执行过程中包括以下四个阶段:

  1. 客户端寻找DHCP服务器(DHCPDISCOVER):客户端广播申请动态IP的请求;
  2. 服务器提供可分配的IP地址(DHCPOFFER):所有接收到请求的DHCP服务器都将向客户端提供一个IP地址;
  3. 客户端接受IP地址租借(DHCPREQUEST):客户端从多个IP选择中挑选一个,通知DHCP服务器,并标识出所选中的服务器;
  4. 服务器确认租借IP(DHCPACK):被选中的DHCP服务器最后发出一个确认信息,包含IP地址、子网掩码、默认网关、DNS服务器和租借期(客户端使用这个IP的这段时间,称为租借期)。

最终客户端临时“租借”的IP地址为192.168.1.200。

wdl@ubuntuwdl:~$ sudo  /etc/init.d/networking   restart
Internet Systems Consortium DHCP Client V3.0.4
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/eth0/00:0c:29:7e:77:96
Sending on LPF/eth0/00:0c:29:7e:77:96
Sending on Socket/fallback
DHCPDISCOVER   on   eth0   to   255.255.255.255   port 67 interval 7
DHCPOFFER       from   192.168.182.254
DHCPREQUEST    on eth0 to 255.255.255.255 port 67
DHCPACK          from 192.168.182.254
bound to           192.168.182.129        -- renewal  in  808 seconds.

5.3.4.IP地址存放位置

无论是配置静态IP还是动态IP,计算机系统将IP信息保存放在什么地方?

答案是配置文件“/etc/network/interfaces”。

在Ubuntu Linux启动时就能获得IP地址的配置信息。若是配置静态IP,就从配置文件中读取IP地址参数,直接配置网络接口设备;若是配置动态IP,就通知主机通过DHCP协议获取网络配置。

以下分别为配置静态IP和动态IP时,配置文件“/etc/network/interfaces”的实例。

5.3.5.DNS客户端配置文件

DNS就是把域名和IP地址联系在一起的服务,有了DNS服务器,就不用输入IP地址来访问一个网站,可以通过输入网址访问,DNS协议运行在UDP协议之上。

Ubuntu Linux将DNS服务器地址保存在配置文件/etc/resolv.conf中。

依然延续上面的例子,添加DNS服务器IP地址后,查看配置文件/etc/hosts,如下所示。

linux@ubuntu:~$ cat   /etc/resolv.conf
nameserver  172.16.28.1
nameserver  202.204.58.2
nameserver  192.168.182.2

在配置文件/etc/rc.local中,键入:

echo “namesever 192.168.1.1” >> /etc/resolv.conf
exit 0

这样每次启动都会自动配置DNS为192.168.1.1。

5.3.6.ping命令

ping(Packet Internet Groper)命令可能是最有名气的网络连接检测工具。

它使用了Internet控制报文协议(ICMP)回送请求与回送应答报文,测试两个主机之间的连通性。

该命令的一般格式如下所示。ping命令测试的远程主机,既可用域名,也可用IP地址标识。

ping  [DomainName | IP-address]

可以使用该命令来判断主机与远程主机是否可达,或之间的网络是否拥塞。min/avg/max/mdev是ping命令的完成测试后的统计结果,分别表示最小响应时间/平均响应时间/最大响应时间/响应时间方差。这些指标用于反应网络的联通程度。

linux@ubuntu:~$ ping  www.ustb.edu.cn
PING www.ustb.edu.cn (202.204.60.12) 56(84) bytes of data.64 bytes from www.ustb.edu.cn (202.204.60.12): icmp_seq=1 ttl=128 time=0.539 ms
64 bytes from www.ustb.edu.cn (202.204.60.12): icmp_seq=2 ttl=128 time=0.606 ms
64 bytes from www.ustb.edu.cn (202.204.60.12): icmp_seq=3 ttl=128 time=0.724 ms
64 bytes from www.ustb.edu.cn (202.204.60.12): icmp_seq=6 ttl=128 time=0.560 ms
….
--- www.ustb.edu.cn ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 6015ms
rtt  min/avg/max/mdev = 0.427/0.554/0.724/0.090 ms

ping命令执行时,会持续不断地向目的主机发送ICMP包。在得到对方的应答后,显示每次连接的统计数据,直到用Ctrl+C组合键中断执行。但是,目前很多主机通过设置防火墙,对ping命令不予应答。在这种情况下,ping命令由于不停地发送测试数据包,又得不到返回任何结果,而致使ping命令僵死。不过,使用-c参数设置发送测试数据包的次数,以便在有限时间内完成测试。

linux@ubuntu:~$ ping  -c 3   www.google.com
PING www-china.l.google.com (66.249.89.99) 56(84) bytes of data.
--- www-china.l.google.com ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2000ms

5.3.7.管理DNS服务器地址

DNS域名解析可以在更大范围的计算机网络、Internet,提供域名到IP地址的转换。

网络中的每台计算机都是一个DNS客户端,向DNS服务器提交域名解析的请求;

DNS服务器完成域名到IP地址的映射。因此DNS客户端至少有一个DNS服务器地址,作为命名解析的开端。

5.3.8.nslookup命令

使用nslookup命令可以查看当前系统所使用的DNS服务器的IP地址

#DNS客户端向服务器发送域名(www.google.com)的解析请求,服务器把域名 www.google.com 解析为了IP
#地址:66.249.89.99
linux@ubuntu:~$ nslookup   www.google.com
Server:   192.168.182.2
Address:   192.168.182.2#53
Non-authoritative answer:
www.google.com canonical name = www.l.google.com.
www.l.google.com canonical name = www-china.l.google.com.
Name: www-china.l.google.com
Address: 66.249.89.99

服务器192.168.182.2完成了域名解析。

Server表示提供服务的DNS服务器,Address中的#53表示TCP/UDP命名服务的端口号。

若所有的DNS服务器都访问失败,则出现如下的执行结果。

linux@ubuntu:~$ nslookup   www.google.com
;;   connection timed out;   no servers could be reached

总结

以上就是Linux常用的命令,本文系统介绍了linux在基本系统维护、用户管理、进程管理、文件系统和网络配置中,常用的命令与操作,

如有不足之处欢迎补充与指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DUANDAUNNN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值