我正在尝试使用以下 sed 命令:
sed 's/shared:core:([0-9]{1,4}(\.[0-9a-z]{1,6}){1,5})/shared:core:1.1.1/' test.txt
替换的内容test.txt
shared:core:0.0.2
我希望它变成
shared:core:1.1.1
但什么都没有发生。我想我需要一些关于它如何与 sed 一起使用的提示
我想以特权启动我的 IntelliJ IDEA。那是因为在 IDE 中启动我的应用程序时,它会启动一个 SFTP 服务器。这只有在我获得许可的情况下才有效。
到目前为止的方法是使用sudo
. 这里的不便之处在于 IntelliJ 启动了一个全新的配置上下文,该上下文现在位于root
目录中。因此,我必须从 IDE 的空白/新用户配置开始(可以轻松更改,但这不是重点),而且我必须再次输入我的许可证代码。
有没有一种方法可以简单地执行程序而不实际充当 root 但仍然充当我的登录用户?
我复制了一些文本并想使用less
. 我想知道如何直接less
在我的剪贴板内容上使用,而无需先将其保存到文件中或被echo
d 等。
我有以下命令执行顺序来用 docker 测试一些东西。问题是这udevd
不是我可以执行的二进制文件,其中命令udevd --debug &
变得无用或更确切地说是不起作用。
I have this script (command list):
$ docker run -it --privileged debian /bin/bash
$ apt-get update
$ apt-get install xserver-xorg xorg jwm
$ udevd --debug &
$ udevadm trigger
<lots of output, brace yourself>
$ startx
执行此操作时,我发生了这种情况:
root@ba9551bd941f:/# udevd --debug &
[1] 9688
root@ba9551bd941f:/# bash: udevd: command not found
udevadm trigger
[1]+ Exit 127 udevd --debug
root@ba9551bd941f:/#
我也不知道如何安装udevd
或让它出现的任何东西。interwebz 只是在谈论udev
不是二进制文件(没有提到udevd
),并且它总是在一些基本包中。
我在这里找到了这个:https ://linux.die.net/man/8/udevd 这告诉我它是一个二进制文件 - 但是从哪里得到它?
avrdude
我在使用闪存我的微控制器时有点挣扎。
它依赖于它无法找到的libm.so.6
GLIBC_2.29 。它查看/usr/lib/libm.so.6
该文件实际所在的位置,但它也位于/lib/lib.so.6
.
所以当我跑步的时候
sudo pacman -S glibc
安装/更新库https://www.archlinux.org/packages/core/x86_64/glibc/
我很确定我只将它安装到/lib/
.
但既然avrdude
正在寻找/usr/lib
它仍然不会找到它。我很难理解这两个目录的含义,因为它有点搞砸了,而不是对我的情况有帮助。
我怎样才能正确地做到这一点?
编辑
我想做一些愚蠢的事情,所以我做了,cp /lib/libm.so.6 /usr/lib/libm.o.6
但cp
命令告诉我文件是一样的。
现在我不明白为什么avrdude
找不到正确的 GLIBC 版本,因为它已正确更新(据我所知)。
这是我使用的发行版
root@ci-server:~/temp# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.5 (stretch)
Release: 9.5
Codename: stretch
安装 openssl 时,我收到以下消息,但使用openssl
只是不起作用
root@ci-server:~/temp# apt-get install openssl
Reading package lists... Done
Building dependency tree
Reading state information... Done
openssl is already the newest version (1.1.0j-1~deb9u1).
0 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.
root@ci-server:~/temp# openssl version
openssl: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
但libcrypto.so.1.1
在这里被发现
root@ci-server:~/temp# find / -name "libcrypto.so.1.1"
/usr/lib64/libcrypto.so.1.1
ldconfig
内容
root@ci-server:~# cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
和
root@ci-server:~# ls -l /etc/ld.so.conf.d/
total 12
-rw-r--r-- 1 root root 38 Jan 17 2017 fakeroot-x86_64-linux-gnu.conf
-rw-r--r-- 1 root root 44 Mar 20 2016 libc.conf
-rw-r--r-- 1 root root 68 Jan 14 2018 x86_64-linux-gnu.conf
寻找/usr/lib64
inside/etc/ld.so.conf.d
没有产生任何结果
root@ci-server:~# grep -irl "/usr/lib64" /etc/ld.so.conf.d/
root@ci-server:~#
我从 arch ( https://wiki.archlinux.org/index.php/samba#Client )下载了 samba 包
然后我启用了本文所述的网络发现: https ://websiteforstudents.com/access-windows-10-files-ubuntu-17-04/
我还确保我的 Windows 10工作站域是WORKGROUP
然后我回到 arch 并使用https://git.samba.org/samba.git/?p=samba.git;a=blob_plain;f=examples/smb.conf.default/etc/samba/smb.conf
的内容创建了所需的配置;hb=HEAD(Arch 推荐)
在配置中,我更改了以下属性:
workgroup = WORKGROUP
现在它等同于 Windows 10 工作站域。
完成后,我运行以下命令:
smbclient -L W10
(其中 W10 是我的 Windows 10 的 IP)。我之前确保主机可以ping通
出现以下提示:
Enter WORKGROUP/root's password: *****
session setup failed: NT_STATUS_ACCESS_DENIED
密码实际上是正确的,所以还有其他东西不起作用。我也想知道如何更改WORKGROUP/root
它自动附加的用户名。因为我机器的登录用户名是xetra11
而不是root
我在我的 Windows 10 机器上安装了 KpyM 并启动了它。它说服务正在运行。
Proto Lokale Adresse Remoteadresse Status
TCP 0.0.0.0:22 DESKTOP-4VRVV1O:0 ABHÖREN
所以现在我切换到我的 linux 机器并执行以下操作:(用户名是我登录 Windows 10 时看到的名称?)
ssh <username>@<ip-windows>
过了一会儿:
ssh: connect to host <ip-windows> port 22: Connection timed out
我在这里想念什么?
我编写了一个 python 脚本来启动几个 java 应用程序。我希望将他们的 PID 归档到/var/run/coma
. 因此,我编写了脚本并赋予它777权限,只是为了首先进行测试。
-rwxrwxrwx 1 root root 3575 Feb 12 18:20 coma-startup.py
当我以另一个用户身份启动此脚本并执行代码以在上述目录中创建文件时,我收到以下信息
PermissionError: [Errno 13] Permission denied: '/var/run/coma/coma-system.pid'
我不明白这个?在我看来,该脚本应该以 root 权限执行。我在这里不明白什么?