8.1 Shell 介绍
linux的shell简单说就是一个命令行和用户交互的一个进程。 你打命令它会出结果。 类似windows里面的cmd窗口。
所有敲过的命令都存在
退出终端时才会将刚刚敲过的命令存储。
命令行不正常退出,保存的命令不会不全。
执行上一条命令
n为数字,第几条命令
再命令历史中倒序找第一个echo开头的命令并执行。
8.3 Tab命令补全和别名
别名存放在 ~/.bashrc和 /etc/profile.d/下
8.4 通配符
通配所有字符
?表示一个任意的字符
列出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指令中。左侧必须为命令
输入重定向:
管道符:将前者的内容输出后交给后面。
ctrl +z 暂停当前任务将它调到后台
fg 暂停当前的任务 ,将任务放到前台
bg 将当前任务调到后台去
jobs 当前的所有的任务
sleep 200 休眠200s
sleep 4000 & 创建休眠任务并丢到后台去
8.7 shell变量 (上)
8.8 shell变量 (下)
env 命令可以查看系统的变量
set 很多变量,并包含用户自定义的变量;
多个变量相互叠加起来输出时用多个双引号" "连起来;
为什么a="a$bc"会输出a?,实际只识别了a,后面的都未识别
w 查看所有登陆的用户信息
echo $SSH_TTY 查看当前所属的终端TTY;
实际上面定义的变量只在当前终端下当前bash生效。
pstree 查看当前的shell路径;
通过export定义的全局变量向下有效,且必须是同一sshd下。
exit 退到上一级的shell路径;
bash 创建一层shell
sshd 登陆一个终端创建一个sshd;
unset a 取消定义的名字为a的变量
8.9环境变量配置文件
/etc/ 下是系统的环境变量
~/ 下是 用户自己家目录下的环境变量
PS1 定义在 /etc/bashrc中 < vim /etc/bashrc>
PPT中PS1指令,带颜色显示
8.10 shell 特殊字符_cut命令
8.11 Sort_wc_uniq 命令
8.12 tee_tr_spit 命
< cat /etc/passwd |head -2 |cut -d ":" -f 1-5 > 取前两行的以:为分割的1-5个段
< cat /etc/passwd |head -2 |cut -c 4 > 取第4个字符
sort uniq head cat 命令只会对文件进行一些操作并输出,并不会更改文件内内容;
《 tee 》 相当于 重定向指令'>',但会在屏幕上输出
< >a.txt > 清空文件a.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]' > 所有字母改成大写
8.13 shell 特殊字符 (下)
正确重定向
追加重定向
2> 错误重定向
2>>错误追加重定向
&> 错误和正确重定向
|| 或者 前面命令执行成功就不再执行后面命令
&& 和 前面执行成功才执行后面的命令
[ -d aminglingx] || mkdir aminglinux 若目录存在将不再创建目录