Linux命令(二)

六、网络管理与相关应用;
七、vi/vim编辑器;
八、Shell编程

六、网络管理与相关应用

# arp -a | awk '{print $4}'  //得到网卡的 MAC地址
# dd if=/dev/zero bs=4096 count=1048576 | ssh [user@ip](mailto:user@ip) 'cat > /dev/null'  //不浪费磁盘的情况下测试网络速度(通过 ssh 发送 4 GB 数据到远程主机,但不会占用任何磁盘空间)
# dmesg | grep eth  //显示每个网卡的硬件配置信息
# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all  //关闭ping
# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all  //重启ping
# ethtool eth0  //显示或改变网卡设置(参考:man ethtool)
# ifconfig //查看当前有效网络接口信息
# ifconfig -a  //查看当前所有网络接口信息
# ifconfig eth0 //查看指定网络接口eth0信息
# ifconfig eth0 192.168.1.11  //设置eth0接口IP地址(标准掩码)(相当于动态修改IP)
# ifconfig eth0 192.168.1.11 netmask 255.255.255.128 //设置eth0接口IP地址及子网掩码
# ifconfig eth0 hw ether 000C1254D321 //更改网卡物理地址
# ifconfig lo  //查看lo状态
# ifdown eth0  //禁用eth0网络接口
# ifdown lo  //关闭本地回环网络接口
# ifup eth0  //启用eth0网络接口
# ifup lo  //启动本地回环网络接口# ip ad sh  //显示IP地址等信息
# iptables -L  // 查看防火墙设置
# iptraf  //可交互式IP网络监控工具# mii-tool -v  //查看网卡有关信息
# netconfig  //设置网络环境
# netstat -antp  // 查看所有已经建立的连接
# netstat -apt  //显示所有TCP应用程序所使用的端口号,并显示使用此端口号的进程
# netstat -lntp  // 查看所有监听端口
# netstat -s // 查看网络统计信息
# netstat -tulnp  //目前系统上已在监听的网络连接及其PID
# ping 10.52.19.187  //检测到10.52.19.187之间是否连通
# ping -c 5 10.52.19.187  //向10.52.19.187发送5个分组报文
# ping -s 6553 -c 5 10.52.19.187  //向10.52.19.187发送5个分组、每组大小为6553字节的报文(注:最大分组报文不能超过65507字节)
# ping -c 8 -i 3 -s 1024 -t 25 10.52.19.187  //向10.52.19.187以3秒间隔、包大小1024字节、IP生存期25、8个包发送报文
# route -n  // 查看路由表
# tracepath 10.52.19.189  //显示连接到10.52.19.189的路由
# traceroute -n 10.52.19.190  //对到达10.52.19.190的路由进行跟踪,且使用IP地址表示每一跳主机
# ss  //显示网络套接字信息,它允许显示类似netstat一样的信息
# wget 192.168.20.148  //从网站192.168.20.148下载资料
 
动态增加IP
# traceroute 211.148.192.136 //检测到目的IP经过的路由信息
# hostname //查看主机名称
# hostname luo //设置主机名称为 luo
# ping 192.168.1.10 //Ping主机192.168.1.10
# ifconfig eth0 add 10.52.19.147
# ifconfig eth0:0 broadcast 10.52.19.255
 
DNS域名
# nslookup 待解析域名(或IP)
# nslookup 211.148.192.136 //反向解析IP---域名
# nslookup [www.163.com](http://blog.chinaunix.net/link.php?url=http://www.163.com%2F)   //解析指定的域名---IP
# route add default gw 192.168.1.1 //添加默认网关为192.168.1.1
# route del default gw 192.168.1.1 //删除默认网关为192.168.1.1
 
NFS服务
# exportfs -auv   //停止输出所有共享目录
# exportfs -av  //输出启用所有共享目录
# exportfs -rv    //重新输出共享目录
# mount -t nfs 192.168.2.10:/luo /wei //在客户机上挂载共享目录到/wei
# service iptables stop //关闭防火墙
# service nfs start //启动nfs服务
# service portmap start //启动portmap服务
# showmount -a    //显示NFS服务器的客户与被挂载目录
# showmount -d    //显示NFS服务器被挂载的目录
# vi /etc/exports  //修改共享配置文件(加共享目录)
showmount -e 192.168.2.10 6  //在客户上查看服务器共享目录
 
配置文件
vi /etc/hosts  vi /etc/network //修改主机名称配置文件
vi /etc/rc.local //修改mac地址配置文件
vi /etc/resolv.conf //修改DNS配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0 //修改网卡配置文件
vi /var/spool/cron/username  //修改cron任务配置文件
vi /var/spool/mail  //修改邮件配置文件

