一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Linux

对 Linux 新手非常有用的 20 个命令

你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟!!!我说什么呢,是什么原因你就出现我的世界里了。从我以往的经验来说,当我刚使用Linux,命令,终端啊什么的,吓了我一跳。我担心该记住多少命令,来帮助我完成所有任务。毫无疑问,在线文档,书籍,man pages以及社区帮了我一个大忙,但是我还是坚信有那么一篇文章记录了如何简单学习和理解命令的秘籍。这激发了我掌握Linux和使它容易使用的积极性。本文就是通往那里的阶梯。 1. ls命令 ls命令是列出目录内容(List Directory Contents)的意思。运行它就是列出文件夹里的内容,可能是文件也可能是文件夹。 1 root@tecmint:~# ls 2 3 Android-Games                     Music 4 Pictures                          Public 5 Desktop                           Tecmint.com 6 Documents                         TecMint-Sync 7 Downloads                         Templates “ls -l”命令已详情模式(long listing fashion)列出文件夹的内容。 01 root@tecmint:~# ls -l 02 03 total 40588 04 drwxrwxr-x 2 ravisaive ravisaive     4096 May  8 01:06 Android Games 05 drwxr-xr-x 2 ravisaive ravisaive     4096 May 15 10:50 Desktop 06 drwxr-xr-x 2 ravisaive ravisaive     4096 May 16 16:45 Documents 07 drwxr-xr-x 6 ravisaive ravisaive     4096 May 16 14:34 Downloads 08 drwxr-xr-x 2 ravisaive ravisaive     4096 Apr 30 20:50 […]

龙生   09 Aug 2013
View Details

10 个你必须掌握的超酷 VI 命令技巧

摘要:大部分Linux开发者对vi命相当熟悉,可是遗憾的是,大部分开发者都只能掌握一些最常用的Linux vi命令,下面介绍的10个vi命令虽然很多不为人知,但是在实际应用中又能让你大大提高效率。 在使用vi 编辑器时—无论是初次使用的用户,还是有经验的用户—大多数人往往只掌握核心命令集,这些命令可以执行最常用的功能:导航或保存文件;插入、更新、删除或搜索数据;退出但不保存修改。 但是,vi 编辑器极其强大,特性和功能非常丰富。即使在多年使用vi 之后,您仍然可能会发现有不知道的新命令。本文讨论的命令就属于不太为人所知的命令,但是它们可以简化您目前采用的操作方法,让您的工作方式更高效,或者 让您能够完成原来不知道可以用vi 完成的操作。 打开和关闭行号 vi 编辑器的许多选项可以控制编辑会话的外观和感觉。使用 :set 命令修改vi 中的会话设置。按 Escape 键进入命令模式之后,可以使用 :set all 命令显示选项和设置的列表。可以设置的选项之一是 number,它的作用是打开和关闭行号 # # Internet host table # ::1     localhost 127.0.0.1       localhost       loghost 192.168.0.6     centos5 192.168.0.10    appserv 192.168.0.11    webserv 192.168.0.12    test 192.168.0.5     solaris10       # Added by DHCP ~ ~ ~ :set number 这个vi命令 在当前编辑的文件中的每个记录上显示行号。让vi 进入命令模式之后,可以输入 :set number 并按回车来打开行号       # # Internet host table # ::1     localhost […]

龙生   27 Jun 2013
View Details

25 个 Linux 服务器安全小贴士

