Difference between revisions of "Core utilities (简体中文)"

From ArchWiki
Jump to: navigation, search
(shred)
Line 158: Line 158:
  
 
[[Wikipedia:Shred_(Unix)|shred]]是一条更安全的删除命令,尽管如此也要小心点。
 
[[Wikipedia:Shred_(Unix)|shred]]是一条更安全的删除命令,尽管如此也要小心点。
 +
alias shred=' timeout 3 shred -v'
 
这种命令别名可延迟'''shred'''到3秒后才生效, 或是当删除三个以上的文件就会进行确认。
 
这种命令别名可延迟'''shred'''到3秒后才生效, 或是当删除三个以上的文件就会进行确认。
  

Revision as of 15:20, 21 June 2013

翻译状态: 本文是英文页面 Core_Utilities翻译,最后翻译时间:2013-06-21,点击这里可以查看翻译后英文页面的改动。
Template:Article summary start

Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki: improved Bourne shell, Linux standard Template:Article summary wiki: improved Bourne/C shell, very good as interactive shell Template:Article summary wiki Template:Article summary wiki Template:Article summary end

本文涉及GNU/Linux 系统的所谓的 "核心" 工具,就像 less, ls, 和 grep,包括了"但不限于"以上集成于GNU coreutils 中的工具。下文提供了颇为丰富的软件技巧和有帮助的其他信息。如果某节段过于连篇累牍,请另起新章。

cat

cat (catenate)是一件能够连接并显示多文件的标准Unix工具。

  • cat并不内置于shell,不过若您追求高性能,您会发现在很多情况下改用重定向就很方便得许多,例如编写脚本。事实上,$ < file的效果就如同$ cat file一样。
  • 按照以下结构可直接在某文件添加多行文字:
 cat << EOF >> path/file
first line
...
last line
EOF
  • 如果您希望能以倒读顺序显示文件内容,有个工具叫 tac (cat reversed).

grep

grep是最初给Unix写的命令行文字搜索工具,grep命令在文件或标准输入里搜索符合指定正则表达式模式的行,并把结果打印到标准输出。

  • 记住,grep能直接处理文件,所以用$ grep pattern file结构代替$ cat file | grep pattern即可。
  • 若要grep集群服务器(VCS)的源代码,请使用专门的Perl工具ack。可访问official web site

彩色化输出

除了美观用途以外,grep的彩色化输出也对学习regexpgrep功能很有用。

请在您的shell配置文件添加以下内容以启用默认的彩色化输出,适用于Bash

~/.bashrc
alias grep='grep --color=auto'

您还可以直接设置GREP_OPTIONS 环境变量 [1] ,不过这有可能会影响到那些用到grep [2]的脚本:

export GREP_OPTIONS='--color=auto'

如果要显示行数,添加"-n"参数即可:

alias grep='grep -n --color=auto'

GREP_COLORS环境变量其实可以设定成默认之外的。

ifconfig

ifconfig (interface configuration)是在Unix-like操作系统上,专门通过命令行界面(CLI)或系统配置脚本进行配置、控制、排列TCP/IP网络界面参数的一件系统管理工具。

不过现已被弃用,为ip所代替。

less

less是一个对文本文件内容进行分页显示的终端程序,它和其他的分页显示程序如morepg相似,但less提供了更高级的界面和更多的功能。[3]

通过环境变量设置的彩色化输出

请在您的shell配置文件添加:

~/.bashrc
export LESS=-R
export LESS_TERMCAP_me=$(printf '\e[0m')
export LESS_TERMCAP_se=$(printf '\e[0m')
export LESS_TERMCAP_ue=$(printf '\e[0m')
export LESS_TERMCAP_mb=$(printf '\e[1;32m')
export LESS_TERMCAP_md=$(printf '\e[1;34m')
export LESS_TERMCAP_us=$(printf '\e[1;32m')
export LESS_TERMCAP_so=$(printf '\e[1;44;1m')

值随您所愿修改,请参照:ANSI escape code

直接通过包装来彩色化输出

您可直接开启less内置的代码高亮。先安装好source-highlight再在您的Shell配置文件里添加以下:

~/.bashrc
export LESSOPEN="| /usr/bin/source-highlight-esc.sh %s"
export LESS='-R '

经常使用命令行界面的用户可以安装lesspipe

# pacman -S lesspipe

用户可以使用以下less命令列出一个压缩包里的文件列表:

$ less compressed_file.tar.gz
==> use tar_file:contained_file to view a file in the archive
-rw------- username/group  695 2008-01-04 19:24 compressed_file/content1
-rw------- username/group   43 2007-11-07 11:17 compressed_file/content2
compressed_file.tar.gz (END)

lesspipe还被赋予less对文件而不仅是压缩包进行交互的能力,从而成为打开某一种文件的一个新工具(比如用来代替html2text查看html文件。

安装完lesspipe后需重新登录以激活其功能,或者运行

source /etc/profile.d/lesspipe.sh

用Vim代替

Vim (visual editor improved)有内置了某脚本,可直接查看文本文件、压缩包或目录的内容。在您的shell配置文件添加以下即可:

~/.bashrc
alias less='/usr/share/vim/vim73/macros/less.sh'

ls

ls是一个Unix和类Unix系统中列出目录里的文件的一个命令。

可以使用一个简单的命令别名启用彩色输出功能,~/.bashrc文件应该已经有一句从/etc/skel/.bashrc复制过来的指定别名命令:

alias ls='ls --color=auto'

以下步骤可以进一步改进ls的彩色输出功能,比如损坏的符号链接显示为红色,把以下内容添加到~/.bashrc,然后重新登录,或者把脚本source一下:

eval $(dircolors -b)

man

man (manual page)是常见于Unix-like操作系统的一种在线软件文档的格式,内容涉及了计算机程序(包括库或系统调用),常见标准或常规,甚至还有抽象概念。请阅读Man Pages

mkdir

mkdir (make directory)是一条创建目录的命令。若需递归地创建一系列目录,就要用到 -p参数了。已经十分熟悉这原理的高级用户也可直接设为内置参数:

alias mkdir='mkdir -p -v'

-v参数可以使创建目录的消息更为详细。

Note: 如果您仅仅只是想建个临时目录,也许用mktemp (make termporary)更好: $ mktemp -p.

mv

mv (move)是一条移动或重命名文件和目录的命令。使用这命令的风险可不小,请务必小心。

alias mv=' timeout 8 mv -iv'

这命令别名可以延迟mv 到8秒后才生效,或是当删除三个以上的文件就会进行确认。

rm

rm (remove)是一条删除文件或目录的命令。它同样十分危险,使用时请提高警觉:

alias rm=' timeout 3 rm -Iv --one-file-system'

这种命令别名可延迟rm到3秒后才生效, 或是当删除三个以上的文件就会进行确认,或是限于只在同一个文件系统生效。 若您想在删除多文件时一一确认,用-I代替-i即可。

sed

sed (stream editor)是一条专门解析或替换文本的命令。

这里有一系列现成的示范

Note: awk更为优秀,甚至Perl语言也可以。

seq

seq (sequence)是一条专门排列数字的命令。可以按照Wikipedia上进行练习。

shred

shred是一条更安全的删除命令,尽管如此也要小心点。

alias shred=' timeout 3 shred -v'

这种命令别名可延迟shred到3秒后才生效, 或是当删除三个以上的文件就会进行确认。

sudo

Sudo (as superuser do)是Unix-like操作系统上的一件允许用户以其他用户的权限(一般是超级用户或root)来运行用户的程序,

See also