七、vi/vim编辑器

也可建立vi到vim的符号连接(即实际调用的是vim)
# mv /bin/vi /bin/vi.bak
# ln -s /usr/bin/vim /bin/vi
 
进入vi的命令:
vi  直接进入编辑并创建新文件
vi filename  编辑文件(不存在则创建文件),并将光标置于第一行首
vi +n filename  打开文件,并将光标置于第n行首
vi + filename   打开文件,并将光标置于最后一行首
vi +/pattern filename  打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename   在上次正用vi编辑时发生系统崩溃,恢复文件
vi file1....filen   打开多个文件,依次进行编辑
vi -o aaa bbb   水平窗口打开aaa,bbb两个文件
vi -O aaa bbb   垂直窗口打开aaa,bbb两个文件(Ctrl+W两次可在多个文件间切换)多文本编辑的按键::n  编辑下一个文件:N  编辑上一个文件:files  列出目前这个vi的打开的所有文件多窗口情况下的按键功能::sp [filename]  打开一个新窗口,如果有加filename,表示在新窗口打开一个新文件,否则表示两个窗口为同一个文件内容(同步显示)
[ctrl]+w+j[ctrl]+w+↓   按键的按法是:先按下[ctrl]不放,再按下w后放开所有的按键,然后再按下j(或向下箭头键),则光标可移动到下方的窗口[ctrl]+w+k[ctrl]+w+↑    同上,不过光标移动到上面的窗口[ctrl]+w+q    其实就是:q结束离开。例如,想要结束下方的窗口,那么利用[ctrl]+w+↓移动到下方窗口后,按下:q即可离开,也可以按下[ctrl]+w+q
块选择的按键意义:v  字符选择,将光标经过的地方反白选择
V  行选择,将光标经过的行反白选择
Ctrl + v  块选择,可以用长方形的方式选择数据
y  将反白的地方复制起来
d  将反白的地方删除
恢复命令:
u  恢复最后一个指令之前的结果.  继续最后一个指令的执行结果
ctrl+r  撤销恢复
U  恢复光标该行之所有改变
 