大家都认为 Linux 默认是安全的,我大体是认可的 (这是个有争议的话题)。Linux默认确实有内置的安全模型。你需要打开它并且对其进行定制,这样才能得到更安全的系统。Linux更难管理,不过相应也更灵活,有更多的配置选项。 对于系统管理员,让产品的系统更安全,免于骇客和黑客的攻击,一直是一项挑战。这是我们关于“如何让Linux系统更安全” 或者 “加固Linux系统“之类话题的第一篇文章。本文将介绍 25个有用的技巧和窍门 ,帮助你让Linux系统更加安全。希望下面的这些技巧和窍门可以帮助你加强你的系统的安全。 1. 物理系统的安全性 配置BIOS,禁用从CD/DVD、外部设备、软驱启动。下一步,启用BIOS密码,同时启用GRUB的密码保护,这样可以限制对系统的物理访问。 通过设置GRUB密码来保护Linux服务器 2. 磁盘分区 使用不同的分区很重要,对于可能得灾难,这可以保证更高的数据安全性。通过划分不同的分区,数据可以进行分组并隔离开来。当意外发生时,只有出问题的分区的数据才会被破坏,其他分区的数据可以保留下来。你最好有以下的分区,并且第三方程序最好安装在单独的文件系统/opt下。

3. 最小包安装,最少漏洞 你真的需要安装所有的服务么?建议不要安装无用的包,避免由这些包带来的漏洞。这将最小化风险,因为一个服务的漏洞可能会危害到其他的服务。找到并去除或者停止不用的服务,把系统漏洞减少到最小。使用‘chkconfig‘命令列出运行级别3的运行所有服务。

当你发现一个不需要的服务在运行时,使用下面的命令停止这个服务。

使用RPM包管理器,例如YUM或者apt-get 工具来列出所有安装的包,并且利用下的命令来卸载他们。

5 chkconfig Command Examples 20 Practical Examples of RPM Commands 20 Linux YUM Commands for Linux Package Management 25 APT-GET and APT-CACHE Commands to Manage Package Management 4. 检查网络监听端口 在网络命令 ‘netstat‘ 的帮助下,你将能够看到所有开启的端口,以及相关的程序。使用我上面提到的 ‘chkconfig‘ 命令关闭系统中不想要的网络服务。

Linux 网络管理中的 20 条 Netstat 命令 5. 使用 SSH(Secure Shell) Telnet 和 rlogin 协议只能用于纯文本,不能使用加密的格式,这或将导致安全漏洞的产生。SSH 是一种在客户端与服务器端通讯时使用加密技术的安全协议。 除非必要,永远都不要直接登录 root 账户。使用 “sudo” 执行命令。sudo 由 /etc/sudoers 文件制定,同时也可以使用 “visudo” 工具编辑,它将通过 VI 编辑器打开配置文件。 […]

龙生   27 Jun 2013
View Details

Varnish

Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好。 Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算机系统的内存除了主存外,还包括了CPU内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此Squid Cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 Varnish cache设计架构。[1] varnish项目是2006年发布的第一个版本0.9.距今已经四年多了,此文档之前也提过varnish还不稳定,那是2007年时候编写的,经过varnish开发团队和网友们的辛苦耕耘,现在的varnish已经很健壮。很多门户网站已经部署了varnish,并且反应都很好,甚至反应比squid还稳定,且效率更高,资源占用更少。相信在反向代理,web加速方面,varnish已经有足够能力代替squid。 官网:https://www.varnish-cache.org/

龙生   21 Jun 2013
View Details

25个必须记住的SSH命令

OpenSSH是SSH连接工具的免费版本。telnet,rlogin和ftp用户可能还没意识到他们在互联网上传输的密码是未加密的,但SSH是加密的,OpenSSH加密所有通信(包括密码),有效消除了窃听,连接劫持和其它攻击。此外,OpenSSH提供了安全隧道功能和多种身份验证方法,支持SSH协议的所有版本。 SSH是一个非常伟大的工具,如果你要在互联网上远程连接到服务器,那么SSH无疑是最佳的候选。下面是通过网络投票选出的25个最佳SSH命令,你必须牢记于心。 (注:有些内容较长的命令,在本文中会显示为截断的状态。如果你需要阅读完整的命令,可以把整行复制到您的记事本当中阅读。) 1、复制SSH密钥到目标主机,开启无密码SSH登录

