我大部分时间都在 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。
我有文本文件。任务 - 之后从文件中获取第一行和最后一行
$ cat file | grep -E "1|2|3|4" | commandtoprint
$ cat file
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
在没有 cat 输出的情况下需要这个(只有 1 和 5)。
~$ cat file | tee >(head -n 1) >(wc -l)
1
2
3
4
5
5
1
Run Code Online (Sandbox Code Playgroud)
也许存在 awk 和更短的解决方案......
我正在为基于 Debian 的嵌入式 Linux 构建映像。我apt-get update之前确实在我想用作该图像基础的设备上使用过,因此下面的列表/var/lib/apt/lists非常大(大小接近 100 MB)。
我想保留apt-get功能(所以我不想删除 apt 存储库)但我想释放这些列表中使用的空间(列表几乎是图像大小的两倍)。
有谁知道这是怎么做到的吗?我可以删除下面的文件/var/lib/apt/lists吗?
一些答案中使用了“subreaper”这个词。搜索谷歌也会出现“刚刚使用”这个词的条目。
我如何理解什么是“子收割者”?
比方说,我有一个非常大的文本文件(大约 10.000.000 行)。我需要grep从头开始并将结果保存到文件中。完成任务的最有效方法是什么?
我想在整个服务器中查找大于 1 GB 且超过 6 个月的文件。如何为此编写命令?
我有一个脚本可以将其输出通过管道传输到|tee scriptnameYYMMDD.txt. 在生成输出的 for 循环的每个循环之后,我将反转文件内容,tac scriptnameYYYYMMDD.txt > /var/www/html/logs/scriptname.txt以便日志输出在浏览器窗口中可见,最新的行位于顶部。
我将有几个脚本并行执行此操作。我正在尝试最小化磁盘活动,因此|tee scriptnameYYYYMMDD.txt最好从RAMdisk输出。mktemp在/tmp文件夹中创建一个文件,但它似乎不在磁盘上。
例如:
sed 's/\u0091//g' file1
Run Code Online (Sandbox Code Playgroud)
现在,我必须做得到hexdump十六进制数并输入sed如下:
$ echo -ne '\u9991' | hexdump -C
00000000 e9 a6 91 |...|
00000003
Run Code Online (Sandbox Code Playgroud)
进而:
$ sed 's/\xe9\xa6\x91//g' file1
Run Code Online (Sandbox Code Playgroud) 我需要在bash脚本中添加一个路径,但它可能会被执行多次:
export PATH=${OPENSHIFT_HOMEDIR}/app-root/runtime/bin/:${PATH}
Run Code Online (Sandbox Code Playgroud)
我不想一遍又一遍地添加该路径。如果还没有,我如何添加它$PATH?
比较 Debian(左)和 Ubuntu(右):
$ ifconfig $ ifconfig
bash: ifconfig: command not found eth0 Link encap ...
$ which ifconfig $ which ifconfig
$ /sbin/ifconfig
Run Code Online (Sandbox Code Playgroud)
然后作为超级用户:
# ifconfig # ifconfig
eth0 Link encap ... eth0 Link encap ...
# which ifconfig # which ifconfig
/sbin/ifconfig /sbin/ifconfig
Run Code Online (Sandbox Code Playgroud)
此外:
# ls -l /sbin/ifconfig # ls -l /sbin/ifconfig
-rwxr-xr-x 1 root root 68360 ... -rwxr-xr-x 1 root root 68040 ...
Run Code Online (Sandbox Code Playgroud)
在我看来,ifconfig没有超能力就无法在 Debian 上运行的唯一原因是它不在我的道路上。当我使用/sbin/ifconfig它时确实有效。
有什么理由不应该添加/usr/local/sbin:/usr/sbin:/sbin到我在 Debian 上的路径中吗?这是一台个人电脑,我是唯一的人类用户。 …
bash ×3
sed ×3
shell-script ×3
awk ×2
command-line ×2
debian ×2
files ×2
grep ×2
scripting ×2
shell ×2
apt ×1
colors ×1
efficiency ×1
fhs ×1
filesystems ×1
find ×1
hexdump ×1
linux-kernel ×1
path ×1
process ×1
prompt ×1
tmp ×1
ubuntu ×1
unicode ×1