Linux中的shell
2016-04-29 22:07
531 查看
概括
Linux中的shell就是相当于操作系统提供给用户的一个命令接口,这样达到控制计算机的目的。因为用户可能直接操作处于核心态下的Kernel,但是用户可以通过shell来管理我们的计算机。Linux中的shell有很多种,在centOS中我们可以通过
cat /etc/shells
来看我们的Linux支持多少种shell,一般都会有bash shell.
Bash shell的功能:
命令编辑能力
命令与档案补全功能
命令别名设定功能(alias)
工作控制
程序化脚本(shell scripts)
通配符
Login/Non-Login Shell
Login Shell指的是需要完整的登录过程所获取的shell。Non-Login Shell就是不需要完整的登录过程。例如在X windows下使用shell或者登录之后在输入bash来进入一个bash shell子程序。
区别:
login shell会读取/etc/profile与 ~/.bash_profile来引用新的环境变量。
non-login shell只会读取~./bashrc来应用新的环境变量。
如果我想要建立一个仅仅使用mail功能的账号,而该账号不可以登录Linux主机,这个时候就需要non-login shell
变量
1)变量的设定规则
1.变量与变量内容用一个等号来连接var=varname
2.等号两边不能直接接空格
var = varname //这个写法就是错误的
3.变量名称只能是英文与数字,但是开头字符不可以是数字
4.当变量用”“时,”“内的特殊字符会保留原有特性
var="lang is $LANG" //这样如果LANG表示en_US,那么var就是lang is en_US
5.在变量用”时,”内的特殊字符就失去的原有特性
var='lang is $LANG" //这样var就是lang is $LANG
6.可以使用转义字符‘\’来将特殊字符变成一般字符
var=hjy\'s //var就是hjy's
7.在一个指令中如果用到了其他指令的信息,可以用“来把其他指令包括进去,表示我们要先获取其他指令的结果
8.若要把一个变量的内容扩充时可以使用变量名称=${变量名称}累加类容来扩充
var=${var}ok //如果var以前是hjy,那么现在就是hjyok
9.若要把该变量变成一个全局的环境变量可以使用export 变量名称,这样就相当于该变量是一个环境变量了。
10.取消变量可以使用unset 变量名称。
2)环境变量
环境变量有很多用处,比如家目录的变换,执行文件路径的搜寻。1.env命令
可以通过env命令来查看环境变量的值
2.set命令
可以通过set命令查看环境变量以及我们自己定义的变量
其中有一个PS1
PS1(提示字符的设定)
\d:可以显示日期的格式
\H:显示完整主机名
\h:仅取主机名在第一个小数点之前的名字
\t:显示时间(24小时制) HH:MM:SS
\T:显示时间(12小时制) HH:MM:SS
\A:显示时间(24小时制) HH:MM
\@:显示时间(12小时制) am/pm
\u:目前使用者账号名称(例如root)
\v:Bash版本信息
\w:完整的工作目录名称
\W:利用basename函数获得的工作目录名称
\#:下达的第几个指令
\:提示字符,如果用户是root,提示字符符#,否则就是
3.export命令
将自定义的变量变为环境变量
4.read命令
read [-pt] 变量名
-p:后面可以接提示字符
-t:后面可以接等待秒数
例如:
read atest
再输入一句话并按回车之后,atest的内容就是你输入的内容
read -p "Please enter your name:" -t 30 name
会出现提示字符Please enter your name:
然后你在30秒内要有输入,否则就会忽略该指令
5.declare / typeset命令
宣告变量的类型
declare [-aixr] 变量名
-a:将变量定义为数组类型
-i:将变量定义为整数数字类型
-x:将变量定义为一个环境变量
-r:将变量定义为一个readonly类型
3)变量内容的删除与取代
实际上利用的是通配符原理${变量#通配符}:将变量从头开始删除符合通配符的最短数据
${变量##通配符}:将变量从头开始删除符合通配符的最长数据
${变量%通配符}:将变量从尾开始删除符合通配符的最短数据
${变量%%通配符}: 将变量从尾开始删除符合通配符的最长数据
${变量/旧字符/新字符}:将第一个旧字符替换为新字符
${变量//旧字符/新字符}:将所有旧字符都替换为新字符
变量的取代:
4)变量的别名
1.alias命令可以通过alias命令来查看或者创建修改一个别名
unalias可以取消一个别名
Bash的配置
login shell与non-login shell的配置步骤是不一样的相关文章推荐
- Linux shell中的I/O重定向相关(转)
- Xshell和Xftp的安装与使用教程
- Xshell使用
- IDC生产环境检测IP是否在用的Shell脚本
- Windows的cmd终端连接android手机运行adb shell脚本命令
- -bash: pod: command not found
- 关于node.js配置 Git Bash中node-v 显示command not found
- Shell数组的增删改查
- Linux系统的负载与CPU、内存、硬盘、用户数监控的shell脚本
- PowerShell Remove all user defined variable in PowerShell
- shell中date做循环变量,以及date简单解析
- linux shell 变量
- mysql shell 查看 所有用户的 授权列表
- shell调用sftp实现自动批量上传or下载
- 【Linux】执行shell脚本出现异常:bad interpreter: No such file or directory如何解决
- 关于PowerShell中的OutputType方法属性
- shell参数扩展
- shell参数扩展
- Linux命令 + Shell
- shell script笔记