错误代码是-bash: cd: too many arguments
。
我目前正在使用运行 ubuntu 16.04 的 Windows 子系统
我尝试使用反斜杠('\'),然后使用空格(''),但它仍然给我同样的错误。
错误代码是-bash: cd: too many arguments
。
我目前正在使用运行 ubuntu 16.04 的 Windows 子系统
我尝试使用反斜杠('\'),然后使用空格(''),但它仍然给我同样的错误。
我最近开始使用Linux,所以我的程序只是为了学习。话虽如此,这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main () {
FILE *fin;
char buf[200];
fin = fopen("provaMake.txt", "r");
if (fin==NULL) {
fin = fopen("/home/giorgio/Desktop/provaMake.txt", "r");
if (fin==NULL) {
printf("finError\n");
exit(1);
}
}
while(fgets(buf, 200, fin) != NULL) {
system(buf);
}
fclose(fin);
}
这是provaMake.txt
文件:
cd /home/giorgio/Desktop/a
rm -f pippo.txt
cd /home/giorgio/Desktop
当我使用以下方法运行它时:
$gcc provaMake.c -o provaMake.o
$./provaMake.o
它没有删除 pippo.txt (在a
里面的目录中Desktop
)。
我在代码中做错了吗?我再说一遍我正在努力学习,所以请向我解释一下(或重定向我在哪里可以学习)。
愚蠢的提问时间!
我一直在玩 Ubuntu 几个小时,我需要的大多数程序都运行良好,但现在我不确定如何安装某些东西。
[...]
./tmc-netbeans_org_mooc_tmcbeans-linux.sh
在文件所在的目录中给出命令。
我已经下载了我需要下载的文件,它在我的下载文件夹中......现在怎么办?如何从文件位置进入目录?
如何提升root权限bash
?然后如何返回到之前的状态?我的问题是关于提升/降低权限以及某些应用程序可能出现的问题,尤其是 GUI 应用程序(和“环境”)。
比如说,一些应用程序为每个用户和根用户保留一个单独的配置文件。如果我以 root 身份运行应用程序,则 GUI 和配置文件可能不是“环境”的唯一问题,无论这是他们或操作系统的错误还是功能。
说,我需要以 root 身份运行脚本或已经以 root 身份运行脚本(如在 rc.local 中),因此您可能需要降低权限或从那里“完全”切换回普通用户(su normaluser
并不总是有效)。最初运行一个脚本,sudo -H
然后切换到另一个用户?这并不总是按需要工作,尤其是对于 GUI 应用程序。我认为问题出在“环境”上,并且DISPLAY=:0 ...
or DISPLAY=:0 gtk-launch ...
(gtk-launch
可能是错误的) 可能还没有帮助。
说,我有gedit
一个打开的文件。如果我以普通用户身份运行gedit /doc2
,它会打开菜单并显示在另一个选项卡中的现有窗口中。如果我以 root 身份运行它,它会在一个单独的窗口中打开,并且没有可见的菜单。sudo -H
如果我通过or运行脚本su
并尝试以gedit /doc2
普通用户身份运行(再次使用 sudo (-H) 或 su),那么它就像我以 root 身份而不是普通用户一样运行。我也试过sudo
options -l, -s, -i
。与其他导致更严重问题的 GUI 应用程序一起使用。一些 GUI 应用程序具有不同的 GUI 或因此根本不运行。有时runuser
对我有帮助,但并非总是如此。并且 heredoc 格式 ( sudo -H /bin/bash <<EOF <lines with commands> EOF
) 无法按预期工作。
这是多少麻烦。一年多来,我找不到一个好的通用解决方案。那么有什么可以提升特权并返回的吗?还是其他好的解决方法?
还有一个完整的例子以防万一(运行为sudo ./script.sh
或使用-H
):
cd /somedir
some_commands # using the current directory, root privileges and setting some variables, and writing to somefile (better as normal user)
sudo -u normaluser /bin/bash -c 'gedit --encoding someencoding /somefile'`
如果我运行以下 bash 脚本./script.sh
gedit --encoding someencoding /somefile
然后gedit
正常工作。
以防万一:它是关于 Ubunu 16.04 xenial,bash 版本 4.3.48。
更新:
我知道我可以运行类似的命令
sudo sh -c ‘command1 $somevariable; command2’
或(我发现它可以是几行)
sudo sh -c ‘command1 $somevariable command2’
或者可能与bash
. 对于大量命令来说,这可能不是一个选项,也不能解决所有问题。而且我绝对不需要交互式输入命令。另见我的回答。
PS我认为Linux应该用户友好且易于使用。
如果你 cd 到另一个用户的家并运行一个 apt install 命令,这有什么特别的吗?
我知道,我知道,这听起来很愚蠢。我的本能是说:“不,很明显!”
但后来我看到了这个:https ://developer.valvesoftware.com/wiki/SteamCMD
作为安装过程的一部分,他们让我们创建它的新用户,然后 cd 进入他的家。
我想知道是否可以跳过安装前cdin'g into his home?
在终端上使用cd
命令时,如果我输入类似的内容,我会收到“没有这样的目录”错误
cd /directory/whatever/
但是当我输入类似的东西时
cd \directory/whatever/
它工作得很好。
无论我是在主目录中还是在另一个目录中,都会发生这种情况。
更重要的是,这似乎只适用于, 等目录Downloads
,Pictures
以及我自己创建的目录。目录喜欢usr
并etc
没有这个问题。
这可能是什么原因造成的?以及如何将其更改为正常状态?
我遇到了我以前的操作系统(Ubuntu Xenial)和我现在的操作系统(Ubuntu Bionic)之间的行为差异。
短篇小说是这样的:
当使用 tab 补全时cd
,tab 补全的顺序发生了变化。
为了演示这个问题,假设我有这个目录结构(所有目录):
/vagrant/hello
/vagrant/hello/web
/vagrant/hello/web/hello.com
我有CDPATH=.:/vagrant:/vagrant/hello/web
过去,cd hel<TAB>
显示hello
第一,hello.com
第二:
$ cd hel<TAB>
hello/ hello.com/
但是现在,它以相反的顺序显示,这是不可取的:
$ cd hel<TAB>
hello.com/ hello/
在我的控制之下,这两个版本之间没有任何变化。
更长的故事(仅供参考,我认为这无关紧要):
A)我是一个“重度用户” CDPATH
——这个订单变化完全打乱了我的节奏。
B)实际上,我正在使用这个.inputrc
文件,实际上是menu-complete
在选项卡上执行(上面的输出来自 Shift+Tab,这是正常的complete
)。
TAB: menu-complete
"\e[Z": complete
C)我尝试在干净的(Docker)环境中重现它,但我无法重现“坏”行为。
D)我尝试了一些变体之类menu-complete-backwards
的,但结果并不好。
E)我尝试了无数的CDPATH
值变化,包括改变顺序和:.
最后添加。
F)在执行cd something<TAB>
时,在选择当前目录中的目录之前,甚至似乎完成会支持不在当前目录中的目录 - 即使CDPATH
以点开头 -.:/other/paths
我不知道如何调试这个问题,非常感谢任何帮助。
问题是有时我输入cd
错误并带我进入主目录。
例如,我在一个有隐藏目录和可见目录的目录中,我快速按cd
+tab并带我到主目录
为什么我无法访问文件夹/website1
?
juozas@personal:/opt/lampp/htcdocs$ ls
website1
juozas@personal:/opt/lampp/htcdocs$ cd /website1
bash: cd: /website1: No such file or directory
juozas@personal:/opt/lampp/htcdocs$ cd /website1
bash: cd: /website1: No such file or directory