如果还没有密钥,请使用ssh-keygen命令生成。 2、从某主机的80端口开启到本地主机2001端口的隧道

现在你可以直接在浏览器中输入http://localhost:2001访问这个网站。 3、将你的麦克风输出到远程计算机的扬声器

这样来自你麦克风端口的声音将在SSH目标计算机的扬声器端口输出,但遗憾的是,声音质量很差,你会听到很多嘶嘶声。 4、比较远程和本地文件

在比较本地文件和远程文件是否有差异时这个命令很管用。 5、通过SSH挂载目录/文件系统

从http://fuse.sourceforge.net/sshfs.html下载sshfs,它允许你跨网络安全挂载一个目录。 6、通过中间主机建立SSH连接

Unreachable_host表示从本地网络无法直接访问的主机,但可以从reachable_host所在网络访问,这个命令通过到reachable_host的“隐藏”连接,创建起到unreachable_host的连接。 7、将你的SSH公钥复制到远程主机,开启无密码登录 – 简单的方法

8、直接连接到只能通过主机B连接的主机A

当然,你要能访问主机A才行。 9、创建到目标主机的持久化连接

在后台创建到目标主机的持久化连接,将这个命令和你~/.ssh/config中的配置结合使用:

所有到目标主机的SSH连接都将使用持久化SSH套接字,如果你使用SSH定期同步文件(使用rsync/sftp/cvs/svn),这个命令将非常有用,因为每次打开一个SSH连接时不会创建新的套接字。 10、通过SSH连接屏幕

直接连接到远程屏幕会话(节省了无用的父bash进程)。 11、端口检测(敲门)

在一个端口上敲一下打开某个服务的端口(如SSH),再敲一下关闭该端口,需要先安装knockd,下面是一个配置文件示例。

12、删除文本文件中的一行内容,有用的修复

在这种情况下,最好使用专业的工具。 13、通过SSH运行复杂的远程shell命令

更具移植性的版本:

14、通过SSH将MySQL数据库复制到新服务器

通过压缩的SSH隧道Dump一个MySQL数据库,将其作为输入传递给mysql命令,我认为这是迁移数据库到新服务器最快最好的方法。 15、删除文本文件中的一行,修复“SSH主机密钥更改”的警告

16、从一台没有SSH-COPY-ID命令的主机将你的SSH公钥复制到服务器

如果你使用Mac OS X或其它没有ssh-copy-id命令的*nix变种,这个命令可以将你的公钥复制到远程主机,因此你照样可以实现无密码SSH登录。 17、实时SSH网络吞吐量测试

通过SSH连接到主机,显示实时的传输速度,将所有传输数据指向/dev/null,需要先安装pv。 如果是Debian:

如果是Fedora:

(可能需要启用额外的软件仓库)。 18、如果建立一个可以重新连接的远程GNU screen

人们总是喜欢在一个文本终端中打开许多shell,如果会话突然中断,或你按下了“Ctrl-a d”,远程主机上的shell不会受到丝毫影响,你可以重新连接,其它有用的screen命令有“Ctrl-a c”(打开新的shell)和“Ctrl-a a”(在shell之间来回切换),请访问http://aperiodic.net/screen/quick_reference阅读更多关于screen命令的快速参考。 19、继续SCP大文件

它可以恢复失败的rsync命令,当你通过VPN传输大文件,如备份的数据库时这个命令非常有用,需要在两边的主机上安装rsync。

20、通过SSH W/ WIRESHARK分析流量

使用tshark捕捉远程主机上的网络通信,通过SSH连接发送原始pcap数据,并在wireshark中显示,按下Ctrl+C将停止捕捉,但也会关闭wireshark窗口,可以传递一个“-c #”参数给tshark,让它只捕捉“#”指定的数据包类型,或通过命名管道重定向数据,而不是直接通过SSH传输给wireshark,我建议你过滤数据包,以节约带宽,tshark可以使用tcpdump替代:

