无意中看到一篇关于shell命令的用法,挺实用的,故记录下
1.sudo !!
!!相当于!-1,也就是执行前一条命令,当然也可以!-2,!-50。
扩展
!?str? 最近一条包含str的命令
!* 上一条命令中的所有参数
2.$ python -m SimpleHTTPServer
启动Python的SimpleHTTPServer模块,以HTTP方式共享当前文件夹的文件
3.普通用户vim保存一个root权限的文件
:w !sudo tee %
忘记了sudo,直接执行这条命令,不用再重新打开编辑
4.替换上一条命令中的一个短语
$ ^foo^bar^
结合!!使用,如!!:s/foo/bar/
扩展
!!:gs/old/new 将上一命令中的old替换为new
!scp:gs/old/new 将上一scp命令中的old替换为new
5.快速备份一个文件
$ cp filename{,.bak}
filename{,.bak} 这一段会被展开成filename filename.bak再传给cp
6.用SSH创建端口转发通道
ssh -N -L2001:remotehost:80 user@somemachine
本机打开了2001端口,对本机2001端口的请求通过somemachine作为跳板, 转到remotehost的80端口上。
7.重置终端
reset
8.在午夜的时候执行某命令
echo cmd | at midnight
at这个组件,通常跟cron相提并论,不过at主要用于定时一次性任务,而cron定 时周期性任务。
at 的参数比较人性化,跟英语语法一样,可以tomorrow, next week之类的,详细的查看 手册man at。
9.映射一个内存目录
mount -t tmpfs -o size=1024m tmpfs /mnt/ram
挂载1G内存到/mnt/ram下,里面存多少就用多少
一般的发行版都会在fstab内预留了一个内存目录,挂载在/dev/shm,直接使用即可
10.用DIFF对比远程文件跟本地文件
ssh user@host cat /path/to/remotefile | diff /path/to/localfile -
-是指从stdin读入
11.更友好的显示当前挂载的文件系统
mount | column -t
column 用于把输出结果进行列表格式化操作
接上,用 awk 来再处理一下,把2和4去掉
(echo "DEVICE PATH TYPE FLAGS" && mount | awk '2=$4=”“;1’) | column -t
把该命令做一个别名
nicemount() { (echo “DEVICE PATH TYPE FLAGS” && mount | awk ‘2=4=”“;1’) | column -t; }
12.实时某个目录下查看最新改动过的文件
watch -d -n 1 ‘df; ls -FlAt /path’
watch 是实时监控工具,-d 参数会高亮 显示变化的区域,-n 1 参数表示刷新间隔为 1 秒
‘df; ls -FlAt /path’是要执行的命令,df查看硬盘使用情况,ls -FlAt 查看/path下的所有文件
13.通过 SSH 挂载远程主机上的文件夹
sshfs name@server:/path/to/folder /path/to/mount/point
需要安装 FUSE 及 sshfs 这两个软件
卸载使用 fusermount 命令: fusermount -u /path/to/mount/point
14.通过 DNS 来读取 Wikipedia 的词条
dig +short txt .wp.dg.cx
测试不可用,在国外主机上测试也不可用,关掉了?
15.用 Wget 的递归方式下载整个网站
wget –random-wait -r -p -e robots=off -U Mozilla www.example.com
参数解释:
–random-wait 等待 0.5 到 1.5 秒的时间来进行下一次请求
-r 开启递归检索
-e robots=off 忽略 robots.txt
-U Mozilla 设置 User-Agent 头为 Mozilla
其它一些有用的参数:
–limit-rate=20K 限制下载速度为 20K
-o logfile.txt 记录下载日志
-l 0 删除深度(默认为5)
–wait=1h 每下载一个文件后等待1小时
16.简易计时器
time read
运行命令开始算起,到结束时按一下Enter
17.列出你最常用的10条命令
history | awk ‘{a[$2]++}END{for(i in a){print a[i] ” ” i}}’ | sort -rn | head
18.看星球大战
telnet towel.blinkenlights.nl
如果是ipv6,还可以看彩色的