分类目录归档:Ubuntu

Ubuntu下使用Vi是方向键变乱码 退格键不能使用的解决方法

一、编辑/etc/vim/vimrc.tiny

由于/etc/vim/vimrc.tiny的拥有者是root用户,所以要在root的权限下对这个文件进行修改。很简单,这个文件里面的倒数第二句话是“set compatible”,

将“compatible”改成“nocompatible”非兼容模式就可以解决方向键变ABCD的问题了。接下来要解决Backspace键的问题也很简单,在刚才那句话后面再加一句:

  1. set backspace=2

就可以解决问题了。这个时候,无论对于哪个用户,使用vi都能很方便的按照我们的习惯去编辑文件了。

二、安装vim full版本

由于Ubuntu预安装的是tiny版本,所以会导致我们在使用上的产生上述的不便。但是,我们安装了vim的full版本之后,键盘的所有键在vi下就很正常了。

首先,要先卸掉旧版的vi,输入以下命令:

  1. sudo apt-get remove vim-common

然后安装full版的vim,输入命令:

  1. sudo apt-get install vim

这样安装好了之后,我们在编辑文件的时候依然是使用“vi”命令来启动新装的vim,但是操作起来比tiny更加方便了。

三、添加”.vimrc”文件

这并不是一个聪明的方法。它是在用户的个人目录下,编辑.vimrc文件(注意文件名是以“.”开头的),添加下面两句语句:

  1. set nocompatible          //以非兼容模式工作
  2. set backspace=2

Ubuntu 能PING IP但不能PING主机域名的解决方法

——————————————————————————-

——————————————————————————-

vi /etc/nsswitch.conf

hosts: files dns

networks: files

改成:

hosts: files dns wins

networks: files

如果不一样的话,就在hosts:原来那行后面加个wins 就行了。

——————————————————————————-

——————————————————————————-

最近碰到了这么一个问题: ping一个域名domain_name的时候提示”ping: unknown host domain_name“,但是ping域名对应的IP地址 (使用host或nslookup获取) 却没有问题。

so-name, real-name && linker-name
Linux共享库 (shared object) 的real-name命名规则为: libname.so.x.y.z。其中x表示主 (Major) 版本号,不同主版本号的库之间是不兼容的;y表示次 (Minor) 版本号,它表示库的增量升级,高的次版本号的库向后兼容 (Backwards Compatible) 低的次版本号的库;z表示发布 (Release) 版本号,表示库的一些修正,性能的改进等。

共享库的so-name是在real-name的基础上去掉次版本号和发布版本号。so-name文件一般都是一个指向对应的real-name文件的一个软链接。

共享库的linker-name是应用程序链接的时候的搜索名,通常是so-name的一个软链接。

运行ldconfig时,系统会更新所有的软链接,使它们指向最新版本的共享库。

libc && glibc
标准C库 (the standard C library) 实现了ISO C标准,包含了一套所有C程序都可以使用的函数。libc通常被用作the standard C library的简写。

libc也被用作一个标准C库的实现的名字。在19世纪90年代早期,Linux内核的开发者把glibc 1.x独立了出来 (forked glibc),并把它称为”Linux libc”,也简称为libc。Linux libc主要发布了2, 3, 4, 5四个版本。

1997年,FSF发布了glibc 2.0,它对POSIX标准有更好的支持,并且代码的可移植性更好。因此,现在所有主要的Linux发行版都是使用glibc

Linux libc的最后的so-name是libc.so.5。因此后来的glibc 2.x使用的so-name是libc.so.6。

网络信息服务(Network Information Service, NIS)
NIS也曾被称YP (Yellow Pages),它是一个基于RPC (Remote Procedure Call Protocol) 的客户机/服务器系统,允许一个NIS域中的一组机器共享一系列配置文件。在NIS环境中,有主服务器、从服务器和客户机三种类型的主机。服务器的作用是充当主机配置信息的中央数据库。主服务器上保存着这些信息的权威副本,而从服务器则是保存这些信息的冗余副本。客户机依赖于服务器向它们提供这些信息。

