我使用的是默认安装的 FreeBSD,带有 C shell (csh)。
假设我有一个可以通过执行以下命令来运行的命令:/sbin/abc,但不能通过执行abc. 如何设置某些路径或使abc任何地方都可以运行的东西?
例如 我想说
perl -e 'print '"'"'Hello, world!'"'"', "\n";'
Run Code Online (Sandbox Code Playgroud)
有没有一种不那么尴尬的方法,例如转义单引号?
是的,我知道我可以写
perl -e 'print q[Hello, world!], "\n"'
perl -e 'print "Hello, world!\n"'
Run Code Online (Sandbox Code Playgroud)
但是这个问题是关于在 shell 中引用,而不是在 Perl 中引用。
我感兴趣的是如何做到这一点的bash,并csh摆在首位。
我是 Linux 新手,经常看到这种情况。有人可以在这里解释这个概念吗?
~/.somefilename
Run Code Online (Sandbox Code Playgroud)
~(波浪号)是什么意思?
我刚学的把戏设立cdpath的tcsh,它看起来非常有用的。
但是,似乎没有自动完成子文件夹名称。有什么技巧吗?因为我经常进入某些目录,所以这真的很酷。
我正在使用tcsh6.14.00 (Astron)。
我想在 linux 中使用 find 命令来查找嵌套在特定目录结构中的特定文件,例如dir1/dir2/reqdfile.
但是这个目录结构本身可以嵌套在任何父目录结构中。
是否可以进行搜索?
find directory_to_search -name "**/dir1/dir2/reqdfile"
Run Code Online (Sandbox Code Playgroud)
确切的语法是什么?
例如,我cd经常要走很长的路。如何将路径存储在变量中以便我每次都可以使用它?
例如:我希望能够做到这一点
cd $path
Run Code Online (Sandbox Code Playgroud)
代替
cd /a/b/c/d/e/f
Run Code Online (Sandbox Code Playgroud)
每次。
在我的环境 (RHEL) 中,我有一堆用 csh 或 bash 编写的脚本。
其中一些用于处理tomcat服务器。
我想将 CATALINA_HOME 和 CATALINA_BASE 的定义保留在一个地方,以便 csh 和 bash 脚本可以从一个文件中获取变量。
我更熟悉 bash,对 csh 的接触非常有限。所以对于 bash 脚本,这就是我要做的:
. ~/tomcat.settings
Run Code Online (Sandbox Code Playgroud)
在 tomcat.settings 中,我将有
export CATALINA_HOME=/mnt/apps/tomcat/6.0.20/linux
export CATALINA_BASE=/home/app1/server
Run Code Online (Sandbox Code Playgroud)
如何从 csh 中的同一个文件中获取源文件?
我正在 linux 服务器上运行一个需要几天才能完成的程序。
我从我的工作站从 SSH 终端启动它,因为这个程序只是命令行。
我希望能够做到所有这些:
我想过 $ ./MyProg.csh -params -foo -bar </dev/null 1>~/out.log 2>~/err.log &
但是,该过程在我关闭 SSH 会话的那一刻就终止了。我的工作站运行的是 Windows XP,我不能保证它的正常运行时间超过几天,这是在 Linux 服务器上处理我的数据所必需的。
您可能已经注意到,我的程序需要从 CSH 启动。
是否有可能做到这一点 ?
谢谢。
在下面的两个 C-shell 别名中,只有第一个打印time命令的已用时间报告。如何使用管道获取别名以打印时间报告?
alias make1 'time make'
alias make2 'time make |& tee make.log'
Run Code Online (Sandbox Code Playgroud) 我经常使用grep与-n选项列表行号,如
$ grep -n xyz .*
/ext1/acheong/foo/bar/a.cc:42: inline bool abc(int xyz);
/ext1/acheong/foo/bar/a.cc:43: inline bool def(int xyz);
/ext1/acheong/foo/bar/b.cc:415: int xyz = result;
/ext1/acheong/foo/bar/b.cc:490: xyz += result;
$
Run Code Online (Sandbox Code Playgroud)
是否有可能以vim这样的方式别名做
vim /ext1/acheong/foo/bar/b.cc:415
Run Code Online (Sandbox Code Playgroud)
会打开文件并自动查找第 415 行吗?
有可能csh吗?(是的,是的,csh带出恶魔和所有不圣洁的东西;但我别无选择……)其他贝壳的答案也很有用。
有人可以为 Windows 推荐一个好的 Linux 文本编辑器(如果存在),我使用 Windows 的 txt 编辑器为 C-Shell 编写了脚本,但我遇到了问题,它无法运行,因为 Windows 不是 UNIX,我该怎么办?我不想为几个脚本安装 linux,我通过 unix 服务器测试我的脚本(这台服务器不是我的),在此先感谢,我也树了dos2unix command,也不起作用
我试图在我的 Fedora 7 上启动一个 tcsh(默认 shell 是 bash)
[ss@ssvm ~]$ tcsh
[ss@ssvm ~]$ echo $SHELL
/bin/bash
Run Code Online (Sandbox Code Playgroud)
如您所见,另一个 bash shell 启动了。
我查看了 tcsh 文件:
[ss@ssvm ~]$ ll /bin/tcsh
-rwxr-xr-x 1 root root 345348 2007-02-26 23:58 /bin/tcsh
[ss@ssvm ~]$ ll /bin/csh
lrwxrwxrwx 1 root root 4 2010-03-07 13:13 /bin/csh -> tcsh
Run Code Online (Sandbox Code Playgroud)
它不是链接(但 csh 是)。我不明白为什么会这样。如果您有想法或需要更多信息,请告诉我。谢谢!
XM
我想运行以下命令。
找 。-mtime -60s
当我这样做时,我会得到这个输出:
CLIENT% echo `date +%s`-1308741881 | bc
5152
CLIENT% find . -mtime -`echo `date +%s`-1308741881 | bc`s
-1308741881: Command not found.
find: -mtime: -date: illegal time value
CLIENT%
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?