shell学习总结(1)
- echo $SHELL :显示默认shell
- echo $BASH_VERSION :显示Bash Shell版本号
- apt-get update :更新套件索引
- apt-get install Bash :更新bash
- 登录主机方法:
ssh –l 账号 主机名或IP
例:ssh –l john 192.168.1.2
ssh 账号@主机名或IP
例:ssh john@192.168.1.2
ssh 主机名或IP
ssh 192.168.1.2
- 注销主机
执行exit或按【ctrl+D】组合键
- Unix-like的操作系统,文件分类和其代码:
代码 |
文件类型 |
- |
一般文件 |
d(directory) |
目录 |
l(link) |
符号链接文件 |
b(block) |
磁盘设备文件 |
c(character) |
字符设备文件 |
s(socket) |
Socket文件 |
p(pipe) |
连接文件 |
6.绝对路径:目录第一个字符是/的
相对路径:目录第一个字符不是/的
7.文件权限设置
chmod a+x test.sh 给3种身份加上可执行权限
u+x g+x o+x 分别给文件拥有者、组身份、其他人加上可执行权限,
u、g、o分别代表用户、组、其他人
8. 通配符:
*:代表任意的字符串,可以是空字符串
?:代表一个字符,但不可以为空
9.转义字符
去掉特殊字符的作用:a. 用一对单引号含括特殊字符或整个字符串
b. 使用转义字符
例:echo 9 ‘*’ 9 = 81 echo ‘9 * 9 = 81’ 或 echo 9 \* 9 = 81
字符串中出现单引号,使用转义字符并去掉最外围一对单引号,或改用双引号,或使用接续的方式
例echo jack \’s book 或 echo “jack’s book” 或 echo ’jack’ \’ ’s book’
10.续行字符
\后连接的是换行字符,即上下两行视为一行
echo “row 1 \
row 1 too”
显示结果为:row 1 row 1 too
11.字符集合
字符集合就是[]中所列的字符范围中的某一个字符,长度为1. [!abc] 表示非abc三者之一
12.括号扩展
括号扩展的符号是{},它的用途是组合字符串,如{a,b,c}c代表:ac、bc、cc
13.系统默认开启的文件:
标准输入(stdin),文件代码是0
标准输出(stdout),文件代码是1
标准错误(stderr),文件代码是2
14.标准输入/输出转向
转向输出:> 例:echo ‘hello world!’ > hi.txt , hi.txt存在时其内容会清空
转向附加:>> 例:echo ‘hello world too!’ >> hi.txt hi.txt存在时不清空,转向输出的文字会附加在文件后面
转向输入:wc –l < hi.txt :统计文件内容行数
转向输入和转向输出合用:sort < unsort.txt > sort.txt :这样会将unsort.txt文件内容排序输入到sort.txt中
15.管道
用法:
基本型:命令1 | 命令2
例:cat unsort.txt | sort :将unsort.txt显示出来,经过管道,交由sort进行排序
也可以将其结果存储起来,如:cat unsort.txt | sort > sort.txt
多个管道组合:命令1 | 命令2 | … | 命令n
16.前、后台工作
前台工作:执行完一条指令之后才能取得键盘控制权去执行下一条指令的工作方式
后台工作:将工作丢到后台去处理,未完成之前管理者仍拥有键盘控制权去执行下一条指令的工作方式
例:. build/envsetup.sh & :&表示把build/envsetup.sh丢到后台工作
此时系统会显示该进程编号,如:[1] 11973,
build/envsetup执行完成后系统显示:[1]+ Done . build/envsetup.sh
17.Shell程序结构:变量定义、内置命令、Shell的语法结构、函数及其他命令行的程序所组成