‘壹’ 请问linux系统下:bash和ksh如何切换
如果你想使用ksh作为你的默认shell 用chsh命令
格式 chsh [ -s shell ] [ username ]
描述
chsh 用来更换你登入时所用的shell 。在命令列没指定shell。 chsh 会提示一个老帆给你。
加入你侍裂雹的名字叫user 就这样
chsh -s ksh user 就可以改变你默认的登陆shell了
其实bash比ksh强大很多了 否则也不会所源厅有的linux发行版都用bash做默认shell了
学习的话 想用得时候直接运行ksh 就可以 退出的时候运行exit
也可以参考《Linux就该这么学》中的章节内容尝试解决。
‘贰’ 在linux下 什么是bash.什么又是shell
bash 是一个为GNU项目编写的Unix shell,也就是linux用的shell。
Shell俗称壳(用来区别于内核),是指“提供使用者使用界面”的软件,就是一个命令行解释器。
BASH是SHELL的一种,是大多数LINUX发行版默认的SHELL,除BASH SHELL外还有C SHELL等其它类型的SHELL。
linux主要特性:
1,基本思想:
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
2,完全免费:
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
3,完全兼容POSIX1.0标准:
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
4,多用户、多任务:
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
5,良好的界面:
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
‘叁’ Linux-SHELL中sh和bash的区别
sh通常是一个软链接,链接到系橡耐统默认shell,如果bash是系帆运统默认的话那sh就是bash,debian的是dash,梁轿春不是bash
‘肆’ 我想问linux kash和bash的区别,为什么我的kash语句在red hat上面运行不了呢,需要定义什么吗
http://..com/link?url=_hHUn3qDkuoepP2QWVadtCbZK
‘伍’ linux 下怎么切换bash和shell
Linux下bash也是shell的一种,如果需要切换shell(一般是bash shell),先查看系统可用的shell种类:
[oracle@zeng~]$chsh-l
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
修改当前的shell
[oracle@zeng~]$chsh
Changingshellfororacle.
Password:
Newshell[/bin/bash]:/bin/ksh
Shellchanged.
‘陆’ linux shell有哪些 类型
2.4脚本语言的种类
2.4.1 Shell脚本语言的种类
Shell脚本语言是弱类型语言(无需定义变量的类型就可使用),在Unix/Linux中主要有两大类Shell,一类是Bourne shell,另一类是C shell。
1. Bourne shell
Bourne shell又包括Bourne shell (sh)、Korn shell (ksh)、Bourne Again Shell(bash)三种类型。
Bourne shell (sh)由AT&T的Steve Bourne开发,是标准的UNIX Shell,很多UNIX系统都配有sh。
Korn shell (ksh)由David Korn开发,是Bourne shell(sh)的超集合,并且添加了csh引入的新功能,是目前很多UNIX系统标准配置的Shell,在这些系统上的/bin/sh往往是指向/bin/ksh的符号链接。
Bourne Again Shell即bash由GNU项目组开发,主要目标是与POSIX标准保持一致,同时兼顾对sh的兼容,bash从csh和ksh借鉴了很多功能,是各种Linux发行版默认配置的Shell,在Linux系统上的/bin/sh往往是指向/bin/bash的符号链接。虽然如此,bash和sh还是有很多的不同,一方面,bash扩展了一些命令和参数,另一方面,bash并不完全和sh兼容,它们有些行为并不一致,但大多数企业运维的情况下区别不大,特殊场景可以使用bash替代sh。
2. C shell
C shell又包括csh、tcsh两种类型。
csh由Berkeley大学开发,随BSD UNIX发布,它的流程控制语句很像C语言,支持很多Bourne Shell所不支持的功能,例如:作业控制、别名、系统算术、命令历史、命令行编辑等。
tcsh是csh的增强版,加入了命令补全等功能,在FreeBSD、Mac OS X等系统上替代了csh。
以上介绍的这些Shell中,较为通用的是标准的Bourne shell (sh)和C shell (csh)。其中Bourne shell (sh)已经被Bourne Again shell (bash) 取代。
可通过以下命令查看CentOS7系统的Shell支持情况。
[root@oldboy ~]# cat /etc/shells
/bin/sh #<==这是Linux里常用的Shell,指向/bin/bash。
/bin/bash #<==这是Linux里常用的Shell,也是默认使用的Shell。
/usr/bin/sh
/usr/bin/bash
Linux系统中的主流Shell是bash,bash是由Bourne Shell(sh)发展而来的,但bash还包含了csh和ksh的特色,但大多数脚本都可以不加修改地在sh上运行,如果你使用sh后发现结果和预期有差异,那么可以尝试使用bash替代sh。
内容来源:《跟老男孩学linux运维:Shell高级编程实战》第02章_Shell脚本初步入门
‘柒’ linux中查看现在使用的shell是ksh还是bash以及怎样修改
现在一般都是bash
你可以使用
# cat /etc/passwd | grep "^(root)"
root是用户名,慧绝,表示你登录的那个用户念渗名,,前高姿 如果你的用户是其它这里要替换
然后看显示在行尾的是/bin/bash就是bash 如果是其它的 就是其它的shell
‘捌’ Linux bash/kash的区别
内置清知谨命答基令不同。Ksh 有的 Bash 都有,但Bash 有的Ksh 不一定有。所以要是编写的以Bash 为环境,那么在Ksh下可能出现不兼容的现象,导致脚本无法运行或运行猛胡出错。
‘玖’ 请问linux系统下:bash和ksh如何切换
在bash中输入ksh回车,就进入了ksh,悔首带相当于子shell,退出可以使用ctrl+d,返回bash,在ksh下输入bash就可以切换到芹颤bash了,当然退出也是ctrl+d。
当然bash一般是安装过的,但是ksh就不一定安碧芦装了,如果提示command not found的话,那就是没有安装了。
‘拾’ Linux shell语言——dash和bash
自己写的一个while循环结构总是报错,纠结了一下午,各种查资料、改命令行,最后发现是ubuntu系统解释器的原因,脚本没有问题,换一下解释器就OK了。郁卒的要死……
什么是bash ?
Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等。
GNU/Linux 操作系统中的 /bin/sh 本是 bash (Bourne-Again Shell) 的符号链接,但鉴于 bash 过于复杂,有人把 bash 从 NetBSD 移植到 Linux 并更名为 dash (Debian Almquist Shell),并建议将 /bin/sh 指向它,以获得更快的脚本执行速度。Dash Shell 比 Bash Shell 小的多,符合POSIX标准。
Debian和Ubuntu中,/bin/sh默认已经指向dash,这是一个不同于bash的shell,它主要是为了执行脚本而出现,而不是交互,它速度更快,但功能相比bash要少很多,语法严格遵守POSIX标准。
就是这个倒霉的dash解释器使得我按照bash语法写的shell 脚本不能运行。
要知道自己的/bin/sh指向何种解释器,可以用 ls /bin/sh -al 命令查看:
$ ls /bin/sh -al
lrwxrwxrwx 1 root root 4 11月 16 15:33 /bin/sh -> bash
以上结果就表示当前系统用的是dash解释器。
切换到bash的方式其实挺简单的,关键是一直没找出这个原因……
修改默认的sh,可以采用命令 sudo dpkg-reconfigure dash
会出现一个图片状的配置菜单,选no就可以了
再次检查一下, ls /bin/sh -al 发现软链接指向/bin/bash
lrwxrwxrwx 1 root root 4 11月 16 15:33 /bin/sh -> bash
参考资料: Ubuntu 的 bash和dash的区别_Linux教程_Linux公社-Linux系统门户网站
感谢度娘!!
注:dash 和 bash 语法上的主要的区别有: