SHELL

查看所支持的shell:      chsh -l 

查看当前用户的shell:   echo  $SHELL

切换

  1:临时   直接执行   /bin/sh    exit 返回上一级 Ctrl +d 是注销就结束了

  2:永久    chsh   ——》新的替换的shell

bash的特点

  1:交互式

  2:命令的历史功能  (history)  若想再执行某一行的命令按  (!数字)

  3:命令的补全  tab键   两次tab键是以xx为开头的全部的词命令

  4:通配符 * ? 【1-9】  【!(取反)1-9】

  5:前台后台切换   ps -aux 查看运行的任务(越在前的任务越大越难)

   运行的任务如果比较大可以在后台运行

        bg -1 后台      fg -1 前台 

    Ctrl+c 停止运行的任务   jobs 查看停止运行的任务

   6:特殊字符    “”(弱引用)  ‘’(强引用)  ``(命令取代)

7.输入输出重定向

  0 标准输入

  1 标准输出

  2 标准出错

  “ &> (表示所有的输出)” 等同于 “ = 2>&1”

     可以发邮件:mail root -s 邮件名  0< 邮件文档

8.命令别名

       alias find10=`find / -size +10M`  定义别名

       find10   也就是find / -size +10M:执行find10这自动收索大于10M的文件

       unalias  find10   取消别名定义find10

     clear  是清屏

环境变量

查看本地环境变量:set

      echo $PATH  查看当前环境变量(变量与变量之间用“:”隔开)

更改环境变量         PATH=$PATH:后面加环境变量

1.本地变量  (只真对当前的shell来使用局部生效)

2.环境变量 (对所有的都会生效)

     export(输出) A       把本地变量A变为环境变量

3. 特殊变量    (echo $?  若返回的数是0则正常其他的数是不正常)

   a  位置变量   在脚本中:$0(文件名)   $1(第一个参数) $2(第二个参数)

   b  状态变量

环境文件

系统环境文件    在 /etc/profile 和 /etc/bashrc

个人环境文件 在 ~/.bash_profile         id  -un  显示用户名

                        和~/bashrc

umask权限掩码{0(所有者)2(组)2(用户)}      临时更改umask:umask 0nn

          永久的更改   vim /etc/bashrc 编辑权限设置

最高权限-umask=实际权限

文件最高权限  666

目录最高权限 777

算数运算

     let  A=1+1   或者  A=$[1+1]   或者A=$((1+1)) 

查看结果:echo  $A

以脚本的形式算数运算命令:   bc   (针对整数)

                   进去以后 scale(精度)=n(数字)     针对有小数点的计算

也可以这样直接写命令:echo "scale=2;5/2" |bc 求5/2的值

判断式

test  expression

test 1 -gt(大于) 2

echo $? 判断1是否大于2  (除了0代表对其他的数都是错的)

   或者这样:    [  表达式  ]

         [  1  -gt  2  ]

echo $? 判断1是否大于2

对于数字比较

大于   -gt

大于等于 -ge

小于   -lt

小于等于  -le

等于  -eq 

不等于   !  数字 -eq  数字

字符串比较

大于 > (一对[   \&gt;   ]中间加转义符    两队[  ] 可以不加转义符

小于 <

等于 =    恒等于 == 注意:等号两边有空格

关于对象的

-f  文件

-e 存在

-d  目录

-L 连接

-r  读取

-x  执行

与是-a   或是-o   (两个判断式:与和或)

编写一个脚本:判断用户是否存在,存在显示“ok" 不存在则显示"not ok"

wps_clip_image-27312

编写一个脚本:判断用户是否存在结果用颜色高亮显示

wps_clip_image-3842

 编写一个脚本:用控制语句(if)编写一个脚本:判断用户是否存在结果用颜色高亮显示

wps_clip_image-27316

短路操作符

&&(与)  (两个语句)   ||(或)

grep "^user1\>" /etc/passwd && echo "the account is exist " ||echo "the account is not exist"

在/etc/passwd下收索user1,如果存在显示the account is exist否则显示the account is not exist

grep "^user1\&gt;" /etc/passwd  &&gt;/dev/null && echo "the account is exist " ||echo "the account is not exist"

在/etc/passwd下收索user1,如果存在显示the account is exist否则显示the account is not exist,并将收索结果放置/dev/null中

控制语句

选择

1.单选

if  [  ];then

.....

fi

2.双选

if  [ ];then

  ..

else

..

fi

用脚本编写添加一个用户(但是不能用useradd)

wps_clip_image-28436

3.多选

if  [  ];then

....

elif  [  ];then

...

elif  [  ];then

....

fi

用控制语句编写一个脚本:判断输入XX是一个文件呢?是一个目录呢?还是一个连接符呢?

wps_clip_image-28815

用控制语句编写一个脚本:运行时提示输入帐号,判断该帐号是否存在 ,如果存在显示该用户的shell 和该用户的家目录,以及该用户密码是否设置

wps_clip_image-141

4:case  变量  in

变量值1)

.......;;

变量值2)

......;;

变量值3)

....;;

*)

....;;

esac

编写一个脚本:当输入XX判断它在哪里和类型?

wps_clip_image-29082

循环

  1:for  变量   in  变量值;do

........

done

ping在一段网段中那一台主机存在,那一台不存在

wps_clip_image-29451

编写一个脚本:从1到100的和是多少?

wps_clip_image-31696

编写一个脚本:从1到100之间的偶数和是多少?

wps_clip_image-29455

编写一个脚本:从1到100之间的奇数和是多少?

wps_clip_image-9677

2:while  [条件];do

.........

done

编写一个脚本:从1到100的和是多少? 

wps_clip_image-29794

编写一个脚本:从1到100之间的偶数和是多少?

wps_clip_image-13399

3:while  read  LINE;do

..........

done  &lt;(输入重定向)   文件名

编一个脚本:列出/etc/passwd中有多少行列出来并在前面加上序号

wps_clip_image-30039

编一个脚本:输入一个目录列出其中的东西,并说明它是一个文件或者目录或者连接符

wps_clip_image-330

编一个脚本:调出登录的有哪些普通用户账号并在前面加上序号

wps_clip_image-7341

4:until [条件];do

    ............

     done

编写一个脚本:从1到100的和是多少?

wps_clip_image-30555