21、保持SSH会话永久打开

打开一个SSH会话后,让其保持永久打开,对于使用笔记本电脑的用户,如果需要在Wi-Fi热点之间切换,可以保证切换后不会丢失连接。 […]

龙生   15 Apr 2013
View Details

为什么Linux不需要磁盘碎片整理

如果你是个Linux用户,你可能听说过不需要去对你的linux文件系统进行磁盘碎片整理。也许你注意到了,在Liunx安装发布包里没有磁盘碎片整理的工具。为什么会这样? 为了理解为什么Linux文件系统不需要磁盘碎片整——而Windows却需要——你需要理解磁盘碎片产生的原理,以及Linux和Windows文件系统它们之间工作原理的不同之处。 什么是磁盘碎片 很多Windows用户,甚至是没有经验的用户,都深信经常对文件系统进行碎片整理会提高计算机的速度。但并不是很多人知道这其中的原委。 简单的说,磁盘驱动器上有很多扇区,每个扇区都能存放一小段数据。文件,特别是大文件的存储需要占用很多不同的扇区。假设现在你有很多个文件存在的文件系统里,每个文件都会被存储在一系列连续的扇区里。后来你更新了其中的一个文件,它的体积变大了。文件系统会尝试把文件新增的部分存放到紧邻原始文件的扇区里。可不幸的是,它周边已经没连续的足够扇区空间了,文件需要被分割成数段——这些都在自动进行的。当从磁盘上读取这个文件时,磁盘磁头需要跨越数个不同的物理位置来读取各个扇区——这样会使速度降低。 磁盘碎片整理就是小心的移动这些小文件块来减少碎片,让每个文件都能连续的分布在磁盘上。 当然,如果是固态硬盘,那情况又不同了,固态硬盘没有机械移动,不应该进行碎片整理——对一个U盘进行碎片整理通常会降低它的寿命。在最新版的Windows系统里,你实际上不需要关心系统上的碎片——Windows会自动替你整理。 Windows文件系统的工作原理 微软老的FAT文件系统——最后一次使用是在Windows 98 和 Window ME上,可如今的U盘上还在使用它——并不会智能的管理文件。当你把一个文件存入FAT文件系统里时,系统会尽量的把它存到靠近磁盘开始的地方。当你存入第二个文件时,它会紧接着第一个文件——一个接着一个。当原始文件体积变大后,它们一定会产生碎片。根本没有留给它们增长的空间。 微软新的NTFS文件系统——使用在装有Windows XP和2000的PC机上——稍微智能了一点。它会在磁盘上在文件周围分配一些“缓冲”的空闲空间,尽管如此,任何Windows用户都会告诉你,经过一段时间的使用后,NTFS文件系统还是会形成碎片。 由于这些文件系统的工作原理,它们注定需要进行碎片整理来保持高性能。微软在它最新的视窗系统里通过在后台运行一个磁盘碎片整理进程来解决这个问题。 Linux文件系统的工作原理 Linux的ext2, ext3, 和 ext4 文件系统 ——Ubuntu和大多数最新的Linux发布版中使用的是ext4——采用了一种更聪明的方法来存放文件。与把多个文件并排放在磁盘上不同,Linux文件系统把所有文件都分散到了整个磁盘上,每两个文件之间都留有相当巨大的空闲空间。当文件被修改、体积增加时,它们通常有足够的空间来扩展。一旦有碎片产生时,文件系统会尝试移动整个文件来消除碎片,所以你不需要一个碎片整理工具。 因为这种工作方式,当磁盘快要装满时,你开始会发现有碎片开始产生。如果已用空间超过95%(甚至80%),你会发现碎片开始变多。但不管怎样,这个文件系统的设计会使正常情况下不产生碎片。 如果你在Linux系统上遇到了磁盘碎片问题,你很可能需要一个更大的硬盘了。如果你真想整理一个文件系统,这最简单的方式也许是最可靠的方式:把文件从这个分区里考出,删除这些文件,然后考回这些文件。当你把文件考回硬盘时,文件系统会智能为文件分配存储空间。 你可以使用 fsck 命令来查看Linux文件系统上的磁盘碎片情况——在输出结果里寻找“non-contiguous inodes”信息。 [英文原文:Why Linux Doesn’t Need Defragmenting ]          

