一、Bash Shell常用命令
1. type
命令格式:type 参数命令
功能:判断一个命令是外部命令还是内部命令
参数分析如下:
参数 | 作用 |
---|---|
无 | 显示出命令是外部命令还是内部命令 |
-t | File:外部命令;Alias:表示该命令别名所设置的名称;Builtin:表示该命令为Bash内置的命令功能 |
-p | 显示完整文件名(外部命令)或显示内置命令 |
-a | 在PATH变量定义的路径中,列出所有含name的命令 |
例子如下:
#type ls
ls is aliased to 'ls --color=tty'
#type -t ls
Alias
#type -a ls
ls -is aliased to 'ls --color=tty'
ls is /bin/ls
通过type命令,我们知道每个命令是否为Bash的内置命令。使用type搜索后面名称时,必须保证后面接的名称是可执行文件,否则不会显示。
2. echo
命令格式:echo arg
功能:在屏幕上显示出由arg指定的字符串
例子如下:
#vi 01.sh
#!/bin/bash
echo "hello world!"
#./01.sh
hello world!
或直接在终端输入以下命令查看PATH环境变量
#echo $PATH
3. export
命令格式:1、export variable
功能:Shell可以用export把他的变量向下带入到子Shell,使子进程继承父进程中的环境变量,但不能向上带入父进程·。
命令格式:2、export
功能:显示出当前所有环境变量和内容
4. read
命令格式:Read variable
功能:从标准输入设备读入一行,分解成若干行,赋值给Shell程序定义的变量。
例子如下:
#vi readtest.sh
#!/bin/bash
echo -e "Please ecter:%c"
read x
echo "you enter:$x"
#./readtest.sh
Please ecter:hello
you enter:hello
5. env
命令格式:env
功能:显示环境变量及其内容
6. set
命令格式:env
功能:显示环境变量及其内容
7. unset
命令格式:unset
功能:从环境中删除变量,但不能删除shell本身定义的只读变量。
#!/bin/bash
test="Hello"
echo $test
unset test
echo $test
第一次输出字符串“Hello”,但第二次只输出一个换行符。
8. grep
命令格式:grep 参数 string 目标文件
功能:从一堆文件中查找一个特定的字符串,并将字符串所在行显示到终端或平台
- 参数为-c :计算找到 ‘字符串’ 的次数
- 参数为-i :忽略大小写的不同,所以大小写视为相同
- 参数为-n :顺便输出行号
- 参数为-v :反向选择,即显示出没有 ‘字符串’ 内容的行
- 参数为-a :将 binary 文件以 text 文件的方式搜寻数据
#vi testfile
001,one,red
002,two,blue
003,three,green
#vi test.sh
#!/bin/bash
grep -v "001" testfile
#./test.sh
002,two,blue
003,three,green
二、简单Shell应用
1. 基本语法
程序必须以 #!/bin/bash 作为第一行,符号"#!"是用来告诉系统它后面的参数是用来执行该文件的程序。编译好脚本之后,如果要执行,必须赋予文件可执行的权限,使用以下命令:
#chmod 777 [文件]
在进行Shell编程时,以“#”开头的句子表示改行被注释了。
2. 创建过程
(1)创建文件:(创建文件名为test的脚本文件)
#vi test.sh
#!bin/bash
#This is a example
echo "Hello world!"
(2)设置可执行权限:
#chmod 777 test.sh
(3)执行程序
#./test.sh
Hello world!
***END!***