小编mcE*_*nge的帖子

在多个 Java 版本之间切换

在 Ubuntu 14.04 上安装 Android Studio 时,我收到消息,我的 Java 版本 ( javac 1.7.0_79) 导致问题。我找到了如何安装更新的 Oracle 版本的 Java的解决方案

sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
Run Code Online (Sandbox Code Playgroud)

但是我担心这可能会覆盖我现有open-jdk的 Java 版本。由于我不知道我的哪些程序依赖于 Java,我担心这会导致其他程序崩溃。

有没有办法确保apt-get不会覆盖我以前的 Java?我基本上希望两者都安装,并且能够根据我需要的版本手动在它们之间切换。

java jdk openjdk android-studio

113
推荐指数
4
解决办法
27万
查看次数

如何撤消 apt-get autoremove

我只是走进了打电话的陷阱

sudo apt-get install autoremove
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我无法安装,sudo apt-get install libopencv-dev因为unmet dependencies. 现在我的ros-indigo安装了,opencv仍然没有安装,我也无法重新安装它。

尝试安装它时,我只得到

E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)

我担心我真的很接近杀死我的整个包依赖系统。有人能帮助我吗?

我可以以某种方式使用该文件/var/log/apt来反转删除 ros 的步骤吗?

package-management apt opencv

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

在 Ubuntu 14.04 中使用板载图形而不是外部图形卡

我想在我的 Ubuntu 14.04 中使用 2 个显卡。

1) 用于使用 Cuda 进行计算的外部图形卡。

2) 用于运行我的 x-server 的板载显卡。

但是,当我在启动前将显示器连接到板载显卡时,Ubuntu 仍将外部显卡用于 x-server。

我怎样才能改变它?

nvidia cuda 14.04

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

使用 bash 获取路径字符串的一个元素

我有一个 ASCII 文件,其中包含我通过运行读取的文件路径:

while read p; do echo $p; done < filelist.txt
Run Code Online (Sandbox Code Playgroud)

该文件包含具有以下模式的文件路径:

./first/example1/path
./second/example1/path
./third/example2/path
Run Code Online (Sandbox Code Playgroud)

如何获取路径字符串的特定部分(从//),例如我需要获取打印的输出:

first
second
third
Run Code Online (Sandbox Code Playgroud)

并且

example1
example1
example2
Run Code Online (Sandbox Code Playgroud)

我确信有一种方法可以使用正则表达式 and 来做到这一点sed,但我不熟悉它。

command-line bash text-processing

10
推荐指数
3
解决办法
2万
查看次数

如何为所有用户创建一个 ext4 分区?

我知道这听起来像是一个重复的问题,但我尝试了以下方法并没有帮助:

我的驱动器安装在

/media/data
Run Code Online (Sandbox Code Playgroud)

所以我进入了

sudo chown -R :users /media/data
Run Code Online (Sandbox Code Playgroud)

但是,我仍然无法以用户身份写入该分区。我还尝试在 /etc/fstab 中创建一个条目

UUID=... /media/data ext4 rw,suid,dev,exec,auto,user,async 0 0
Run Code Online (Sandbox Code Playgroud)

但在那之后,我的电脑无法启动,因为他找不到磁盘。

我安装了 Ubuntu 14.04 服务器。该分区列在下面/dev/nvmeOn1p1 但没有出现在/etc/fstab(见下图)中。

(该设备为“Intel DC P3700”800GB SSD)

附加说明:由于分区是空的,我也可以格式化它并使用 gparted 重新创建它。gparted 或其他 gui 程序中是否有办法指定该分区应可供所有用户使用?

permissions partitioning fstab mount

8
推荐指数
2
解决办法
3万
查看次数

如何从 bash 中的 ASCII 文件数据计算平均值?

在 bash 中,我可以从这样的日志文件中 grep 一些时间测量

grep "time:" myLogfile.txt | cut -d' ' -f 3 >> timeMeasurements.txt

#timeMeasurements.txt
2.5
3.5
2.0
...
Run Code Online (Sandbox Code Playgroud)

现在我想从timeMeasurements.txt. 在 bash 中最快的方法是什么?
我知道有 gnuplot 和 R,但似乎必须为它们中的任何一个编写一些冗长的脚本。

command-line bash

7
推荐指数
5
解决办法
1514
查看次数

如何使用bash从同一行的不同位置grep两个数字?

grep在下面的示例中,我想从同一行中提取 2 个数字:

// ExampleFile.txt
solver.cpp:229] Iteration 2000, loss = 0.305721
solver.cpp:245]     Train net output #0: accuracy = 0.926112
solver.cpp:245]     Train net output #1: accuracy = 0.723957
solver.cpp:245]     Train net output #2: accuracy = 0.599623
sgd_solver.cpp:106] Iteration 2000, lr = 0.000227383
solver.cpp:229] Iteration 2020, loss = 0.294722
solver.cpp:245]     Train net output #0: accuracy = 0.855208
solver.cpp:245]     Train net output #1: accuracy = 0.71616
solver.cpp:245]     Train net output #2: accuracy = 0.619429
Run Code Online (Sandbox Code Playgroud)

我需要“solver.cpp:229] Iteration”右侧和“, loss =”右侧的数字。我需要同时获得两个数字,这样我的结果文件看起来像这样:

