我有两个目录应该包含相同的文件并具有相同的目录结构。
我认为这些目录之一中缺少某些内容。
使用 bash shell,有没有办法比较我的目录并查看其中一个是否缺少另一个存在的文件?
我正在处理这个预先存在的.desktop文件,我有一个疑问:
文件内容为:
[Desktop Entry]
#Icon=connect-data-space
Icon=XCloud
Categories=Utility;
Type=Application
#Exec=/usr/share/ConnectDataSpace/appl/launcher.sh
Exec=/usr/share/XCloud/appl/launcher.sh
Name[en_US]=Connect Data Space
#Name=Connect Data Space
Name=XCloud
Comment[en_US]=
Comment=
StartupNotify=true
Terminal=false
OnlyShowIn=GNOME;Unity;
StartupWMClass=ConnectDataSpace
Actions=CheckUpgrade
[Desktop Action CheckUpgrade]
Name=Verifica Aggiornamenti
#Exec=java -jar /usr/share/ConnectDataSpace/appl/lib/shellExtBridge.jar -checkupgrade
Exec=java -jar /usr/share/XCloud/appl/lib/shellExtBridge.jar -checkupgrade
OnlyShowIn=GNOME;Unity;
Run Code Online (Sandbox Code Playgroud)
这个文件的StartupWMClass字段到底代表什么?
我绝对不喜欢 Linux 系统管理(我是一名软件开发人员),我有以下关于服务的问题。
在Ubuntu 18.04.2 LTS机器上安装了一个软件即服务。我的意思是我可以在 shell 中执行这个语句来运行它:
sudo service wso2ei start
Run Code Online (Sandbox Code Playgroud)
我将服务配置文件放入:
/etc/systemd/system/wso2ei.service
Run Code Online (Sandbox Code Playgroud)
包含这样的内容:
[Unit]
Description=WSO2EI
After=syslog.target
After=network.target
[Service]
Type=simple
WorkingDirectory=/usr/lib/wso2/wso2ei/6.4.0
User=root
Group=nogroup
Environment=JAVA_HOME=/usr/lib/wso2/wso2ei/6.4.0/jdk/jdk1.8.0_192
Environment=CARBON_HOME=/usr/lib/wso2/wso2ei/6.4.0
StandardOutput=syslog
StandardError=syslog
ExecStart=/usr/lib/wso2/wso2ei/6.4.0/bin/integrator.sh
ExecStop=/usr/lib/wso2/wso2ei/6.4.0/integrator.sh stop
#TimeoutSec=130
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
它工作正常,我可以通过以下语句启动和停止服务:
sudo service wso2ei start
Run Code Online (Sandbox Code Playgroud)
和
sudo service wso2ei stopt
Run Code Online (Sandbox Code Playgroud)
所以这项服务工作正常......但是......我试图通过这个stament列出所有服务:
service --status-all
Run Code Online (Sandbox Code Playgroud)
我希望在输出列表中找到我的wso2ei服务,但没有!!!
这是我的输出:
$ sudo service --status-all
[ - ] acpid
[ + ] apparmor
[ + ] apport
[ + ] atd
[ + ] cntlm
[ - ] …
Run Code Online (Sandbox Code Playgroud) 我还不是 Linux 人,我在尝试添加新的永久环境变量时遇到了一些问题。
所以我必须用这个值设置一个名为CATALINA_HOME的新环境变量:/opt/apache-tomcat-8.0.23
我该怎么做才能永久设置它?
Tnx
我对 Linux 不太熟悉,在学习教程后我有以下疑问。
我必须修改bashrc
文件。此文件中包含哪些类型的设置?我认为有些东西与 bash shell 环境有关,但我不太确定。
我必须插入这一行:
export PATH=$HOME/.local/bin:$HOME/.local/usr/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
这条线到底是做什么的?
我认为该export
语句用于创建一个新变量,使其可用于其他程序。
但是这条线到底是做什么的呢?是PATH
我定义的变量的名称吗?什么是$HOME
?
前面表达式中和和部分:
之间的符号是什么意思?PATH=$HOME/.local/bin
$HOME/.local/usr/bin
$PATH
这个表达究竟是什么意思?
我有以下疑问。在与我正在关注的软件安装相关的教程中,我说我必须执行以下命令(我在ssh shell 中执行此操作,因此此步骤列表以exit
命令结尾):
sudo -s
apt-get update
apt-get install -y build-essential libtool libcurl4-openssl-dev libncurses5-dev libudev-dev autoconf automake screen
exit
Run Code Online (Sandbox Code Playgroud)
我的疑问是:
命令-s
后的参数究竟有什么作用sudo
?
在网上搜索我发现:
?s [command] ?s (shell) 选项运行由 SHELL 环境变量指定的 shell(如果它已设置)或密码数据库中指定的 shell。如果指定了命令,它将通过 shell 的 ?c 选项传递给 shell 以执行。如果未指定命令,则执行交互式 shell
在我看来,sudo -s
使用 shell 的环境变量执行命令。
但这对我来说并不清楚:在这种情况下,使用环境变量执行的命令是什么?(它只执行sudo -s
而不是sudo -s [command]
)。
我不太喜欢 Linux,我有以下疑问:客户端为我提供了一个 Ubuntu 18.04.3 LTS 虚拟机,我可以通过 SSH 访问它。(我使用 MobaxTerm 作为 SSH 客户端,但这应该不是问题。)使用的 shell 是sh
.
问题是在 shell 中,自动完成功能没有像我预期的那样使用Tab密钥工作。
它只是简单地放置了经典的制表符空格。
为什么?如何更改此配置?
我正在按照本教程在我的 Ubuntu 14.04 上正确执行 Aptana Studio:
所以我已经安装了 Oracle JRE,最后我创建了这个run.sh
必须执行 Aptana 的文件:
!/bin/bash
export UBUNTU_MENUPROXY=0 /home/andrea/Programmi/Aptana_Studio_3/AptanaStudio3
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试使用我的 shell 执行此脚本时,我收到以下错误消息:
andrea@andrea-virtual-machine:~/Programmi/Aptana_Studio_3$ sudo sh run.sh
run.sh: 1: run.sh: !/bin/bash: not found
run.sh: 3: export: /home/andrea/Programmi/Aptana_Studio_3/AptanaStudio3: bad variable name
Run Code Online (Sandbox Code Playgroud)
为什么?我错过了什么?我该如何解决这个问题?
command-line bash scripts environment-variables aptana-studio
我不太喜欢 Linux,我有以下问题。我正在 n Ubuntu 16.04系统上工作。
在这个系统中,我有一个程序,它以这种方式从命令行启动:
service wso2ei start
Run Code Online (Sandbox Code Playgroud)
并停在:
service wso2ei stop
Run Code Online (Sandbox Code Playgroud)
我认为应该在某个地方将其定义为服务或类似的东西。这究竟是什么?它在哪里定义了这些语句?(我认为应该定义启动命令和必须执行的可执行文件之间的关联)
我已经安装了 2 个开发工具,命名maven
并ant
使用以下命令:
sudo apt-get install maven ant
Run Code Online (Sandbox Code Playgroud)
如何在我的系统上发现这些工具的安装目录?
我不太喜欢 Linux,并且在使用 VmWare 工作站的 Linux 19.10 系统上遇到了一个非常奇怪的问题(但我认为这不是与 VMware 相关的问题)。
问题是由于崩溃导致系统冻结,我不得不重新启动系统。重新启动后,我不再有互联网连接。
在 shell 中执行ifconfig命令我得到:
developer@developer-virtual-machine:/etc/network$ ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Loopback locale)
RX packets 2508 bytes 186240 (186.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2508 bytes 186240 (186.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Run Code Online (Sandbox Code Playgroud)
因此,似乎由于某种原因,它失去了 VmWare 在 NAT 模式下连接所使用的以太网接口。
我尝试重新启动系统(以及安装了 VMWare 的 Windows 主机),但仍然遇到此问题。我该如何尝试修复它?
EDIT-1: …
我还不是 Linux 人,我有以下环境变量问题。
所以我想添加一个永久的环境变量,我这样做:
我打开/etc/profile文件,并在此文件的末尾添加这一行:
CATALINA_HOME=/opt/apache-tomcat-8.0.24
Run Code Online (Sandbox Code Playgroud)
其中/opt/apache-tomcat-8.0.24是包含 tomcat 安装的文件夹(它包含bin TomCat 子文件夹)
然后我保存这个文件。
所以我关闭外壳并重新打开它并尝试执行以下操作:
andrea@andrea-virtual-machine:/$ sudo ./startup.sh
sudo: ./startup.sh: command not found
Run Code Online (Sandbox Code Playgroud)
要启动服务器,请输入/opt/apache-tomcat-8.0.24/bin/并执行命令。
但是正如你所看到的,我得到了一个错误。我错过了什么?
bash ×8
command-line ×7
services ×2
tomcat ×2
.desktop ×1
16.04 ×1
19.10 ×1
apt ×1
bashrc ×1
dash-shell ×1
ethernet ×1
filesystem ×1
ifconfig ×1
java ×1
networking ×1
permissions ×1
scripts ×1
server ×1
sh ×1
sudo ×1
systemd ×1