Command and Shortcuts of Linux/Cygwin

Shortcuts

Command

 

A.Shortcuts

    Tab(在文本终端下)可以使用TAB自动完成命令,或者显示所有的可选项。有时需要按两次显示。

    Ctrl+C:终止当前进程(对于一般的小型文本模式的应用程序)

    Ctrl+Z:把当前进程送到后台处理。

    Ctrl+A:切换到命令行开始

    Ctrl+E:切换到命令行末尾

    Ctrl+L:清屏

    :(点符号当前目录。举例:./my_program 将试图执行当前目录下的"my_program"文件

    .. :(两个点)到当前的上一级目录(也叫“父目录”)。举个例子,命令“cd..”将修改我的当前工作目录到上一级目录。

B.Commands

定义指令:alias 设置指令的别名

  In order to enable it next time,you should write it to the .bashrc file of you user name.

  For example,add 

  alias ls='ls -l --color --show-control-chars'

  to the end of the file,then you can input ls which means ls -l --color --show-control-chars in cygwin

  $ vim ~/.bashrc to edit the file.

帮助命令

命令名 –help | more

 显示一个简略的命令帮助(对大部分命令有效)。举个例子,试着使用 “cp –help | more”。“--help”和和DOS下的“/h”开关功能类似。当输出超过一个屏幕时,加上“more”是很有必要的。

 man 命令名

 显示对应命令系统的帮助手册。输入“q”退出浏览器。如果你设置了高级选项,试着输入“man man”。命令“info 命令名” 和命令“man 命令名”功能相似,但是包含更多的最新信息。帮助手册对于新手可能有点难于读懂——因为它们最初是写来给UNIX程序员看的。使用“命令名 –help”可以得到一个简略容易消化的命令帮助。有些程序自带README文件或者其他帮助信息文件----建议你可以看看目录/usr/share/doc。在指定的部分显示命令帮助,可以使用这样的命令“man 3 exit”,这个命令只显示exit命令帮助手册的“第三部分”;或者使用命令“man –a exit”, 这个命令显示exit命令帮助手册的“所有部分”。exit命令帮助的所有部分是: 1-用户命令;2-系统调用;3-子调用;4-设备;5-文件格式;6-游戏;7-杂项;8-系统管理;9-新内容。打印完整的命令帮助,可以使用命令“man 命令名 | col -b | lpr”(可选项col –b删除所有的退格键和一些难以阅读的特殊字符)。

 info 命令名

 显示指定命令的帮助信息。info 命令是取代man 命令的一个好处是,它通常带有最近更新的系统资料。多使用“空格键”和“退格键”,否则你可能会晕头转向。按“q”键退出。如果觉得用于翻阅的办法不太好用――你也可以试着使用pinfo命令,看你会不会更喜欢这个替代品。

 apropos 命令名

 对所输入的命令名给出一个帮助一览表。

 whatis 命令名

 给出匹配所输入命令名的简短清单。whatis命令有点象apropos――它们使用相同的数据库。不同的是,whatis搜索的是关键字,apropos搜索的是关键字的具体描述。

 help 命令名

 显示bash shell内置命令的简单信息。使用 help 命令不带任何参数将显示bash shell所有内置的命令。最短的bash shell内置命令应该包括:alias, bg, cd, echo, exit, export, help, history, jobs, kill, logout, pwd, set, source, ulimit, umask, unalias, unset.

 

kdehelp

kdehelpcenter

 

(在X-终端下有效, 使用在你的系统上可以工作的那一个命令). 使用图形的浏览器显示整个系统的帮助。一般来说,KDE帮助通过把对应的图标放在KDE控制板上来实现。对等的GNOME帮助系统可以使用gnome-help-browser命令。

 

1.  cygcheck -c 是检查所有安装的软件的版本号。

   cygcheck -c cygwin 就是当前Cygwin的版本号。

   uname -a 也可以的Cygwin的版本号,还有内核的版本。

   cat /proc/version的结果与uname -a一致。

   gcc- v gcc 版本

2. 显示目录 ls -l | grep -v "^d"

  显示文件 ls -l | grep "^d"

  显示当前路径 pwd

  为了方便起见,可以使用别名来简化操作,操作如下
修改~/.bashrc文件,增加:

alias lsf="ls -l | grep -v '^d'"
alias lsd="ls -l | grep '^d'"

以后显示目录可以用lsd,显示文件可以用lsf

3. find

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。

find的使用格式如下:

  $ find <指定目录> <指定条件> <指定动作>

  - <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。

  - <指定条件>: 所要搜索的文件的特征。

  - <指定动作>: 对搜索结果进行特定的处理。

如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

find的使用实例:

  $ find . -name 'my*'

搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。

  $ find . -name 'my*' -ls

搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。

  $ find . -type f -mmin -10

搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。

4.grep

假设您正在‘/usr/src/linux/Documentation’目录下搜索带字符串‘magic’的文件:

$ grep magic /usr/src/linux/Documentation/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?

其中文件‘sysrp.txt’包含该字符串,讨论的是 SysRQ 的功能。

默认情况下,‘grep’只搜索当前目录。如果此目录下有许多子目录,‘grep’会以如下形式列出:

grep: sound: Is a directory

这可能会使‘grep’的输出难于阅读。这里有两种解决的办法:

明确要求搜索子目录:grep -r
或忽略子目录:grep -d skip
当然,如果预料到有许多输出,您可以通过 管道 将其转到‘less’上阅读:

$ grep magic /usr/src/linux/Documentation/* | less

这样,您就可以更方便地阅读。

有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,‘grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 <CTRL c> ,然后再试。

下面是一些有意思的命令行参数:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
这里还有些用于搜索的特殊符号:

\< 和 \> 分别标注单词的开始与结尾。
例如:
grep man * 会匹配 ‘Batman’、‘manic’、‘man’等,
grep ‘\<man’ * 匹配‘manic’和‘man’,但不是‘Batman’,
grep ‘\<man\>’ 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。
‘^’:指匹配的字符串在行首,
‘$’:指匹配的字符串在行尾,

 

从根目录下开始查找abc.cpp文件,无错误输出
find / -name abc.cpp 2>/dev/null

在当前目录下所有.cpp文件中查找efg函数
find . -name "*.cpp" | xargs grep 'efg'
xargs展开find获得的结果,使其作为grep的参数

另外 rm mv等命令对大量文件操作是报错 -bash: /bin/rm: Argument list too long
也可用xargs 解决
删除当前目录下所有.cpp文件
find . -name "*.cpp" | xargs rm

 

5. locate

locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

locate命令的使用实例:

  $ locate /etc/sh

搜索etc目录下所有以sh开头的文件。

  $ locate ~/m

搜索用户主目录下,所有以m开头的文件。

  $ locate -i ~/m

搜索用户主目录下,所有以m开头的文件,并且忽略大小写。

6. whereis

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

whereis命令的使用实例:

  $ whereis grep

7. which

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

which命令的使用实例:

  $ which grep

8. type

type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。

type命令的使用实例:

  $ type cd

系统会提示,cd是shell的自带命令(build-in)。

  $ type grep

系统会提示,grep是一个外部命令,并显示该命令的路径。

  $ type -p grep

加上-p参数后,就相当于which命令。

posted @ 2012-09-03 11:50  Qiengo  阅读(335)  评论(0编辑  收藏  举报