// ResultFile.txt
2000 0.305721 …
Run Code Online (Sandbox Code Playgroud)

command-line bash grep text-processing

6
推荐指数
3
解决办法
1870
查看次数

使用 Bash 替换 ASCII 文件中一行中的第二个字符串实例

我有一个具有以下结构的 ASCII 文件:

file1.png otherfile1.png
file2.png otherfile2.png
file3.png otherfile3.png
...
Run Code Online (Sandbox Code Playgroud)

我想替换.png.mat, 但仅用于第二列。结果应该是这样的:

file1.png otherfile1.mat
file2.png otherfile2.mat
file3.png otherfile3.mat
...
Run Code Online (Sandbox Code Playgroud)

我如何在 Bash 中做到这一点?

command-line bash sed text-processing

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

从终端挂载 samba 网络驱动器,无需硬编码密码

我知道默认命令如下所示:

sudo mount -t cifs -o username=YOUR_USERNAME,password=YOUR_PASSWORD,uid=YOUR_UBUNTU_USERNAME //networkNameOfRemoteComputer/path/to/my/folder /path/to/mounting/dir
Run Code Online (Sandbox Code Playgroud)

但是我想挂载一个 samba 共享文件夹而无需硬编码我的密码。如果密码可见,我认为这是一个很高的安全风险。有没有人有想法?

(在此问题的先前版本中,我还要求在没有 sudo 权限的情况下进行安装,但这似乎是不可能的:()

mount samba networking

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

创建父文件夹时将文件列表复制到远程计算机

我有一个位于我通过调用创建的子目录中的文件列表find

for f in $(find . -name "myFile.txt"); do 
    echo "$f" >> filelist.txt;
done
Run Code Online (Sandbox Code Playgroud)

内容filelist.txt如下:

./First/Path/To/File/myFile.txt
./Second/Path/To/File/myFile.txt
./Third/Path/To/File/myFile.txt
...
Run Code Online (Sandbox Code Playgroud)

现在我想将所有这些文件复制到远程计算机,以便将它们放在相应的文件夹中:

remoteComputerName:/some/root/directory/First/Path/To/File/myFile.txt
remoteComputerName:/some/root/directory/Second/Path/To/File/myFile.txt
remoteComputerName:/some/root/directory/Third/Path/To/File/myFile.txt
Run Code Online (Sandbox Code Playgroud)

但是,在远程计算机上,文件夹结构First/Path/To/File/等还不存在,而且我不想复制整个目录,而只想复制其中的文件myFile.txt

我知道在本地计算机上这可以使用命令

while read p; do cp --parents $p /some/root/directory ; done < filelist.txt
Run Code Online (Sandbox Code Playgroud)

但是,对于使用scp此选项的远程计算机--parents不再起作用。另外rsync如果缺少不会创建父目录。有人知道解决方案吗?

command-line rsync scp

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

如何告诉git不要使用rsa密钥而是使用用户名+密码

我想我的 ssh 配置搞乱了。

最近我无法再克隆本地存储库。git 存储库似乎同时接受公钥和密码,但它没有让我选择这两个选项之一,而是尝试使用一些错误的 RSA 密钥进行连接,导致出现以下消息:

Received disconnect from myRemoteComputer : Too many authentication failures for myUsername
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)

当我 ssh 到那台计算机时也会发生同样的情况

$ssh -v myRemoteComputerIP
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/myUsername/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: myUsername@cvg04
Received disconnect from myRemoteComputerIP: Too many authentication failures for myUsername
Run Code Online (Sandbox Code Playgroud)

所以出了问题,因为最近两个命令都正常工作。我基本上需要告诉sshgit使用用户名和密码,而不是随机选择错误的“RSA 密钥”。有谁知道如何修复这个?

ssh-add最近还按照一些论坛建议执行了一些命令,但也许这是问题的一部分......

server ssh password git

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

使用sed用变量替换文件中的文本

我需要用存储在变量中的另一个字符串替换文件中的字符串。
现在我知道了

sed -i 's|sourceString|destinationString|g' myTextFile.txt
Run Code Online (Sandbox Code Playgroud)

替换字符串但是如果目标字符串是硬编码字符串和变量的组合呢?

myString="this/is_an?Example=String"
sed -i 's|sourceString|${myString}destinationString|g' myTextFile.txt
Run Code Online (Sandbox Code Playgroud)

后者不起作用,因为$myString它不被解释为变量。

command-line bash sed

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

使用 sed 裁剪字符串

我有一个命令,它向我输出一个具有以下模式的列表

exp_70_T8_s1
exp_71_T8_s5
exp_72_T8_s10
exp_73_T10_s1
exp_74_T10_s5
exp_75_T10_s10
...
Run Code Online (Sandbox Code Playgroud)

如何分别使用sedbash中的“_T”和“_s”或类似的东西获取“_T”和“_s”之后的数字?
输出应该是这样的

8
8
8
10
10
10
Run Code Online (Sandbox Code Playgroud)

1
5
10
1
5
10
Run Code Online (Sandbox Code Playgroud)

对于_T_s分别

我的命令的第一部分如下所示:

for f in $(find . -name "someFile.txt" | sort); do echo $f; done | grep /someFolderName/ 
Run Code Online (Sandbox Code Playgroud)

基本上我想将命令添加到上面给出的命令中。

command-line bash sed text-processing

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