2009年11月6日

UEX - UltraEdit for Linux 今天正式发布

UltraEdit 是 Windows 下一款流行的老牌文本/HEX 编辑器。最近,UltraEdit 正被移植到 Linux 平台。该移植名为 UEX,意即 UltraEdit for Linux。UEX 具有原生的 Linux 外观,其界面、配置、热键等与 Windows 版并无二致。

UltraEdit  for Linux 版,目前已经正式发布  。

http://www.ultraedit.com/products/uex.html

正式的售价为:49.95美元

PS:想买一个尝尝,有点贵啊,况且在Linux下有很多开源的编辑器也很不错。

  • » 阅读全文...
  • 2009年09月16日

    Linux下dd命令生成一个指定大小的虚拟块设备文件

    虚拟块设备文件更通用的名称是硬盘镜像文件(Hard Disk Image),但不是所有的硬盘镜像文件都是虚拟块设备文件,例如,目前Ghost的GHO格式的镜像文件就不能成为虚拟机中的硬盘。

    Linux的dd命令,可以用于生成虚拟块设备文件。既可以用于创建空镜像文件,也可以用于创建物理硬盘的镜像。

    # dd if=/dev/hda of=/mnt/nebula/hda_dd.image4757130+0 records in4757130+0 records out
    上面这个命令将IDE设备/dev/hda的内容复制到/mnt/nebula/hda_dd.image文件。参数if告诉dd从哪个文件读取数据,参数 of告诉dd读出的数据写入哪个文件中。注意,对于dd来说,输入和输出都是文件,dd做的只是文件拷贝工作,这得益于Unix/Linux下面将设备也抽象为特殊的文件。

    一般来说设备文件有两种,一种是块设备,一种是字符设备。块设备的特点是可以随机读写(Random Access),比如内存、硬盘等。字符设备的特点是顺序读写(Sequential Access),比如鼠标,键盘,麦克风等。

    前面说了如何生成物理硬盘的镜像,如果想生成空镜像文件(本文的主要目的),还需要一个特殊的设备。/dev/zero是Linux提供的一个特殊的字符设备,它的特点是可以永远读该文件,每次读取的结果都是二进制0。下面的命令可以生成一个100M的空镜像文件:

    dd if=/dev/zero of=100M.img bs=1M count=100

    除了前面已经解释的of和if参数,这次又出现了bs和count参数。bs=1M表示每一次读写1M数据,count=100表示读写 100次,这样就指定了生成文件的大小为100M。bs参数还可以进一步细分为ibs和obs两种,为读操作与写操作分别指定不同的Buffer大小。

    这样就生成100M的空镜像文件,问题是,如果要生成1G的虚拟块设备文件,就得占用1G的硬盘空间,而这个镜像文件完全是空的,是不是有一点浪费?好在Linux支持Sparse(稀疏)文件。请看下面的例子

    # dd if=/dev/zero of=1G.img bs=1M seek=1000 count=0

    # ls -l 1G.img
    -rw-r-r- 1 root  root  1048576000 Mar 25 15:32 1G.img
    # du -m 1G.img

    这里用了一个新的命令seek,表示略过1000个Block不写(这里Block按照bs的定义是1M),count=0表示写入0个Block。用ls命令看新生成的文件,大小可以看出是1000M。但是再用du一看,实际占用硬盘大小只有1M。

  • » 阅读全文...
  • 2009年07月22日

    雨林木风的Linux发行版:Ylmf Linux(附下载地址)

    雨林木风以前是制作Windows系统安装光盘的组织,在MS反盗版的作用下,雨林木风已经转战Linux阵营,并在近期推出了基于Fedora 11的、中文友好的Linux发行版:Ylmf Linux!

    关于Ylmf Linux的详细介绍可以看这里:http://www.ylmf.net/read.php?tid=1352508

    下面引用其中的说明:

    Ylmf linux v1.0 版特性说明:
    - 基于 Fedora11 版本 去掉系统多余的软件包,增加驱动与常用应用软件
    - 集成openoffice3.1办公软件(能打开所有ms office 文件)
    - 集成输入法为:ibus 拼音(linux下类似搜狗、谷歌、紫光拼音等的完美替代选择!)
    - 集成默认桌面管理器:KDE(最接近Windows上的使用习惯,满足个人使用便利需求!)
    - 集成全能电影播放机与解码器 (能播放各类电影文件)
    - 集成图形处理软件 GIMP 2.6.16 (包含新的UI)
    - 集成浏览器 Firefox 3.5
    - 集成功能强大的邮件客户端 :evolution
    - 集成轻量级 BT 下载工具: Trasmission Bittorrent
    - 集成腾讯官方 QQ for Linux
    - 桌面已添加常用工具gnome和kde桌面切换脚本
    - 默认完全支持c/c++开发环境
    - 使用最新内核 2.6.29

    两张相关截图:

    下载地址:
    电信地址
     
    电信主下载地址


    电信镜像地址1


    电信镜像地址2


    电信镜像地址3


    电信镜像地址4


    电信镜像地址5

    网通地址

    网通镜像地址1


    网通镜像地址2


    网通镜像地址3

    MD5:
    0A49FE3F1A8B2935DA903152754CA71E 

  • » 阅读全文...
  • 2009年07月6日

    Linux VPS禁止某个IP访问

    今天在查看VPS侦探VPS的SSH登录记录吓了一跳,居然与几个IP连续登录SSH字典猜root密码,我很生气,后果很严重,GFW掉他们,现公布他们的名单:

    62.75.214.93  gera125.server4you.de  德国/德国鬼子

    203.215.252.189  香港特别行政区/无语。。。。

    219.143.200.169  北京市电信 /在党中央还做坏事。。。。

    60.12.193.134  浙江省湖州市网通  /

    c953dc2c.virtua.com.br  201.83.220.44 巴西 /就你最多。。。。

    其中几个还搭建了Nginx的环境,都没做站。

    /etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。

    如果请求访问的主机名或IP不包含在/etc/hosts.allow中,那么tcpd进程就检查/etc/hosts.deny。看请求访问的主机名或IP有没有包含在hosts.deny文件中。如果包含,那么访问就被拒绝;如果既不包含在/etc/hosts.allow中,又不包含在/etc/hosts.deny中,那么此访问也被允许。

    <daemon list>:<client list>[:<option>:<option>:...]

    daemon list     服务进程名列表,如telnet的服务进程名为in.telnetd
    client list     访问控制的客户端列表,可以写域名、主机名或网段,如.trubolinux.com.cn或者192.168.1.
    option          可选选项,这里可以是某些命令,也可以是指定的日志文件

    例子:hosts.allow
    in.telnetd:.vpser.net
    vsftpd:192.168.0.
    sshd:192.168.0.0/255.255.255.0

    /etc/hosts.allow里第一行vpser.net表示,只有vpser.net这个域里的主机允许访问TELNET服务,注意vpser.net前面的那个点(.)。
    /etc/hosts.allow里第二行表示,只有192.168.0这个网段的用户允许访问FTP服务,注意0后面的点(.)。
    /etc/hosts.allow里第三行表示,只有192.168.0这个网段的用户允许访问SSH服务,注意这里不能写为192.168.0.0/24。虽然在CISCO路由器种这两中写法是等同的。

    在/etc/hosts.deny里加上:

    sshd:62.75.214.93
    sshd:203.215.252.189
    sshd:219.143.200.169
    sshd:60.12.193.134
    sshd:201.83.220.44
    sshd:c953dc2c.virtua.com.br
    sshd:gera125.server4you.de

    把他们访问SSH的全部给拒绝了,Linux的GFW也很强。

    本文系:VPS侦探 原创文章,转载请注明出处。

  • » 阅读全文...
  • 2009年07月1日

    正确理解Linux内存占用过高的问题

    最近有个月经问题,老有人问为何开机后,还没有其他服务,mem就被用完了?是不是内存泄露?是否要重启服务?只能说不要看现象,要看本质才能找到问题的根源。
    往往给出这样的结果,怀疑内存用了90%:
    Mem: 4146788k total, 3825536k used, 321252k free, 213488k buffers
    Swap: 2650684k total, 80k used, 2650604k free, 3006404k cached

    这样怀疑很普遍,因为很多人用惯了Windows。Windows下,可以使用任务管理器查看当前进程对于内存的消耗情况。在我看来,Windows物理内存总是留下一定的空间,就算此时物理内存有空闲时,也会让某些程序去使用虚拟内存,目的是在Windows下启动新程序时,直接分配空闲的物理内存,这样子新程序启动速度就较快,而Linux则不然。

    而在Linux下,使用top命令看到内存占用情况:

    Mem: 4146788k total, 3825536k used, 321252k free, 213488k buffers
    Swap: 2650684k total, 80k used, 2650604k free, 3006404k cached

    这里的结果显示使用了3.8G的used,占用率达到90%。看看free的结果你还可以对比一下:
    $ free -m
    total used free shared buffers cached
    Mem: 4049 3784 265 0 208 2939
    -/+ buffers/cache: 636 3413
    Swap: 2588 0 2588

    虽然MEM显示了3.7G左右的used,但是(-/+ buffers/cache)减去buffers和cache的结果可以看到,当前进程实际占用内存是636M,而可用空闲(free)内存为3.4G

    可以这么理解:在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。

    如上面的例子:使用了4G的内存,3.7G被占用,但是buuffer和cached部分作为缓存,可以使用命中率的方式提高使用效率,而且这部分缓存是根据指令随时可以释放的,我们可以认为这部分内存没有实际被使用,也可以认为它是空闲的。

    因此查看目前进程正在实际被使用的内存,是used-(buffers+cache),也可以认为如果swap没有大量使用,mem还是够用的,只有mem被当前进程实际占用完(没有了buffers和cache),才会使用到swap的。

    个人之见,欢迎拍砖。

  • » 阅读全文...
  • 2009年04月24日

    Linux常用信息查看命令

    系统

    # uname -a               # 查看内核/操作系统/CPU信息
    # head -n 1 /etc/issue   # 查看操作系统版本
    # cat /proc/cpuinfo      # 查看CPU信息
    # hostname               # 查看计算机名
    # lspci -tv              # 列出所有PCI设备
    # lsusb -tv              # 列出所有USB设备
    # lsmod                  # 列出加载的内核模块
    # env                    # 查看环境变量

    资源

    # free -m                # 查看内存使用量和交换区使用量
    # df -h                  # 查看各分区使用情况
    # du -sh <目录名>        # 查看指定目录的大小
    # grep MemTotal /proc/meminfo   # 查看内存总量
    # grep MemFree /proc/meminfo    # 查看空闲内存量
    # uptime                 # 查看系统运行时间、用户数、负载
    # cat /proc/loadavg      # 查看系统负载

    磁盘和分区

    # mount | column -t      # 查看挂接的分区状态
    # fdisk -l               # 查看所有分区
    # swapon -s              # 查看所有交换分区
    # hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备)
    # dmesg | grep IDE       # 查看启动时IDE设备检测状况

    网络

    # ifconfig               # 查看所有网络接口的属性
    # iptables -L            # 查看防火墙设置
    # route -n               # 查看路由表
    # netstat -lntp          # 查看所有监听端口
    # netstat -antp          # 查看所有已经建立的连接
    # netstat -s             # 查看网络统计信息

    进程

    # ps -ef                 # 查看所有进程
    # top                    # 实时显示进程状态

    用户

    # w                      # 查看活动用户
    # id <用户名>            # 查看指定用户信息
    # last                   # 查看用户登录日志
    # cut -d: -f1 /etc/passwd   # 查看系统所有用户
    # cut -d: -f1 /etc/group    # 查看系统所有组
    # crontab -l             # 查看当前用户的计划任务

    服务

    # chkconfig --list       # 列出所有系统服务
    # chkconfig --list | grep on    # 列出所有启动的系统服务

    程序

    # rpm -qa                # 查看所有安装的软件包
  • » 阅读全文...
  • 2009年03月31日

    删除Linux编译安装的软件

    下午在XLinux(分享Linux)群里有人,如何删除编译安装的MySQL或者其他软件,在这里顺便说一下。

    直接运行下面的命令就行了。

    make   uninstall
    make   clean
    rm -rf mysql   //mysql目录

    如果是编译过程出错,要重新编译
    那就
    make clean
    然后再
    ./configure
    make && make install

  • » 阅读全文...
  • 2009年02月2日

    Linux服务器安装后的优化

    我们的服务器并不是安装完成后就可直接托管到机房了,
    而是需要进行一系列的优化配置和安全配置等

       
     1,关闭不需要的服务
        这个应该很容易理解的,凡是我们的系统不需要的服务,一概关闭,
        这样一个好处是减少内存和CPU时间的占用,另一个好处相对可以提高安全性
      
        那么哪些服务是肯定要保留的呢?
        在linux机器上通常有四项服务是必须保留的
         iptables
                 linux下强大的防火墙,只要机器需要连到网上,哪里离得开它
         network
                 linux机器的网络,如果不上网可以关闭,只要上网当然要打开它
         sshd
                 这是openssh server,如果你的机器不是本地操作,而是托管到IDC机房,
                  那么访问机器时需要通过这个sshd服务进行
         syslog
                这是linux系统的日志系统,必须要有,
                否则机器出现问题时会找不到原因

        除了这四项必需的服务之外,其他的服务需要保留哪些呢?
        这时就可以根据系统的用途而定,比如:数据库服务器,就需要启用mysqld(或oracle)
                                        web服务器,就需要启用apache
      
      
     
      2,关闭不需要的tty
    请编辑你的/etc/inittab
    找到如下一段:
    1:2345:respawn:/sbin/mingetty tty1
    2:2345:respawn:/sbin/mingetty tty2
    3:2345:respawn:/sbin/mingetty tty3
    4:2345:respawn:/sbin/mingetty tty4
    5:2345:respawn:/sbin/mingetty tty5
    6:2345:respawn:/sbin/mingetty tty6

    这段命令使init为你打开了6个控制台,分别可以用alt+f1到alt+f6进行访问
    此6个控制台默认都驻留在内存中,事实上没有必要使用这么多的
    你用ps auxf这个命令可以看到,是六个进程
    root      3004  0.0  0.0  1892  412 tty1     Ss+  Jun29   0:00 /sbin/mingetty tty1
    root      3037  0.0  0.0  2492  412 tty2     Ss+  Jun29   0:00 /sbin/mingetty tty2
    root      3038  0.0  0.0  2308  412 tty3     Ss+  Jun29   0:00 /sbin/mingetty tty3
    root      3051  0.0  0.0  1812  412 tty4     Ss+  Jun29   0:00 /sbin/mingetty tty4
    root      3056  0.0  0.0  2116  412 tty5     Ss+  Jun29   0:00 /sbin/mingetty tty5
    root      3117  0.0  0.0  2396  412 tty6     Ss+  Jun29   0:00 /sbin/mingetty tty6

    如何关闭这些进程?
    通常我们保留前2个控制台就可以了,
    把后面4个用#注释掉就可以了

    然后无需重启机器,只需要执行 init q 这个命令即可
    init q
    q作为参数的含义:重新执行/etc/inittab中的命令

    3,如何关闭ipv6?

       ipv6目前我们还不需要,但系统安装完成后它会作为模块常驻核心,没有必要,
       可以用这个步骤来关闭它:
       首先编辑网络配置文件:
       vi /etc/sysconfig/network
       修改
       NETWORKING_IPV6=yes

       为
        NETWORKING_IPV6=no

       然后关闭其模块:vi /etc/modprobe.conf
       在文件中添加以下两行
        alias net-pf-10 off
        alias ipv6 off

       修改完成后需重启机器使之生效

    4,如何关闭atime?

        一个linux文件默认有3个时间:
             atime:对此文件的访问时间
             ctime:此文件inode发生变化的时间
             mtime:此文件的修改时间

      如果有多个小文件时通常没有必要记录文件的访问时间,
      这样可以减少磁盘的io,比如web服务器的页面上有多个小图片
     
      如何进行设置呢?
      修改文件系统的配置文件:vi /etc/fstab
      在包含大量小文件的分区中使用noatime,nodiratime两项
      例如:
      /dev/md5                /data/pics1           ext3    noatime,nodiratime 0 0
      
      这样文件被访问时就不会再产生写磁盘的io

    5,一定要让你的服务器运行在level 3上
      做法:
          vi /etc/inittab
           
          id:3:initdefault:
      让服务器运行X是没有必要的

        6,优化sshd
         
              X11Forwarding no        //不进行x图形的转发
              UseDNS no               //不对IP地址做反向的解析
                 
        7,优化shell
             修改命令history记录
              # vi /etc/profile
             找到 HISTSIZE=1000 改为 HISTSIZE=100
             然后 source /etc/profile

  • » 阅读全文...