1、Linux Shell实例精讲学习笔记第一章:shell基础umask -查看当前用户创建文件或文件夹时的默认权限eg:testszbirdora 1$umask 0002testszbirdora 1$ls -lh-rw-rw-r- test test myfile drwxrwxr-x test test 1上面的例子中我们看到由test默认创建的文件myfile和文件夹1的权限分别为664,775.而通过umask查到的默认权限为002.所以可以推断出umask的计算算法为:umask file directory0 6 71 5 62 4 53 3 44 2 31 2 0 1 0 0连
2、接ln硬连接 ln sourcefile targetfile 连接后的target文件大小和source文件一样软连接 ln -s sourcefile targetfile 类似于windows的快捷方式shell script 基本结构#!/bin/bash -bash shell开头必须部分# description -注释部分(可有可无,为了阅读方便最好加以说明)variable name=value -变量部分,声明变量,赋值control segment -流程控制结构,如判断、循环、顺序eg.helloworld.sh#! /bin/bash# This is a hellow
3、orld shell scriptprintchar = hello worldecho $printchartestszbirdora 1$sh helloworld.shhello worldshell 特性别名 alias eg. alias ll = “ls -l”管道 a |b 将a命令的输出作为b命令的输入 eg. ls |sort 将ls列举的项排序命令替换 a b 将b命令的输出作为a命令的输入 eg. ls cat myfile 列举出cat myfile的输出项后台运行 nohup command& 可通过jobs -l查看后台运行的脚本重定向 ,PWD -当前目录MAIL
4、CHECK -每隔多少秒检查是否有新邮件testszbirdora 1$ echo $MAILCHECK60SHELLMANPATH -帮助文档位置TERMINFO -终端信息特殊变量$# 传递到脚本的参数个数$* 以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个$ 脚本运行的当前进程ID号$! 后台运行的最后一个进程的进程ID号$ 传递到脚本的参数列表,并在引号中返回每个参数$- 显示shell使用的当前选项,与set命令功能相同$? 显示最后命令的退出状态,0表示没有错误,其他表示有错误eg.#!/bin/bash#parmecho this is shellname
5、: $0echo this is parm1 : $1echo this is parm2 : $2echo show parm number : $#echo show parm list : $*echo show process id: $echo show precomm stat: $?testszbirdora 1$ sh parm.sh a bthis is shellname: parm.shthis is parm1 : athis is parm2 : bshow parm number : 2show parm list : a bshow process id: 245
6、44show precomm stat: 0影响变量的命令declare 设置或显示变量 -f 只显示函数名 -r 创建只读变量 -x 创建转出变量 -i 创建整数变量 使用+替代-,可以颠倒选项的含义export -p 显示全部全局变量shiftn 移动位置变量,调整位置变量,使$3赋予$2,使$2赋予$1 n 前移ntypeset 和declare同义注意:双引号不能解析$,三个字符,所以在双引号中可以引用变量、转义字符、替换变量单引号可以解析,所以单引号中引用变量等无效testszbirdora 1$ echo $testtesttestszbirdora 1$ echo $test$t
7、est运算符类型按位运算符 取反 右移运算符& 与| 或 异或$ 表示形式告诉shell对方括号中表达式求值 $a+b2.逻辑运算符&|,mylogfile.txttestszbirdora $ sh echod.shthis echos 3 newlneOKthis is echos 3 ewlinennn上面可以看到有-e则可以解析转移字符,没有不能解析。echo空输出为空2.read 可以从键盘或文件的某一行文本中读入信息,并将其赋给一个变量read variable1 variable2eg.#!/bin/bash#readnameecho -n first name:read fir
8、stnameecho -n last name:read lastnameecho this name is $firstname $lastname3.cat 显示文件的内容,创建内容,还可以显示控制字符 cat optionsfilename1 filename2 -v 显示控制字符(Windows文件) cat命令不会分页显示,要分页可以采用more、less4.管道|5.tee把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中,一般与管道合用 tee options files -a 在文件中追加eg.testszbirdora 1$ echo |tee myfiletest
9、szbirdora 1$ cat myfile将myfile文件置空6.文件重定向commandfilename -覆盖输出 commandfilename -追加输出commandfilename&1 -把标准输出和标准错误重定向commanddelimiter -输入直到delimiter分解符commandfilename-输入文件内容到命令commandnullfile.txt -创建字节为0的文件command1command3 -按从左到右顺序执行eg.说明:myfile为空间testszbirdora 1$ df -lhmyfiletestszbirdora 1$ cat myf
10、ileFilesystem Size Used Avail Use% Mounted on/dev/sda1 20G 3.3G 16G 18% /none 2.0G 0 2.0G 0% /dev/shm/dev/sda2 79G 17G 59G 23% /u01/dev/sda4 28G 3.9G 22G 15% /u02testszbirdora 1$ df -lhmyfiletestszbirdora 1$ cat myfileFilesystem Size Used Avail Use% Mounted on/dev/sda1 20G 3.3G 16G 18% /none 2.0G 0
11、2.0G 0% /dev/shm/dev/sda2 79G 17G 59G 23% /u01/dev/sda4 28G 3.9G 22G 15% /u02testszbirdora 1$ df -lhmyfiletestszbirdora 1$ cat myfileFilesystem Size Used Avail Use% Mounted on/dev/sda1 20G 3.3G 16G 18% /none 2.0G 0 2.0G 0% /dev/shm/dev/sda2 79G 17G 59G 23% /u01/dev/sda4 28G 3.9G 22G 15% /u02Filesyst
12、em Size Used Avail Use% Mounted on/dev/sda1 20G 3.3G 16G 18% /none 2.0G 0 2.0G 0% /dev/shm/dev/sda2 79G 17G 59G 23% /u01/dev/sda4 28G 3.9G 22G 15% /u02testszbirdora 1$ cat myfile China Hubei Suizhou exittestszbirdora 1$ cat myfileChinaHubeiSuizhou7.exec 可以用来替代当前shell。现有任何环境变量都会清除第四章 控制流结构1.if语句if 条件
13、1then 命令1elif 条件2then 命令2else 命令3fi-if 条件then 命令fieg:#!/bin/bash#if test#this is a comment lineif 10 -lt 12 ;then#yes 10 is less than 12echo yes,10 is less than 12elseecho nofi注意:if语句必须以fi终止 10 前一个空格,“12”后也有一个空格。这个条件都是通过test命令来指定。条件表达为test expression或者expression条件表达式中的比较函数man testNAME test - check f
14、ile types and compare valuesSYNOPSIS test EXPRESSION EXPRESSION OPTIONDESCRIPTION Exit with the status determined by EXPRESSION. -help display this help and exit -version output version information and exit EXPRESSION is true or false and sets exit status. It is one of: ( EXPRESSION ) EXPRESSION is
15、true ! EXPRESSION EXPRESSION is false EXPRESSION1 -a EXPRESSION2 both EXPRESSION1 and EXPRESSION2 are true EXPRESSION1 -o EXPRESSION2 either EXPRESSION1 or EXPRESSION2 is true -n STRING the length of STRING is nonzero -z STRING the length of STRING is zero STRING1 = STRING2 the strings are equal STR
16、ING1 != STRING2 the strings are not equal INTEGER1 -eq INTEGER2 INTEGER1 is equal to INTEGER2 INTEGER1 -ge INTEGER2 INTEGER1 is greater than or equal to INTEGER2 INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 INTEGER1 -le INTEGER2 INTEGER1 is less than or equal to INTEGER2 INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 INTEGER1 -ne INTEGER2 INTEGER1 is not equal to INTEGER2 FILE1 -ef FILE2 FILE1 and FILE2 have the same device and inode numbers FILE1 -nt FILE2
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1