1 |
mount | column -t |
这条命令适用于任何文件系统,column 用于把输出结果进行列表格式化操做,这里最主要的目的是让你们熟悉一下 columnt 的用法。 下面是单单使用 mount 命令的结果:html
1 2 3 4 5 |
$ mount /dev/root on / type ext3 (rw) /proc on /proc type proc (rw) /dev/mapper/lvmraid-home on /home type ext3 (rw,noatime) |
而加了 column -t 命令后就成为这样了:python
1 2 3 4 5 |
$ mount | column -t /dev/root on / type ext3 (rw) /proc on /proc type proc (rw) /dev/mapper/lvmraid-home on /home type ext3 (rw,noatime) |
另外你可加上列名称来改善输出结果mysql
1 2 3 4 5 6 |
$ (echo "DEVICE - PATH - TYPE FLAGS" && mount) | column -t DEVICE - PATH - TYPE FLAGS /dev/root on / type ext3 (rw) /proc on /proc type proc (rw) /dev/mapper/lvmraid-home on /home type ext3 (rw,noatime) |
列2和列4并非很友好,咱们能够用 awk 来再处理一下linux
1 2 3 4 5 6 |
$ (echo "DEVICE PATH TYPE FLAGS" && mount | awk '$2=$4="";1') | column -t DEVICE PATH TYPE FLAGS /dev/root / ext3 (rw) /proc /proc proc (rw) /dev/mapper/lvmraid-home /home ext3 (rw,noatime) |
最后咱们能够设置一个别名,为 nicemountsql
1 |
$ nicemount() { (echo "DEVICE PATH TYPE FLAGS" && mount | awk '$2=$4="";1') | column -t; } |
试一下shell
1 2 3 4 5 6 |
$ nicemount DEVICE PATH TYPE FLAGS /dev/root / ext3 (rw) /proc /proc proc (rw) /dev/mapper/lvmraid-home /home ext3 (rw,noatime) |
1 |
!!:gs/foo/bar |
!!
表示重复执行上一条命令,并用ubuntu
:gs/foo/bar
进行替换操做。bash
关于服务器
!!
这个用法在app
前一篇文章中已有详细的介绍。
1 |
watch -d -n 1 'df; ls -FlAt /path' |
watch 是实时监控工具,-d 参数会高亮显示变化的区域,-n 1 参数表示刷新间隔为 1 秒。 df; ls -FlAt /path 运行了两条命令,df 是输出磁盘使用状况,
ls -FlAt
则列出 /path 下面的全部文件。 ls -FlAt 的参数详解:
.
和 ..
1 |
sshfs name@server:/path/to/folder /path/to/mount/point |
这条命令可让你经过 SSH 加载远程主机上的文件系统为本地磁盘,前提是你须要安装 FUSE 及 sshfs 这两个软件。
译者注:关于 sshfs 实际上我以前写过一篇文章介绍过,详见
在 Ubuntu 上使用 sshfs 映射远程 ssh 文件系统为本地磁盘。 卸载的话使用 fusermount 或 umount 命令:
1 2 |
$ fusermount -u /path/to/mount/point # umount /path/to/mount/point |
1 |
dig +short txt .wp.dg.cx |
这也许是最有趣的一条技巧了,David Leadbeater 建立了一个
DNS 服务器,经过它当你查询一个 TXT 记录类型时,会返回一条来自于 Wikipedia 的简短的词条文字,这是
他的介绍。 这里有一个样例,来查询 “hacker” 的含义:
1 2 3 4 5 6 7 8 |
$ dig +short txt hacker.wp.dg.cx "Hacker may refer to: Hacker (computer security), someone involved in computer security/insecurity, Hacker (programmer subculture), a programmer subculture originating in the US academia in the 1960s, which is nowadays mainly notable for the free software/” “open source movement, Hacker (hobbyist), an enthusiastic home computer hobbyist http://a.vu/w:Hacker" |
这里使用了 dig 命令,这是标准的用来查询 DNS 的系统管理工具,+short 参数是让其仅仅返回文字响应,txt 则是指定查询 TXT 记录类型。 更简单的作法是你能够为这个技巧建立一个函数:
1 2 3 4 5 |
wiki() { dig +short txt $1.wp.dg.cx; } #而后试试吧: wiki hacker "Hacker may refer to: Hacker (computer security), …" |
若是你不想用 dig ,也能够用 host 命令:
1 |
host -t txt hacker.wp.dg.cx |
另外在Twitter上看过某人的创意,用普通的dns来做为程序版本更新的查询服务器:设定域名
software-version-check.example.com
的A记录为
1.2.40.3
,对比本身的版本号,嗯,有更新了!
1 |
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 其它一些有用的参数:
1 |
<Ctrl + .> or <ESC + . > |
这个快捷键只能工做于 shell 的 emacs 编辑模式,它能够从最后使用的命令行中复制参数到当前命令行中,下面是一个样例:
1 2 3 4 5 |
$ echo a b c a b c $ echo $ echo c |
你能够重复执行该快捷键,以便获取自已须要的参数, 如下是样例:
1 2 3 4 5 6 7 8 9 10 |
$ echo 1 2 3 1 2 3 $ echo a b c a b c $ echo $ echo c $ echo again $ echo 3 |
另外,假如你想指定第1个或第2个,或者是第 n 个参数的话,能够按 ALT + 1 (或 ESC + 1) 或 ALT + 2 (或 ESC +2) 这样形式的快捷键。 如下是样例:
1 2 3 4 5 6 7 8 9 10 |
$ echo a b c a b c $ echo $ echo a a $ echo $ echo b b |
查看
Emacs Editing Mode Keyboard Shortcuts一文获取更多相似的快捷键。
1 |
$ command |
这条命令可运行于最新的 Bash shell 里,在其它 shell 中没测试过。 经过在命令行前面添加一个空格,就能够阻止这条命令被保存到 bash history (~/.bash_history) 文件中,这个行为能够经过 $HISTIGNORE shell 变量来控制。个人设置是 HISTIGNORE=”&:[ ]*” ,表示不保存重复的命令到 history 中,而且不保存以空格开头的命令行。$HISTIGNORE 中的值以冒号分隔。 若是你的命令内包含密码,好比
mysqladmin
,不把它记录在历史当中是好主义。 深刻了解的话,可进一步看此文
The Definitive Guide to Bash Command Line History 1 |
du -h --max-depth=1 |
–max-depth=1 参数可让 du 命令显示当前目录下 1 级子目录的统计信息,固然你也能够把 1 改成 2 ,进一步显示 2 级子目录的统计信息,能够灵活运用。而 -h 参数则是以 Mb 、G 这样的单位来显示大小。
译者注:在此推荐一个小工具 ncdu ,能够更方便的达到此效果。
1 |
ps aux | sort -nk +4 | tail |
显然这并非最好的方法,但它确实用起还不错。 这是一个典型的管道应用,经过 ps aux 来输出到 sort 命令,并用 sort 排序列出 4 栏,再进一步转到 tail 命令,最终输出 10 行显示使用内存最多的进程状况。 假如想要发现哪一个进程使用了大量内存的话,我一般会使用 htop 或 top 而非 ps 。
1 |
python -m smtpd -n -c DebuggingServer localhost:1025 |
这是一个用 Python 标准库 smtpd (用 -m smtpd 指定) 实如今简易 SMTP 服务,运行于 1025 端口 。 另外三个参数的解释:
-n 参数让 Python 不要进行 setuid ( 改变用户)为 “nobody” ,也就是说直接用你的账号来运行-c DebuggingServer 参数是让 Python 运行时在屏幕上输出调试及运行信息 * localhost:1025 参数则是让 Python 在本地的 1025 端口上开启 SMTP 服务 另外,假如你想让程序运行于标准的 25 的端口上的话,你必须使用 sudo 命令,由于只有 root 才能在 1-1024 端口上开启服务。以下:
1 |
sudo python -m smtpd -n -c DebuggingServer localhost:25 |