linux 笔记

> &> >& >> <redirection重定向.scriptname >filename重定向scriptname的输出到文件filename中去. 如果文件filename存在则将会被覆盖.command &>filename 会重定向命令command标准输出(stdout)和标准错误(stderr)到文件filename中.command >&2 把命令command的标准输出(stdout)重定向到标准错误(stderr).scriptname >>filename appends把脚本scriptname的输出追加到文件filename.如果filename不存在,则它会被创建.>|强迫重定向 (即使noclobber选项设置). 这会强迫覆盖一个存在的文件.||或逻辑操作符. 在一个测试结构中,||操作符当测试条件的任何一个为真时返回0 (成功)的标志.~主目录或称为家目录[波浪号]. 它与内部变量 $HOME 是一致的. ~bozo是bozo’的主目录,而ls ~bozo 会列出此目录的内容. ~/ 是当前用户的主目录,并且ls ~/ 会列出此目录的内容.~+当前工作目录. 它与外部变量$PWD是一致的.~-先前的工作目录. 它与外部变量$OLDPWD是一致的.=~正则表达式匹配. 这个操作符由bash 版本3引入.^行首.在正则表达式中, 字符”^”表达匹配一个文本行的开头.不同与许多其他的编程语言,Bash不以”类型”来区分变量。本质上来说,Bash变量是字符串,但是根据环境的不同,Bash允许变量有整数计算和比较。其中的决定因素是变量的值是不是只含有数字.$?变量保存了最后一个命令执行后的退出状态。当一个函数返回时,$?保存了函数里最后一个命令的退出状态码。这就是Bash里函数返回值的处理办法。当一个脚本运行结束,$? 变量保存脚本的退出状态,而脚本的退出状态则是脚本中最后一个已执行命令的退出状态。并且依照惯例,0表示执行成功,1-255的整数范围表示错误。如果下面的条件成立返回真…-e文件存在-a文件存在这个和-e的作用一样. 它是不赞成使用的,所以它的用处不大。-f文件是一个普通文件(不是一个目录或是一个设备文件)-s文件大小不为零-d文件是一个目录-b文件是一个块设备(软盘, 光驱, 等等.)-c文件是一个字符设备(键盘, 调制解调器, 声卡, 等等.)-p文件是一个管道-h文件是一个符号链接-L文件是一个符号链接-S文件是一个socket-t文件(描述符)与一个终端设备相关这个测试选项可以用于检查脚本中是否标准输入 ([ -t 0 ])或标准输出([ -t 1 ])是一个终端.-r文件是否可读 (指运行这个测试命令的用户的读权限)-w文件是否可写 (指运行这个测试命令的用户的读权限)-x文件是否可执行 (指运行这个测试命令的用户的读权限)-g文件或目录的设置-组-ID(sgid)标记被设置如果一个目录的sgid标志被设置,在这个目录下创建的文件都属于拥有此目录的用户组,而不必是创建文件的用户所属的组。这个特性对在一个工作组里的同享目录很有用处。-u文件的设置-用户-ID(suid)标志被设置一个root用户拥有的二进制执行文件如果设置了设置-用户-ID位(suid)标志普通用户可以以root权限运行。[1] 这对需要存取系统硬件的执行程序(比如说pppd和cdrecord)很有用。如果没有设置suid位,则这些二进制执行程序不能由非root的普通用户调用。 -rwsr-xr-t 1 root 178236 Oct 2 2000 /usr/sbin/pppd被设置了suid标志的文件在权限列中以s标志表示.-k粘住位设置Commonly known as the “sticky bit,” the save-text-mode flag is a special type of file permission. If a file has this flag set, that file will be kept in cache memory, for quicker access. [2] If set on a directory, it restricts write permission. Setting the sticky bit adds a t to the permissions on the file or directory listing. drwxrwxrwt 7 root 1024 May 19 21:26 tmp/If a user does not own a directory that has the sticky bit set, but has write permission in that directory, he can only delete files in it that he owns. This keeps users from inadvertently overwriting or deleting each other’s files in a publicly accessible directory, such as /tmp.-O你是文件拥有者-G你所在组和文件的group-id相同-N文件最后一次读后被修改f1 -nt f2文件f1比f2新f1 -ot f2文件f1比f2旧f1 -ef f2文件f1和f2 是相同文件的硬链接!”非” — 反转上面所有测试的结果(如果没有给出条件则返回真).**求幂位操作符. 位操作符很少在脚本中使用。他们主要用于操作和测试从端口或sockets中读到的数据。“位运算”更多地用于编译型的语言,比如说C和C++,它们运行起来快地像飞。位操作符<<位左移(每移一位相当乘以2)<<=”位左移赋值”let “var <<= 2” 结果使var的二进制值左移了二位(相当于乘以4)>>位右移(每移一位相当除以2)>>=”位右移赋值”(和<<=相反)&位与&=”位于赋值”|位或|=”位或赋值”~位反!位非^位或^=”位或赋值”字符串长度${#string}expr length $stringexpr “$string” : ‘.*’匹配字符串开头的子串的长度expr match “$string” ‘$substring’$substring 是一个正则表达式.expr “$string” : ‘$substring’$substring 是一个正则表达式.索引expr index $string $substring在字符串$string中$substring第一次出现的数字位置子串提取${string:position}把$string中从第$postion个字符开始字符串提取出来.如果$string是”*”或”@”,则表示从位置参数中提取第$postion后面的字符串。[1]${string:position:length}把$string中$postion个字符后面的长度为$length的字符串提取出来。如果$string参数是”*”或”@”,则会提取第$length个位置参数开始的共$length个参数。[译者注:实际取得的参数有可能少于$length,因为有可能余下的参数没有那么多了]expr substr $string $position $length提取$string中从位置$postition开始的长度为$length的子字符串。expr match “$string” ‘\($substring\)’从$string字符串左边开始提取提取由$substring描述的正则表达式的子串。expr “$string” : ‘\($substring\)’从$string字符串左边开始提取由$substring描述的正则表达式的子串。expr match “$string” ‘.*\($substring\)’从$string字符串结尾开始提取由$substring描述的正则表达式的子串。expr “$string” : ‘.*\($substring\)’从$string字符串结尾开始提取由$substring描述的正则表达式的子串。子串移动${string#substring}从$string左边开始,剥去最短匹配$substring子串.${string##substring}从$string左边开始,剥去最长匹配$substring子串.${string%substring}从$string结尾开始,剥去最短匹配$substring子串。${string%%substring}从$string结尾开始,剥去最长匹配$substring子串。子串替换${string/substring/replacement}用$replacement替换由$substring匹配的字符串。${string//substring/replacement}用$replacement替换所有匹配$substring的字符串。${string/#substring/replacement}如果$string字符串的最前端匹配$substring字符串,用$replacement替换$substring.${string/%substring/replacement}如果$string字符串的最后端匹配$substring字符串,用$replacement替换$substring.以前整理的笔记贴出来

linux 笔记

相关文章:

你感兴趣的文章:

标签云: