sleep 是一个非常流行的命令,我们可以从 1 秒开始睡眠:
# wait one second please
sleep 1
Run Code Online (Sandbox Code Playgroud)
但是如果我只需要等待 0.1 秒或在 0.1 到 1 秒之间,还有什么选择?
sleep 0.XXX工作正常,但在 solarissleep 0.1或sleep 0.01- 非法语法上如何在不通过管道传输标准输出流的情况下传输标准错误流?
我知道这个命令有效,但它也会写出标准。
Command 2>&1 | tee -a $LOG
Run Code Online (Sandbox Code Playgroud)
我如何得到标准错误?
注意:我想要的是将 stderr 流写入日志并将 stderr 和 stdout 写入控制台。
我有一个看起来很奇怪的 shell 问题,在 $PATH 中有一个命令,shell(ksh,在 Linux 上运行)似乎怯懦地拒绝调用。没有完全限定命令,我得到:
# mycommand
/bin/ksh: mycommand: not found [No such file or directory]
Run Code Online (Sandbox Code Playgroud)
但是可以通过以下方式找到该文件:
# which mycommand
/home/me/mydir/admbin/mycommand
Run Code Online (Sandbox Code Playgroud)
我还在 $PATH 中明确看到该目录:
# echo $PATH | tr : '\n' | grep adm
/home/me/mydir/admbin
Run Code Online (Sandbox Code Playgroud)
该位置的exe似乎正常:
# file /home/me/mydir/admbin/mycommand
/home/me/mydir/admbin/mycommand: setuid setgid ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), not stripped
# ls -l mycommand
-r-sr-s--- 1 me mygroup 97892 2012-04-11 18:01 mycommand
Run Code Online (Sandbox Code Playgroud)
如果我使用完全限定的路径显式运行它:
# /home/me/mydir/admbin/mycommand
Run Code Online (Sandbox Code Playgroud)
我看到了预期的输出。这里肯定有一些东西让 shell 感到困惑,但我不知道它可能是什么? …
我创建名为 - 192.9.200.1 的新文件
touch 192.9.200.1
Run Code Online (Sandbox Code Playgroud)
然后我创建一个指向 192.9.200.1 文件的新链接
ln -s 192.9.200.1 file
Run Code Online (Sandbox Code Playgroud)
所以最后我得到:
ls -ltr /tmp
-rw-r--r-- 1 root root 0 May 8 19:39 192.9.200.1
lrwxrwxrwx 1 root root 11 May 8 19:39 file -> 192.9.200.1
Run Code Online (Sandbox Code Playgroud)
但是当我对 192.9.200.1 文件执行ls -ltr时,我看不到其他链接是否指向 192.9.200.1
ls -ltr 192.9.200.1
-rw-r--r-- 1 root root 0 May 8 19:39 192.9.200.1
Run Code Online (Sandbox Code Playgroud)
识别文件或目录是否有链接的方法是什么,
我想在 ksh 中使用 home、end、delete、pageup、pagedown。我的术语是 xterm-color。这些键适用于 tcsh 和 zsh,但不适用于 ksh(打印 tilda ~)
我找到了这个:
bind '^[[3'=prefix-2
bind '^[[3~'=delete-char-forward
bind '^[[1'=prefix-2
bind '^[[1~'=beginning-of-line
bind '^[[4'=prefix-2
bind '^[[4~'=end-of-line
Run Code Online (Sandbox Code Playgroud)
但是当我设置一个绑定键时,最后一个不再起作用。
如何在带有 .kshrc 的 ksh 中使用这些密钥?
谢谢。
我多年来一直是 linux 用户。非常习惯于 bash shell,习惯于大多数主流发行版附带的 linux shell 键映射。我也是linux 中的快乐vim用户,并且喜欢我的箭头键。
刚刚开始一项工作,其中 90% 的系统是 solaris,管理员的默认 shell 是 ksh。键映射,诸如自动完成和历史记录之类的东西没有按照他们应该的方式工作,并且让我发疯。
如何在solaris中获得以下工作:
箭头键在 shell 中工作,就像他们在 bash 中所做的那样,比如 RHEL、ubuntu。这意味着使用箭头键滚动浏览我的历史记录或编辑我当前的命令行
选项卡完成工作,以便我可以使用选项卡完成文件名/目录路径,或者如果有多个匹配项,则向我显示匹配项。
以下简单期望脚本的目标是获取远程机器上的主机名
有时期望脚本无法对 $IP_ADDRESS 执行 ssh(因为远程机器不活动等)
所以在这种情况下,expect 脚本将在 10 秒后中断(超时 10),这没问题,但是......
有两种选择
在这两种情况下,expect 都会退出
但我不知道expect脚本是否成功执行ssh?
是否可以识别超时过程?或验证期望因超时而结束?
备注我的 Linux 机器版本 - red-hat 5.1
期待脚本
[TestLinux]# get_host_name_on_remote_machine=`cat << EOF
> set timeout 10
> spawn ssh $IP_ADDRESS
> expect {
> ")?" { send "yes\r" ; exp_continue }
>
> word: {send $PASS\r}
> }
> expect > {send "hostname\r"}
> expect > {send exit\r}
> expect eof …Run Code Online (Sandbox Code Playgroud) 我们有一个人退休了,留下的文件有点轻描淡写。需要一点帮助来识别和使用旧的客户端-服务器系统。
服务器本身由几位优秀的 Unix 管理员维护。我们目前在服务器端运行 AIX 7.1.0.0。
然而,当我们使用专有的 SSH 客户端登录时,我们会看到一个看起来很熟悉但在其他方面很奇怪的 shell。外壳本身似乎是 KornShell:
echo $0
-ksh
Run Code Online (Sandbox Code Playgroud)
但是外壳不响应正常的外壳命令(无法向上/向下点击以调用最近的命令,无法正常退格,无法使用制表符自动完成等)
使用最近的命令调用 ESC + k
如果ESC键被敲击,则终端停止响应于输入,直到i,a,s,或cc被压(或k,如已经提到带来了最近的命令)。
要编辑调用的命令,我们必须点击 SHIFT + UP
Backspace 实际上是RIGHT箭头,要清除输入的命令,我们必须点击SHIFT + RIGHT
该whence命令不可用,并且此页面上发现 KSH 版本的技术均无效。
我们办公室有人建议这是某种内联vi。
其他人有什么建议吗?有没有可用的文档?
从表面上看,修复 ksh 以使历史更改不可能是相当容易的。我已经看到了将 HIST* 环境变量设置为只读的所有建议,以及使用 chattr 将历史文件设置为仅附加(使用 chattr +a .sh_history)的所有建议。
然而,Bash 有两件事似乎无法阻止历史更改:历史命令(带有 history -c 和 history -d)和将历史文件与实际运行时历史分开(保存在内存中) . 我还在 serverfault 上读到,如果您杀死当前的 shell,则不会写出历史记录。
有没有办法防止 Bash 的历史更改?我希望能够保存所有用户命令,而用户无法从历史记录中删除任何内容。
也欢迎任何有关 Korn shell 的提示。(我知道ksh-93审计...不知道我们是否可以使用它。)
我的 linux 机器中有这个文件:
----------9976723563nneh4_-----192.9.200.4
Run Code Online (Sandbox Code Playgroud)
我尝试删除这个文件,但我不能在这里看到:
需要向 rm 添加什么才能删除此文件?
rm "----------9976723563nneh4_-----192.9.200.4"
rm: illegal option -- --------9976723563nneh4_-----192.9.200.4
usage: rm [-fiRr] file ...
Run Code Online (Sandbox Code Playgroud)
.
rm '----------9976723563nneh4_-----192.9.200.4'
rm: illegal option -- --------9976723563nneh4_-----192.9.200.4
usage: rm [-fiRr] file ...
Run Code Online (Sandbox Code Playgroud)