2014年7月

我在Linux下使用拨号连接上网,频繁的拨号断线造成DNS的问题。我如何在Linux/Unix发行版下使用shell命令清除DNS缓存?

在MS-Windows下,你可以使用ipconfig命令来清除dns缓存。然而,Linux和Unix提供了不同的方法来清除缓存。Linux可以运行 nscd 或者 BIND 或者 dnsmasq 作为名称服务缓存守护进程。大型或者工作组服务器可能使用BIND或者dnsmasq作为专用缓存服务器来加速查询。

如何: 清除 nscd dns 缓存

Nscd 会缓存libc发起的名称服务的请求。如果把检索NSS数据看做很慢,那么nscd能够显著加快连续访问同一数据的速度,并能提高整个系统的性能。只需重启nscd即可刷新缓存:

$ sudo /etc/init.d/nscd restart

# service nscd restart

# service nscd reload

这个守护进程给最常用的名称服务请求提供了高速缓存。默认的配置文件/etc/nscd.conf,其决定了高速缓存守护进程的行为。

清除 dnsmasq dns 缓存

dnsmasq的是一个轻量级的DNS、TFTP和DHCP服务器。它的目的是给局域网提供配对的DNS和DHCP服务。 dnsmasq接受DNS查询,并从一个小的本地高速缓存应答它们或将其转发到一个真正的递归DNS服务器。该软件也被安装在很多便宜的路由器上来缓存DNS查询。只需重新启动dnsmasq的服务来清除DNS缓存:

$ sudo /etc/init.d/dnsmasq restart

或者

# service dnsmasq restart

清除BIND缓存服务器的dns缓存

一台BIND缓存服务器从另一台服务器(区域主)响应主机的查询而获得信息,然后保存(缓存)数据到本地。您所要做的就是重启BIND以清除其缓存:

# /etc/init.d/named restart

你也可以使用下面rndc命令来清除所有的缓存:

# rndc restart

或者

# rndc exec

BIND v9.3.0 及其以上版本支持一个清除一个特定域名的所有记录缓存的命令:rndc flushname。本例中刷新cyberciti.biz相关域的所有记录:

# rndc flushname cyberciti.biz

同样也可以清除BIND View。比如,LAN和WAN的View可以用下面的命令清除:

# rndc flush lan
# rndc flush wan

给 Mac OS X Unix 用户的提示

Mac下用root用户输入下面的命令:

# dscacheutil -flushcache

或者

$ sudo dscacheutil -flushcache

如果你正在使用OSX 10.5 或者更早的版本,尝试使用下面的命令:

lookupd -flushcache

关于 /etc/hosts 文件的一个提示

/etc/hosts用作静态查询主机的表格。你需要在类Unix操作系统下依据你的要求移除并且/或者更新它:

# vi /etc/hosts

示例输出:

127.0.0.1   localhost
127.0.1.1   wks01.WAG160N   wks01
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.37.34.2     build
192.168.1.10    nas01
192.168.1.11    nas02
192.168.1.12    nas03
#192.168.2.50   nfs2.nixcraft.net.in nfs2
#192.168.2.51   nfs1.nixcraft.net.in nfs1
172.168.232.50  nfs1.nixcraft.net.in nfs1
172.168.232.51  nfs2.nixcraft.net.in nfs2
192.168.1.101   vm01

参考

相关: 在Windows Vista / XP中用ipconfig 命令清除 DNS 缓存


via: http://www.cyberciti.biz/faq/rhel-debian-ubuntu-flush-clear-dns-cache/

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

lsblk(列出块设备)命令用于列出所有可用块设备的信息,但是,它不会列出RAM盘的信息。块设备有硬盘,闪存盘,CD-ROM等等。

如何安装lsblk

lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。这个包带了几个其它工具,如dmesg。要安装lsblk,请在此处下载util-linux包。

Fedora中安装lsblk

Fedora用户可以通过以下方法来安装该包:

$ sudo yum install util-linux-ng

该命令有几个选项:

默认选项

lsblk命令默认情况下将以树状列出所有块设备。打开终端,并输入以下命令:

$ lsblk

输出如下:

lsblk default

7个栏目名称如下:

NAME : 这是块设备名。

MAJ:MIN : 本栏显示主要和次要设备号。

RM : 本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。

SIZE : 本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。

RO : 该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。

TYPE :本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。(LCTT译注,此处sr0的RO项没有标记为1,可能存在一些错误?)

MOUNTPOINT : 本栏指出设备挂载的挂载点。

列出所有设备

默认选项不会列出所有空设备。要查看这些空设备,请使用以下命令:

$ lsblk -a

该选项将列出所有设备,包括空设备在内。

lsblk bytes sda

列出设备权限和属主

lsblk命令也可以用于列出一个特定设备的拥有关系,同时也可以列出组和模式。可以通过以下命令来获取这些信息:

$ lsblk -m

lsblk  permissions

列出指定设备

该命令也可以只获取指定设备的信息。这可以通过在提供给lsblk命令的选项后指定设备名来实现。例如,你可能对了解以字节显示你的磁盘驱动器大小比较感兴趣,那么你可以通过运行以下命令来实现:

$ lsblk -b /dev/sda

或者,以下命令等同:

$ lsblk --bytes /dev/sda

以列表形式列出不带头的设备

你也可以组合几个选项来获取指定的输出。例如,你也许想要以列表格式列出设备,而不是默认的树状格式。你可能也对移除不同栏目名称的标题感兴趣。可以将两个不同的选项组合,以获得期望的输出,命令如下:

$ lsblk -nl

或者,你可以使用下面的长选项,它们也能给出相同的输出。

$ lsblk --noheadings --list

lsblk no header and list

列出SCSI设备

要获取SCSI设备的列表,你只能使用-S选项。该选项是大写字母S,不能和-s选项混淆,该选项是用来以颠倒的顺序打印依赖的。

$ lsblk -S

lsblk列出SCSI设备,而-s是逆序选项(LCTT译注:将设备和分区的组织关系逆转过来显示),其将给出如下输出。输入命令:

$ lsblk -s

或者

$ lsblk --inverse

你可以使用lsblk来获取关于你的块设备的更多信息,自己把它试着显示出来吧!


via: http://linoxide.com/linux-command/linux-lsblk-command/

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Linux基金会和他的合作伙伴本周发布了Automotive Grade Linux的第一个版本,这是一个在连网汽车内部使用的开源平台。

随着本周 Automotive Grade Linux(AGL)的第一个版本的发布,这个在物联网时代专为汽车定制的Linux发行版将转变为一个新的生态系统。

AGL是由Linux基金会发起的合作项目,Linux基金会汇集了来自汽车行业,通信,计算硬件,学术界和其他领域的合作伙伴。AGL的第一个版本于6月30号发布在网上并且在可免费下载,这个开源操作系统基于Tizen IVI。Tizen IVI是一个基于Linux的平台,它被用于为广泛的设备提供操作系统解决方案,从智能手机,到电视,汽车,笔记本电脑。

在第一个版本中,AGL提供了一系列的功能和为汽车(或其他车辆)部署定制的应用程序,包括:

  • 主屏幕
  • 仪表盘
  • 谷歌地图
  • 暖通空调
  • 媒体回放
  • 新闻阅读器
  • 音响控制
  • 蓝牙手机
  • 智能设备连接集成

Linux基金会和他的参与AGL项目的合作伙伴希望这个解决方案将帮助确保未来“连网汽车”使用开源软件以提供下一代娱乐,导航和其他车内使用的工具。“公开和合作是促进一个公共的,标准的汽车平台发展的关键,以便这个产业可以更快速地实现供连网汽车使用的愿望。”Linux基金会的汽车总经理Dan Cauchy这样说。

Cauchy补充道,Linux基金会期望AGL是一个良好的开端,其合作者希望在以后的版本中能加入“一些额外的功能和特点。”

下载和安装测试

下载

可以从此下载镜像:http://content.linuxfoundation.org/auto/downloads/images/

支持在PC上测试,也提供了Vmware镜像。

安装在X86上

创建一个USB启动盘

  1. 下载GPartd Live 镜像的压缩文件:http://gparted.sourceforge.net/download.php
  2. 使用FAT32文件系统格式化一个最少8GB的U盘。
  3. 解压 GPartd Live镜像的压缩包,并复制全部内容到U盘。保持完整的目录格式,比如你可以确认GPL这个文件是不是在U盘的根目录。
  4. 把U盘变成可启动的,根据你使用的系统不同而不同: a) Linux: 执行U盘里 utils/linux 目录下的 makeboot.sh 。 b) Windows: 执行U盘里 utils\win32 目录下的 makeboot.bat 。
  5. 按 脚本提示执行。
  6. 复制 AGL 演示镜像到U盘。

安装到机器上

注意:这会破坏你的机器上的所有数据!所以请确保机器上的硬盘上的数据是无用的。

  1. 使用刚刚制作好的 GPartd U盘启动系统。
  2. 默认运行 GPartd (所有选项直接回车确认即可)
  3. 打开一个终端,并复制镜像内容到机器的硬盘: gunzip -c agl-demo\_1-0.img.gz | dd of=/dev/sda bs=16M
  4. 关闭终端。
  5. 在 GPartd 窗口,刷新设备。
  6. 将 /dev/sda3 的大小扩展到整个硬盘的可用空间。
  7. 关机。
  8. 拔下U盘。
  9. 重启!

