小编Tho*_*key的帖子

如何在vi中使用十六进制或八进制代码输入非ascii字符

我正在尝试为 postscript 编写一个高尔夫库。但它需要自己浓缩。所以我需要一种方便的方法来在大多数 ascii 文本中输入任意字节。

我知道这可以使用任何编程语言轻松完成,但我可以在 vi 中完成吗?(:help octal没有帮助)。

编辑:这是postscript生成的高尔夫库。幸运的是,我很早就意识到在图书馆打高尔夫球本身就是一个愚蠢的想法,而我并没有那样做。

vim binary

50
推荐指数
2
解决办法
6万
查看次数

如何用awk替换特定列的内容?

鉴于:记录中有 40 列。我想替换第 35 列,以便将第 35 列替换为第 35 列的内容和“$”符号。想到的是这样的:

awk '{print $1" "$2" "...$35"$ "$36...$40}'
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是因为当列数大到 10k 时它是不可行的。我需要一个更好的方法来做到这一点。

linux awk text-processing replace

45
推荐指数
3
解决办法
15万
查看次数

当文件不包含字符串时如何使用grep

在我的 bash 脚本中,如果文件中不存在某个字符串,我会尝试打印一行。

if grep -q "$user2" /etc/passwd; then
    echo "User does exist!!"
Run Code Online (Sandbox Code Playgroud)

如果我希望字符串存​​在于文件中,我就是这样写的,但是如果在 /etc/passwd 文件中找不到用户,我该如何更改它以使其打印“用户不存在”?

grep bash ubuntu

43
推荐指数
4
解决办法
11万
查看次数

为什么 tmux 将 TERM 变量设置为屏幕?

引用tmux手册页:

对于在 tmux 中运行的所有程序,TERM 环境变量必须设置为“screen”。新窗口将自动将“TERM=screen”添加到它们的环境中,但必须注意不要在 shell 启动文件中重置它。

这是因为tmux会话可以连接到任何终端(例如远程),screen是最低公分母?如果我知道我的终端,我是否可以在没有意外结果的情况下强制执行它,或者某些不受支持的功能会中断(如滚动)?

terminal tmux

24
推荐指数
2
解决办法
1万
查看次数

命令行方法或以编程方式将 ssh 密钥添加到 github.com 用户帐户

有没有办法用用户名和密码来识别 github.com 服务器,以便向 github 用户帐户添加 ssh 密钥?到目前为止,我读过的所有内容都表明必须通过 Web GUI 添加用户的 ssh 密钥。我正在寻找通过命令行界面或 bash/ansible/something 脚本添加密钥的方法或过程。

ssh terminal git github

21
推荐指数
2
解决办法
1万
查看次数

当设备有足够的空间时,如何在 mv 期间修复间歇性的“设备上没有剩余空间”错误?

  • 桌面上的 Ubuntu 14.04
  • 源驱动器:/dev/sda1:5TB ext4 单
    驱动器卷
  • 目标卷:/dev/mapper/archive-lvarchive:raid6 (mdadm) 18TB 卷,带 lvm
    分区和 ext4

大约有 1500 万个文件要移动,有些可能是重复的(我不想覆盖重复的)。

使用的命令(来自源目录)是:

ls -U |xargs -i -t mv -n {} /mnt/archive/targetDir/{}
Run Code Online (Sandbox Code Playgroud)

这已经按预期持续了几天,但我收到了增加频率的错误。当它开始时,目标驱动器大约为 70%,现在大约为 90%。过去大约有 1/200 的动作会出现状态和错误,现在大约是 1/5。没有一个文件超过 100Mb,大多数都在 100k 左右

一些信息:

$ df -h
Filesystem                     Size  Used Avail Use% Mounted on
/dev/sdb3                      155G  5.5G  142G   4% /
none                           4.0K     0  4.0K   0% /sys/fs/cgroup
udev                           3.9G  4.0K  3.9G   1% /dev
tmpfs                          797M  2.9M  794M   1% /run
none                           5.0M  4.0K  5.0M   1% /run/lock
none                           3.9G     0 …
Run Code Online (Sandbox Code Playgroud)

linux command-line ubuntu ext4

21
推荐指数
2
解决办法
6万
查看次数

为什么 setuid 不起作用?

我想确保我的程序只能由xyz使用 root 权限的用户运行。为此,我设置了 setuid 位:

chmod u+s program1.sh
ls -l program1.sh
rwsr-x--- 1 root house 1299 May 15 23:54 program1.sh
Run Code Online (Sandbox Code Playgroud)

此外,我将用户添加xyzhouse组中,以便只有xyzroot 用户可以运行 program1.sh。

在 program1.sh 中有

id -u
Run Code Online (Sandbox Code Playgroud)

以便它可以向我显示有效 ID。

program1.sh以 root 身份运行,它显示root. 但是使用该xyz帐户运行时,它显示xyz. 似乎它没有以 root 权限运行。我不知道这里出了什么问题。

linux root setuid chmod privileges

20
推荐指数
1
解决办法
3万
查看次数

如何从 libvirt/kvm 实例创建自定义流浪盒?

互联网上有很多资源可以从 VirtualBox 实例创建自定义 vagrant box。但我想知道直接从 kvm/libvirt 实例创建自定义 vagrant box 的直接方法。请不要建议 vagrant-mutate 或任何将 VirtualBox 转换为其他提供程序的工具。

linux kvm vagrant libvirt

20
推荐指数
1
解决办法
2万
查看次数

找出库是否在路径中

假设我想测试一个库是否已安装并可由程序使用。我可以ldconfig -p | grep mylib用来确定它是否安装在系统上。但是如果图书馆只能通过设置知道LD_LIBRARY_PATH怎么办?

在这种情况下,程序可能能够找到库,但ldconfig不会。如何检查库是否在组合链接器路径中?

我要补充一点,我正在寻找一种解决方案,即使我手头实际上没有该程序(例如该程序尚未编译),我也正在寻找一种解决方案,我只想知道某个库存在于ld' s 路径。

linux dynamic-linking ld

20
推荐指数
2
解决办法
5万
查看次数

在最后一个分隔符上剪切字符串

我有一个文件名a.b.c.txt,我希望这个字符串被拆分为

string1=a.b.c
string2=txt
Run Code Online (Sandbox Code Playgroud)

基本上我想拆分文件名及其扩展名。我使用过,cut但它拆分为a,b,ctxt。我想在最后一个分隔符上剪切字符串。

有人可以帮忙吗?

shell cut

19
推荐指数
2
解决办法
12万
查看次数