详细参见wiki。下面为具体经典比较实用:
在类Unix环境里,有一些按键有特殊的意思。
- Ctrl-U: 擦除一行光标前面的部分。
- Ctrl-H: 擦除光标前面的一个字符。
- Ctrl-D: 终止输入。(退出shell,如果您正在使用shell的话)。
- Ctrl-C: 终止当前正在运行的程序。
- Ctrl-Z: 暂停程序。 (把它放到后台运行请看 command &, 第 4.3.10.1 节)
- Ctrl-S: 停止向屏幕输出。
- Ctrl-Q: 重新激活向屏幕输出。
默认的shell,bash, 有历史编辑和tab补齐功能。
- up-arrow: 开始历史命令搜索。
- Ctrl-R: 开始增量历史命令搜索。
- TAB: 完整的把文件名输入到命令行。
- Ctrl-V TAB: 输入TAB而不是扩展命令行。
其他一些需要记住的按键组合。
让我们来学习基本的Unix命令。 使用非特权用来执行下面的所有的命令。
- pwd
- 显示当前工作路径。
- whoami
- 显示当前用户名。
- file foo
- 显示foo文件的属性。
- type -p commandname
- 显示命令commandname所的的地方。
- which commandname也可以用来做这个 .
- type commandname
- 显示命令 commandname的信息。
- apropos key-word
- 找到和 key-word相关的命令。
- man -k key-word也可以做到
- whatis commandname
- 显示该命令的一句话帮助。 commandname.
- man -a commandname
- 显示命令的解释信息。 commandname. (Unix style)
- info commandname
- 显示很长的命令解释 commandname. (GNU style)
ls
-
- 列出目录内容 (非以.开始的文件和目录)
- ls -a
- 列出目录内容(所有的文件和目录)
- ls -A
- 列出目录内容。(几乎所有的文件和目录,略去".." and ".")
- ls -la
- 列出目录所有文件和目录的详细信息。查看 Ubuntu 中的文件系统概念, 第 4.5.2 节。
- ls -d *
- 列出当前目录下的目录名称,而不是目录下的内容。
- lsof foo
- 显示文件foo的打开状态。
- mkdir foo
- 在当前目录下创建一个新的目录foo。
- cd foo
- 切换到当前目录下或者在变量CDPATH中列出来的目录foo。在builtins(7)查看命令cd。
- cd /
- 切换到根目录。
- cd
- 切换到用户主目录。
- cd /foo
- 切换到绝对路径/foo所指定的目录。
- cd ..
- 切换到上一级目录。
- cd ~foo
- 切换到用户主目录下的foo目录去。
- cd -
- 切换到上一次所去的目录。
-
- 使用默认的分页程序查看文件/etc/motd的内容,参照 command <>
- touch junkfile
- 创建一个空文件junkfile。
- cp foo bar
- 拷贝一个已有的文件foo到新文件bar。
- rm junkfile
- 删除文件junkfile
- mv foo bar
- 把已有的文件foo重命名为bar
- mv foo bar/baz
- 把已有的文件foo移动到新位置并重命名为bar/baz。目录bar必须存在。
- chmod 600 foo
- 让已经存在的文件foo其他人不能读写。(所有人都 不能执行)。
- chmod 644 foo
- 使文件foo其他的人可以读,但是不能写。(所有人 都不能执行)
- chmod 755 foo
- 使文件foo其他的人能读不能写。(所有人都可以执行)
- top
- 全屏显示进程信息。输入”q”退出。
- ps aux | pager
- 用BSD风格输出所有正在运行的进程的信息。参照 command1 | command2, 第 4.3.10.2 节。
- ps -ef | pager
- 用system-V风格来输出所有正在运行的进程的信息。
- ps aux | grep -e "[e]xim4*"
- 显示exim4进程,或者运行exim的进程。输入man grep可以从grep(1)的手册页学习正则表达式。
- ps axf | pager
- 用ASCCI艺术形式来显示运行所有进程信息。
- kill 1234
- 杀死进程号为1234的进程。 查看 中止一个进程, 第 8.5.1 节。
- grep -e "pattern" *.html
- 找到当前目录下面所有以.html结尾的文件中含有"pattern"的行,并显示它们。
- gzip foo
- 用Lempel-Ziv(LZ77)压缩算法压缩foo,生成foo.gz。
- gunzip foo.gz
- 将文件foo.gz解压缩生成foo。
- bzip2 foo
- 将文件foo.bz2解压缩生成foo。
- tar -xvvf foo.tar
- 从打包文件foo.tar解出文件来。
- tar -xvvzf foo.tar.gz
- 从打包压缩的文件foo.tar.gz中解开文件。
- tar -xvvf --bzip2 foo.tar.bz2
- 从文件foo.tar.bz2解压缩文件。
- tar -cvvf foo.tar bar/
- 把目录bar/的内容打包存放到foo.tar存档中。
- tar -cvvzf foo.tar.gz bar/
- 把目录bar/的内容打包并且压缩存放到foo.tar.gz存档中。
- tar -cvvf --bzip2 foo.tar.bz2 bar/
- 把目录bar/中的内容打包存放到foo.tar.bz2存档里面。
- zcat README.gz | pager
- 实用默认的分页显示程序pager来显示压缩文件README.gz中的内容。
- zcat README.gz > foo
- 使用文件README.gz解开后的内容创建一个文件foo。
- zcat README.gz >> foo
- 把文件README.gz解开后的内容追加到文件foo的后面(如果文件不存在的话,就会创建一个)。
- find . -name pattern
- 用shell找到匹配pattern的文件名(慢一些)。
- locate -d . pattern
- 用shell找到匹配pattern的文件名(使用已有的规则的数据库,快一些)。
- Ctrl-Alt-Del:挂起或者重新启动系统 初始化安装完成后再安装其他软件包, 第 3.8.1 节.
- Left-click-and-drag mouse: 选择并且拷贝到剪贴板。
- Click middle mouse button: 使用剪贴板的内容粘贴。
- Meta-key (Emacs terminology) 传统的是使用 Left-Alt-key. 但是有些系统使用 Windows-key实现 Meta-key.
shell通配符使得这个成为可能。
- *
- 这个匹配0个或者多个字符。
- 它不会匹配以"."开始的文件名.
- ?
- 这个仅匹配一个字符。
- [...]
- 这个匹配[]里面的某个字符。
- [a-z]
- 这个匹配字符a到z之间的某个字符。
- [^...]
- 这个匹配任意不包含在[]里面的字符(不包含字符"^")
您可以给一个命令序列起一个别名。比如:
$ alias la='ls -la'现在, la就成了 ls -la命令的简写用来列出所有文件的详细信息。
您可以用type来显示命令的详细路径或者其他身份。比如:
$ type ls
ls is hashed (/bin/ls)
$ type la
la is aliased to `ls -la'
$ type echo
echo is a shell builtin
$ type file
file is /usr/bin/file
还没用别名试验过。
在类 Unix 的系统中,有几个文本处理工具经常用到。
- 非正则表达式的方法有:
- head 显示文件的开始部分。
- tail 显示文件的结尾部分。
- sort 给文件中的每一行排序。
- uniq 删除文件中重复的行。
- tr 转换或者删除字符。
- diff 把文件中的内容一行一行的比较。
- 基本的正则表达式Basic regular expression (BRE) :
- grep 按模式匹配文本。
- ed 一个原始的行编辑器。
- sed 一个流编辑器。
- vi 一个屏幕编辑器。
- emacs 一个屏幕编辑器。
- 扩展的正则表达式Extended regular expression (ERE) is used:
- egrep 按模式匹配文本。
- awk 进行简单的文本处理。
- perl做非常难以想像的文本处理。
评论