- 浏览: 221181 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (144)
- Python (6)
- Java (15)
- Project management (2)
- DB (11)
- Spring (1)
- Mobile (3)
- 互联网 (10)
- Maven (2)
- SCM (5)
- linux (24)
- Mac (14)
- UCD / UED (6)
- Tools (1)
- Test (1)
- iPhone (1)
- 新产品&新工具 (8)
- OAuth (4)
- Java Script (5)
- HTML5 (2)
- Lucene / Solr (7)
- nginx (1)
- Product Manager (1)
- Design (1)
- Office (1)
- RegExp (0)
- 性能调优 (2)
- 读书笔记 (2)
- NodeJs (2)
最新评论
-
410163269:
看不清楚 蛋疼
基于 OAuth 安全协议的 Java 应用编程 -
xufun:
路过,拜读学习了。谢谢!
未来的授权标准 -- OAuth 2.0 -
xufun:
好文!路过拜读了,谢谢!
NoSQL - CouchDB入门 -
mimicom:
牛b......
最牛B的 Linux Shell 命令(三) -
as3291363:
你有一些 中文資料嗎????
Java Script 代码生成器: CoffeeScript
1.用你最喜欢的编辑器来敲命令
command <CTRL-x CTRL-e>
在已经敲完的命令后按 <CTRL-x CTRL-e> ,会打开一个你指定的编辑器(比如vim,通过环境变量$EDITOR指定),里面就是你刚输入的命令,然后爱怎么编辑就怎么编辑吧,特别是那些参数异常 复杂的程序,比如mencoder/ffmpeg,一个命令动辄3、4行的,要修改其中的参数,这个方法最合适不过了,保存退出后自动执行这个程序。
实际上这是readline 库的功能,在默认情况下,bash使用的是emacs模式的命令行操作方式, <CTRL-x CTRL-e>是调用这个功能的一个绑定。如果你习惯使用vi模式,按 <ESC v> 可以实现同样功能。
如果你喜欢别的编辑器,可以在~/.bashrc里面放上比如export EDITOR=nano的命令。
另外一个修改命令的方法是使用fc命令(Fix Command),在编辑器里面打开上一句命令。我们的第一辑连载提过一个^foo^bar^命令可以用fc来实现:fc -s foo=bar。
2.清空或创建一个文件
> file.txt
>在shell里面是标准输出重定向符,即把(前部个命令的)命令行输出转往一个文件内,但这里没有”前部命令”,输出为空,于是就覆盖(或创建)成一个空文件了。
有些脚本的写法是:>file.txt,因为:是bash默认存在的空函数。
单纯创建文件也可以用$touch file.txt,touch本来是用作修改文件的时间戳,但如果文件不存在,就自动创建了。
3.用SSH创建端口转发通道
ssh -N -L2001:remotehost:80 user@somemachine
这个命令在本机打开了2001端口,对本机2001端口的请求通过somemachine作为跳板,转到remotehost的80端口上。
实现效果跟术语反向代理是相似的,实际上就是端口转发,注意上面的描述涉及了3台主机,但当然somemachine可以变成localhost。
这个命令比较抽象,但有时候是很有用的,比如因为众所周知的原因国内的IP的80端口无法使用,又或者公司的防火墙只给外网开了ssh端口,需要访问内部服务器一个web应用,以及需要访问某些限定了来源IP的服务,就可以用上这个方法了。
举一个具体例子,运行:
ssh -f -N -L 0.0.0.0:443:twitter.com:443 shell.cjb.net
ssh -f -N -L 0.0.0.0:80:twitter.com:80 shell.cjb.net
然后在/etc/hosts里面添加127.0.0.1 twitter.com,好吧剩下的你懂的。
当然通常做这个功能的反向代理,应该要用squid、nginx之类,ssh就算是轻量级的尝试吧!
4.重置终端
reset
如果你试过不小心cat了某个二进制文件,很可能整个终端就傻掉了,可能不会换行,没法回显,大堆乱码之类的,这时候敲入reset回车,不管命令有没有显示,就能回复正常了。
实际上reset命令只是输出了一些特殊字符,我们看BusyBox里面最简单的reset程序的实现:
printf(“\033c\033(K\033[J\033[0m\033[?25h”);
输出的这些字符对Shell是有特殊意义的:
\033c: “ESC c” – 发送重置命令;
\033(K: “ESC ( K” – 重载终端的字符映射;
\033[J: “ESC [ J” – 清空终端内容;
\033[0m: “ESC [ 0 m” – 初始化字符显示属性;
\033[?25h: “ESC [ ? 25 h” – 让光标可见;
其中字符显示属性经常用来设定打印字符的颜色等,可参考这个博文 。
5.在午夜的时候执行某命令
echo cmd | at midnight
说的就是at这个组件,通常跟cron相提并论,不过at主要用于定时一次性任务,而cron定时周期性任务。
at的参数比较人性化,跟英语语法一样,可以tomorrow, next week之类的,详细的查看手册man at。
6.远程传送麦克风语音
dd if=/dev/dsp | ssh username@host dd of=/dev/dsp
没错就是实现一个喊话器的功能。
/dev/dsp是Linux下声卡的文件映射(Digital Signal Proccessor),从其中读数据就是录音,往里面写数据就是播放,相当简单!
dd是常用的数据拷贝程序,如果不同时指定if、of,就直接使用stdin/stdout来传输。
如果你没有远程主机,可以试试这样:
dd if=/dev/dsp of=/dev/dsp
直接回放麦克风的声音,只是有一点延时。
但是如果有别的程序正在使用声卡,这个方法就不凑效了,因为一般的声卡都不允许多个音频流同时处理,可以借用alsa组件的工具,arecord跟aplay:
arecord | ssh username@host aplay
本地回放就是:
arecord | aplay
如果你想吓吓别人:
cat /dev/urandom | ssh username@host aplay
7.映射一个内存目录
mount -t tmpfs -o size=1024m tmpfs /mnt/ram
这个命令开了一块1G内存来当目录用。不过放心,如果里面没文件,是不会占用内存的,用多少占多少。
不过一般来说没必要手动挂载,因为多数发行版都会在fstab内预留了一个内存目录,挂载在/dev/shm,直接使用即可;
最常见的用途是用内存空间来放Firefox的配置,可以让慢吞吞的FF快很多,参见Shellex的博文:用tmpfs让Firefox在内存中飞驰 ,以及后来的改进:用tmpfs让Firefox在内存中飞驰II ,其中提到的脚本来自speeding up firefox with tmpfs and automatic rsync 。
那个破烂LinuxQQ也可以用这个方法,减少因为大量磁盘IO导致的问题。
8.用DIFF对比远程文件跟本地文件
ssh user@host cat /path/to/remotefile | diff /path/to/localfile -
diff通常的用法是从参数读入两个文件,而命令里面的-则是指从stdin读入了。
善用ssh可以让web开发减少很多繁琐,还有比如sshfs,可以从编辑-上传-编辑-上传的人工循环里面解脱出来。
9.查看系统中占用端口的进程
netstat -tulnp
Netstat是很常用的用来查看Linux网络系统的工具之一,这个参数可以背下来:
-t: 显示TCP链接信息
-u: 显示UDP链接信息
-l: 显示监听状态的端口
-n: 直接显示ip,不做名称转换
-p: 显示相应的进程PID以及名称(要root权限)
如果要查看关于sockets更详细占用信息等,可以使用lsof工具。
发表评论
-
HowTo: Add Jobs To cron Under Linux or UNIX?
2011-04-27 14:24 1116How do I add cron job under Lin ... -
wget下载网站目录下的所有文件
2011-04-26 14:18 2934wget是linux下命令行的下载工具,功能很强大。 ... -
用wget爬取网站
2011-04-26 14:10 4009下载单独页面: wget xxx.com/a.htm 下 ... -
从 screen 切换到 tmux
2011-04-17 12:12 1359对于各个终端控来说,screen 是几乎每天都会使用的 ... -
linux下远程管理利器-tmux
2011-04-01 20:07 1172在使用无论哪种软件 ... -
Linux 下常用的 CLI 软件
2011-04-01 19:56 974作为Linuxer,必须具备一定的CLI操作能力。有时候用 ... -
Vi删除操作大全
2011-04-01 15:04 801:%s/r//g ... -
在Linux系统下递归删除文件或目录的方法
2011-03-23 15:30 1062在linux下没有类似DOS下 del/s *.dep 的 ... -
Linux中如何让进程在后台运行
2011-03-23 11:11 917在Linux中,如果要 ... -
我的Linux书架
2011-01-28 22:59 822入门类 一直认为,在 ... -
Linux系统信息查看命令大全
2010-09-03 14:05 826系统 # uname -a ... -
linux下解压命令大全
2010-09-03 14:02 792.tar 解包:tar xvf FileName.tar ... -
最牛B的 Linux Shell 命令(四)
2010-09-01 13:58 11131.查看ASCII码表 man 7 ascii ... -
使用grep恢复被删文件内容
2010-08-24 16:24 819在Unix/Linux下,最危险的命令恐怕就属rm命令了,每次 ... -
最牛B的 Linux Shell 命令(三)
2010-08-23 17:40 11271. 更友好的显示当前挂 ... -
最牛B的 Linux Shell 命令(一)
2010-08-20 15:11 9691.以SUDO运行上条命令 $ s ... -
Cygwin 的轻量级替代品 Gow: 可让你在 Windows 上使用 Linux 命令
2010-08-20 11:09 1202如果你是 Linux 及 Windows 的双料用户,而且是深 ... -
第二部分 Linux 文件、目录与磁盘格式 - Chapter 9 文件的压缩与打包
2009-08-24 16:45 943Chapter 9 文件的压缩与打 ... -
第二部分 Linux 文件、目录与磁盘格式 - Chapter 7 Linux文件和目录管理
2009-08-19 17:46 1112# 目录与路径 * 相对路径与绝对路径 (略) ... -
第二部分 Linux 文件、目录与磁盘格式 - Chapter 6 linux的文件属性与目录配置
2009-08-10 14:42 1189# 文件属性 Linux 文件的基本属性就有九个,分别是 o ...
相关推荐
最牛B的 Linux Shell 命令,最牛B的 Linux Shell 命令,
标题《最牛B的Linux_Shell命令》所指向的知识点覆盖了Linux中Shell命令的强大和便捷性,尤其是在完成系统管理任务时的实用性。Shell命令之所以重要,是因为它们充当了用户和操作系统之间的接口,能够调用和控制底层...
【Linux Shell 命令详解】 在Linux操作系统中,Shell是一个至关重要的组成部分,它作为用户与系统交互的接口,提供了一系列强大的命令行工具。本文将详细介绍一些顶级的Linux Shell命令,帮助用户提升在Linux运维和...
Shell作为Unix系操作系统当中最有魅力且不可或缺的组件,经过数十载的...本文的一些命令很可能看起来是"雕虫小技",我们只好仰慕一下Shell大牛了,但是有些细节我会稍加发掘加以说明,遇到有趣的地方希望能博您一笑了。
最牛B 的 linux B shell 命令 最牛B 的 linux B shell 命令
Linux常用命令大全Linux常用命令深入理解Linux内核鸟哥的Linux私房菜Linux命令学习资料(12个): Linux命令大全(Linuxidc.com修改版).chm Linux命令学习.chm Linux基础命令教程(豪华版).chm LINUX安全加固手册.doc ...
Linux Shell编程是一种使用命令行解释器(如bash)编写脚本的方式,它在Linux系统管理、自动化任务和处理文本文件等方面有着广泛的应用。Shell脚本的使用是面试Linux系统管理员、运维工程师、DevOps工程师等职位时必...
Linux 的命令格式通常由命令名、选项和参数组成,例如 `ls -l`、`mkdir -p` 等。 11. Linux 目录处理命令 Linux 目录处理命令包括 `ls`、`mkdir`、`cd`、`pwd`、`rmdir` 等,用于目录的管理和操作。 12. Linux ...
史上最牛Linux教程。 简单,易学,页数不是很多。
Mint11官方中文手册.pdfLinux命令大全(Linuxidc.com修改版).chmLinux命令学习.chmLinux基础命令教程(豪华版).chmLinux基础命令教程豪华版.chmLINUX安全加固手册.docLinux常用命令全集.CHMLinux常用命令大全.chm史上...
#### 二、Kconfig和Makefile的重要性 Kconfig和Makefile是Linux内核中两个非常重要的配置文件,它们不仅能够帮助开发者构建内核,还能够指导开发人员理解内核模块之间的关系。对于初学者而言,理解这两个文件的作用...
《史上最牛Linux教程》可能是一个集大成者,包含了丰富的Linux知识和实战技巧,适合有一定基础的用户提高技能。 《深入理解Linux内核》则更偏重于技术深度,讲解了Linux内核的工作原理,对想要了解Linux内部机制的...
史上最牛的linux教程学习笔记整理、linux学习笔记整理、
所提供的资源如“史上最牛Linux教程”、“Linux基础命令教程豪华版”和“Linux常用命令”都是很好的学习材料,值得深入研究。学习Linux不仅能提升工作效率,也有助于理解计算机系统底层工作原理,为成为IT专家打下...
本文将详细介绍一款被誉为“Linux下最牛B的测网速软件”——iperf,以及如何利用它来进行网络速度和性能的测量。 iperf是一款强大的网络性能测试工具,它支持TCP和UDP协议,可以用来测量带宽、延迟抖动以及网络连接...
#### 二、Kconfig和Makefile的重要性 在Linux内核的源码中,几乎每个目录下都有Kconfig和Makefile这两个文件。这两个文件如同地图和指南针,在我们探索内核的迷宫时起着至关重要的作用。了解它们的工作原理和使用...