小编kos*_*kos的帖子

如何告诉 shell 脚本我的密码?

我一直在试图创建一个脚本,运行sudo apt-get updatesudo apt-get autoremove每当我登录它是这样的:

#!/bin/bash
(sudo apt-get update)
(sudo apt-get autoremove)
Run Code Online (Sandbox Code Playgroud)

但是每当我运行脚本时,它都会冻结我的计算机。我假设这是因为它正在等待脚本提供密码。如果我PASSWD:mypassword在这样的命令之后添加它会起作用吗:

#!/bin/bash
(sudo apt-get update)PASSWD:mypassword
(sudo apt-get autoremove)PASSWD:mypassword
Run Code Online (Sandbox Code Playgroud)

或者还有什么我应该做的吗?甚至有办法吗?如果是这样请告诉我!

apt sudo scripts

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

“Empy Trash”打开 Nautilus(文件)窗口

尝试清空垃圾箱时(右键单击启动器中的垃圾箱图标,然后选择“清空垃圾箱”),将打开 Nautilus 的新窗口(工作目录~)。

这是一个错误吗?用户是否有任何解决方法或修复程序?

nautilus trash 15.04

6
推荐指数
1
解决办法
1723
查看次数

如何使用 bash 脚本检查是否安装了两个或多个程序?

我想使用 bash 脚本检查是否安装了两个或多个程序:

hash foo &> /dev/null
if [ $? -eq 1 ]; then
    echo >&2 "foo not found."
else
    echo "foo found"
fi
Run Code Online (Sandbox Code Playgroud)

上面的脚本适用于单个程序,我想检查系统中安装的多个程序。我怎样才能做到这一点?

command-line bash scripts

6
推荐指数
1
解决办法
2863
查看次数

在最新版本的 Gnome 终端中,如何通过键盘执行“全选”?

在 (X)Ubuntu 14.04 中,我能够Select All通过键盘在 Gnome 终端中调用菜单 ( Alt- E-> A) 执行操作。

在更新的 (X)Ubuntu 版本中,我注意到菜单栏的快捷方式不再可用。

对于某些操作,可以设置直接快捷方式(例如Reset and clear terminal),但不能为Select All.

有没有办法通过键盘执行此操作?

注意:我严格指的是 Gnome 终端,而不是其他终端应用程序。

shortcut-keys gnome-terminal shortcuts 15.04 15.10

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

“$: command not found” 每次启动时都会在终端顶部打印。为什么要这样做?

每当我打开一个新终端时,我都会收到此错误:

$: command not found
sandeep@sandepp:~$ 
Run Code Online (Sandbox Code Playgroud)

它照常工作没有任何问题,但为什么它会在顶部显示该消息?我的笔记本电脑有 Ubuntu 14.04。

我的~/.bashrc文件:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for …
Run Code Online (Sandbox Code Playgroud)

command-line bash

6
推荐指数
1
解决办法
4127
查看次数

APT 如何选择要安装的特定包以提供作为依赖项所需的虚拟包?

例如,awk是由original-awkmawk和提供的虚拟包gawk

尝试直接安装它会产生:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package awk is a virtual package provided by:
  original-awk:i386 2012-12-20-4
  mawk:i386 1.3.3-17ubuntu2
  gawk:i386 1:4.1.1+dfsg-1
  original-awk 2012-12-20-4
  mawk 1.3.3-17ubuntu2
  gawk 1:4.1.1+dfsg-1
You should explicitly select one to install.

E: Package 'awk' has no installation candidate
Run Code Online (Sandbox Code Playgroud)

然而,默认安装的包需要许多虚拟包作为依赖项,例如awk它自己需要base-files,它检查 APT 日志与一堆其他包一起安装apt-get --yes;不知何故,APT 最终会自动选择三个中的一个(我很确定那是mawk,但这不是问题的重点)。

在这种情况下,APT 如何选择特定的包进行安装?

apt

6
推荐指数
1
解决办法
2252
查看次数

如何更改语言但仅适用于终端?

如何将终端的语言更改为英语?

我熟悉使用vi.

如果终端语言由 控制etc/default/locale,我应该在那里更改什么?

LANG="el_GR.UTF-8"
LANGUAGE="el:en"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)

