实用命令
最后更新于:2022-04-01 22:43:43
## 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,也可看 [dd 的含义](http://roesler-ac.de/wolfram/acro/credits.htm)) 用来拷贝分区、磁盘或者其它拷贝。通常这么用:
~~~
# dd if=
';