1:检查不是由你运行的程序

难度:高级

应用程序:bash(译注:UNIX或者LINUX的shell)

想象下这个场景-你已经准备好了要和同事在办公室里对战一局快速的Crack Attack(译注:一款免费的OpenGL游戏,类似俄罗斯方块),不料却发现,当你正准备要击败你这个傲慢的下属时,方块却停止了-是什么让你的机器变得这么慢?这肯定是因为其他的用户运用他们娴熟的经验来盗取你宝贵的CPU时间、服务器或者其他的诡异方式,真烦人!

好,让我们列举出系统中所有不是由你运行的程序!

psaux | grep-v`whoami`

或者,更巧妙些的是,为什么不列出最占用时间的前十个程序呢:

psaux--sort=-%cpu | grep-m 11 -v`whoami`

也许最好使用root权限来运行这条指令,因为这样可以过滤出大部分活跃的后台程序。现在你有了这些信息,你可以终止他们的进程,但是更“卑鄙”的是反复地在他们的桌面上运行xeyes(译注:Linux下的一条好玩的命令)!

2:在多个文件中替换掉相同的文本

难度:中等

应用程序:find(译注:Linux下的一条命令)/Perl

如果你有个文件,想在多个位置进行替换,这里有很多方法来实现。调用test[someting]把当前目录里所有文件中的Windows替换成Linux,你可以像这样运行它:

perl -i -pe 's/Windows/Linux/;'test*

要替换当前目录以及下层目录里所有文件中的Windows为Linux,你可以这样运行:

find. -name '*.txt'-print | xargsperl -pi -e's/Windows/Linux/ig'*.txt

或者如果你更需要让它只作用于普通文件上:

find-typef -name '*.txt'-print0 | xargs--null perl -pi -e 's/Windows/Linux

节省了大量的时间并且获得了高水平的大师等级!

3:合并一个不稳定的终端

难度:简单

应用程序:bash

我们都已经做过这件事了-偶尔使用less或者cat来列出一个文件,或者以浏览二进制文件而结束,这通常包含各种可以轻易弄乱你的终端显示的控制代码、警报声、一些有趣的字符,以及一些奇怪的颜色组合,最后,你的字体将会被一些难以辨认的字符所替代,而你却不知道该怎么办。显然bash仍然继续工作着,但是你就是不能明白到底发生了什么!发送一个初始化命令给这个终端:

reset

然后一切就再次恢复正常了。

4:简单地备份你的网站

难度:简单

应用程序:Backups

如果你想要从一台电脑上备份一个目录,但你仅仅想要复制改变的文件到它的备份而不是复制所有的东西到各自的备份,你可以使用工具rsync来实现它。你需要在这个远程的源备份计算机上有一个账户。下面是这条命令:

