免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4540 | 回复: 8
打印 上一主题 下一主题

[OpenBSD] tab键自动补全 [复制链接]

论坛徽章:
14
15-16赛季CBA联赛之辽宁
日期:2019-06-16 15:47:3515-16赛季CBA联赛之广夏
日期:2016-08-13 21:24:352015亚冠之武里南联
日期:2015-07-07 17:37:372015亚冠之萨济拖拉机
日期:2015-07-06 17:07:482015亚冠之全北现代
日期:2015-06-04 13:54:272015亚冠之城南
日期:2015-05-21 15:43:212015年亚洲杯之伊朗
日期:2015-04-25 18:20:362015年亚洲杯之伊朗
日期:2015-04-20 16:06:052015年亚洲杯之科威特
日期:2015-03-07 12:51:26丑牛
日期:2014-12-30 10:26:38申猴
日期:2014-09-28 22:40:18金牛座
日期:2014-09-13 21:12:22
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-21 12:49 |只看该作者 |倒序浏览
本帖最后由 reb00t 于 2014-05-21 12:50 编辑

openbsd5.4  安装完bash后,按tab键默认能补全文件名,或路径

最近测试openbsd5.5 发现不能补全,求大神支招。

说明: 环境都是bash

QQ截图20140521124653.png (13.83 KB, 下载次数: 39)

QQ截图20140521124653.png

论坛徽章:
14
15-16赛季CBA联赛之辽宁
日期:2019-06-16 15:47:3515-16赛季CBA联赛之广夏
日期:2016-08-13 21:24:352015亚冠之武里南联
日期:2015-07-07 17:37:372015亚冠之萨济拖拉机
日期:2015-07-06 17:07:482015亚冠之全北现代
日期:2015-06-04 13:54:272015亚冠之城南
日期:2015-05-21 15:43:212015年亚洲杯之伊朗
日期:2015-04-25 18:20:362015年亚洲杯之伊朗
日期:2015-04-20 16:06:052015年亚洲杯之科威特
日期:2015-03-07 12:51:26丑牛
日期:2014-12-30 10:26:38申猴
日期:2014-09-28 22:40:18金牛座
日期:2014-09-13 21:12:22
2 [报告]
发表于 2014-05-21 21:04 |只看该作者
本帖最后由 reb00t 于 2014-05-22 10:33 编辑

上面的问题,重新编译一次bash就解决了。

但是出现第二个问题了

默认的KSH是启动时正常的,但是用bash就会有如下错误

sshd/etc/rc.d/rc.subr: line 163: type: rc_post: not found
(ok)
+ /etc/rc.d/sshd start
sshd/etc/rc.d/rc.subr: line 140: type: rc_pre: not found
(ok)


导致系统重启后,会卡在这服务启动的界面,进不去系统!!!

论坛徽章:
14
15-16赛季CBA联赛之辽宁
日期:2019-06-16 15:47:3515-16赛季CBA联赛之广夏
日期:2016-08-13 21:24:352015亚冠之武里南联
日期:2015-07-07 17:37:372015亚冠之萨济拖拉机
日期:2015-07-06 17:07:482015亚冠之全北现代
日期:2015-06-04 13:54:272015亚冠之城南
日期:2015-05-21 15:43:212015年亚洲杯之伊朗
日期:2015-04-25 18:20:362015年亚洲杯之伊朗
日期:2015-04-20 16:06:052015年亚洲杯之科威特
日期:2015-03-07 12:51:26丑牛
日期:2014-12-30 10:26:38申猴
日期:2014-09-28 22:40:18金牛座
日期:2014-09-13 21:12:22
3 [报告]
发表于 2014-05-22 10:49 |只看该作者
本帖最后由 reb00t 于 2014-05-22 10:50 编辑

BSD的大神们,出来研究下吧。。

发现上面的问题原因了。

因为我软连接  sh-->bash

如果把软连接改回去就不报如上错误了。。

在linux系统里面  默认有ln  -s /bin/bash   /bin/sh

openbsd这样用,就会服务启动报错,重启机器后进不去系统。



疑问: 如何解决上面的报错,bash跟sh 之间的区别。。

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
4 [报告]
发表于 2014-05-22 10:52 |只看该作者
求大神路过

