25yicms利用ASP.NET(C#)+MSSQL技术全力打造功能最强大的营销型企业网站管理系统,企业做网站系统,做网站软件,提供div+css企业网站模板。
阅读内容

Linux shell常见指令


时间:2014/11/23   来源:企业网站管理系统
   在bash shell中,默认会记忆最近1000个操作过的指令,记录存储在家目录内.bash_history。不过该文件记录的是本次登录之前所执行过的命令,本次登录执行的命令被暂存在内存中,当注销系统后该指令记忆才会记录到.bash_history当中!企业网站管理系统25亿讲解下Linux shell常见指令。
 
  变量:
 
  Linux中有很多变量,可以使用echo命令读取其值,如echo $HOME,echo $PATH等。
 
  Linux中变量赋值使用=号,=号两边不能有空格,变量中若有空格需要使用单引号或双引号将变量内容括起来。
 
  若该变量为扩增变量内容时,则可用”$变量名称”累加内容,如:PATH=”$PATH”:/home/bin。
 
  通常我们可以约定,将系统变量都定义为大写,而自定义变量用小写。
 
  转义字符\可以将特殊符号变为一般字符,如Enter、空格、’等。当行过长,可以使用\然后直接Enter换行。此时,Enter前有\转义,将不再具有执行意义了,只是换行。
 
  取消变量设定,使用unset $var_name。
 
  命令别名:
 
  使用alias可以将指令串命名为自定义字符,例如,想知道多个目录底下的所有档案(包含隐藏档)及所有的文件属性,那么就必须反复要下达ls -al这样的指令串。现在,利用alias就可以实现不需要每次都输入这样的指令串。指令语句:alias ll=’ls –al’,然后我们每次只要输入ll就相当于完全指令ls –al,需要注意的是,ll后没有空格,=后也没有空格。
 
  查看别名命令,直接输入alias然后Enter执行即可。
 
  取消别名命令,使用unalias后跟要取消别名的命令即可。
 
  输入输出:
 
  标准输入(stdin):代码为0,使用<或<<,其中<<为结束输入字符设定,并不是追加输入,需要注意。
 
  标准输出(stdout):代码为1,使用>或>>。>的输出若文件不存在则新建,存在则先清空内容再写入;>>的输出若文件不存在则新建,存在则追加。
 
  标准错误输出(stderr):代码为2,使用2>或2>>;
 
  指令传递:
 
  &&:cmd1&&cmd2表示若cmd1执行完毕且正确,则执行cmd2;若cmd1执行完毕且错误则cmd2不执行。
 
  ||:cmd1&&cmd2表示若cmd1执行完毕且正确,则cmd2不执行;若cmd1执行完毕且错误则执行cmd2。
 
  |:管线命令,传递处理指令数据流。
 
  【cut】根据域分隔符取出行中指定域数据,使用语法:传入数据|cut [选项],常用选项:
 
  -d:后面跟分隔字符,用单引号括起,跟-f一起使用;
 
  -f:依据-d的分隔符将行切割,然后取出-f后指定域的字符;
 
  -c:取出-c指定的字符区间,如12-20,12-;
 
  【grep】在输入中搜索指定内容,若含有该内容则取出行,使用语法:grep [选项] [着色] ‘搜索字符串’ fliename,常用选项:
 
  -c:计算找到‘搜索字符串’的次数;
 
  -i:忽略大小写;
 
  -n:输出行号;
 
  -v:反向选择,输出不包含‘搜索字符串’的行;
 
  着色:
 
  --color=auto,可以将找到的关键字部分着色显示。
 
  【sort】将输入进行排序,使用语法:sort [选项] file,常用选项:
 
  -b:忽略最前面空格部分;
 
  -f:忽略大小写;
 
  -n:以纯数据形式排序(默认以文本形式);
 
  -u:相同数据排序仅出现一行;
 
  -r:反向排序;
 
  -M:以月份排序;
 
  -t:指定分隔符(默认tab);
 
  -k:根据分隔域,以指定域排序;
 
  【uniq】对排序后的内容进行去重,常用选项:
 
  -i,忽略大小写;
 
  -c,对重复次数进行计算;
 
  【wc】统计行、字、字符,常用选项:
 
  -l:仅统计行;
 
  -w:仅统计单词数(英文);
 
  -m:仅统计字符数;
 
  若不加任何选项则三项全统计;
 
  【tee】屏幕、文件双输出,选项,-a,以追加形式写入文件。
 
  【tr】删除或替换字符,常用选项:
 
  -d:删除字符串;
 
  -s:取代掉重复的字符;
 
  不加选项可用于替换,如tr ‘[a-z]’ ‘A-Z’,表示将所有小写替换为相应大写;
 
  【sed】数据替换、删除、新增、搜索等,语法:sed [选项] ‘[动作]’,常用选项:
 
  -e:多个动作,则每个动作前要有-e。
 
  -n:使用安静(silent)模式。在一般sed的用法中,所有来自STDIN的数据一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来。
 
  -f:执行指定文档的动作。直接将sed的动作写在一个档案内,-f filename则可以执行filename内的sed动作。
 
  -r:sed的动作支持的是延伸型正则表示法的语法。(预设是基础正则表示法语法)
 
  -i:直接修改读取的档案内容,而不是由屏幕输出。
 
  动作可仅到指定行进行,如“[n1][,n2] action”,10,20 动作,是动作仅作用于10到20行。常用动作(注意前面没有-,动作整体用单引号):
 
  a:新增。a的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行)。
 
  i:插入。i的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行),在新增多行时,可以用\然后换行继续输入。
 
  c:全替换。c的后面可以接字符串,这些字符串可以取代n1,n2之间的行!
 
  s:指定替换。通常搭配正则进行指定替换,如:1,20s/old/new/g。当然,若我们把new不写任何内容,这个句子就成删除指定字符了。
 
  d:删除行。
 
  p:输出。亦即将某个选择的数据印出,通常p会与参数sed –n搭配。
 
  【awk】sed常将数据作为行进行编辑处理,而awk则将行分成“字段”进行数据处理。语法:awk '条件类型1 {动作1} 条件类型2 {动作2}...' filename。
 
  注意:
 
  awk的条件判断及动作都在引号内;
 
  awk的动作在大括号内,有几个大括号就是有几个动作;
 
  内置变量使用大写,且不需要$变量符号;
 
  awk的处理流程:
 
  读入一行数据,依据分隔符将其填入变量$0、$1、$2…等中,其中$0是全行数据。
 
  依据“条件类型”的限制,判断是否需要进行后面的动作,若无条件类型则表示动作执行前不做判断。
 
  做为所有的条件判断及动作,然后重复执行下面的行。
 
  awk内置变量:
 
  NF:每一行拥有的字段总数;
 
  NR:目前awk所处理的是第几行数据;
 
  FS:目前的分隔符,默认为空格;
 
  条件与赋值:
 
  条件比较可用,“>、<、>=、<=、==、!=”,需要注意的是等于是==,而一个=是赋值。
 
  设定分隔符就相当于一个动作,而设定就相当于一个赋值,如:awk '{FS=”:”} $3<10 {print $1 “\t” $3}',其中,第一个动作就是设定分隔符。需要注意的是,这种写法并不处理第一行,原因很简单,根据awk流程,先读入,采用默认分隔符分隔,然后赋给变量,再交给动作处理的。在读第二行时,分隔符才被在第一行修改为“:”。要想改变这种情况,就要利用初始化关键字BEGIN作为条件放在动作前。
 
  若动作中有多个指令,则指令间使用“;”隔开。
点击次数:       打印此页  关闭