移动光标命令:
h   光标左移一个字符
l   光标右移一个字符
space  光标右移一个字符
Backspace  光标左移一个字符
k或Ctrl+p  光标上移一行
j或Ctrl+n   光标下移一行
Enter   光标下移一行
w或W   光标右移一个字至字首
b或B   光标左移一个字至字首
e或E   光标右移一个字至字尾
)   光标移至句尾
(   光标移至句首
}  光标移至段落开头
{  光标移至段落结尾
nG  光标移至第n行首
n+  光标下移n行
n-  光标上移n行
n$  光标移至第n行尾
H   光标移至屏幕顶行
M   光标移至屏幕中间行
L   光标移至屏幕最后行
0  (注意是数字零)光标移至当前行首
$  光标移至当前行尾
 
翻屏命令:
Ctrl+u  向文件首翻半屏
Ctrl+d  向文件尾翻半屏
Ctrl+f  向文件尾翻一屏
Ctrl+b  向文件首翻一屏
nz  将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部
 
插入文本、复制与粘贴:
i   在光标前插入
I   在当前行首插入
a  在光标后插入
A  在当前行尾插入
o  在当前行之下新开一行
O  在当前行之上新开一行
r  替换当前字符
R  替换当前字符及其后的字符,直至按ESC键
s  从当前光标位置处开始,以输入的文本替代指定数目的字符
S  删除指定数目的行,并以所输入文本代替之
ncw或nCW  修改指定数目的字
nCC  修改指定数目的行
yy  p  复制当前行,并粘贴到下一行nyy  n为数字。复制光标所在的向下n行,例如20yy,则是复制20行y1G  复制光标所在行到第一行的所有数据yG   复制光标所在行到最后一行的所有数据y0    复制光标所在的那个字符到该行行首的所有数据y$    复制光标所在的那个字符到该行行尾的所有数据  
shift + i  在该行之首插入字符
shift + a   在该行末尾输入字符
shift + r  改写自光标位置及后面的所有内容
shift +o  在光标之上新增一行输入字符
 
删除命令:
ndw或ndW  删除光标处开始及其后的n-1个字
d0  删至行首(为数字0)
d$  删至行尾shift + d  剪切至行尾
dd  删除一行
ndd  删除自光标开始的n行
s  删除光标所在之字符,并进入输入模式直到《ESC》
S  删除光标所在之该行资料,并进入输入模式直到《ESC》
x或X  删除一个字符,x删除光标后的,而X删除光标前的 nx  n为数字,连续向后删除n个字符。如,要连续删除10个字符,则:“10x”
Ctrl+u  删除输入方式下所输入的文本
 
搜索及替换命令:
/pattern  从光标开始处向文件尾搜索pattern
?pattern  从光标开始处向文件首搜索pattern
n  在同一方向重复上一次搜索命令
N  在反方向上重复上一次搜索命令
:s/p1/p2/  替换当前行第一个p1为p2
:s/p1/p2/g  将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g  将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g  将文件中所有p1均用p2替换
: 1,$s/old/new/g  将文件中所有的『old』改成『new』: 1,$s/old/new/gc  将文件中所有的『old』改成『new』,并在改前提示用户确认
: 10,20s/^/ /  将第10行至第20行资料的最前面插入5个空格
: %s/^m//g  删除文件中所有的^M符号
 
选项设置:
all  列出所有选项设置情况
term  设置终端类型
ignorance  在搜索中忽略大小写
list  显示制表位(Ctrl+I)和行尾标志($)
number  显示行号
report  显示由面向行的命令修改过的数目
terse  显示简短的警告信息
warn  在转到别的文件时若没保存当前文件则显示NO write信息
nomagic  允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan  禁止vi在搜索到达文件两端时,又从另一端开始
mesg  允许vi显示其他用户用write写到自己终端上的信息
 
最后行方式命令:
:n1,n2 co n3  将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3  将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d   将n1行到n2行之间的内容删除 
:e filename  打开文件filename进行编辑
:e! dd   强制关闭当前文件(不保存)打开新文件dd
: e!  放弃修改重新编辑  
:q!  不保存文件并退出vi
:r fff 在当前位置读入fff文件
:set nonu 不显示行号
:set nu 显示行号
:w  保存输入的内容到当前文件
:w eee 另存为eee文件
:wq  保存并退出
:x  保存当前文件并退出
:n1,n2 w eee  将文件中n1行至n2行的内容保存成eee文件:!command  暂时离开vi到命令行模式下执行command的显示结果。例如,“:! ls /home”即可在vi当中查看/home下面以ls输出的文件信息
 
寄存器操作:
"?nyy  将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyw  将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl  将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p  取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd  将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中vim操作环境(不建议修改/etc/vimrc文件;建议手动修改~/.vimrc文件)
vim常用指令示意图

vim常用指令示意图

八、shell编程

# grep $LOGNAME /etc/passwd  //显示当前登录用户使用的shell
# sh  //启动bsh(为Bourne Shell的简称---伯恩shell)
# bash  //启动bash(为Bourne Again Shell的简称)
# csh  //启动C Shell

# type [-tpa] name  //bash shell的内置命令。
type:不加任何参数时,type会显示出name是外部命令还是bash内置命令 
-t :当加入-t参数时,type会将name以下面这些字眼显示出它的意义:      
file:表示为外部命令       
alias:表示该命令为命令别名所设置的名称;       
builtin:表示该命令为bash内置的命令功能。
-p :如果后面接的name为外部命令时,才会显示完整文件名;
-a :会由PATH变量定义的路径中,将所有含name的命令都列出来,包含alias

# cp/var/spool/mail/root  /etc/crontab \>  /etc/fstab  /root 
//将三个文件复制到root目录下(如果命令串太长的话,可以用两行来输出)。
“\[Enter]”为转义符,
“>”为系统自动出现的,不需要输入。

# source  ~/.bashrc  //将主文件夹的~/.bashrc的设置读入目前的bash环境中
# .  ~/.bashrc   //将主文件夹的~/.bashrc的设置读入目前的bash环境中

# ll -d/etc/cron*  //找出/etc/下面以cron为开头的文件名
# ll -d/etc/?????  //找出/etc/下面文件名刚好是五个字母的文件名
# ll -d/etc/*[0-9]*  //找出/etc/下面文件名含有数字的文件名
# ll -d/etc/[^a-z]*  //找出/etc/下面文件名开头非为小写字母的文件名
# cp -a /etc/[^a-z]*/tmp  //将上例找到的文件复制到 /tmp中
# last | cut -d  ' '  -f1 | sort  //将输出的数据仅取账号,并加以排序
# last | cut -d  ' '  -f1 | sort  | uniq  //将输出的数据仅取账号,排序后仅取出一位
# last | cut -d  ' '  -f1 | sort  | uniq  -c  
//将输出的数据仅取账号,排序后仅取出一位并显示每个账号登录的总次数
# last | grep [a-zA-Z]| grep -v ‘wtmp’| wc -l  //显示登录系统的总人数
# last | tee  last.list | cut -d  “ “  -f1  //将last的输出存一份到last.list文件中
# ls -l/home | tee  ~/homefile | more  
//将ls的数据存一份到~/homefile,同时屏幕也有输出信息
# ls -l/ | tee  -a  ~/homefile | more  //加上-a参数则能将信息累加
# cp/etc/passwd  /root/passwd &&unix2dos /root/passwd 
# file/etc/passwd /root/passwd
# cat/root/passwd | tr -d  ‘\r’ > /root/passwd.linux
# ll  /etc/passwd  /root/passwd*  
//将/etc/passwd转存成dos断行到/root/passwd中,再将^M 符号删除。\r指的是dos的断行字符 ^M
# cat  -A /etc/man.config 
# cat/etc/man.config | col  -x | cat  -A | more 
//利用cat  -A 显示所有特殊按键,最后以 col将[tab]转成空白。
//上面看到的^I符号就是tab,如此一来,[tab]按键会被替换成为空格键,输出就美观多了

# mancol > /root/col.man
# vi/root/col.man
# mancol | col  -b > /root/col.man  //将col的man page转存成为/root/col.man的纯文本文件
通配符与特殊符号   意义
*      代表『 0 个到无穷多个』任意字符
?      代表『一定有一个』任意字符
[ ]    同样代表『一定有一个在括号内』的字符(非任意字符)。
例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』
[ - ]  若有减号在中括号内时,代表『在编码顺序内的所有字符』。
例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的!
[^ ]   若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,
例如 [^abc] 代表 一定有一个字符,只要是非 a, b, c 的其他字符就接受的意思。
bash 环境中的特殊符号   内容
#      批注符号:这个最常被使用在 script 当中,视为说明!在后的数据均不运行
\      跳脱符号:将『特殊字符或通配符』还原成一般字符
|      管线 (pipe):分隔两个管线命令的界定(后两节介绍);
;      连续命令下达分隔符:连续性命令的界定 (注意!与管线命令并不相同)
~      用户的家目录$      取用变量前导符:亦即是变量之前需要加的变量取代值
&      工作控制 (job control):将命令变成背景下工作
!      逻辑运算意义上的『非』 not 的意思!
/      目录符号:路径分隔的符号
>, >>  数据流重导向:输出导向,分别是『取代』与『累加』
<, <<  数据流重导向:输入导向  
' '    单引号,不具有变量置换的功能
" "    具有变量置换的功能!
` `    两个『 ` 』中间为可以先运行的命令,亦可使用 $( )
( )    在中间为子 shell 的起始与结束
{ }    在中间为命令区块的组合!
基础正则表达式字符 (characters) 
^word意义:待查找的字符串(word)在行首范例:查找行首为 # 开始的那一行,并列出行号 
grep -n '^#' regular_express.txt word$ 意义:待查找的字符串(word)在行尾范例:将行尾为 ! 的那一行列印出来,并列出行号 
grep -n '!$' regular_express.txt . 意义:代表一定有一个任意字符的字符范例:查找的字符串可以是 (eve) (eae) (eee) (e e), 但不能仅有 (ee),亦即 e 与 e 中间“一定”仅有一个字符,而空格符也是字符 
grep -n 'e.e' regular_express.txt \ 意义:转义字符,将特殊符号的特殊意义去除范例:查找含有单引号 ' 的那一行 
grep -n \' regular_express.txt * 意义:重复零个到无穷多个的前一个 RE(regular)字符范例:找出含有 (es) (ess) (esss) 等等的字符串,注意,因为 * 可以是 0 个,所以 es 也是符合带查找字符串。
另外,因为 * 为重复“前一个 RE 字符”的符号, 因此,在 * 之前必须要紧接著一个 RE 字符喔。例如任意字符则为 “.*”  
grep -n 'ess*' regular_express.txt [list] 意义:从字符集合的 RE 字符里面找出想要选取的字符范例:查找含有 (gl) 或 (gd) 的那一行,需要特别留意的是,在 [] 当中代表一个待查找的字符, 
例如“ a[afl]y ”代表查找的字符串可以是 aay, afy, aly 即 [afl] 代表 a 或 f 或 l 的意思 
grep -n 'g[ld]' regular_express.txt [n1-n2] 意义:从字符集合的 RE 字符里面找出想要选取的字符范围范例:查找含有任意数字的那一行。
需特别留意,在字符集合 [] 中的减号 - 是有特殊意义的,他代表两个字符之间的所有连续字符。但这个连续与否与 ASCII 编码有关,因此,你的编码需要配置正确(在 bash 当中,需要确定 LANG 与 LANGUAGE 的变量是否正确)。
例如所有大写字符则为 [A-Z] grep -n '[A-Z]' 
regular_express.txt [^list] 意义:从字符集合的 RE 字符里面找出不要的字符串或范围范例:查找的字符串可以是 (oog) (ood) 但不能是 (oot) ,那个 ^ 在 [] 内时,代表的意义是“反向选择”的意思。
例如,我不要大写字符,则为 [^A-Z]。
但是,需要特别注意的是,如果以 grep -n [^A-Z] regular_express.txt 来查找,却发现该文件内的所有行都被列出,为什么?因为这个 [^A-Z] 是“非大写字符”的意思, 因为每一行均有非大写字符,
例如第一行的 "Open Source" 就有 p,e,n,o等小写字符 
grep -n 'oo[^t]' regular_express.txt \{n,m\} 意义:连续 n 到 m 个的前一个 RE 字符,若为 \{n\} 则是连续 n 个的前一个 RE 字符,若是 \{n,\} 则是连续 n 个以上的前一个 RE 字符范例:在 g 与 g 之间有2个到3个的o存在的字符串,亦即 (goog)(gooog) 
grep -n 'go\{2,3\}g' regular_express.txt 

# dmesg | grep -n -color=auto‘eth’  
//用dmesg列出内核信息,
//再以grep找出内含eth的那些行,并显色、加上行号

# dmesg | grep -n -A3 -B2 -color=auto ‘eth’  
//承上,在关键字所在行的前两行与后三行也一起找出来显示
# test -e /pa/lamprj && echo "exist" || echo "Not exist"  
//检查/pa/lamprj目录是否存在

文件测试的标志与意义:

关於某个文件名的“文件类型”判断,
如 test -e filename 表示存在否 
-e  该文件名是否存在?(常用) 
-f  该文件名是否存在且为文件(file)(常用) 
-d  该文件名是否存在且为目录(directory)(常用) 
-b  该文件名是否存在且为一个 block device 设备 
-c  该文件名是否存在且为一个 character device 设备 
-S  该文件名是否存在且为一个 Socket 文件
-p  该文件名是否存在且为一个 FIFO (pipe) 文件
-L  该文件名是否存在且为一个连结文件关於文件的权限检测,
如 test -r filename 表示可读否 (但 root 权限常有例外) 
-r  检测该文件名是否存在且具有“可读”的权限 
-w  检测该文件名是否存在且具有“可写”的权限
-x  检测该文件名是否存在且具有“可执行”的权限
-u  检测该文件名是否存在且具有“SUID”的属性
-g  检测该文件名是否存在且具有“SGID”的属性
-k  检测该文件名是否存在且具有“Sticky bit”的属性
-s  检测该文件名是否存在且为“非空白文件” 两个文件之间的比较,
如:test file1 -nt file2 
-nt  (newer than)判断 file1 是否比 file2 新 
-ot  (older than)判断 file1 是否比 file2 旧 
-ef  判断 file1 与 file2 是否为同一文件,可用在判断 hard link 的判定上。 

主要意义在判定两个文件是否均指向同一个 inode 关於两个整数之间的判定,
例如 test n1 -eq n2 -eq  两数值相等 (equal) 
-ne  两数值不等 (not equal) 
-gt  n1 大於 n2 (greater than) 
-lt  n1 小於 n2 (less than) 
-ge  n1 大於等於 n2 (greater than or equal) 
-le  n1 小於等於 n2 (less than or equal) 判定字串的数据 
test -z string  判定字串是否为 0,若 string 为空字串,则为 true 
test -n string  判定字串是否非为0,若 string 为空字串,则为 false                  
注:-n 亦可省略 test str1 = str2  判定 str1 是否等於 str2 ,若相等,则回传 true 
test str1 != str2 判定 str1 是否不等於 str2 ,若相等,则回传 false 

多重条件判定,
例如:test -r filename -a -x filename -a  两个条件同时成立!
例如 test -r file -a -x file,则 file 同时具有 r 与 x 权限时,才回传 true 
-o  任何一个条件成立!
例如 test -r file -o -x file,则 file 具有 r 或 x 权限时,就可回传 true !   

反相状态,
如 test ! -x file ,当 file 不具有 x 时,回传 true 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容