创建VMware虚拟机

在 64位Windows 7和32位Windows XP上的 VMware Player 5 测试通过。

  1. 下载 VMWare Player: http://www.vmware.com/products/player
  2. 解压缩 AGL VMWare image
  3. 在 VMware 中增加新的虚拟机:
1. 选择“我将稍后安装操作系统”
2. 使用 'Linux' -> 'Fedora'
3. 给个名字,比如: tizen-ivi-2.0
4. 创建一个新的磁盘,不过这个磁盘我们稍后会删除并重建一个新的 (将<image.vmdk> 作为 IDE(0:0) 设备添加)
5. 创建好虚拟机之后,然后“编辑虚拟机设置”
6. (可选)取消CD/DVD的“启动后连接”的选项(除非你的宿主机上有这个设备)
7. (可选)取消打印机的“启动后连接”的选项
8. 删除虚拟机当前的硬盘
9. 添加一个新的硬盘
10. 选择“使用已有的虚拟磁盘”,使用那个解压缩得到文件
11. 当第一次启动虚拟机时,如果询问你是否要升级当前格式时,选择“保持现在的格式”
  1. 运行:
1. 启动虚拟机
2. 系统启动后显示一个黑屏,在桌面上任何地方右键点击并打开一个终端
3. 运行如下命令 ./start\_demo.sh 这会调整屏幕分辨率,打开声音,启动node.js引擎,并最终显示界面。

更多的演示截图

请参看我们之前的一篇文章:http://linux.cn/article-3324-1.html

via: http://thevarguy.com/open-source-application-software-companies/070114/automotive-grade-linux-released-open-source-cars

译者:linuhap 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

在现在这个世道中,保障基于Linux的系统的安全是十分重要的。但是,你得知道怎么干。一个简单反恶意程序软件是远远不够的,你需要采取其它措施来协同工作。那么试试下面这些手段吧。

1. 使用SELinux

SELinux是用来对Linux进行安全加固的,有了它,用户和管理员们就可以对访问控制进行更多控制。SELinux为访问控制添加了更细的颗粒度控制。与仅可以指定谁可以读、写或执行一个文件的权限不同的是,SELinux可以让你指定谁可以删除链接、只能追加、移动一个文件之类的更多控制。(LCTT译注:虽然NSA也给SELinux贡献过很多代码,但是目前尚无证据证明SELinux有潜在后门)

2. 订阅漏洞警报服务

安全缺陷不一定是在你的操作系统上。事实上,漏洞多见于安装的应用程序之中。为了避免这个问题的发生,你必须保持你的应用程序更新到最新版本。此外,订阅漏洞警报服务,如SecurityFocus

3. 禁用不用的服务和应用

通常来讲,用户大多数时候都用不到他们系统上的服务和应用的一半。然而,这些服务和应用还是会运行,这会招来攻击者。因而,最好是把这些不用的服务停掉。(LCTT译注:或者干脆不安装那些用不到的服务,这样根本就不用关注它们是否有安全漏洞和该升级了。)

4. 检查系统日志

你的系统日志告诉你在系统上发生了什么活动,包括攻击者是否成功进入或试着访问系统。时刻保持警惕,这是你第一条防线,而经常性地监控系统日志就是为了守好这道防线。

5. 考虑使用端口试探

设置端口试探(Port knocking)是建立服务器安全连接的好方法。一般做法是发生特定的包给服务器,以触发服务器的回应/连接(打开防火墙)。端口敲门对于那些有开放端口的系统是一个很好的防护措施。

下面是来自 http://www.portknocking.org/ 的示意图:

6. 使用Iptables

Iptables是什么?这是一个应用框架,它允许用户自己为系统建立一个强大的防火墙。因此,要提升安全防护能力,就要学习怎样一个好的防火墙以及怎样使用Iptables框架。

7. 默认拒绝所有

防火墙有两种思路:一个是允许每一点通信,另一个是拒绝所有访问,提示你是否许可。第二种更好一些。你应该只允许那些重要的通信进入。(LCTT译注:即默认许可策略和默认禁止策略,前者你需要指定哪些应该禁止,除此之外统统放行;后者你需要指定哪些可以放行,除此之外全部禁止。)

8. 使用入侵检测系统

入侵检测系统,或者叫IDS,允许你更好地管理系统上的通信和受到的攻击。Snort是目前公认的Linux上的最好的IDS。

9. 使用全盘加密

加密的数据更难窃取,有时候根本不可能被窃取,这就是你应该对整个驱动器加密的原因。采用这种方式后,如果有某个人进入到你的系统,那么他看到这些加密的数据后,就有得头痛了。根据一些报告,大多数数据丢失源于机器被盗。


via: http://www.efytimes.com/e1/fullnews.asp?edid=141368

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

我的 .vimrc文件

"********************************************************
"                   一般性配置                          *
"********************************************************

"关闭vim一致性原则
set nocompatible

"显示行号
set number

"设置在编辑过程中右下角显示光标的行列信息
set ruler

"在状态栏显示正在输入的命令
set showcmd

"设置历史记录条数
set history=1000

"设置取消备份 禁止临时文件的生成
set nobackup
set noswapfile

"设置匹配模式
set showmatch

"设置C/C++方式自动对齐
set autoindent
set cindent

"开启语法高亮功能
syntax enable
syntax on

"指定配色方案为256色
set t_Co=256

"设置搜索时忽略大小写
set ignorecase

"配置backspace的工作方式
set backspace=indent,eol,start

"设置在vim中可以使用鼠标
set mouse=a

"设置tab宽度
set tabstop=4

"设置自动对齐空格数
set shiftwidth=4

"设置退格键时可以删除4个空格
set smarttab
set softtabstop=4

"将tab键自动转换为空格
set expandtab

"设置编码方式
set encoding=utf-8

"自动判断编码时 依次尝试以下编码
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

"检测文件类型
filetype on

"针对不同的文件采取不同的缩进方式
filetype indent on

"允许插件
filetype plugin on

"启动智能补全
filetype plugin indent on


"*********************************************************
"                  vundle 配置                           *
"*********************************************************

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
 
" let Vundle manage Vundle
Bundle 'gmarik/vundle'
  
" My Bundles here:

Bundle 'tpope/vim-fugitive'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
Bundle 'tpope/vim-rails.git'
Bundle 'taglist.vim'
Bundle 'The-NERD-tree'
Bundle 'Syntastic'
Bundle 'L9'
Bundle 'FuzzyFinder'
Bundle 'Lokaltog/vim-powerline'
Bundle 'Valloric/YouCompleteMe' 
   

"*****************************************************
"                   taglist配置                      *
"*****************************************************

"不显示"press F1 to display help"
let Tlist_Compact_Format=1

"窗口在左侧显示
let Tlist_Use_Right_Window=1

"只显示当前文件的tags
let Tlist_Show_One_File=1  

"高亮显示
let Tlist_Auto_Highlight_tag=1

"随文件自动更新
let Tlist_Auto_Update=1

"设置宽度
let Tlist_WinWidth=30       

"taglist窗口是最后一个窗口,则退出vim
let Tlist_Exit_OnlyWindow=1 

"单击跳转
let Tlist_Use_SingClick=1

"打开关闭快捷键
nnoremap <silent> <F8> :TlistToggle<CR>




"********************************************************
"                      NERD_Tree 配置                   *
"********************************************************

"显示增强
let NERDChristmasTree=1

"自动调整焦点
let NERDTreeAutoCenter=1

"鼠标模式:目录单击,文件双击
let NERDTreeMouseMode=2

"打开文件后自动关闭
let NERDTreeQuitOnOpen=1

"显示文件
let NERDTreeShowFiles=1

"显示隐藏文件
let NERDTreeShowHidden=1

"高亮显示当前文件或目录
let NERDTreeHightCursorline=1

"显示行号
let NERDTreeShowLineNumbers=1

"窗口位置
let NERDTreeWinPos='left'

"窗口宽度
let NERDTreeWinSize=31

"不显示'Bookmarks' label 'Press ? for help'
let NERDTreeMinimalUI=1

"快捷键
nnoremap <silent> <F4> :NERDTreeToggle<CR>



"*****************************************************
"           YouCompleteMe配置                        *
"*****************************************************

"leader映射为逗号“,”
let mapleader = ","  

"配置默认的ycm_extra_conf.py
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' 
 
"按,jd 会跳转到定义
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>   

"打开vim时不再询问是否加载ycm_extra_conf.py配置
let g:ycm_confirm_extra_conf=0   

"使用ctags生成的tags文件
let g:ycm_collect_identifiers_from_tag_files = 1 


"*****************************************************
"           Syntastic配置                            *
"*****************************************************


let g:Syntastic_check_on_open=1

效果图

用到的主要插件:

  • vundle(用于插件管理)
  • taglist(显示代码结构)
  • NERD\_Tree(树形目录)
  • YouCompleteMe(智能补全)
  • Syntastic( 语法检查)

学习时间不长,如有问题请指出!感谢!