set -o vi

再用esc+K键就可以使用上一条指令了

esc+k
esc+j
上下翻

ksh默认是emacs风格的。set -o emacs

在AIX下使用自己已经使用过的命令

在AIX下使用,默认的shell是KSH,和linux下的bash不一样的是,他不能采用我们大家已经熟悉的DOS下的键或者其他我们已经熟悉的快捷键来使用我们上次已经使用过的命令,比如在DOS命令状态下(我把我自己经常用的快捷键列出来,可能还其他的,慢慢补充),大家可以通过F7来取得你已经在当前DOS窗口中输入过的不重复的命令(Windows对你自己在当前窗口顺序输入的非重复命令进行排序,以0,1,2...来编号),F1重复上次同一个位置上的字符,F3重复上次所有的命令,F5和F8向上翻我已经输入过的命令,F9是可以输入你要显示的上次输入的非重复的命令ID(比如,进入某DOS窗口之后,我依次输入了两条命令:dir和cd test,那么本窗口的第0条命令就是dir,类推,当我按下F9的时候,系统提示我“输入命令号码”,这个时候我按照上次输入的顺序号进行输入即可,比如选择0那么这个时候就是dir命令,这个功能和F7的功能是一致的,只是F7可以选择,F9可以直接输入,这两个功能当你输入的命令比较长的时候是比较有用的)。
    要想在AIX下使用上次你已经使用过的命令,可以使用以下的方法:
    1、在ksh下,运行set -o vi,这个时候整个命令状态就是是VI编辑器了,操作的方法和VI编辑器一摸一样,要重复上次的命令,就在当前状态栏下按ESC,然后输入k,就可以看到下一条命令,按下k就可以查询上一条命令,h可以在当前行向前移动一个字符的位置,l可以在当前行向后移动一个字符的为止,当然这个时候相当于处于vi的状态,所有在vi状态下的对单行操作的命令都可以使用。编辑好之后直接按回车即可。
    2、如果不不是在ksh下,那么你可以在命令窗口下运行ksh -o vi,其他的命令和第一种方法一样
    3、在ksh的环境变量中设置EDITOR=vi即可,修改的方法即在.profile中直接加入EDITOR=vi;export EDITOR即可。
    4、删除历史命令,可以在当前用户的主目录下,查询到一个.sh_history的文件,里面记载了你所有在当前用户输入过的命令。可以将这个文件编辑一下,然后将其中的命令删除掉就可以了。当然你可以将自己喜欢的命令或者比较长的命令放在里面,以后你就直接调用就可以了。当然从这个文件可以看出上面几点讲的采用vi的命令来取得上次的命令,其实ksh是取得这个文件中的信息。
    5、以下小技巧:
     a、重复上一条命令可以直接在ksh状态下输入r
     b、你可以在ksh状态下执行r a=b,意思是先将上一条命令中的a字符用b字符替换,然后运行。

////////////////////

原因后来上网查了一下,暂且引用一下《FreeBSD使用大全》中的一段内容:

-----------------------------------------------------------------------------------------------

  • 配置用戶shell

  事實上sh與csh,并不是普通用戶的最佳選擇,因為這兩個shell在易用性方面做的不夠好,例如命令行編 輯功能不強、不能利用熱鍵重復執行命令等。較新的shell,如bash和tcsh都具有這些方便用戶使用的功能,但 必須安裝了這些shell程序之后,才能更改普通用戶的shell設置以使用這些shell程序。更改用戶的shell 可以使用pw、vipw或chsh。

  這兩個shell分別遵照sh和csh的風格,因此喜好csh風格的可以選擇tcsh,而喜歡sh風格的選擇 bash。除了這兩種shell之外,還有ksh、zsh等shell可供選擇。如果對兩種shell沒有偏好,可以 選擇bash,它是一個GNU軟件,比標准sh功能強大的多。

  使用了這兩些增強型shell之后,用戶就可以使用shell提供的命令行編輯功能。按照習慣的不同,可以選 擇vi風格的編輯方式或emacs風格的方式,缺省為emacs方式,這種方式使用方向鍵來回溯執行過的命令,并進行 修改,而vi風格使用字母命令作編輯鍵,例如使用h、j、k、l四個鍵來移動光標,vi風格的好處是不使用基本鍵盤之 外的控制鍵,因而可以適用于任何終端設備,并且進行編輯時手不需離開基本鍵盤,熟練操作之后最為快捷。emacs風格 比起vi風格更適合從個人計算機轉向Unix的使用者的習慣。bash, ksh ,zsh下使用下面的命令在emacs 風格和vi風格切換:

  bash$ set -o emacs

  bash$ set -o vi

  tcsh中使用不同的命令:

  % bind emacs

  % bind vi

  還可以為常用的命令設置別名,簡化用戶輸入,例如:

  bash$ alias ec=”echo This is a alias”

  bash$ ec

  This is a alias

  shell用于方便用戶操作的另一項能力是自動補全命令或文件名的功能,因為FreeBSD下的文件名可能很 長,將它們全部輸入比較麻煩。事實上可以輸入部分名字,然后按Tab鍵(在vi風格下是連續兩次按Esc鍵),shell 將自動補全文件名的剩余部分。如果已經輸入的這部分名字不能確定具體的命令或文件,那么shell只將能確定的部 分補上,然后響鈴通知使用者繼續輸入以明確具體的文件。

  事實上即使在基本的sh或csh下,也可以使用 “*” 等特殊字符,用模式匹配的方式來簡化輸入。

  bash$ cd /usr/loca*

  bash$ pwd

  /usr/local

  Unix中的多數程序都具備模式匹配的處理能力,而shell的模式匹配功能最為常用。shell可以使用這 些特殊模式來配置多個文件,達到簡化操作的目的。如果要熟練掌握Unix,必須掌握模式匹配。

  當試圖在bash下輸入漢字的時候,除了必須設置終端屬性能接受8位字符之外(執行stty pass8命令 ),還需要設置bash的輸入輸出轉換,可以在登錄腳本.profile文件中包括以下設置:

  bind 'set convert-meta off'

  bind 'set meta-flag on'

  bind 'set output-meta on'

