关闭

linux脚本基础篇--21条入门学习笔记

标签: shell 脚本 linux 入门 基础
198人阅读 评论(0) 收藏 举报
分类:
Linux Shell Scrip入门笔记
1、$表示取变量值

2、常用系统变量:PS1,PS2,HOME,PATH,PWD,UID,其中~=HOME

3、${ }

4、脚本可以进行参数传递,$0、$1、$2...其中$1、$2。。。分别是第一个、第二个参数

5、PATH--路径,多个路径之间用:连接。将自定义的存放脚本的目录加入PATH后,就可以直接输入脚本名执行脚本。

6、登录脚本:用户登录时会自动执行的脚本。系统在用户登录时会在用户目录下检测登陆脚本,比如sirius用户登录时会在/usr/home/sirius目录下检测一下三个脚本文件:~/.bash_profile ~/.bash_login ~/.profile 可将添加PATH的命令写入此脚本中,这样就不用每次登陆都手动添加PATH.

7、read命令,从键盘读入。若read没有带参数,则读入的内容会放入REPLYA变量中,通过$REPLAY可读取read的值。read可带参数,参数为变量,会将输入的内容按字分别送给个变量。若输入的字数多余参数变量,则多余字全部赋予最后一个变量。

8、命令替换允许将管道行的输出赋值给变量。比如讲date命令的输出分支给a。方法:a=$(date)。当输入echo $a时,就能显示日期和时间。

9、basename命令,用完整的路径名做参数,它将路径名去掉只送回基本的文件名。如:输入basename HOME/file1
则输出file1

10、退出状态$?  当执行一条命令或管道行时,用返回0来表示执行成功,用非0来表示执行失败。返回状态保存在$?中。

11、一些特殊状态变量:
$?--保存shell最后执行的命令的退出状态
$$--保存当前的shell的PID
$#--保存给传送当前script的命令参数的数目。
举例:test 1 2 3
$#为3
$*为“1 2 3”
$@为“1” “2” “3”
以上特殊状态变量只可以都,不可赋值。

12、流程控制语句if
if expression
 then
 else
fi

13、流程控制语句test
test -e f 如果文件f存在,返回真值
test -f f 如果f是普通文件,返回真值
test -d f 如果f是目录
test -r/-w/-x f 如果能读/写/执行文件,返回真值
test -z str 如果str长度为zero
test -n str 如果str长度不为zero
test str1=strt2
tset str1!=str2
test num1 -eq num2  注意字符串和数字的比较方法不同
   -ne
          -lt  Less than
   -gf  Grave than
   -le  less and equal
   -ge
test exp1 -a exp2 两者都成立
test exp1 -o exp2 
test !exp

14、shell支持算数表达式
如:$ num1=2
    $ num1=$[$num1*3+1]
    $ echo num1
      7

15、while condition
    do
    commands
    done

16、sleep N 脚本挂起N秒,用于延时

17、until condition
    do
   commands
    done

19、用法一
for variable in wordlist
do
 commands
done
例:
for i in 1 2 3
do
 echo value of i is $i
done
常用for i in $*
把输入的参数作为for的参数列表,常简写为for variable,由命令自动补充in $*部分

20、case选择
case string in
exp1)
 command_1
 ;;
exp2)
 commmand_2
 ;;
.
.
.
*)
 default_commands
 ;;
esac

21、信号
内核有时会向进程或脚本发送信号,比如kill操作杀死进程,实际上是Kill通过内核通知进程或脚本,使其结束。在脚本中,能够捕获这种信号,当特定的信号发生时,做出相应的反应。
一些常用的信号的对应数值如下:
信号     数值       说明
hangup      1        退出登录时用来结束你的进程的信号
interruppt  2        从键盘产生的中断信号(ctrl-c)
quit     3  从键盘产生的退出信号(ctrl-\)
kill        9  不能忽视的强制结束进程信号
alarm     14  在alarm()系统调用结束时产生的警告信号
terminate   15  kill命令的默认结束信号
当系统收到一个信号后,他可以做出三种反应:
1、忽视  trap "" signal.list
2、接受信号的默认操作 trap signal.list 注:信号9只能是默认
3、执行一段程  trap "commands" signal.list
signal.list 用数字 1 2 3 9 14等来表示
如 trap "rm ./passwd" 2 3 表示收到2 或3信号是执行rm命令
0
0
查看评论

深度学习word2vec笔记之基础篇

深度学习word2vec笔记之基础篇
  • mytestmy
  • mytestmy
  • 2014-05-25 16:00
  • 67591

【WLAN从入门到精通-基础篇】第9期——直接转发和隧道转发

【转自】http://support.huawei.com/huaweiconnect/enterprise/thread-313357.html AC FIT AP架构的网络中存在两种报文,一类是AC管理控制AP的报文,称为管理报文(也叫控制报文),另一类是STA的用户数据报文,称为业务...
  • qliu83
  • qliu83
  • 2017-05-16 14:41
  • 206

WLAN从入门到精通-2

【WLAN从入门到精通-基础篇】第2期——WLAN射频和信道 有这样一个段子“嫁到俺村吧,俺村条件不赖,穿衣基本靠纺,吃饭基本靠党,致富基本靠抢,娶妻基本靠想,交通基本靠走,通信基本靠吼,治安基本靠狗,取暖基本靠抖……”。拿这个段子作为本期的开篇,是想让大家开心一笑,然后借用里面的“通信基...
  • kee131
  • kee131
  • 2015-01-26 14:09
  • 878

java基础精简汇总,个人学习笔记,看完或许你java基础就毕业了,

基本数据类型 也叫值类型。引用数据类型--引用类型 This。只能出现在方法中 ,this代表当前对象的引用。 匿名对象 : new 类名() Anonymous:匿名 Object 有索引的对象:可以通过索引,反复操作同一个对象 匿名对象因为没有引用变量,所以一般情况下只是用一次。 ...
  • boss_way
  • boss_way
  • 2017-10-25 12:12
  • 108

初识OpenCV(基础篇)

OpenCV其实就是一堆C和C++语言的源代码文件,这些源代码文件中实现了许多常用的计算机视觉算法。例如C接口函数cvCanny()实现了Canny边缘提取算法。可以直接将这些源代码添加到我们自己的软件项目中,而不需要自己再去写代码实现Canny算法。  由于OpenCV中源代码文件巨...
  • songkai320
  • songkai320
  • 2016-07-13 17:59
  • 2397

Java NIO(一)入门篇

概念 java.nio(java new IO),是jdk1.4 里提供的新api ,为所有的原始类型提供缓存支持。Sun 官方标榜的特性如下: 为所有的原始类型提供(Buffer)缓存支持。字符集编码解码解决方案。 Channel :一个新的原始I/O 抽象。 支持锁和内存映射文件的文件访问接口。...
  • zhushuai1221
  • zhushuai1221
  • 2016-03-31 13:52
  • 725

C++学习1:C++入门基础学习

说自己会C++简直丢人。大二学了C++,之后数据结构等于又学了一遍,现在真正接触代码了,什么都不会,因此还是得从头自学一下。手头得到一本C++ primer plus,就尽力抽时间把他学一遍吧,不求真的学懂C++,至少不会像现在这么小白。 说来惭愧,我竟然以为C++ primer plus是C++ ...
  • lin453701006
  • lin453701006
  • 2016-10-27 17:39
  • 708

【WLAN从入门到精通-基础篇】第4期——华为WLAN产品介绍(了解即可)

【转自】http://support.huawei.com/huaweiconnect/enterprise/thread-289323.html 经过前面几期的WLAN技术专题,想必大家已经对WLAN的定义、架构和协议等有了一定的了解,这期主要来对WLAN的各类硬件做下介绍。  ...
  • qliu83
  • qliu83
  • 2017-05-05 17:35
  • 444

慕课网 Java 入门 第二季 学习笔记

Java 入门 第二季 学习笔记
  • linyk3
  • linyk3
  • 2015-08-08 09:45
  • 914

基于keras的深度学习基本概念讲解——深度学习之从小白到入门

Tensorflow1.0正式发布,谷歌首届Tensorflow开发者大会在山景召开,深度学习迎来新的高潮和狂欢。随着深度学习框架的普及和推广,会有越来越多人加入到这场盛宴中来,就像Android技术的普及使得开发人员迅速扩大。在这里給大家带来一套小白入门深度学习的基础教程,使用得是Keras,一个...
  • jdbc
  • jdbc
  • 2017-02-24 00:03
  • 816
    个人资料
    • 访问:1256次
    • 积分:41
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档