当前位置: 首页 > news >正文

Solaris 默认Shell 修改

 

Solaris 有很多方面都用这和以前不大一样,下面讲Solaris中Shell的一些问题解决方法。

Solaris的默认Shell是sh,即命令行提示符为(root用户):#

而在用Linux命令行的提示符中既有用户名,还有主机名称以及当前路径的名称。这样可以给人一目了然的感觉。不过Linux下一般默认Shell是bash,而不是sh。如果只想在当前的使用中切换Shell的话,方法很简单,可以在命令行中输入:

$ bash

bash-3.00$ csh

david% sh

$


如果要永久性的改变默认的shell,则需要修改/etc/passwd文件。打开passwd,第一行记录的是root用户的相关信息,该行内容为:
root:x:0:0:Super-User:/:/sbin/sh

其中,最后一个冒号后面即为root用户的默认shell,我们将其修改为bash的路径:
root:x:0:0:Super-User:/:/usr/bin/bash

 

 

当然,我们也可以使用stty 命来修改, 具体参考blog:

stty 命令

http://blog.csdn.net/tianlesoftware/archive/2010/03/15/5381984.aspx

 

Shell 和 Shell Script 的说明:

DOS 的 COMMAND.COM 就是一种 shell,负责解译你所下的指令并执行它。同样
的,UNIX 上也有这,它是在你成功 login 以後由系统自动启动的。
UNIX 上有不少种 shell,sh, csh, ksh, tcsh, bash 等,一般都是用csh,login shell 可用 ypchsh 命令改变,但你必须先知道你要换的新壳子在那个目录下。tcsh 有类似 DOSKEY 的功能。

DOS 中有所谓的批次档,用以方便处理一些例行工作。UNIX 也有批次处理,它就叫做 Shell Script,而且比 DOS 的批次档强很多,写法几乎是一个高阶语言。Shell Script 是个文字档,但其地位和其它的命令或可执行档是完全相同的,只要用 chmod 指令将 Shell Script 存取权设为可执行即可。$home 目录下的 .login 档就是一个典型的 Shell Script,类似 DOS 的autoexec.bat。

保存文件passwd,退出。

这样,就可以实现用Tab键补全命令行的输入和上下箭头实现输入命令的历史回放,而sh却没有这样的功能。但是,仅仅这一点修改,并不能实现命令行提示符中出现象Linux提示符中既有用户名,又有主机名和当前路径名。

需要另外编辑文件。即在$HOME下新建文件.profile,如果文件存在的话就在里面添加内容。由于是root用户,所以$HOME的路径为根目录/。在根目录下新建文件.profile,并在其中添加如下内容:

PS1='[/u@/h:$PWD]#'
export PS1

保存退出该文件,并重启系统。进入系统后,打开一个终端,则命令行提示符为:

[root@solaris:/]#

执行命令:
[root@solaris:/]#echo $SHELL //查看系统默认的shell
/usr/bin/bash

执行命令:
[root@solaris:/]#cd home

则命令行变为:
[root@solaris:/home]#

其中,root是指用户名,solaris是主机名,/home为当前路径。

当然,如果习惯使用csh,可以先将shell切换至csh。然后可以输入命令:
#set filec

这样,可以在csh下实现命令行补全。不过,补全输入使用的不是Tab键,而是ESC键

 

我们在编写shell 脚本的时候, 必须在第一行加上“#!/bin/ksh”。这个就是指出要用哪个程序来执行脚本中的行。


注: 整理自网络

转载于:https://www.cnblogs.com/hibernate315/archive/2010/03/18/2399306.html

相关文章:

  • ArcSDE系统表的说明(转载)
  • 好文摘抄:极简生活:一来,一去
  • [翻译] DSL和模型驱动开发的最佳实践(1/4)
  • 我的第一款实用工具-眼保程序(EyesBaby)
  • DirextX7。0 SDK 在VC 6.0 环境中使用的注意事项
  • 近期Windows Mobile问题汇总
  • Xbox Live的落地大陆将极大提升WindowsPhone7的竞争力
  • winform Focus()函数不起作用 解决办法
  • Asp.net MVC 和 IIS5.1 IIS6.0
  • C# winform 登陆成功打开主form,同时关闭登陆form
  • Bressanon
  • 注册表操作类
  • 像战士一样生活
  • 《使用Mason在HTML页面中嵌入Perl》(节选)
  • mysql: 复制mysql数据库
  • docker容器内的网络抓包
  • input的行数自动增减
  • laravel with 查询列表限制条数
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 从tcpdump抓包看TCP/IP协议
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 记录:CentOS7.2配置LNMP环境记录
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 前端性能优化——回流与重绘
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​低代码平台的核心价值与优势
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #Linux(帮助手册)
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (4.10~4.16)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (数据结构)顺序表的定义
  • (四)图像的%2线性拉伸
  • (转)Mysql的优化设置
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [AR]Vumark(下一代条形码)
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [CCIE历程]CCIE # 20604
  • [CISCN2019 华东北赛区]Web2
  • [COI2007] Sabor
  • [CSS3备忘] transform animation 等
  • [elastic 8.x]java客户端连接elasticsearch与操作索引与文档
  • [GXYCTF2019]BabyUpload1 -- 题目分析与详解
  • [Gym-102091E] How Many Groups
  • [iOS]-NSTimer与循环引用的理解