论坛徽章:
14
15-16赛季CBA联赛之辽宁
日期:2019-06-16 15:47:3515-16赛季CBA联赛之广夏
日期:2016-08-13 21:24:352015亚冠之武里南联
日期:2015-07-07 17:37:372015亚冠之萨济拖拉机
日期:2015-07-06 17:07:482015亚冠之全北现代
日期:2015-06-04 13:54:272015亚冠之城南
日期:2015-05-21 15:43:212015年亚洲杯之伊朗
日期:2015-04-25 18:20:362015年亚洲杯之伊朗
日期:2015-04-20 16:06:052015年亚洲杯之科威特
日期:2015-03-07 12:51:26丑牛
日期:2014-12-30 10:26:38申猴
日期:2014-09-28 22:40:18金牛座
日期:2014-09-13 21:12:22
5 [报告]
发表于 2014-05-22 10:55 |只看该作者
  1. #       $OpenBSD: rc.subr,v 1.70 2013/07/11 09:34:33 otto Exp $
  2. #
  3. # Copyright (c) 2010, 2011 Antoine Jacoutot <ajacoutot@openbsd.org>
  4. # Copyright (c) 2010, 2011 Ingo Schwarze <schwarze@openbsd.org>
  5. # Copyright (c) 2010, 2011 Robert Nagy <robert@openbsd.org>
  6. #
  7. # Permission to use, copy, modify, and distribute this software for any
  8. # purpose with or without fee is hereby granted, provided that the above
  9. # copyright notice and this permission notice appear in all copies.
  10. #
  11. # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  12. # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  13. # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  14. # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  15. # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  16. # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  17. # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


  18. # Default functions and variables used by rc.d(8) scripts.

  19. rc_err() {
  20.         echo $1 1>&2
  21.         exit 1
  22. }

  23. rc_is_supported() {
  24.         local _enotsup
  25.         eval _enotsup=\${rc_$1}
  26.         [ X"${_enotsup}" != X"NO" ]
  27. }

  28. rc_usage() {
  29.         local _a _allsup
  30.         for _a in start stop restart reload check; do
  31.                 rc_is_supported ${_a} && _allsup="${_allsup:+$_allsup|}${_a}"
  32.         done
  33.         rc_err "usage: $0 [-df] (${_allsup})"
  34. }

  35. rc_write_runfile() {
  36.         [ -d ${_RC_RUNDIR} ] || mkdir -p ${_RC_RUNDIR} && \
  37.                 print -rn -- "${pexp}" > ${_RC_RUNFILE}
  38. }

  39. rc_read_runfile() {
  40.         local _new_pexp
  41.         [ -f ${_RC_RUNFILE} ] && _new_pexp=$(< ${_RC_RUNFILE})
  42.         [ -n "${_new_pexp}" ] && pexp="${_new_pexp}"
  43. }

  44. rc_rm_runfile() {
  45.         rm -f ${_RC_RUNFILE}
  46. }

  47. rc_start() {
  48.         ${rcexec} "${daemon} ${daemon_flags} ${_bg}"
  49. }

  50. rc_check() {
  51.         pgrep -q -f "^${pexp}"
  52. }

  53. rc_reload() {
  54.         pkill -HUP -f "^${pexp}"
  55. }

  56. rc_stop() {
  57.         pkill -f "^${pexp}"
  58. }

  59. rc_do() {
  60.         if [ -n "${_RC_DEBUG}" ]; then
  61.                 echo "doing $@" && "$@"
  62.         else
  63.                 "$@" >/dev/null 2>&1
  64.         fi
  65. }

  66. rc_exit() {
  67.         local _pfix
  68.         [ -z "${INRC}" -o X"$1" != X"ok" ] && _pfix="($1)"
  69.         echo ${INRC:+'-n'} "${_pfix}"
  70.         [ X"$1" = X"ok" ] && exit 0 || exit 1
  71. }

  72. rc_wait() {
  73.         local _i=0 _w=${2:-30}
  74.         while [ $_i -lt $_w ]; do
  75.                 case "$1" in
  76.                         reload|start)
  77.                                 rc_do rc_check && return 0
  78.                                 ;;
  79.                         stop)
  80.                                 rc_do rc_check || return 0
  81.                                 ;;
  82.                         *)
  83.                                 break
  84.                                 ;;
  85.                 esac
  86.                 sleep 1
  87.                 _i=$((_i+1))
  88.         done
  89.         return 1
  90. }

  91. rc_cmd() {
  92.         local _bg _n

  93.         [ "$(id -u)" -eq 0 ] || \
  94.                 [ X"${rc_usercheck}" != X"NO" -a X"$1" = "Xcheck" ] || \
  95.                 rc_err "$0: need root privileges"

  96.         if ! (rc_is_supported start && rc_is_supported stop); then
  97.                 rc_restart=NO
  98.         fi

  99.         if ! rc_is_supported $1; then
  100.                 [ -n "${INRC}" ] && exit 1
  101.                 rc_err "$0: $1 is not supported"
  102.         fi

  103.         [ X"${rc_bg}" = X"YES" ] && _bg="&"
  104.         [ -n "${_RC_DEBUG}" ] || _n="-n"

  105.         rc_do rc_read_runfile

  106.         case "$1" in
  107.         check)
  108.                 rc_do rc_check
  109.                 ;;
  110.         start)
  111.                 if [ X"${daemon_flags}" = X"NO" ]; then
  112.                         rc_err "$0: need -f to force $1 since ${_name}_flags=NO"
  113.                         exit 1
  114.                 fi
  115.                 [ -z "${INRC}" ] && rc_do rc_check && exit 0
  116.                 echo $_n "${INRC:+ }${_name}"
  117.                 while true; do  # no real loop, only needed to break
  118.                         if type rc_pre >/dev/null; then
  119.                                 rc_do rc_pre || break
  120.                         fi
  121.                         # XXX only checks the status of the return code,
  122.                         # and _not_ that the daemon is actually running
  123.                         rc_do rc_start || break
  124.                         if [ -n "${_bg}" ]; then
  125.                                 sleep 1
  126.                                 rc_do rc_wait start || break
  127.                         fi
  128.                         rc_do rc_write_runfile
  129.                         rc_exit ok
  130.                 done
  131.                 # handle failure
  132.                 type rc_post >/dev/null && rc_do rc_post
  133.                 rc_do rc_rm_runfile
  134.                 rc_exit failed
  135.                 ;;
  136.         stop)
  137.                 rc_do rc_check || exit 0
  138.                 echo $_n "${INRC:+ }${_name}"
  139.                 rc_do rc_stop || rc_exit failed
  140.                 rc_do rc_wait stop || rc_exit failed
  141.                 if type rc_post >/dev/null; then \
  142.                         rc_do rc_post || rc_exit failed
  143.                 fi
  144.                 rc_do rc_rm_runfile
  145.                 rc_exit ok
  146.                 ;;
  147.         reload)
  148.                 rc_do rc_check || exit 0
  149.                 echo $_n "${INRC:+ }${_name}"
  150.                 rc_do rc_reload || rc_exit failed
  151.                 rc_do rc_wait reload || rc_exit failed
  152.                 rc_exit ok
  153.                 ;;
  154.         restart)
  155.                 $0 ${_RC_DEBUG} ${_RC_FORCE} stop &&
  156.                         $0 ${_RC_DEBUG} ${_RC_FORCE} start
  157.                 ;;
  158.         *)
  159.                 rc_usage
  160.                 ;;
  161.         esac
  162. }

  163. . /etc/rc.conf

  164. [ -n "${daemon}" ] || rc_err "$0: daemon is not set"

  165. unset _RC_DEBUG _RC_FORCE
  166. while getopts "df" c; do
  167.         case "$c" in
  168.                 d) _RC_DEBUG=-d;;
  169.                 f) _RC_FORCE=-f;;
  170.                 *) rc_usage;;
  171.         esac
  172. done
  173. shift $((OPTIND-1))

  174. _name=$(basename $0)
  175. _RC_RUNDIR=/var/run/rc.d
  176. _RC_RUNFILE=${_RC_RUNDIR}/${_name}

  177. eval _rcflags=\${${_name}_flags}
  178. eval _rcuser=\${${_name}_user}

  179. getcap -f /etc/login.conf ${_name} 1>/dev/null 2>&1 && \
  180.         daemon_class=${_name}

  181. [ -z "${daemon_class}" ] && daemon_class=daemon
  182. [ -z "${daemon_user}"  ] && daemon_user=root

  183. [ -n "${_RC_FORCE}" ] && [ X"${_rcflags}" = X"NO" ] && unset _rcflags
  184. [ -n "${_rcflags}" ] && daemon_flags=${_rcflags}
  185. [ -n "${_rcuser}"  ] && daemon_user=${_rcuser}

  186. # sanitize
  187. daemon_flags=$(printf ' %s' ${daemon_flags})
  188. daemon_flags=${daemon_flags## }
  189. readonly daemon_class
  190. unset _rcflags _rcuser

  191. pexp="${daemon}${daemon_flags:+ ${daemon_flags}}"
  192. rcexec="su -l -c ${daemon_class} -s /bin/bak_sh ${daemon_user} -c"
复制代码

论坛徽章:
14
15-16赛季CBA联赛之辽宁
日期:2019-06-16 15:47:3515-16赛季CBA联赛之广夏
日期:2016-08-13 21:24:352015亚冠之武里南联
日期:2015-07-07 17:37:372015亚冠之萨济拖拉机
日期:2015-07-06 17:07:482015亚冠之全北现代
日期:2015-06-04 13:54:272015亚冠之城南
日期:2015-05-21 15:43:212015年亚洲杯之伊朗
日期:2015-04-25 18:20:362015年亚洲杯之伊朗
日期:2015-04-20 16:06:052015年亚洲杯之科威特
日期:2015-03-07 12:51:26丑牛
日期:2014-12-30 10:26:38申猴
日期:2014-09-28 22:40:18金牛座
日期:2014-09-13 21:12:22
6 [报告]
发表于 2014-05-22 12:31 |只看该作者
用XXX办法解决了。。

/etc/rc.conf  需要启动的服务器全部改成NO
把需要启动服务器的命令 加到  /etc/rc.local

例如:

/usr/sbin/syslogd
/usr/sbin/sshd

机器断电,或者XXX重启进入系统正常~~~

论坛徽章:
0
7 [报告]
发表于 2014-05-23 07:45 |只看该作者
看你自言自语,,是BSD板块可悲还是什么呢。。

http://zh.wikipedia.org/zh/Bourne_shell

sh 不是你 ln -s ,想 ln -s 就 ln -s 的。。

你不知道你的解决方案有导致大问题么。。。。。

论坛徽章:
0
8 [报告]
发表于 2014-05-23 07:49 |只看该作者
真心不知道你替换sh有什么目的。。哇哈哈。。

OpenBSD sh好像就是ksh,
FreeBSD sh 是B sh,
启动脚本用什么shell跟你貌似咩毛线关系。。

论坛徽章:
14
15-16赛季CBA联赛之辽宁
日期:2019-06-16 15:47:3515-16赛季CBA联赛之广夏
日期:2016-08-13 21:24:352015亚冠之武里南联
日期:2015-07-07 17:37:372015亚冠之萨济拖拉机
日期:2015-07-06 17:07:482015亚冠之全北现代
日期:2015-06-04 13:54:272015亚冠之城南
日期:2015-05-21 15:43:212015年亚洲杯之伊朗
日期:2015-04-25 18:20:362015年亚洲杯之伊朗
日期:2015-04-20 16:06:052015年亚洲杯之科威特
日期:2015-03-07 12:51:26丑牛
日期:2014-12-30 10:26:38申猴
日期:2014-09-28 22:40:18金牛座
日期:2014-09-13 21:12:22
9 [报告]
发表于 2014-05-23 15:41 |只看该作者
回复 8# 芭比小柒


    多谢你的回复 ,openbsd是ksh.. 软连接是错误的。

主要是平时大家喜欢在redhat平台下工作,习惯了 sh XXXX.sh方式。。。 如果是ksh 语法不一样,会报错。

因此就做软连接了。

或者作alias 自己HOME 环境设置,也许可以解决这个问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP