Linux基本功十一:shell脚本执行及交互

时间:2022-09-01 11:52:43

1、学习过程中常用命令总结
      pstree树形显示进程;ps top
      alias设置一个别名;
      strace ls;//ls命令要做的事儿是很多的;
      man 查看命令;
      set 可以看见所有的命令[普通变量和全局变量];
      env 全局[环境]变量可以被set命令看到;
      echo $aa 取aa变量的值;echo $HOME; \a
      export PATH PS2
      history 默认保留1000个变量; set |grep HIS
      history -c清楚命令;可以up和down来看命令;ctr +r,可以调出历史里的命令,匹配;
      !!调用上一条命令; !+数字表示第几行的某一个命令;
      pwd 路径
      ps
      top
      pstree
      kill -s 9 firefox
      pgrep firefox
      pgrep httpd[查询阿帕奇服务的进程ID]
      pidof firefox-bin(全名)
      一句话杀掉进程:
      pkill -9 firefox
      killall -9 firefox(全)
      seq 1 100 产生1到100的数;
      sleep 100  单位是秒S
      unset 取消函数 或者变量,避免冲突;
      ed 编辑器sed s/p/n/e
      vi vim可视化显示
      s/root/shrek/g 将root替换为shrek;
      wc -l 看有多少行;-c -w[words]
      man 
      --help
      info [有小例子]  有*号的都可以回车,按U回到上一层;
      cat

2、shell三种执行方式: 
    第一:要求可执行权限,且在新shell执行。a+x,输入脚本的绝对路径和相对路径;
   直接执行路径相当于打开一个新的shell,bash aa也是打开一个新的bash;注意export的作用这是在该shell和子shell里可见;

  vi data  //data文件在root目录下;
chmod +x data //加上执行权限;
./root/data
./backup
  第二:指定一个bash脚本 或 tcsh脚本来执行,是在新的shell里执行。表示以bash或tcsh来执行脚本
  vi data  //data文件在root目录下;
bash ./root/data
bash ./data
  第三:在当前的shell里执行。在脚本的前面加“. ”;
  . ./data
3、与shell脚本的交互,输入或输出
实例如下:
 #!/bin/bash
echo this is my first shell!
echo $1 \$1 读取$1
echo $2 \$2 读取$2
echo $3 \$3 读取$3
echo $# \$#-NumOfArg 变量的个数
echo $? \#?-result 执行的结果
echo $$ \$$-pid-to-kill 该进程的PID
read -p "please input your name:" AAA //读入数据;
printf "\t $AAA is a girl!\n"
pritnf "the first argue is %s" $AAA
printf "\a"
 //这里printf比echo控制的符号更多;