DNS Resolver
一个域名 (Domain Name) 由一个或多个标签 (label) 组成,标签之间用点隔开。最右端的标签代表顶级域 (top-level domain,TLD)。DNS (Domain Name System, 域名解析系统) 是互联网的一项核心服务,它是一个分布式层次化的系统,能够将域名和IP地址相互映射。DNS通过允许一个域名服务器把它的一部分域名解析服务委托给子服务器而实现了一种层次化的域名空间。DNS由解析器 (Resolver) 和域名服务器两部分组成。

DNS系统的客户端被称为DNS解析器 (DNS Resolver)。在Linux系统上,解析器并不是特指某个应用程序,而是指解析器库。这个库包含了标准C库中的一系列函数,最主要的两个函数是gethostbyname()gethostbyaddr()。可以对DNS解析器进行配置,使得它们查找/etc/hosts中的信息、查询DNS服务器或者使用网络信息服务系统的配置信息。libc使用/etc/host.conf配置文件;glibc使用/etc/nsswitch.conf配置文件。

/etc/host.conf中主要的选项有:(1) order指定域名解析的查找顺序,其中hosts表示/etc/hosts配置文件;bind表示查询DNS服务器;nis表示查询NIS系统的配置信息。(2) multi [on|off]指定/etc/hosts中的主机是否可以有多个IP地址。

/etc/nsswitch.conf是名字服务开关 (name service switch) 的配置文件,其中对应DNS解析器的数据库名字是hosts:。它的主要选项有:(1) dns表示使用DNS解析地址 (2) files表示使用/etc/hosts/etc/network配置文件 (3) nis或nisplus。

DNS服务器在/etc/resolv.conf中配置。

ping
ping命令用来测试网络上的一台主机是否能够连通。ping命令向目标主机发送ICMP (Internet Control Message Protocol) 回声请求消息然后等待目标主机的回应,与此同时计算消息从源主机到目标主机的往返时间 (round-trip time,RTT)。

问题解决
首先,能够ping域名对应的IP,显然不可能是服务器禁止了ping服务 (使用防火墙等)。host和nslookup能够返回域名对应的IP地址,那么/etc/resolv.conf中的DNS设置也是没有问题的。

事实上,使用ping命令处理一个域名的时候,是使用gethostbyname()函数返回对应的主机信息 (参加源代码); 而host和nslookup则是直接使用/etc/resolv.conf中的DNS服务器。因此,需要查看/etc/nsswitch.conf中的hosts:数据库是否打开了dns选项。

Ubuntu 的网络配置文件

Ubuntu 的网络配置文件主要有以下几个:IP地址配置文件、主机名称配置文件、DNS配置文件。

IP地址配置文件: /etc/network/interfaces
打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载.

1. 以DHCP方式配置网卡

编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces

并用下面的行来替换有关eth0的行:
# The primary network interface – use DHCP to find our address
auto eth0
iface eth0 inet dhcp

用下面的命令使网络设置生效:
sudo /etc/init.d/networking     restart
也可以在命令行下直接输入下面的命令来获取地址
sudo dhclient eth0

2. 为网卡配置静态IP地址

编辑文件/etc/network/interfaces:

sudo vi /etc/network/interfaces

并用下面的行来替换有关eth0的行:# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.3.90
gateway 192.168.3.1
netmask 255.255.255.0

将上面的ip地址等信息换成你自己就可以了.用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart

3. 设定第二个IP地址(虚拟IP地址)

编辑文件/etc/network/interfaces: sudo vi /etc/network/interfaces

在该文件中添加如下的行:
auto eth0:1
iface eth0:1 inet static
address 192.168.1.60
netmask 255.255.255.0
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x

根据你的情况填上所有诸如address,netmask,network,broadcast和gateways等信息.
用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart

主机名称配置文件(/bin/hostname)

使用下面的命令来查看当前主机的主机名称:

sudo /bin/hostname

使用下面的命令来设置当前主机的主机名称:

sudo /bin/hostname newname

系统启动时,它会从/etc/hostname来读取主机的名称.

DNS配置文件

首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的IP地址,这是简单使用本机的静态查询.

要访问DNS 服务器来进行查询,需要设置/etc/resolv.conf文件.
sudo vi /etc/resolv.conf

nameserver 202.96.128.68

nameserver 61.144.56.101

nameserver 192.168.8.220

/重新设置网络,以启用新设置

sudo /etc/init.d/networking restart