command-line language locale

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

使用命令出现模式时将文件拆分为两个文件

我想要一个简单的命令(AWK、Perl 等)将文件拆分为两个文件,如下所示。

test.pem

-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALq6EmgljkwfHKkB
4s1BkXeYE/j0zO271m8IFerHyGVKjeq+RNJ/8vTNaeQSdpTfeGc5kTuNlK4vYFSS
8V2jVFwsXwKS63/H6sfzeFvgaFMJb/DghejxylajQ+71QXwsRdMmPJwH0JU3Yeju
hIA+NegFSU5BVbks8QZeGOeKQ0MlAgMBAAECgYBL6GynLe1FALjT89JRgsAyD/6+
jDXqxxuLE4xlX0YV91LuBN9Re3Y3EnJjpyXRq27097AUt5+jl9rfRsUcPdOC2s4W
txAEdJ2INgRbgilu2jgrKItPT9fC2e1oRJoHYIPHmE1SbXEqjm5fmelG7dqoNv95
Y/yr/YvIuF/aC8AEmQJBAOpYD0y5tr7wi0SXH2EWYlg4u+9++o14e+m0LDA8KbbL
uraS3XrHsS9IfKTLlJcyxTMQDA3TzYOfOAECs/hWlhcCQQDL+4Uz8yPVPkxoWFpH
qAauQ/kvxMQLRgJzc9+7EClAMbN3F26xl0GMmNE8eQ1A3622HG2ejMdgS07VOxOJ
rfIjAkEA3aACeDF63wFm9Ktnhc5Bm+Wr90hDdN/pcJBw6f08BiCOqHQk+iU5MNqA
5umR0Zy2WyBmBf21czF1KZ+AzPA2aQJAElEis/iIZjSy7cfJS5f2CZ4G+Vgk9pIx
1CY6l/Sqj54m7HHJOd9IPpTWbSS9oO61DZ5d5Zfkq2v3x0QHzBw3mwJBAKN1xO/3
RkwGrcgBUmviRpZN2GT6uNQd4lV1rLQXoPRqUUeFA7tSD198EXAiRGdMFMRBr+c6
C8ugBRjNMLUicy8=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICfjCCAeegAwIBAgIJANykL9YOhRqKMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV
BAYTAklOMRMwEQYDVQQIDApUYW1pbCBOYWR1MRAwDgYDVQQHDAdDaGVubmFpMQww
CgYDVQQKDANGQ0kxFDASBgNVBAMMC3J0eHNjcGxwMDY1MB4XDTE2MDMxNjE2MDUy
OVoXDTE3MDMxNjE2MDUyOVowWDELMAkGA1UEBhMCSU4xEzARBgNVBAgMClRhbWls
IE5hZHUxEDAOBgNVBAcMB0NoZW5uYWkxDDAKBgNVBAoMA0ZDSTEUMBIGA1UEAwwL
cnR4c2NwbHAwNjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALq6Emgljkwf
HKkB4s1BkXeYE/j0zO271m8IFerHyGVKjeq+RNJ/8vTNaeQSdpTfeGc5kTuNlK4v
YFSS8V2jVFwsXwKS63/H6sfzeFvgaFMJb/DghejxylajQ+71QXwsRdMmPJwH0JU3
YejuhIA+NegFSU5BVbks8QZeGOeKQ0MlAgMBAAGjUDBOMB0GA1UdDgQWBBRjvXHC
pMQrNHm4bj7e6MJZcUyy+TAfBgNVHSMEGDAWgBRjvXHCpMQrNHm4bj7e6MJZcUyy
+TAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBADegC439XYCfiq4oj+Lm
pH71WtPmbbB2+exEkIYioB8i/mQqIn65sKAVf8pcockoMNlYnvhPPdVfrB81iA1V
2QbzJs3C+1eKhFeOpL2dXrJYD9X5LsSTdOvDcHSa7pkY3CaM2u1JZB6DkYQU81fN
NufoWfmwHFQl64eO3qNys8ks
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

我想把这个文件分成 2 个文件。

filename.key 应包含以下内容:

