8.1 Shell 介绍

第八章 Linux Shell基础_第1张图片
linux的shell简单说就是一个命令行和用户交互的一个进程。 你打命令它会出结果。 类似windows里面的cmd窗口。


8.2 Shell 命令历史
第八章 Linux Shell基础_第2张图片

所有敲过的命令都存在 ,这个文件最大可以存1000条
可以查看敲过的命令
查看环境变量最大可以存多少条

第八章 Linux Shell基础_第3张图片
清内存命令历史,不能清空命令存储的文件。
退出终端时才会将刚刚敲过的命令存储。
修改 HISTSIZE的值,要使新修改的值生效,需要 才能生效。
或者退出命令行再进入时生效。
第八章 Linux Shell基础_第4张图片
设置查看历史命令运行的时间,也是临时在内存中的,若需使生效也需要编辑 修改 配置文件,并source一下,再重新打开一下xshell。

第八章 Linux Shell基础_第5张图片

第八章 Linux Shell基础_第6张图片

设置隐藏权限只能追加不能删除,运行的所有命令都会保存下来。
命令行不正常退出,保存的命令不会不全。
执行上一条命令
n为数字,第几条命令
再命令历史中倒序找第一个echo开头的命令并执行。

第八章 Linux Shell基础_第7张图片


8.3 Tab命令补全和别名

第八章 Linux Shell基础_第8张图片

安装参数补全包,需要重启系统才会生效。
起别名 ,存在内存中,重启后失效

第八章 Linux Shell基础_第9张图片
别名存放在 ~/.bashrc和 /etc/profile.d/下

第八章 Linux Shell基础_第10张图片

进入别名存放区

第八章 Linux Shell基础_第11张图片


8.4 通配符

第八章 Linux Shell基础_第12张图片

通配所有字符
?表示一个任意的字符
列出0-5中的字符
2或3的通配
0-9,a-z的通配
1,2,3或的通配

8.5 输入输出的重定向
输出重定向:
2.txt> 把前者输出到后者中,相当于重写
>2.txt > 把前者追加到后者后面去,相当于追加
err > 将错误信息输出到aaa.txt中
>err > 将错误信息追加到aaa.txt后面相当于追加
a.txt>> aaa.txt不存在,1.txt,2.txt存在,会将正确和错误信息输出到a.txt
1.txt 2>a.txt>>将正确信息输出到1.txt,错误信息输出到a.txt
输入重定向:
将1.txt信息输入到wc指令中。左侧必须为命令

8.6 管道符和作业控制
第八章 Linux Shell基础_第13张图片

管道符:将前者的内容输出后交给后面。
统计ls列出了多少个文件
统计所有文件数
一个持续更新的程序
ctrl +z 暂停当前任务将它调到后台
fg 暂停当前的任务 ,将任务放到前台
bg 将当前任务调到后台去
jobs 当前的所有的任务

第八章 Linux Shell基础_第14张图片

第八章 Linux Shell基础_第15张图片

第八章 Linux Shell基础_第16张图片

sleep 200 休眠200s

第八章 Linux Shell基础_第17张图片

sleep 4000 & 创建休眠任务并丢到后台去


8.7 shell变量 (上)
8.8 shell变量 (下)

第八章 Linux Shell基础_第18张图片
env 命令可以查看系统的变量
set 很多变量,并包含用户自定义的变量;

第八章 Linux Shell基础_第19张图片

单引号' '在拓义时用,有特殊符号时用单引号' '第八章 Linux Shell基础_第20张图片

多个变量相互叠加起来输出时用多个双引号" "连起来;
为什么a="a$bc"会输出a?,实际只识别了a,后面的都未识别

第八章 Linux Shell基础_第21张图片

w 查看所有登陆的用户信息
echo $SSH_TTY 查看当前所属的终端TTY;

第八章 Linux Shell基础_第22张图片

实际上面定义的变量只在当前终端下当前bash生效。

第八章 Linux Shell基础_第23张图片

pstree 查看当前的shell路径;
通过export定义的全局变量向下有效,且必须是同一sshd下。
exit 退到上一级的shell路径;
bash 创建一层shell
sshd 登陆一个终端创建一个sshd;
第八章 Linux Shell基础_第24张图片

unset a 取消定义的名字为a的变量


8.9环境变量配置文件

第八章 Linux Shell基础_第25张图片
/etc/ 下是系统的环境变量
~/ 下是 用户自己家目录下的环境变量
PS1 定义在 /etc/bashrc中 < vim /etc/bashrc>
PPT中PS1指令,带颜色显示

第八章 Linux Shell基础
8.10 shell 特殊字符_cut命令
8.11 Sort_wc_uniq 命令
8.12 tee_tr_spit 命

第八章 Linux Shell基础_第26张图片

< cat /etc/passwd |head -2 |cut -d ":" -f 1-5 > 取前两行的以:为分割的1-5个段
< cat /etc/passwd |head -2 |cut -c 4 > 取第4个字符

第八章 Linux Shell基础_第27张图片

第八章 Linux Shell基础_第28张图片
排序显示,默认按ascii排序第八章 Linux Shell基础_第29张图片

按数字大小排序,字符和符号都会被当为0
统计行数
统计字符数,文件默认其实每一行都有一个$符号,这个不要漏掉。
统计词,以特殊字符区分比如空格,逗号,都算。
去重,将相邻的相同符号去掉。所以先排序在去重。

sort uniq head cat 命令只会对文件进行一些操作并输出,并不会更改文件内内容;

《 tee 》 相当于 重定向指令'>',但会在屏幕上输出
< >a.txt > 清空文件a.txt的内容
将文件2.txt的内容去重排序。
a.txt> 将2.txt的内容重定向输出,但不会在屏幕上打印出来
将2.txt的内容重定向输出,并在屏幕上打印出来
将2.txt的内容追加输出,并在屏幕上打印出来追加的内容

《 tr 》 替换字符
< echo "aminglinux" |tr '[al]' '[AL]' > 将其中的小写a和l变成大写A和L [ ]代表任选
< echo "aminglinux" |tr 'a' 'A' > 将其中的小写a变成大写A
< echo "aminglinux" |tr '[a-z]' '[A-Z]' > 所有字母改成大写
所有字母改成 1

第八章 Linux Shell基础_第30张图片

切割

> b.txt \;> 将/etc/下所有conf文件列出来并追加到b.txt

第八章 Linux Shell基础_第31张图片

默认是字节

第八章 Linux Shell基础_第32张图片

切割成1000行

第八章 Linux Shell基础_第33张图片


8.13 shell 特殊字符 (下)

第八章 Linux Shell基础_第34张图片
; 多条命令写一行

第八章 Linux Shell基础_第35张图片

正确重定向

追加重定向
2> 错误重定向
2>>错误追加重定向
&> 错误和正确重定向
|| 或者 前面命令执行成功就不再执行后面命令
&& 和 前面执行成功才执行后面的命令
[ -d aminglingx] || mkdir aminglinux 若目录存在将不再创建目录

第八章 Linux Shell基础_第36张图片