暂停:
ctrl + z
%: bg ## 重新开始,并且把foreground job放到了background
开启 background jobs:
在command后端加 &
比如: du -sh * &
查看正在运行的background jobs:
%: jobs
把background jobs 推到 foreground:
%: fg
关掉background jobs:
%: kill %1 ## 数字是background job 的编号
巭狗的自我修养
2013年11月20日星期三
2013年11月18日星期一
VIM ---- Removing duplicate lines
STEP 1:
sort all lines
:sort u
STEP 2:
remove duplicates , the first leaves only the last line, the second leaves only the first line.
g/^\(.*\)$\n\1$/d g/\%(^\1$\n\)\@<=\(.*\)$/d
Breakdown of the second version:
g//d <-- Delete the lines matching the regexp \@<= <-- If the bit following matches, make sure the bit preceding this symbol directly precedes the match \(.*\)$ <-- Match the line into subst register 1 \%( ) <--- Group without placing in a subst register. ^\1$\n <--- Match subst register 1 followed by end of line and the new line between the 2 lines
2013年11月13日星期三
vim大小写转换
vim中大小写转化的命令是
gu或者gU
形象一点的解释就是小u意味着转为小写;大U意味着转为大写.
剩下的就是对这两个命令的限定(限定操作的行,字母,单词)等等
1、整篇文章大写转化为小写
打开文件后,无须进入命令行模式。键入:ggguG
打开文件后,无须进入命令行模式。键入:gggUG
将光标定位到想转换的行上,键入:1gU 从光标所在行 往下一行都进行小写到大写的转换
10gU,则进行11行小写到大写的转换
以此类推,就出现其他的大小写转换命令
gU0 :从光标所在位置到行首,都变为大写
gU$ :从光标所在位置到行尾,都变为大写
gUG :从光标所在位置到文章最后一个字符,都变为大写
gU1G :从光标所在位置到文章第一个字符,都变为大写
gu或者gU
形象一点的解释就是小u意味着转为小写;大U意味着转为大写.
剩下的就是对这两个命令的限定(限定操作的行,字母,单词)等等
1、整篇文章大写转化为小写
打开文件后,无须进入命令行模式。键入:ggguG
解释一下:ggguG分作三段gg gu G2、整篇文章小写转化为大写
gg=光标到文件第一个字符
gu=把选定范围全部小写
G=到文件结束
打开文件后,无须进入命令行模式。键入:gggUG
解释一下:gggUG分作三段gg gU G3、只转化某个单词
gg=光标到文件第一个字符
gU=把选定范围全部大写
G=到文件结束
guw 、gue4、转换几行的大小写
gUw、gUe
这样,光标后面的单词便会进行大小写转换
想转换5个单词的命令如下:
gu5w、gu5e
gU5w、gU5e
将光标定位到想转换的行上,键入:1gU 从光标所在行 往下一行都进行小写到大写的转换
10gU,则进行11行小写到大写的转换
以此类推,就出现其他的大小写转换命令
gU0 :从光标所在位置到行首,都变为大写
gU$ :从光标所在位置到行尾,都变为大写
gUG :从光标所在位置到文章最后一个字符,都变为大写
gU1G :从光标所在位置到文章第一个字符,都变为大写
2013年11月6日星期三
关于Clock Latency & Clock Uncertainty 略全面的解析(转自edaboard forum)
Let me try to clear up some of the confusing terminology - clear terminology allows for clear thinking.
The first important point is that there are two phases in the design of a clock signal. At first the clock is in "ideal mode" (e.g.: during RTL design, during synthesis and during placement). An "ideal" clock has no physical distribution tree, it just shows up magically on time at all the clock pins.
The second phase comes when clock tree synthesis (CTS) inserts an actual tree of buffers into the design that carries the clock signal from the clock source pin to the (thousands) of flip-flops that need to get it. CTS is done after placement and before routing. After CTS is finished, the clock is said to be in "propagated mode".
Now we can get to your questions:
What is clock latency? Clock latency is an ideal mode term. It refers to the delay that is specified to exist between the source of the clock signal and the flip-flop clock pin. This is a delay specified by the user - not a real, measured thing. (In fact there is 'clock source latency' and 'clock network latency' - the difference is not important for this discussion). When the clock is actually created, then that same delay is now referred to as the "insertion delay". Insertion delay (ID) is a real, measurable delay path through a tree of buffers. Sometimes the clock latency is interpreted as a desired target value for the insertion delay.
What is clock uncertainty? In ideal mode the clock signal can arrive at all clock pins simultaneously. But in fact, that perfection is not achievable. So, to anticipate the fact that the clock will arrive at different times at different clock pins, the "ideal mode" clock assumes a clock uncertainty. For example, a 1 ns clock with a 100 ps clock uncertainty means that the next clock tick will arrive in 1 ns plus or minus 50 ps.
A deeper question gets into *why* the clock does not always arrive exactly one clock period later. There are several possible reasons but I will list 3 major ones:
(a) The insertion delay to the launching flip-flop's clock pin is different than the insertion delay to the capturing flip-flop's clock pin (one paths through the clock tree can be longer than another path). This is called clock skew.
(b) The clock period is not constant. Some clock cycles are longer or shorter than others in a random fashion. This is called clock jitter.
(c) Even if the launching clock path and the capturing clock path are absolutely identical, their path delays can still be different because of on-chip variation. This is where the chip's delay properties vary across the die due to process variations or temperature variations or other reasons. This essentially increases the clock skew.
2013年10月31日星期四
GNU - Make
######
### Make if fucking complicated and tough, so let's skip this topic first
#####
在Linux环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为Makefile文件的编写。此文件正是make正常工作的基础。
所要完成的Makefile文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要得可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个(多个)正确的Makefile。编译整个工程你所要做的唯一的一件事就是在shell 提示符下输入make命令。整个工程完全自动编译,极大提高了效率。
#====================================================
Rule:
### Make if fucking complicated and tough, so let's skip this topic first
#####
在Linux环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为Makefile文件的编写。此文件正是make正常工作的基础。
所要完成的Makefile文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要得可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个(多个)正确的Makefile。编译整个工程你所要做的唯一的一件事就是在shell 提示符下输入make命令。整个工程完全自动编译,极大提高了效率。
#====================================================
Rule:
一个最简单的Makefile可能只包含 rule 描述。也可以包含除rule以外的部分。
rule 描述了 规则包含了目标和依赖的关系以及更新目标所要求的命令。
2013年10月14日星期一
UNIX 常用命令列表
Command | 説明 |
which clear reset passwd | 用来找某个指令所在位置,或者代表的意思 清屏,本质上是向下翻页 完全刷新终端屏幕,之前的终端信息将都会被清空 修改用户密码 |
pwd | 打印当前目录 |
cd | 改变目录 |
ls | 列出目录中文件 |
wildcards | 通配符 * 匹配任何数量的字符 通配符? 匹配单个字符 |
file | 打印出文件的类型 |
cat | 显示文件内容 |
pr | 显示文件内容 |
pg page | 一次一页的显示文件内容 |
more | 一次一页的显示文件内容 |
cp copy | 复制文件 |
chown | 修改文件所有者 |
chgrp | 修改文件所在组 |
chmod | 修改文件模式 权限 |
rm | 从系统中删除文件 |
mv | 重命名文件 |
mkdir | 创建目录 |
rmdir | 删除目录 |
grep | 模式匹配 |
egrep | 用于扩展正则表达式的grep命令 |
find | 用于定位文件或目录 |
>> | 追加到文件尾 |
> | 重定向 创建或覆盖文件 |
| | 管道符 用于将命令排列到一起 |
|| | 逻辑或 |
& | 在后台执行 |
&& | 逻辑与 |
date | 显示系统日期和时间 |
echo | 将字符串写入到标准输出 |
sleep | 执行过程在指定的秒数内中断 |
wc | 计算文件中的单词、行和字符的数目 |
head | 查看文件的开始 |
tail | 查看文件的结尾 |
diff | 比较两个文件 |
sdiff | 并排比较两个文件 |
spell | 拼写检查器 |
lp,lpr,enq,qprt | 打印文件 |
lpstat | 系统打印队列状态 |
enable | 启用或启动打印队列 |
disable | 禁用或停止打印队列 |
cal | 显示一个日历 |
who | 显示系统用户日期 |
w | 扩展的who |
whoami | 显示$LOGNAME或$USER环境变量 |
who am I | 显示登陆名 终端 登陆日期/时间以及登陆位置 |
f,finger | 关于登陆用户的信息,包括 users .plan .project |
talk | 两个用户进行一个分屏式对话 |
write | 在某个用户屏幕上显示一条信息 |
wall | 在所有用户屏幕上显示一条信息 |
rwall | 显示一体信息给远程主机上的所有用户 |
rsh remsh | 在远程主机上执行一个命令或进行登陆 |
df | 文件系统统计数字 |
ps | 关于当前正在运行的进程的信息 |
netstat | 显示网络状态 |
vmstat | 显示虚拟内存状态 |
iostat | 显示输入/输出状态 |
uname | 当前操作系统的名称、以及机器信息 |
sar | 系统活动报告 |
basename | 字符串参数的基本文件名 |
man | 显示联机参考手册 |
su | 切换到另一用户 |
cut | 写入所选择的字符 |
awk | 解析字符的编程语言 |
sed | 用于字符替换的编程语言 |
vi | 启动vi编辑器 |
emacs | 启动emacs编辑器 |
pwd | 显示当前目录 | pwd | |
ls | 列出指定目录下的文件,默认当前目录 | 命令格式:ls [-option] file | l 显示详细列表 a 显示所有文件,包含隐藏文件(以. 起头的文件名) R 显示文件及所有子目录 F 显示文件(后跟*)和目录(后跟/) d 与l选项合用,显示目录名而非其内容 |
cd | 改变当前路径 | cd [目录] 例如:cd .. 返回上级目录 cd 返回当前用户的根目录 | |
man | 查看其它命令的用法 | man 命令 | |
history | 显示当前窗口使用过的命令 | history | |
ailas | 显示当前用户下的命令的缩写 | alias | |
tar | 文件归档 | tar [option] [设备] [块] 文件 例如: tar cvf test.tar * 把当前目录所有文件归档 tar tvf test.tar 察看test.tar的信息 tar xvf test.tar 把归档文件test.tar释放 | r 附加方式归档;x 抽取文件;t 显示文件 u 附加方式归档,同时删除旧版文件;c 建立新档案文件 v 显示所处理的文件名;w 处理文件前,要求用户确认 f 文件名 使用指定文件名作为档案文件 bn 每次读写 n 块,缺省值为1,最大值为2 m 将新的文件修改时间设为获取时的时间 o 获取出来的文件以下达tar指令的UID和GID存储 |
cp | 文件拷贝 | cp [ -p ] [ -r ] 文件 1 [ 文件 2 ...] 目标 | i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止 p 不仅拷贝文件内容,还有修改时间,存取模式,存取控制表, 但不拷贝UID 及 GID r 若文件名为目录,则拷贝目录下所有文件及子目录和它们的 文件,此时目标必须为目录 |
rm | 删除文件或者目录 | rm [-f] [-i] 文件... | f 删除文件时不作提示 r 递归地删除目录及其所有子目录 i 删除文件之前先作提示 |
df | df [-t] [文件系统] | df -t | |
ps | 显示进程信息 | ps [ -efl] [ -t 终端表] [ -u 用户表] [ -g 组表] | e 显示出现在正在运行的所有进程 f 显示所有信息; l 产生一个长列表 t 显示指定终端进程; u 显示指定用户进程 g 显示指定组进程 |
grep | 在指定文件中搜索指定信息 | grep [选项] 模式 [文件… 例如: grep ‘memset’ * 在所有文件中寻找包含memset的行 | b 显示块号; c 仅显示各指定文件中包含模式的总行数 i 模式中字母不区分大小写; h 不将包含模式的文件名显示在该行上 l 仅显示包含模式的文件名; n 显示模式所在行的行号 s 指定文件若不存在或不可读,不提示错误信息 v 显示所有不包含模式的行 |
vi | 创建、编辑文件 | vi 文件名 | 命令状态: k, j, h,l:上下左右; 0: 行首; $: 行尾 i,I :插入命令,i 在当前光标处插入 I 行首插 a,A:追加命令,a 在当前光标后追加,A 在行末追加 o,O:打开命令,o 在当前行下打开一行,O在当前行上插入一行 r,R :替换命令,r 替换当前光标处字符,R从光标处开始替换 数字s: 替换指定数量字符 x: 删除光标处字符; dd: 删除当前行;d0: 删除光标前半行 d$: 删除光标后半行; ctrl+f :后翻页; ctrl+b:前翻页 G : 文件尾; 数字G: 数字所指定行 /string 查找字符串; n 继续查找 ;N 反向继续查找 % 查找对应括号; u 取消上次操作 ex命令状态 : :set number 显示行号 :set smd 显示显示状态 :0 文件首 :1,5 copy 7 块拷贝 :1,5 del 块删除 :1,5 move 7 块移动 :1,$s/string1/string2/g 全文件查找string1并替换为string2 :wq! 存盘退出 :q 退出 :q ! 强制退出 |
ln | 设置文件的链接 | ln -s oldname newname 例如: ls -s /tmp/s16 S16 在当前目录创建了/tmp/s16的快捷方式 S16 | |
cc | C语言编译器 | cc [-g] –o 目标文件 源文件 |
LINUX磁盘管理--du & df & fdisk
df用于检查文件系统磁盘占用情况,du检查磁盘空间占用情况,而fdisk用于磁盘分区
1、磁盘空间
df即可
默认显示block
df -i 显示inode
df即可
默认显示block
df -i 显示inode
2、目录空间
du -s ;显示目录所占空间,-s summarize
du -ks ;以k为单位
du -ms ;以m为单位
du -s ;显示目录所占空间,-s summarize
du -ks ;以k为单位
du -ms ;以m为单位
du -msh ;人性化显示,human readable
du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。 功能:统计目录(或文件)所占磁盘空间的大小。
语法:du [选项] [Names…]
-s : 仅汇报当前目录总计的磁盘使用情况,而现实每一个文件
-k : 将大小除以1023字节,以KB为单位现实
-h : 大小以合适的单位现实,human readable
订阅:
博文 (Atom)