-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALq6EmgljkwfHKkB
4s1BkXeYE/j0zO271m8IFerHyGVKjeq+RNJ/8vTNaeQSdpTfeGc5kTuNlK4vYFSS
8V2jVFwsXwKS63/H6sfzeFvgaFMJb/DghejxylajQ+71QXwsRdMmPJwH0JU3Yeju
hIA+NegFSU5BVbks8QZeGOeKQ0MlAgMBAAECgYBL6GynLe1FALjT89JRgsAyD/6+
jDXqxxuLE4xlX0YV91LuBN9Re3Y3EnJjpyXRq27097AUt5+jl9rfRsUcPdOC2s4W
txAEdJ2INgRbgilu2jgrKItPT9fC2e1oRJoHYIPHmE1SbXEqjm5fmelG7dqoNv95
Y/yr/YvIuF/aC8AEmQJBAOpYD0y5tr7wi0SXH2EWYlg4u+9++o14e+m0LDA8KbbL
uraS3XrHsS9IfKTLlJcyxTMQDA3TzYOfOAECs/hWlhcCQQDL+4Uz8yPVPkxoWFpH
qAauQ/kvxMQLRgJzc9+7EClAMbN3F26xl0GMmNE8eQ1A3622HG2ejMdgS07VOxOJ
rfIjAkEA3aACeDF63wFm9Ktnhc5Bm+Wr90hDdN/pcJBw6f08BiCOqHQk+iU5MNqA
5umR0Zy2WyBmBf21czF1KZ+AzPA2aQJAElEis/iIZjSy7cfJS5f2CZ4G+Vgk9pIx
1CY6l/Sqj54m7HHJOd9IPpTWbSS9oO61DZ5d5Zfkq2v3x0QHzBw3mwJBAKN1xO/3
RkwGrcgBUmviRpZN2GT6uNQd4lV1rLQXoPRqUUeFA7tSD198EXAiRGdMFMRBr+c6
C8ugBRjNMLUicy8=
-----END PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

filename.cert 应包含以下内容:

-----BEGIN CERTIFICATE-----
MIICfjCCAeegAwIBAgIJANykL9YOhRqKMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV
BAYTAklOMRMwEQYDVQQIDApUYW1pbCBOYWR1MRAwDgYDVQQHDAdDaGVubmFpMQww
CgYDVQQKDANGQ0kxFDASBgNVBAMMC3J0eHNjcGxwMDY1MB4XDTE2MDMxNjE2MDUy
OVoXDTE3MDMxNjE2MDUyOVowWDELMAkGA1UEBhMCSU4xEzARBgNVBAgMClRhbWls
IE5hZHUxEDAOBgNVBAcMB0NoZW5uYWkxDDAKBgNVBAoMA0ZDSTEUMBIGA1UEAwwL
cnR4c2NwbHAwNjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALq6Emgljkwf
HKkB4s1BkXeYE/j0zO271m8IFerHyGVKjeq+RNJ/8vTNaeQSdpTfeGc5kTuNlK4v
YFSS8V2jVFwsXwKS63/H6sfzeFvgaFMJb/DghejxylajQ+71QXwsRdMmPJwH0JU3
YejuhIA+NegFSU5BVbks8QZeGOeKQ0MlAgMBAAGjUDBOMB0GA1UdDgQWBBRjvXHC …
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

6
推荐指数
1
解决办法
1034
查看次数

如何设置 gnome-terminal 的 X 和 Y 启动位置?

我一直在尝试gnome-terminal --geometry x y永久设置的位置。我知道我需要找到一个包含终端设置的文件,但我不知道它的位置。基本上,我想要的是控制终端窗口在启动时的位置。

gnome-terminal

6
推荐指数
1
解决办法
7882
查看次数

如何让 tar 从 stdin 读取输入?

我需要tar在 shell 脚本内的管道中使用来存档和压缩一些文件。

在阅读了手册页后,tar我能够通过将其与参数一起运行来生成tar输出,但我无法找出如何将其从. 由于如果没有指定其他输入,许多命令会从中读取,我尝试过:stdout-Ostdinstdin

pv ~/foo | tar c -O ~/foo.tar
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

tar: Cowardly refusing to create an empty archive

Try 'tar --help' or 'tar --usage' for more information.
Run Code Online (Sandbox Code Playgroud)

如何tar从 读取输入stdin

input tar

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