rsync-vare sshjono@192.168.0.2:/home/jono/importantfiles/* /home/jono/backup/

这样我们就备份了192.168.0.2地址上/home/jono/importantfiles/目录下的所有文件到当前机器上的/home/jono/backup目录下。

5:找到最大的文件

难度:简单

应用程序:Shell

计算机中一个常见的问题是,你可能想删一部分大的文件(类似音频或视频片段)。如下你可以找到当前目录中最大的那个文件:

ls-lSrh

“r”的作用是将大的文件列在后面,而“h”则是给出易于人们阅读的输出(MB或者诸如此类)。你也可以搜寻最大的MP3/MPEG文件:

ls-lSrh *.mp*

你也可以通过下面这条命令搜寻最大的目录:

du-kx | egrep-v"\./.+/"| sort-n

6:同化你的构造

难度:简单

应用程序:GCC

如果你运行一个拥有适量RAM的多处理机系统(SMP),你会发现,在写代码时,运行一个parallel make很有好处。与按照默认方式运行make并执行serial builds相比,parallel build 是一种很有效的改善方法。让make在building的时候允许同时存在多个child,用如下的-j转换即可:

make-j4; make-j4 modules

7:节省电池电源

难度:中等

应用程序:hdparm

很可能你已经对使用hdparm来调整一个硬件驱动很熟悉了,但是它还能节约你的笔记本的电池寿命,或者通过降低硬盘转速来使生活更宁静。

hdparm -y /dev/hdb
hdparm -Y /dev/hdb
hdparm -S 36 /dev/hdb

按顺序,这些命令将让硬件转换成Standby(待命)模式,再转换成Sleep(睡眠)模式,并且最终设置Automatic(自动)旋转超时。这个结尾包含一个以5秒为单位的一块块数字变量(例如,值为12就等同于一分钟)。

顺便说一下,这个降低旋转时间至5秒为单位的习惯真值得拿一个特别的用户友好奖——这个值的设置也许有什么历史原因,但我们不知道。如果你恰好知道为什么,请来信告知我们!

8:疏通开端口

难度:中等

应用程序:netstat

要获取在Linux服务器上处于监听状态的网络服务器的列表,可使用netstat程序:

root@catlin:~# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Programname
tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd
tcp 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named
tcp 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd
udp 0 0 0.0.0.0:32768 0.0.0.0:* 220/named
udp 0 0 10.42.3.2:53 0.0.0.0:* 220/named
udp 0 0 10.42.4.6:53 0.0.0.0:* 220/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 220/named
udp 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd
raw 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd

如上消息告诉你PID为698的进程是一个绑定在5280端口的Perl进程。如果你不是超级用户,系统将不会显示哪个程序是运行在哪个端口上的。

9:卸载忙碌状态的驱动

难度:简单

应用程序:bash

你应该很熟悉这种情况-尝试去卸载一个驱动,但是系统却告诉你它处于忙碌状态。但是什么程序在占用呢?一个短小的单行代码将告诉你:

lsof+D /mnt/windows

这将返回命令和进程ID以及任何正在访问/mnt/windows目录的任务。接下来你就可以定位它们,或者使用kill命令来终结它们。

10:只列出今天的文件

难度:简单

应用程序:Various

你可能熟悉这个问题,今天早些时候你创建了一个文本文档,而现在立刻就需要它。然而,你想不起来你给它起了个什么可笑的名字,作为一个熟练的geek,你的家文件夹被836个不同的文件填满了。那你要如何找到它呢?哈哈,这里有很多方法,但是这个小技巧告诉你管道和结合使用两个强力的shell命令是多么有效:

ls-al --time-style=+%D | grep`date+%D`

ls命令的参数使得这个日期戳以一种特殊的方式呈现。这个狡猾的位就是这样传递给grep来输出的。grep的参数是它自己的命令(因为是倒引号所以执行),用来将当前的日期替代成匹配的字符。你可以轻易的修改它来搜索其他特别的日期、时间、文件大小或者任何东西。结合它与HACK 26是非常节省输入的。

11:直接打开一个SVG

难度:简单

应用程序:Inkscape

你可以通过shell运行Inkscape,然后直接通过一个URL来立刻编辑一张图片。只用输入:

inkscape http://www.somehost.com/graphic.svg

记得要另存为一下!

12:不用编辑器来进行编辑

难度:中等

应用程序:好多

通常非常长的文件是很难用文本编辑器来进行操作的。如果你不时地要做这件事,可能你会发现用某些趁手的命令行工具会更快一些,就像下面这个例子一样。

从文件file1中打印第一列和第三列到文件file2中,我们可以使用awk:

awk'{print $1, $3}'file1 > file2

只输出file1中第八列到第十五列中的字符,我们可以使用cut:

cut-c 8-15 file1 > file2

要使用单词word2来替换文件file1中的单词word1,我们可以使用sed命令:

sed"s/word1/word2/g"file1 > file2

通常这是一个比打开文本编辑器更快得到结果的方式。

13:备份你的bootsector(引导扇区)

难度:高级

应用程序:Shell

妨碍引导装入,双启动和很多其他下热闹的程序会留给你一个混乱的引导扇区。为什么不在你可以备份的时候给它创建一个备份呢:

引导装载器混乱、双启动及许多其他的可怕的进程可能造成乱七八糟的启动区。

ddif=/dev/hdaof=bootsector.img bs=512 count=1

很显然,你应该改变这个装置来显示你的boot驱动(有可能是SCSI的sda)。还要非常小心,别把事情搞砸——你可能会轻而易举地毁掉你的驱动!恢复时使用:

ddif=bootsector.img of=/dev/hda


14:资源扫描

难度:中等

应用程序:nmap

例如,简单的TCP连接扫描可以在不需要root特权时进行:

一般来说,当人们想到nmap时,都假设nmap是用来进行一些违法的网络侦查,并为恶意***做准备的。但是作为一个强大的工具,nmap可以成为一个白帽子,做一些比***网络有意义得多的事。

nmap rigel

nmap也可以通过指定范围或者CIDR符号来扫描IP地址:

nmap 192.168.0.1-254
nmap 192.168.0.0/24

nmap如果以root身份运行,可以提供更多的信息。当它以root身份运行时,通过使用-O标志,它可以使用特殊的数据包来决定远程机器的操作系统。此外,你可以通过使用-sS标志来实现半开的TCP扫描。nmap将会发送一个SYN数据包到远程的主机,然后等待接收它回应的ACK。如果nmap收到一个ACK,它就知道这个端口是开放的。

这不同于普通的TCP三次握手,客户端会发送一个SYN包,如果它收到了初始的服务器ACK,客户端随后会将一个ACK送回服务器。***者们时常使用这个选项来避免使他们的扫描登陆到远程机器上。

nmap -sS -O rigel

Starting nmap V. 3.00 ( www.insecure.org/nmap/)
Interesting ports on rigel.nnc (192.168.0.61):
(The 1578 ports scanned but not shown below are instate: filtered)
Port State Service
7/tcpopenecho
9/tcpopendiscard
13/tcpopendaytime
19/tcpopenchargen
21/tcpopenftp
22/tcpopenssh
23/tcpopentelnet
25/tcpopensmtp
37/tcpopentime
79/tcpopenfinger
111/tcpopensunrpc
512/tcpopenexec
513/tcpopenlogin
514/tcpopenshell
587/tcpopensubmission
7100/tcpopenfont-service
32771/tcpopensometimes-rpc5
32772/tcpopensometimes-rpc7
32773/tcpopensometimes-rpc9
32774/tcpopensometimes-rpc11
32777/tcpopensometimes-rpc17
Remote operating system guess: Solaris 9 Beta through Release on SPARC
Uptime 44.051 days (since Sat Nov1 16:41:50 2003)
Nmap run completed -- 1 IP address (1 host up) scanned in166 seconds

伴随着OS探测的激活,nmap可以确认OS是Solaris,但是现在你还可以知道,它可能是运行在SPARC处理器上的Version 9。

一个强大的功能是可以被用于和你的nmap的XML输出性能保持联系。使用-oX命令行转换而激活,就像这样:

nmap -sS -O -oX scandata.xml rigel

这在扫描IP地址范围或者你全部的网络时是特别有用的,你可以将所有通过扫描收集起来的信息放到一个XML文件里,并经过解析后插入到数据库中。这里是一个开放的端口的XML入口:

nmap是一个强大的工具。通过使用它的XML输出性能,一点点的脚本,还有一个数据库,你可以创造一个更强大的可以在你的网络上监测未授权的服务和机器的工具。

15:当登出的时候清理KDE

难度:简单

应用程序:bash

在Windows中有很多程序会做一些清除网络缓存,移除临时文件事情。Linux上如果也可以这样是不是很cool呢?使用KDE,你甚至不需要安装任何新的软件,startkde脚本将会自动的执行你放在特殊地方的脚本。

首先,你需要在你的.kde目录下创建一个命令shutdown的目录:

mkdir/home/username/.kde/shutdown

现在创建一个脚本,用来在关机时执行一些你想要的事情。这里是一个例子:

#!/bin/bash
#clear up temp folder
rm-rf ~/tmp/*
#clear out caches
rm-rf ~/.ee/minis/*
rm-rf ~/.kde/share/cache/http/*
# delete konqueror form completions
rm~/.kde/share/apps/khtml/formcompletions

现在确保你设置了正确的权限:

chmodug+x ~/.kde/shutdown/cleanup.sh

(或者随便你叫它什么)。可以清除敏感文件,也可以通过将脚本放在你的默认KDE文件夹中有一个名为shutdown的子文件夹里,给所有用户一个全局的关机脚本。找出你的默认KDE目录在哪里,试一下:

kde-config --path exe


16:备份一个Debian包清单

难度:简单

应用程序:Debian

如果你正在运行Debian并且找不到你正在运行的包,为你当前正在安装的包做一个备份是非常有用的。你可以运行如下得到一个清单:

dpkg --get-selections > debianlist.txt

这将把全部的清单放到debianlist.txt中,这样你就可以通过如下代码在不同的计算机上安装相同的包。

dpkg --set-selections < debianlist.txt

当你复制你的系统到一个新的计算机上时,你要记住你还需要从/etc中复制配置文件。

要实际安装这些选项,使用如下指令:

apt-get -u dselect-upgrade

转载于:https://blog.51cto.com/7071976/1379782

[极客]每个极客都应该知道的Linux技巧 (1)相关推荐

  1. [转载]每个极客都应该知道的Linux技巧

    本文由 伯乐在线 - 欣仔 翻译自 TuxRadar Linux.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. 是什么区分开普通的Linux用户和超级极客的呢?很简单:用在学习那些使长时工作转变 ...

  2. 每个程序员都应该知道的Linux基础知识!全文4900字,没有耐心的不建议看 ——( Linux文件系统 + 系统管理类命令 + bash基础特性)

    文章目录 - Linux的文件系统 - LSB - FHS - 根文件系统 - 对根文件系统下目录的概述: /boot /bin /sbin /lib /lib64 /etc /home /root ...

  3. 应该知道的Linux技巧

    这篇文章来源于Quroa的一个问答<What are some time-saving tips that every Linux user should know?>-- Linux用户 ...

  4. 【coolshell酷壳】应该知道的Linux技巧

    原文:http://coolshell.cn/articles/8883.html 这篇文章来源于Quroa的一个问答<What are some time-saving tips that e ...

  5. 必须知道的linux命令,29 个你必须知道的 Linux 命令

    虽然Linux发行版支持各种各样的饿GUI(graphical user interfaces),但在某些情况下,Linux的命令行接口(bash)仍然是简单快速的.Bash和 Linux Shell ...

  6. 关于软件开发,都应该知道的10个常识

    2011年,马克·安德列森(Marc Andreessen)写了一篇文章,预言"软件吞噬世界".观点主要有两个:第一,许多传统业务正在被软件公司所取代:第二,所有其他公司都发现,他 ...

  7. 每个人都应该知道的 18 个强大的 Excel 快捷键!

    Microsoft Excel 是一种程序,可让您在计算机或移动设备上高效地执行各种任务.它是全球小型和大型企业主要使用的重要工具. 如果您是一位经验丰富的用户,那么您可能知道 Excel 快捷键并正 ...

  8. 每个团队都应知道的API安全威胁

    原文发表于kubernetes中文社区,为作者原创翻译 ,原文地址 更多kubernetes文章,请多关注kubernetes中文社区 目录 每个团队都应知道的API安全威胁 分页和资源限制不安全 如 ...

  9. 为数不多的人知道的 Kotlin 技巧及解析(三)

    本文没有什么奇淫技巧,都是一些在实际开发中常用的技巧 Google 引入 Kotlin 的目的就是为了让 Android 开发更加方便,自从官宣 Kotlin 成为了 Android 开发的首选语言之 ...

  10. 29 个你必须知道的 Linux 命令

    29 个你必须知道的 Linux 命令 2016-08-12    分类:操作系统.编程开发.首页精华暂无人评论     来源:dwqs 分享到:更多0 虽然Linux发行版支持各种各样的饿GUI(g ...

最新文章

  1. lnamp环境搭建博客、论坛
  2. mongodb气势如虹
  3. 字符转换16进制输出
  4. Java并发编程—锁的基本概念
  5. java 线程池 固定大小_使用Executors服务在Java中创建固定大小线程池的最佳方法...
  6. python win32ui_Python创建普通菜单示例【基于win32ui模块】
  7. php能反序列化js的吗,javascript – 如何在node.js中反序列化PHP会话?
  8. 机器学习实战 k-近邻算法 约会网站
  9. 应用回归分析第五版pdf百度网盘_常用软件分享PDF转换word/excel/text等
  10. 练一练思维缜密程度。有程式xyz+yzz=532,其中x、y、z都是整数,用c++编写一个程序,求x、y、z分别代表什么数字
  11. Markdown整理备忘(一)-- 符号整理
  12. 极速office(excel)如何查找出重复内容
  13. @Column中的length属性和@Size和@length区别
  14. 基于Vue+Express+Mysql开发的手机端电影购票系统(附源码)
  15. 1. 无线纳米传感器网络和纳米物联网络:背景、架构、特征
  16. 1.elasticsearch文档存储(保存|修改|删除)
  17. 学习Vue3 第三十四章(Vue3集成Tailwind CSS)
  18. 菜鸟网MySql教程
  19. 【项目精选】基于Electron + Vue的桌面音乐助手的设计与实现
  20. 词性标注_CodingPark编程公园

热门文章

  1. eclipse查看git地址_40个适用于Linux管理员和开发人员的git命令(上)
  2. js 正则匹配邮箱_比较正宗的验证邮箱的正则表达式js代码详解
  3. modbus地址扫描_西门子PLC通信编程MODBUS通信举例
  4. abstract class和interface有什么区别?_程序员必须掌握了解的21个Java核心技术,还在等什么?...
  5. php atlas,Apache Atlas是什么意思
  6. vba动态二维数组_VBA学习笔记19:数组1
  7. 权御天下计算机音乐数字乐谱,权御天下(单音 适合电吉他)
  8. Unsafe与CAS
  9. SlidingMenu使用笔记
  10. 云服务下的安全特点及基础防护