没有什么能够阻挡 你对自由的向往 天马行空的生涯 你的心了无牵挂 穿过幽暗的岁月 也曾感到彷徨 当你低头的瞬间 才发觉脚下的路 心中那自由的世界 如此的清澈高远 盛开着永不凋零 蓝莲花
当然,我不会一行行的粘贴复制。有一个叫做的tac的命令似乎能完成这个工作,但它只能将整个文件反转。更好的选择是sed:
sed -e '4,240G;3,240h;3,239d' sample.js > reverse.js |
这样就搞定了!
简单解释一下。sed内部维护着两个缓冲区,模式缓冲和保留缓冲。通常,sed每每从文件读入一行就放入模式缓冲,由-e选项指定的各个命令依次处理这个缓冲内的文本,所有命令都执行完后,sed就把模式缓冲的内容输出的标准输出(如果没有指定-n选项的话)。保留缓冲是一个由用户显式使用的缓冲区。-e ’4,240G;3,240h;3,239d’中,G将保留缓冲取的内容附加到(append)模式缓冲,h将模式缓冲复制(copy)到保留缓冲,d将模式缓冲区的内容清除,各个命令前由逗号分割的数字指名了后面的命令在哪些行上执行,各命令由分号进行分割。
具体地:
- 1、2行被读入(模式缓冲)时,-e列出各命令都没有动作,直接输出;
- 第3行被读入时,G不执行,h将该行复制到保留缓冲,d将模式缓冲清除,没有输出;
- 第4行被读入模式缓冲,然后G将保留缓冲的内容(第三行)附加到模式缓冲,h又将模式缓冲复制到保留缓冲,d又将模式缓冲清除,没有输出;
- 重复3,直到第239行;
- 第240行被读入,G将第239到3行附加到第240行后面,h又将其复制到保留缓冲,d不执行,240到3行被输出;
- 241到243行被原样输出,至此,3~240行被反转
两周前,从家里往学校寄了10本书。今天接到通知去邮局取邮件。第一眼看到装书的纸箱子时差点没认出来,原来是一个装葡萄酒的方方正正的箱子,现在俨然一个大冬瓜了!心想箱子坏就坏了吧,书怎么着也不会坏吧,而且里面还塞着许多泡沫板呢,签完字就拿走了。回到宿舍打开一看就傻眼了。年前刚刚买的《Unix网络编程》失去了两周前的光鲜,成了半老徐娘,更惨的是和它一起入住的《算法导论》封面+扉页掉了一半,其他书也都有不同程度的损伤。娘的,看来空投了不止一次啊!邮政的全体员工,在这里,我默默地诅咒你们。
更新:
上面的脚本有一个问题,没播放一首歌曲mplayer都需要退出一次,耗费资源不说,还不能回放上一首。为了更方面的使用mplayer自身的功能和快捷键,我更新了上面的脚本,为mplayer生成了一个播放列表,然后用命令mplayer -playlist list.txt来播放。这样利用mplayer的快捷键,我们就可以很好的控制这个播放器了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #!/bin/sh #当脚本退出或被中断(Ctrl+C)时,删除曲目文件 trap 'rm -f list.txt;exit 1' INT trap 'rm -f list.txt' EXIT #连接ftp并进入指定目录 lftp "$1" <<!TOC! cd pub/"$2"/ ls > list.txt quit !TOC! #删除非mp3文件名,得到mp3文件名 sed -i -e '/mp3/!d' -e 's/^.\{56\}//g' list.txt sed -i "s#^\(.*\)#ftp://$1/pub/$2/\1#g" list.txt mplayer -playlist list.txt >/dev/null 2>&1 |
在LinuxToy上看到的,实在精彩!
| 命令 | 描述 |
|---|---|
| sudo !! | 以 root 帐户执行上一条命令。 |
| python -m SimpleHTTPServer | 利用 Python 搭建Web 服务器,可通过 http://$HOSTNAME:8000 访问。 |
| :w !sudo tee % | 在 Vim 中无需权限保存编辑的文件。 |
| cd - | 更改到上一次访问的目录。 |
| ^foo^bar | 将上一条命令中的 foo 替换为 bar,并执行。 |
| cp filename{,.bak} | 快速备份或复制文件。 |
| mtr google.com | traceroute + ping。 |
| !whatever:p | 搜索命令历史,但不执行。 |
| $ssh-copy-id user@host | 将 ssh keys 复制到 user@host 以启用无密码 SSH 登录。 |
| ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg | 把 trnux 桌面录制为视频。 |
但是,有两条命令着实无法理解,Vim保存文件的和备份的。哪位解释一下?
Linux下的硬盘及分区
Linux系统可以挂载多个不同接口类型的磁盘(disk),每一个磁盘又可以分成若干个分区(Partition),每个分区又可以拥有自己的文件系统类型(FileSystem)。Linux对于磁盘和分区又自己的一套标记方法。
硬盘和分区的区分
第一个SCSI(Small Computer System Interface)磁盘记为/dev/sda,第二个SCSI磁盘记为/dev/sdb;第一个SATA磁盘记为/dev/hda,第二个为/dev/hdb,以此类推。Linux系统中,每一个磁盘的各个分区编号是从1开始的,例如,第一个SCSI磁盘的第一个分区为/dev/sda1,第二分区为/dev/sda2。
分区结构
一块没有分过区的硬盘(RAW)就像一块荒蛮的土地,是没有有意义数据的。分好区的硬盘就会具有一定的结构性。分区就是将硬盘分为一定的区域,便于使用。 一块硬盘最多可以分四个区(主分区)。无论硬盘分多少个区,它的最前面都有一个引导扇区(主引导记录MBR)。
主引导记录由三部分组成:开始是446B的操作系统引导代码,紧接着是64byte的主分区表。主分区表最多记录四个主分区的分区信息,主要包括该分区的起始/结束柱面、大小、类型等信息。每个分区记录占用16B。分区就是修改分区表,它不影响硬盘上的存储的数据。最后是2字节的结束标志0x55AA(01010101 10101010)。
所谓大小端模式,就是一个关于数据字节在存储顺序的问题。在某些编程环境中,了解大小端是非常重要的,比如汇编和网络编程中,对存取和发送、接收数据的字节序都有严格的要求。当然,在高层次,你很少会需要考虑到这些。为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节。在许多计算机语言中,许多数据类型都是多字节的,这就产生了多字节数据在内存中存放数据的问题。在大端模式(Big-endian)中,数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中;在小端模式(Little-endian)中,数据低位就存放在内存的低位。了解了什么是大小端,看下面的程序,输出结果是什么?
1 2 3 4 5 6 7 8 9 10 | #include <stdio.h> int main() { int a[] = {1, 2, 3, 4, 5}; int *ptr1 = (int*) (&a + 1) - 1; int *ptr2 = (int*) ((int)a + 1); printf("%x, %x\n", *ptr1, *ptr2); return 0; } |
C++类的静态函数是属于类型的,而不是某个对象的,因此把它声明成Virtual也没什么实际意义。那么运行下面这段程序,会产生什么样的结果呢?
1 2 3 4 5 6 7 8 | #include <iostream> using namespace std; class Base { public: static void foo() { cout<<"Base"<<endl; } virtual void bar() { foo(); } }; |
大家看到这里每个页面顶部的命令技巧了吗?这是一些随机显示的Linux命令,有很大一部分是基于Debian的,还有一些是Ubuntu所特有的。这些Skills最初来源于Ubuntu中文论坛,我把它重新整理了一下下,删减了一些系统维护类的技巧,保留的主要偏于应用技巧类的。随着以后我对Linux的使用,我会不断的添加。
同时,我还制作了一个PDF,只有两页,算作是又一个Linux Commands Cheat Sheet吧!有兴趣的点击此处下载,打印了,贴墙上!为方便某些同志的修改,奉上它的
源文件。
P.S. 我怎么在RSS中调用JS?
- 桌面系统:Ubuntu (30.13%)
- 服务器:Debian (24.24%)
- 系统恢复盘:BackTrack (43.48%)
- 数据库:MySQL(60.81%)
- 办公套件:OpenOffice.org (90.76%)
- 浏览器:Firefox (65.21%)
- 桌面环境:Gnome (41.96%)
- 窗口管理器:Compiz (23.10%)
- 即时通讯:Pidgin (48.74%)
- 邮件客户端:Thunderbird (53.48%)
- 虚拟机产品:VirtualBox (67.43%)
- 音频播放器:Amarok (38.81%)
- 音频编辑器:Audacity (77.26%)
- 视频播放器:VLC (46.05%)
- 视频编辑器:FFmpeg (21.94%)
- 多媒体工具:GStreamer (32.84%)
- 图像软件:GIMP (66.48%)
- 网络安全:Nmap Security Scanner (29.85%)
- 主机安全:SELinux (39.26%)
- 网络监视:Nagios (51.11%)
- IDE/网页开发:Eclipse (23.28%)
- 文本编辑器:vim (35.29%)
- 文件管理器:Nautilus (24.92%)
- 开源游戏:Battle for Wesnoth (15.45%)
- 编程语言:Python (27.59%)
- 备份工具:rsync (48.99%)
- 开源内容管理系统/博客平台:WordPress (45.20%)