我大部分时间都在 Unix 环境中工作并使用终端模拟器。我尝试在命令行上使用颜色,因为颜色使输出更加有用和直观。
有哪些选项可以为我的终端环境添加颜色?你用什么技巧?你遇到过哪些陷阱?
不幸的是,对颜色的支持因终端类型、操作系统、TERM 设置、实用程序、错误实现等而异。
经过大量实验,以下是我的设置中的一些提示:
TERM=xterm-color,大多数主机(但不是全部)都支持。screen,这增加了另一层乐趣。dircolors默认设置类似和,我不想在一百个不同的主机上修改它。所以我尝试坚持使用默认值。相反,我调整了终端的颜色配置。对某些Unix 命令(ls, grep, less, vim)和Bash 提示符使用颜色。这些命令似乎使用标准的“ ANSI 转义序列”。例如:
alias less='less --RAW-CONTROL-CHARS'
export LS_OPTS='--color=auto'
alias ls='ls ${LS_OPTS}'
Run Code Online (Sandbox Code Playgroud)我会发布我的.bashrc并回答我自己的问题 Jeopardy Style。
我的/etc/fstab包含这个:
# / was on /dev/sda1 during installation
UUID=77d8da74-a690-481a-86d5-9beab5a8e842 / ext4 errors=remount-ro 0 1
Run Code Online (Sandbox Code Playgroud)
此系统上还有其他几个磁盘,并非所有磁盘都安装到正确位置(例如,/dev/sda1 和 /dev/sdb1 有时会颠倒)。
如何查看系统上所有磁盘的 UUID?我可以在这个系统上看到第三个磁盘的 UUID 吗?
如何创建一个新文件并用 1 GB 的随机数据填充它?我需要这个来测试一些软件。
我更喜欢使用/dev/randomor /dev/urandom。
我正在设置一个 yum 存储库,并且需要调试 yum.conf 文件中的一些 URL。我需要知道为什么 Scientific Linux 试图抓取这个 URL,而我期望它抓取另一个 URL:
# yum install package
http://192.168.1.100/pub/scientific/6.1/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: sl. Please verify its path and try again
Run Code Online (Sandbox Code Playgroud)
该的yum.conf(5)手册页提供了有关这些变量的一些信息:
变量
您可以使用许多变量来简化 yum 配置文件的维护。它们在几个选项的值中可用,包括 name、baseurl 和 commands。
$releasever 这将替换为 distroverpkg 中列出的软件包版本的值。这默认为 'redhat-release' 包的版本。
$arch 这将被替换为您在 Python 中由 os.uname()[4] 列出的架构。
$basearch 这将替换为您在 yum 中的基础架构。例如,如果您的 $arch 是 i686,您的 $basearch 将是 i386。
$YUM0-$YUM9 …
我想使用less打开一个文件,并让它自动滚动类似于tail -f.
我知道我可以做到less file,然后Shift-F永远向前冲;喜欢tail -f。
我需要,less因为它提供了--raw-control-chars标志,这是必要的,因为我的输入是丰富多彩的。
我在运行 Apple Leopard (Mac OS X 10.5.8) 的 MacBook Pro 上。
我想解压RPM 并查看wget-1.11.4-2.el5_4.1.src.rpm 中包含的文件。我不需要将文件安装到特定位置或运行任何 %postinstall 脚本或任何东西。我只是想解压这个 RPM 以便我可以查看下面的源文件。
是否可以在非 RedHat/CentOS 系统上解包 RPM 文件?
我在 .bashrc 中有以下设置用于为列表着色。
出口 CLICOLOR=1 出口 LS_COLORS='no=00:fi=00:di=00;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01: cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz= 01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01; 31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35: *.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*。 xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg= 01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01; 35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:';
该站点显示了颜色代码,我想将目录颜色更改为“浅色”。但是如下制作 di 不会影响它。
di=04;94
有趣的是,即使在我注释掉 LS_COLORS 之后,只要我有 CLICOLOR=1,我就可以看到彩色输出。
我在 CentOS 机器上。几周前我更新并安装了一些软件包,但我不记得每个软件包的名称或每个依赖项的名称。我用过yum。
我可以按上次安装或更新的日期列出系统上的软件包吗?
我的一些 Linux 和 FreeBSD 系统有几十个用户。工作人员将使用这些“ssh 网关”节点通过 SSH 连接到其他内部服务器。
我们担心其中一些人使用未加密的私人 SSH 密钥(没有密码的密钥。这很糟糕,因为如果破解者在这台机器上获得了对他们帐户的访问权限,他们可以窃取私钥,现在可以访问到任何使用相同密钥的机器。出于安全原因,我们要求所有用户使用密码来加密他们的私有 SSH 密钥。
如何判断私钥是否未加密(例如,不包含密码)?是否有不同的方法可以在 ASCII 装甲钥匙和非 ASCII 装甲钥匙上执行此操作?
更新:
澄清一下,假设我在机器上拥有超级用户访问权限,并且我可以读取每个人的私钥。