我现在正在参加 Hackathon,所以如果有人能尽快回答这个问题,你会帮我一个大忙。
我在 .bashrc 中编写了一个名为 ls() 的函数,如下所示:
ls() {
if(some condition);
do something
else
ls; #(CALL TO ORIGINAL ls SYSTEM CALL)
fi
}
Run Code Online (Sandbox Code Playgroud)
但是这里到了else部分,就进入了无限循环
如何在 else 中调用原始 ls 系统调用,或者,如何使 ls 在一个文件夹中的行为与其他文件夹中的行为不同。
我已经准备好了别名.bash_aliases。
我现在遇到的问题是我需要先运行source ~/.<filename>才能执行别名命令。
我的问题是如何source ~/.<filename>在用户打开终端时运行。
我的 .bashrc 文件夹中有一个不错的小 bash 别名,它允许我启动 Tomcat 运行而无需先 cd 进入文件夹,例如
alias startTomcat="cd ~/apache-tomcat-7.0.34/bin/ && ./startup.sh"
Run Code Online (Sandbox Code Playgroud)
但是,当我startTomcat在终端中运行时,我从启动的文件夹中启动,现在我的终端驻留在~/apache-tomcat-7.0.34/bin/. 当然,这是预期的行为,但我想要做的是运行命令而不在不同的文件夹中结束。
我可以保存原始位置,然后在我的 .bashrc 文件中返回它,或者在不cd退出原始文件夹的情况下运行 startup.sh吗?
谢谢!!
我是 UBUNTU 的新手,并尝试使用 apache 来检查我目前正在使用 Joomla 开发的网站(也是新手)。我试图在 httpd.conf 中设置别名,但没有成功。感谢您的帮助。
好的,伙计们,这是一个实验性问题警告!
我经常混淆cat,并ls在控制台上快速运行。不是因为我忘记了它们的含义,不是。仅仅因为我在没有深入考虑命令的情况下输入 - 它只是自动出现。我相信每个人都知道我要解释的内容:如果您的任务是列出文本文件或目录,则不必考虑输入什么内容。
现在,为什么有两个不同的命令?如果有一个命令,如果目标是目录,则列出目录,如果目标是文件,则列出文件的内容,事情会更流畅。
有这样的命令吗?
我知道有些编辑器(例如vim)可以列出目录。但这不是我想要的,因为我想留在控制台上。其次,在通过vim目录列表打开文件后,没有办法返回——至少我知道没有。
如果有外的开箱无解我会尽量做一个小bash脚本(包装),以cat和ls。但这不是首选,因为在使用许多不同的系统时,必须将其放置在每个系统上......
Ubuntu 新手,所以如果我说的很奇怪,请原谅......我真正想做的就是将我的 ls 命令更改为 ls --color=always -ragX
解决了... Alias 会做得很好。现在,每次我登录时都运行它(从 Putty SSH 到命令行)我.bashrc在我的主目录中创建并输入
alias ls='ls --color=always -ragX'
Run Code Online (Sandbox Code Playgroud)
保存、退出并返回
打字 vi
看起来.bashrc文件没有运行?怎么办?
有没有办法将命令更改xdg-open为更简单的open?包括传递路径的能力吗?例如,xdg-open .我不想输入 ,而是简单地输入open .。
我想为rm -rf /. 我知道如何制作别名;问题是我不知道如何使用一系列命令来为所有命令创建别名。我想要类似rm -rf / = echo 'something', 但仅当使用“/”时。
我怎样才能做到这一点?
当我输入 时nautilus .,它只会在终端之外打开 Nautilus 中的当前目录,我可以继续在终端中执行我想继续做的任何事情,而不必先取消该过程。
现在,当我创建一个别名时
alias open="nautilus ."
Run Code Online (Sandbox Code Playgroud)
并在终端写“open”,Nautilus会在当前目录中按预期打开,但也会在终端中打开(“Initializing nautilus-dropbox 2019.02.14”),这意味着我不能使用终端直到我取消这个流程。但是,取消该过程也会关闭 nautilus。
我怎样才能防止这种情况?
我有一个示例命令,如下所示:
g++ main.cpp -o main -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -I/usr/local/include/opencv4
Run Code Online (Sandbox Code Playgroud)
运行上述整个命令将main根据参数main后的第二个参数创建文件-o。我已在文件.zshrc中将其重置如下:
alias ocv='f(){ g++ "$@" -o built_$@ -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -I/usr/local/include/opencv4; unset -f f; }; f'
Run Code Online (Sandbox Code Playgroud)
现在运行上面的命令如下:
ocv main.cpp
Run Code Online (Sandbox Code Playgroud)
它将创建一个名为built_main.cpp. 但我希望它main通过删除扩展名来生成文件.cpp。怎么做?