在Linux下几款常用命令行工具简介 (持续更新) (基本的文件处理命令不算在内)
1. aptitude
Apt的高级版本,可以更加智能的帮你解决依赖问题, 用Apt无法解决的依赖问题可以尝试用它。
2. sdcv
StarDict的命令行版, 命令后面直接跟单词列表就可以了. 支持单词以‘/’开头的模糊查询(Fuzzy Search)和以‘|’开头的全文查询(Full-test Search),还支持正则表达式中的‘?’和'*'. 不过好像查询结果条目过多的话会出现Bug,只能用'<Ctrl+Enter>'组合键确定输入.
示例:
$ #查询字典中所有以ove结尾的四个字符的单词.
$ sdcv '?ove'
Found 2 items, similar to ?ove.
0)CET4-->love
1)CET4-->move
Your choice[-1 to abort]: 1 <Ctrl+Enter>
-->CET4
-->love
[lʌv]
n. 爱,恋爱,爱情
vt. 爱,热爱,喜欢
.......
3. nmap
端口扫描工具, 学习服务器搭建时经常用到. 专门用来扫描某主机所开放的端口,提供的服务,操作系统版本,所用的包过滤器和防火墙.
示例:
$ nmap localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2012-04-01 18:07 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00043s latency).
Not shown: 990 closed ports
PORT STATE SERVICE
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
902/tcp open iss-realsecure
3689/tcp open rendezvous
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
4. nbtscan
在学习Linux网络维护时用到的,用于查询网络中的NetBIOS信息. 它会尽量返回某一主机的IP地址, 计算机在网络中的名字MAC地址等信息.
示例:
$ btscan 192.168.1.29
Doing NBT name scan for addresses from 192.168.1.29
IP address NetBIOS Name Server User MAC address
--------------------------------------------------------------------------------------------------------
192.168.1.29 SUBUNTU <server> SUBUNTU 00:00:00:00:00:00
5. bc
一个任意精度的可编程的计算器工具.支持简单变量(simple variable)和数组(array), 支持算数运算, 赋值, 关系运算, 逻辑运算, 支持函数和控制结构.
示例:
$ #进制转换
$ echo 'obase=16; 255' | bc
FF
6. xdotool
可以为键盘输入和鼠标动作进行编程,很好玩儿的一个工具.它可以帮你打游戏,帮你听网络公选课,帮你做所有需要鼠标或键盘去重复操作才能完成的无脑操作.
示例:
# #让鼠标每隔一段时间便单击屏幕上某一特定区域,然后我的网络公选课程一晚就听完了.
$ cat MouseMotion.sh
#! /bin/bash
while (true)
do
xdotool mousemove 50 50; xdotool click 1
notify-send "下一部"
echo -ne "$(date)\n" >> ~/xdot.log
sleep $((30*60+$RANDOM%5*20))
done
7. xsel
管理X的剪切板. X公有三个剪切板, 分别称为主(PRIMARY),次(SECONDARY)和CLIPBOARD,分别可以通过选项-p, -s, -b制定操作的剪切板.
示例:
$ #将字符串放入CLIPBOARD中:
$ echo -n 'I love you' | xsel -b
8. notify-send
发送桌面提示,在Ubuntu下由libnotify-bin包提供.
示例:
$ notify-send '该睡觉了'
9. zenity
显示GTK+风格的对话框.我们可以在脚本中使用zenity命令为用户展示一个交互的窗口,可以用来显示一个日历(返回用户选择的日期)、显示错误信息(返回真假)、显示文本输入对话框(返回用户输入文本)等等.你还可以通过一系列选项控制交互式窗口的样式.
示例:
$ #显示一个范围从0到10的标尺对话框
$ zenity --scale --title='标尺' --text='请选择' --min-value=0 --max-value=10
10. tee
tee命令可以同时将标准输入写往文件和标准输出. 用awk或sed编辑文件时候, 配合tee命令可以直接修改原文件(类似sed的-i选项, 不过sed无法将结果再送到标准输出).
示例:
$ seq 3 | tee hi
1
2
3
$ cat hi | sed -e 1d | tee hi
2
3
$ cat hi
2
3
10. screen
远程登录Linux的时候是否觉得一个终端不够用? 这时您可以使用screen提供的虚拟终端功能, 在同一物理终端运行多个交互式Shell. 注意, screen没有类似emacs的分屏功能, 同一时刻它只能显示一个屏幕. 创建多个虚拟终端后, 您需要利用键绑定在不同终端间切换.
示例:
$ #创建一个执行'vi /etc/hosts'命令的虚拟终端:
$ screen vi /etc/hosts
$ #再次创建一个虚拟终端:
$ <Ctr-a> + c
$ #查看当前所有已创建的虚拟终端:
$ <Ctr-a> + "
$ #返回之前的虚拟终端:
$ <Ctr-a> + p
$ #进入下一个虚拟终端:
$ <Ctr-a> + n
screen的选项和键绑定的详细情况请参照其手册页.
11. wget, axel
命令行下载工具. wget仅支持HTTP, HTTPS和FTP协议. wget支持断线重连, 可在差网络环境下载大文件, 还可以追踪网页链接以复制整个网站. axel, 下载加速工具, 支持HTTP, HTTPS和FTP. axel通过打开多个链接将文件分段下载.