set -o vi AIX下shell的更多相关文章

  1. 定制AIX操作系统的shell环境

    操作系统与外部最主要的接口就叫做shell.shell是操作系统最外面的一层.shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果. shel ...

  2. AIX下RAC搭建 Oracle10G(二)主机配置

    AIX下RAC搭建系列 AIX下RAC搭建 Oracle10G(二)主机配置 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AIX2 ...

  3. Linux 下shell显示-bash-4.1$不显示用户名路径的解决方法

    Linux CentOS下shell显示-bash-4.1$不显示用户名路径的解决方法   问题描述:   CentOS下新增一个用户,登录进去之后shell脚本的信息如下:     而不是我们经常看 ...

  4. CentOS下shell显示-bash-4.1#不显示用户名路径的解决方法

    CentOS下shell显示-bash-4.1$不显示用户名路径的解决方法 问题描述: CentOS下新增一个用户,登录进去之后shell脚本的信息如下: 而不是我们经常看到的username@hos ...

  5. CentOS下shell显示-bash-4.1$不显示用户名路径

    Linux CentOS下shell显示-bash-4.1$不显示用户名路径的解决方法. 问题描述: CentOS下新增一个用户,登录进去之后shell脚本的信息如下: -bash-4.1$ \ -b ...

  6. Linux 下Shell的学习

    1.Shell学习 1.什么是Shell    shell是一个命令解析器,在操作系统的最外层,负责和用户对话,将用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果.2.什么是shell脚本 ...

  7. Linux环境下shell和vim中乱码原因及消除办法

    shell和vim中乱码原因及消除办法 作者:Jack47 在Linux下开发,经常遇到乱码问题:shell或者vim中显示不了中文,或者能够显示,但不能输入中文.每次都是上网去搜,或者同事告诉我一些 ...

  8. AIX下tar解包问题

    今天,在AIX下安装tomcat,上传的版本是apache-tomcat-6.0.41.tar.gz,但用tar解压时出现以下问题: # tar xvf apache-tomcat-6.0.41.ta ...

  9. 06 Linux下Shell介绍

    一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...

随机推荐

  1. Cycle Sort (交换次数最少的排序)

    该算法的效率并不高.但是却提供了一个很好的思路.如何让一个序列在最小交换次数下实现有序. Cycle Sort 翻译成中文是 圈排序. 这个圈在于需要交换的数据形成圈. 具体一点: 如: Array ...

  2. 【比赛】HNOI2018 游戏

    考试的时候线段树区间查询的return条件打成了l==r....于是光荣爆20(线段树都不会打了?) 看膜博士的题解 #include<bits/stdc++.h> #define ui ...

  3. 一些noip模拟题一句话题解

    Problem A: 序列 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 12  Solved: 9[Submit][Status][Web Boar ...

  4. 《Linux内核设计与实现》第5章读书笔记

    第五章 系统调用 一.系统调用概述 系统调用在Linux中称为syscall,返回的值是long型变量:如果出错,C库会将错误代码写入errno全局变量(通过调用perror()函数可以把该变量翻译成 ...

  5. 【目标检测】Faster RCNN算法详解

    Ren, Shaoqing, et al. “Faster R-CNN: Towards real-time object detection with region proposal network ...

  6. socket编程学习step2

    引言:主机之间如何相互交互呢?网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口“可以唯一标识主机中的应用进程.这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的 ...

  7. 手脱FSG 2.0 -> bart/xt

    声明: 只为纪录自己的脱壳历程,高手勿喷 1.在入口的第二行ESP定律下硬件断点然后F9运行8次(因为第9次就跑飞了) 0040955C > pushad 0040955D EB jmp //E ...

  8. linux shell学习二

    参考:http://www.cnblogs.com/waitig/p/5531463.html Shell注释 Shell中的注释以“#”号开头,所有以“#”号开头的代码都会被解释器所忽略. 比如下面 ...

  9. svn常见错误

    1.svn提交报错:svn: Aborting commit:XXXXXremains in conflict 解决:说明Svn服务器上的对应内容,在你上次Update后已被别人修改了,而你也做了修改 ...

  10. DES加密解密类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.S ...