1.[tab]补全
命令补齐
  $PATH环境变量中补全的
Echo $PATH
路径中一各一个的找
 文件名补齐
   则是在 已经指定的目录前缀
 
2.History文件当中或内存中 echo $HISTSIZE 当前 命令历史条目(保存在内存中 ,直到关机才保存到 .bash_history
-c:清空命令历史的
-a :把当前缓存区的写到文件中:续写
history –a ~/.bash_history
-w:把当前缓存区的写到文件中:覆盖
-n:从文件到内存
Num:最近执行过的num行命令
 
3 变量就是内存的命名空间
 数据类型:数据在内存中的存储类型
 
!!:命令历史中的最后一条命令
 !ec: 命令历史中的最后一条命令以ec开头的命令
  num:表示执行命令历史中第num条命令
  !?abc:最近包含abc字符串的命令
  -3:执行history中倒数第三条命令
touch a
 Ls a
 touch b
  ^touch^ ll :表示被上一个命令touchll替换掉
 
ls a
cat $: 表示查看a的内容
  !$:用于应用上一个命令最后一个参数
 还可以 用:cat +alt+一点号(.
 
5 不让命令历史保存重复的行:
Export HISTCONTROL=ignorespace:以空格开头的命令不再history中显示
Export HISTCONTROL=ignoredups:把多个连续重复的同一命令只显示一个
Export HISTCONTROL=erasedups:把多个不连续重复的同一命令只显示一个
注意:上诉设置 reboot会失效
Ctrl+r:从 命令历史中反向收索
 
命令展开:
Touch a-`date +%H%M%S`
TIME=$(date  +%H%M%S)
大括号展开:
  echo ${S}s
 
6 Shell发展 sh->csh->ksh(融合了shcsh)
Bash 基与GPL发行的
     1.Sh->GNU
     2.弱类型
Shell提供了编程环境,程序流程:(顺序,选择,跳转,循环),是一种动态语言,(c++面向对象,编译语言,静态语言),是一种脚步:解释(语言bashperlPythonPHPruby)运行 边解释边运行
开发语言:
    编译:cc++,静态语言
     解释:bash per Python PHP ruby,动态语言
7. 变量类型:
本地变量
      VARNAME=VALUE
环境变量 export VEANAME
预定义变量 (位置变量)
$0 $1$2….$9
   $0表示命令,$1….$9是参数
特殊变量
本地变量:变量对当前shell有效,对子shell无效
NAME=Jerry
NUM=34
 
Echo $(NAME)  引用变量 显示Jerry
进子shell bash
环境变量:
export NAME
         Echo $NAME
         显示 Jerry
         Bash
         Echo $(NAME)
         显示 Jerry
赋值是做命令替换:TIME=$(date  +%H%M%S)
         FILE=`ls /etc`
         FILE=/     var/log/messages
         Cat $FILE
 
 
{}与不加{}的区别:
[root@station16 ~]#
[root@station16 ~]# JOB=Network
[root@station16 ~]# echo $JOB
Network
[root@station16 ~]# echo $JOBs
 
[root@station16 ~]#echo ${JOB}s
Networks
 
 
 
 
8.脚本实例
vi dd.sh
 
#/bin/bash #使用的shell环境
检查语法:bash –n firstSh
有问题则报错,没有则不会
查看是否有执行权限 ll first.sh
 chmod u+x first.sh
./first.sh=bash first.sh=sh first.sh执行
Echo $PATH:查看执行文件路径变量
增加用户的脚本
useradd.sh
#! /bin/bash
 
 
echo "add a user...."
 
useradd tom
 
echo "redhat" passwd --stdin tom
 
echo "add user tom success..."
 
查看下/etc 下含passwd的文件并显示当前系统时间
#! /bin/bash
cd /etc
ls *passwd*
echo " currenty time is"  | date +"%H:%M:%S"
~
 
[root@station16 ~]# !b
bash show.sh
passwd  passwd-
10:51:52
 
 
备份/etc/sysconfig /root/下,备份文件名包含备份时的系统时间,备份成功后显示成功。
vim back.sh
#! /bin/bash
echo "backup the /etc/sysconfig dir...."
 
cp -av /etc/sysconfig /root/sysconfig-`date +"%H:%M:%S"`.backup
if [ $? –eq 0 ];then
echo "backuping is successful.... the data is `date +"%H:%M:%S"`"
else
echo “you fool…”
fi
切换当前目录至/etc,显示当前目录
复制/etc/skel/home/Jack
改变/home/jack及其内部文件的组和其他用户的权限为无
显示/home/jack目录自身的权限等信息
新建用户wendy
home/jack的属主修改为wendy
显示wendyid信息
#! /bin/bash
 
cd /etc
 
pwd
mkdir /home/jack
 
cp /etc/skel /home/jack
 
chmod -R go=--- /home/jack
 
ls -ld /home/jack
 
echo "wendy" |  useradd wendy
 
echo "useradd is sucessful ...."
 
chown -R  wendy /home/jack
 
id wendy
~
~
~