阅读(4060) (2)

UNIX实用命令

2016-02-24 15:57:52 更新

less

less 命令用来在控制台中分屏显示文本文档。它在许多发行版中可用。

# less unixtoolbox.xhtml

一些重要指令(^N 代表 [control]-[N]):

  • h H       显示指令的汇总列表

  • f ^F ^V SPACE       向前滚动一屏(或者 N 行)

  • b ^B ESC-v       向后滚动一屏(或者 N 行)

  • F       向前滚动;类似于"tail -f"

  • /pattern       向前搜索匹配该模式的行

  • ?pattern       向后搜索匹配该模式的行

  • n       重复之前的搜索

  • N       反方向重复之前的搜索

  • q       退出

vi

Vi 在任何 Linux/Unix 发行安装版(gentoo 没有?)上都存在。因此,我们有必要了解一些基本的命令。Vi 有两个模式:命令模式和插入模式。使用 [ESC] 键可进入命令模式,使用 i 键可进入插入模式。如果你迷失了,可在命令模式下键入 : help
编辑器 nano 和 pico 通常也都可用,而且更容易(IMHO)使用。

Quit

  • :w newfilename       保存文件为 newfilename

  • :wq or :x       保存并退出

  • :q!       退出但不保存

移动和查找

  • /string       向前查找 string

  • ?string       向后查找 string

  • n       同方向重复上一次搜索命令

  • N       反方向重复上一次搜索命令

  • {       光标移至段落结尾

  • }       光标移至段落开头

  • 1G       光标移至文件的第一行首

  • nG       光标移至文件的第 n 行首

  • G       光标移至文件的最后一行首

  • :%s/OLD/NEW/g       替换所有查找到的 OLD 为 NEW

删除文本

  • dd       删除当前行

  • D       删除光标到当前行末尾的字符

  • dw       删除单词

  • x       删除字符

  • u       回复上一次操作

  • U       回复所有此行的更改

mail

mail 命令是一个读取和发送邮件的应用程序,她通常已安装。要发送一封邮件,可以简单的输入 "mail user@domain"。其第一行为主题,然后是邮件内容。在一个新行中使用单个点(.)来结束并发送邮件。例子:

# mail c@cb.vu
Subject: Your text is full of typos
"For a moment, nothing happened. Then, after a second or so, 
nothing continued to happen."
.
EOT
#

这同样可用于管道:

# echo "This is the mail body" | mail c@cb.vu

也是测试邮件服务器的简单方法。

tar

命令 tar (磁带存档) 可以为文件和目录创建档案。归档文件 .tar 是未压缩的,一个压缩过的归档文件的后缀是 .tgz 或 .tar.gz (zip) 或者 .tbz (bzip2)。不要使用绝对路径建立一个归档文件,你可能要解开这个归档文件到某个地方。一些常用命令如下:

创建

# cd /
# tar -cf home.tar home/        # 归档整个 /home 目录(c 为创建)
# tar -czf home.tgz home/       # 等同于 zip 压缩
# tar -cjf home.tbz home/       # 等同于 bzip2 压缩

从一个目录树中只包含一个(或2个)目录,并保持相对目录结构。举个例子,/usr/local/etc 和 /usr/local/www,它们在归档文件中的第一层目录是 local/。

# tar -C /usr -czf local.tgz local/etc local/www
# tar -C /usr -xzf local.tgz    # 释放 local 目录到 /usr
# cd /usr; tar -xzf local.tgz   # 同上面一样

释放(Extract)

# tar -tzf home.tgz             # 列出归档文件中的所有文件,并不释放
# tar -xf home.tar              # 释放归档文件(x 为释放)
# tar -xzf home.tgz             # 等同于 zip 压缩
# tar -xjf home.tgz             # 等同于 bzip2 压缩
# tar -xjf home.tgz home/colin/file.txt    # 释放单个文件

更高级的

# tar c dir/ | gzip | ssh user@remote 'dd of=dir.tgz' # 归档压缩 dir/ 目录并存储到远程主机上
# tar cvf - `find . -print` > backup.tar              # 归档当前目录
# tar -cf - -C /etc . | tar xpf - -C /backup/etc      # 拷贝目录
# tar -cf - -C /etc . | ssh user@remote tar xpf - -C /backup/etc      # 远程拷贝
# tar -czf home.tgz --exclude '*.o' --exclude 'tmp/' home/

dd

程序 dd (磁盘备份(disk dump) 或 destroy disk,也可看 # which command                      # 显示命令的全路径名 # time command                       # 显示一个命令执行完成所用的时间 # time cat                           # 使用 time 作为秒表,用 Ctrl-c 来停止 # set | grep $USER                   # 列显当前环境变量 # cal -3                             # 显示三个月日历 # date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] # date 10022155                      # 设置日期和时间 # whatis grep                        # 显示命令的简短信息 # whereis java                       # 查询命令的的路径和标准目录 # setenv varname value               # 设置环境变量,设置变量 varname 的值为 value (csh/tcsh) # export varname="value"             # 设置环境变量,设置变量 varname 的值为 value  (sh/ksh/bash) # pwd                                # 显示当前工作目录# mkdir -p /path/to/dir               # 如果存在不显示错误,建立所需的上级目录# mkdir -p project/{bin,src,obj,doc/{html,man,pdf},debug/some/more/dirs} # rmdir /path/to/dir                 # 移除目录 # rm -rf /path/to/dir                # 移除目录和其内容(强制) # cp -la /dir1 /dir2                 # 存档、硬连接目录所有文件,用来替代拷贝 # cp -lpR /dir1 /dir2                # 同上 (FreeBSD) # cp unixtoolbox.xhtml{,.bak}        # 拷贝文件成新扩展名的快速方法 # mv /dir1 /dir2                     # 修改目录名