Shell
Shell初识:
Shell用C语言编写的程序,Shell即是一种命令语言,又是一种程序设计语言
建立在内核的基础上,面向用户的一种表现形式。
Shell环境:一个编写代码的文本编辑器和一个能执行脚本解释器
- Bourne Shell(/usr/bin/sh或/bin/sh)
- Bourne Again Shell(/bin/bash)
- C Shell(/usr/bin/csh)
- K Shell(/usr/bin/ksh)
- Shell for Root(/sbin/sh)
运行Shell脚本的方法:
方法一:作为可执行程序
将代码保存为文件.sh并cd到相关目录
[root@localhost ~]# touch test.sh
[root@localhost ~]# vim test.sh
[root@localhost ~]# chmod +x ./test.sh
[root@localhost ~]# ./test.sh
Hello World !
注意:一定要写成./test.sh,而不是test.sh,运行其他二进制的程序也一样。直接写test.sh,linux系统会去PATH里寻找有没有叫test.sh的,而只有/bin,/sbin,/usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成test.sh是会找不到命令的,要用./test.sh告诉系统说,就在当前目录找。
方法二:作为解释器参数
[root@localhost ~]# /bin/sh test.sh
bsah特性
1.命令和文件自动补齐 yum -y install bash-completion
2.命令历史记忆功能 history
history n 显示最近n个命令
history -d n 删除第n个命令
!n 执行历史命令第n条语句
!!执行历史命令最后一条语句
!$ 引用上一条命令的最后一个参数 esc+. alt+.
history -w 将历史命令写入命令历史的文件中
cat .bash_history 查看命令历史的内容
history -c 删除所有的历史命令
3.别名功能
alias 查看当前系统别名
unalias 取消别名定义
bash初始化
1.bash环境变量文件的加载
2.
/etc/profile /etc/bashrc ~/.profile ~/.bash_login ~/.bash_profile
~/.bashrc ~/.bash_logout
bash环境变量的加载
3.快捷键
ctrl+A:光标移动到开头
ctrl+C终止命令
ctrl+U删除光标之前的命令
ctrl+K删除光标之后的命令
ctrl+Z暂停,并放入后台
4.前后台作业控制
command & 直接让作业进入后台运行
ctrl+z 将当前作业切换到后台
jobs 查看后台作业状态
fg %n 后台作业切换到前台
bg %n 让指定的作业n在后台运行
kill %n 杀死指定的作业
5.输入输出重定向
(1.shell输出重定向
标准输出重定向 > 覆盖 >>追加
Shell变量
定义变量,变量名不加美元符号
命名规则:
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头
中间不能有空格,可以使用下划线_
不能使用标点符号
不能使用bash里的关键字
直接赋值
your_name="runoob.com"
语句赋值
for file in `ls /etc` 或 for file in $(ls /etc)