龙生   27 Mar 2013
View Details

ubuntu下eclipse安装PDT(php development toolkit)

  eclipse是我非常喜欢的IDE,开源+免费+功能强大+跨平台+跨语言+插件机制,虽然有时候也会有这样那样的问题,但是作为主力开发IDE,eclipse已经非常足够了。 第1步,安装JRE:sudo apt-get install sun-java6-jre 第2步,下载eclipse: http://www.eclipse.org/downloads/ 找到其中Eclipse Classic 3.*.*.*,选择linux版,因为eclipse是绿色版的,所以下载下来解压就可以使用了。 第3步,打开eclipse:先chmod 777 -R ./给予eclipse文件夹足够的权限,否则会报错, 然后会要求选择开发目录,直接指定php的开发根目录就可以,配置地址在Windows –>Preferences,面板很多,功能混乱,eclipse的使用估计要适应一段时间的,但是相信我,没有比这更好的IDE了。 第4步,安装WST(Web Standard Tools)等基础环境:eclipse的插件非常多,先要安装一些基础插件,按照路径Help –>Softwear Updates –>Find and Install –> Search for new features to install 选中Europa Discovery Site(我的是3.3版本的eclipse)–>Finish –>开始搜索相关的可更新项,如果要求选择服务器,看看有没有shanghai,有的选上海–>出现Europa Discovery Site的根目录,翻里面的Web and J2EE Develepment里面的WST,选种以后会提示你缺少另一个插件,这时候点右侧的Select Required,就会自动找到所有需要的插件 –>Finish 后面安装完就可以了。 第5步,安装PDT:php在eclipse下面有两个插件:phpeclipse和PDT,现在PDT发展的比较好。按照路径Help –>Softwear Updates –>Find and Install –> Search for new features to install,点击右侧的New Remote Site,为左侧选择框添加PDT的在线安装地址,地址为:http://download.eclipse.org/tools/pdt/updates/release 后面的安装方法和第4步一样。 第6步,安装subeclipse:用subversion做版本控制的朋友可以用这个插件,直接在http://subclipse.tigris.org/里面找在线安装的地址,然后学第5步的方法安装。 第7步,安装Aptana:Aptana里面的一些web开发工具比较不错,这里建议安装:在线安装的地址是:http://update.aptana.com/update/studio/3.2 转自:http://blog.csdn.net/hhq163/article/details/6904244

龙生   19 Feb 2013
View Details

linux下vi命令大全

进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename….filename :打开多个文件,依次进行编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字至字尾 ) :光标移至句尾 ( :光标移至句首 }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrl+b;向文件首翻一屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 插入文本类命令 i :在光标前 I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按ESC键 s:从当前光标位置处开始,以输入的文本替代指定数目的字符 S:删除指定数目的行,并以所输入文本代替之 ncw或nCW:修改指定数目的字 nCC:修改指定数目的行 删除命令 ndw或ndW:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令 /pattern:从光标开始处向文件尾搜索pattern […]

龙生   19 Feb 2013
View Details

如何在本地用SSH远程连接到LINUX服务器安装PHPMYADMIN

  在linux上面安装ssh服务 在windows系统里面用Putty连接到linux 进入终端. 通过wget下载最新版 phpMyAdmin-3.3.8.1 wget -c http://ncu.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.8.1/phpMyAdmin-3.3.8.1-all-languages.tar.gz  

龙生   19 Feb 2013
View Details