
linux shell
vincent-fan
Starry starry night
展开
-
[shell-基础] 函数和参数
1定义函数functio{stateme}或者fnam{stat}2调用函数只需要使用函数名就能调用函数$ fname ; # executes function$fname arg1 arg2 ; # passing args3函数的定义fname(){echo $1, $2; #访问参数1,参数2echo "$@"; #原创 2014-01-07 00:59:10 · 342 阅读 · 0 评论 -
[shell-基础] 读取命令序列输出
1.子shellcmd_output=$(COMMANDS)cmd_output=$(ls | cat -n)echo $cmd_output2.反引用cmd_output=`ls | cat -n`echo $cmd_output3利用子shell生成一个独立的进程zishell本身就是独立的进程。可以使用()操作符来定义一个子shell;pwd;(cd原创 2014-01-07 01:01:23 · 513 阅读 · 0 评论 -
[shell-脚本] 调用开始结束脚本
调用开始脚本#!/bin/sh # start shell_procedure# shell_procedure pathprefix=/cg/scriptRUNNING=0PID="`pgrep -x shell_procedure`"if [ "`echo "$PID" | awk '{print length($1)}'`" -ne 0 ]then RUNNING=原创 2014-01-13 13:54:30 · 2567 阅读 · 0 评论 -
[shell-命令] cat
1. 压缩空白行cat -s file2.移除空白行cat file | tr -s '\n'3.显示制表符为 ^Icat -T filedef function():^Ivar = 5next = 6^Ithird = 7^I4.显示行号cat -n lines.txt1 line2 line3原创 2014-01-26 14:35:41 · 291 阅读 · 0 评论 -
[shell-命令] sort uniq
sort命令既可以从特定文件,也可以从stdin中获取输入,并将输出写入stdout。sort对一组文件进行排序sort abc.txt def.txt abcdefgdeffanylfanylfanyunlong-n按数字进行排序$ sort -n file.txt-r按逆序进行排序$ sort -r file.txt原创 2014-01-26 15:11:54 · 403 阅读 · 0 评论 -
[shell-命令] split
1生成大小为100kb的测试文件dd if=/dev/zero bs=100k count=1 of=data.file # 内容全部都是02 将data.file分割成更多的文件$ split -b 10k data.file #以字母命名$ lsdata.file xaa xab xac xad xae xaf xag xah xai xaj原创 2014-01-26 15:26:45 · 377 阅读 · 0 评论 -
[shell-命令] 摘要
find搜索大全1.-name(按照名称搜索)find /home/slynux -name "*.txt" –print find . \( -name "*.txt" -o -name "*.pdf" \) -print (多条件) -iname 与 -name相同,但是匹配时忽略大小写2.-path(将路径文件名视为匹配的整体)find /home/user原创 2014-01-18 17:08:07 · 359 阅读 · 0 评论 -
[shell-命令] xargs
1 将一个命令的stdout作为另一个命令的stdincat foo.txt | grep "test"2 xargs将标准输入数据(stdin)转化成命令行参数command | xargs3 将多行输入转换成单行输出$ cat example.txt # Example file1 2 3 4 5 6 7 8 9 10 11 12原创 2014-01-26 14:41:02 · 332 阅读 · 0 评论 -
[shell-命令] tr
tr可以对来自标准输入的字符进行替换、删除、压缩,常被称为(translate命令).tr只能通过stdin,而无法通过命令行参数来接受输入。调用格式如下:tr [options] set1 set21 转换大小写echo "HELLO WHO IS THIS" | tr 'A-Z' 'a-z'2 数字加密解密$ echo 12345 | t原创 2014-01-26 14:51:05 · 446 阅读 · 0 评论 -
[shell-命令] find
搜索大全1.-name(按照名称搜索)find /home/slynux -name "*.txt" –print find . \( -name "*.txt" -o -name "*.pdf" \) -print (多条件) -iname 与 -name相同,但是匹配时忽略大小写2.-path(将路径文件名视为匹配的整体)find /h原创 2014-01-26 14:08:33 · 332 阅读 · 0 评论 -
[shell-基础] 调试脚本
1 使用选项 -x 启动跟踪调试脚本bash -x script.sh或sh -x script.sh-x标识将打印脚本里执行的每一行命令以及当前状态2 使用选项 set built-in 启动跟踪调试脚本set -x: 执行时显示参数和命令set +x: 禁止调试set –v: 当前命令读取时显示输入set +v: 禁止打印输入 #!/bin/bash原创 2014-01-07 00:57:53 · 281 阅读 · 0 评论 -
[shell-基础] 字段分隔符和迭代器
内部字段分隔符(Internal Field Separator,IFS)在处理文本数据非常有用IFS是存储界定符的环境变量,他是当前shell环境使用的默认的定界字符串1考虑CSV数据的情况data="name,sex,rollno,location"可以使用IFS读取变量中的每一个条目oldIFS=$IFSIFS=, #现在界定符是”,”for item in原创 2014-01-07 01:03:30 · 468 阅读 · 0 评论 -
[shell-基础] 数学计算
数学计算shell中的赋值和操作默认都是字符串处理Let1)使用let (只支持整数运算)var=1 let "var+=1" echo $var 输出结果为2,这次没有悲剧 注意: a)经我测试let几乎支持所有的运算符,在网上看到一篇文章说“let不支持++、--和逗号、(、)”,但经我测试自加、自减、以及括号的优先级都得到了很好的支持 b)方幂运算应使原创 2013-12-30 16:24:24 · 283 阅读 · 0 评论 -
[shell-基础] 终端打印
echo1, 双引号(method.1)$ echo "Welcome to Bash"Welcome to Bash2,不带双引号(method.2)$ echo Welcome to BashWelcome to Bash3,单引号(method.3)$ echo 'text in quote'4,打印 !不能直接用在method.1,可以在method原创 2014-01-01 14:07:28 · 352 阅读 · 0 评论 -
[shell-基础] 环境变量
脚本语言变量不需要声明,可以直接赋值使用Bash中每个变量的值都是字符串特殊的变量会被shell环境和操作系统环境用来存储一些特殊的值,这类变量被视为环境变量1.查看终端进程相关的环境变量evn 2.查看进程运行时的环境变量cat /proc/$PID/environ3.获取程序进程IDpgrep grogramname 上述命令返回环境变量值得列表,每个变原创 2014-01-03 00:15:46 · 331 阅读 · 0 评论 -
[shell-基础] 文件描述符与重定向
文件描述符与重定向0 – stdin(standard input)1 – stdout(standard output)2 – stderr(standard error) 1.输出文本 截取 重定向到文本echo "This is a sample text 1" > temp.txt2.输出文本 追加 重定向到文本echo "This is sample te原创 2014-01-03 16:06:07 · 319 阅读 · 0 评论 -
[shell-基础] 数组和关联数组
数组是shell脚本非常重要的组成部分,它借助索引将多个独立的数据存储为一个集合Bash同时支持普通数组和关联数组,普通数组只能使用整数作为数组索引,关联数组可以使用字符串作为数组索引.1.定义数组array_var=(1 2 3 4 5 6) #存储在以0为起始索引的连续位置上2.索引-值定义array_var[0]="test1"array_var[1]="test原创 2014-01-04 18:49:59 · 294 阅读 · 0 评论 -
[shell-基础] 使用别名
别名就是一种快捷方式,省去输入一长串命令序列别名可以有多种方式实现,可以使用函数,也可以使用alias命令1.创建一个别名$ alias new_command='command sequence'为安装命令apt-get install创建别名:$ alias install='sudo apt-get install'alias命令的作用是暂时的,一旦终端关闭,设置的别原创 2014-01-04 19:10:32 · 313 阅读 · 0 评论 -
[shell-基础] 获取、设置时间和延时
date -d "2010-10-18 00:00:00" +%s1287331200其中,-d参数表示显示指定的字符串所表示的时间,+%s表示输出时间戳。 date -d @1287331200Mon Oct 18 00:00:00 CST 2010 date -d "1970-01-01 UTC 1287331200 seconds" "+%F %T"2010-原创 2013-12-30 15:22:07 · 413 阅读 · 0 评论 -
[shell-基础] 比较与测试
1 if条件if condition;thencommands;fi2 else if 和else:if condition; thencommands;elif condition; thencommandselsecommandsfiif的条件判断部分可能会变得很长,但是可以用逻辑运算符将它变得简洁一些:[ conditon ]原创 2014-01-07 01:04:35 · 294 阅读 · 0 评论 -
[shell-基础] 获取终端信息
While writing command-line shell scripts, we will often need to heavily manipulate information about the current terminal, such as number of columns, rows, cursor positions, masked password fields, an原创 2014-01-07 00:56:40 · 452 阅读 · 0 评论 -
[shell-基础] 以不回车的方式读取字符“n”
在游戏中按“+”向上,按“-”向下,如果每次都需要回车确定效率太低。read 提供一种不需要回车就能搞定的方法1从输入读取n个字符保存到变量$ read -n 2 var$ echo $var2不回显方式读取密码read -s var3显示提示信息read -p "Enter input:" var4特定时限内读取输入read -t timeout var原创 2014-01-07 01:02:25 · 582 阅读 · 0 评论