Linux批量创建用户讲解

一、涉及命令及知识分析

1.1解题思想探讨

拿到一个题,或者接手一项任务,我们首先应该怎么做?

PMP学习举例,办公室政治-方法很多,我们应该选择最优的方法

针对这个题,我想我们中间大部分应该都已经会了,而且我也在群里分享过我的思路。

1.2与创建用户相关的命令

要创建用户肯定离不开useradd命令,然后使用password命令设置密码,既然是批量创建肯定是非交互式执行,所以到这里我们应该想到使用—stdin参数。他们的常用格式一般如下:

useradd name

echo password |passwd –stdin name

我们可以通过分号将两条命令放在同一行同时执行,这样就可以一次性创建用户并为用户设置密码,当然有同学会问如果想要把密码记下来怎么办,其实也很简单,我们可以同时把pass字符串输出到一个文件,具体格式如下:

useradd name;echo password|passwd –stdin name;echopassword>>/tmp/passwd.txt

1.3批量执行相关思考

在linux里,我觉得要批量做一件事,主要有两个方向可以去思考,第一大家最容易想到的就是使用循环,第二就是在在命令里有两个可以批量创建和执行的命令一个seq、一个是{},seq是用来生成数字序列,{}即可以是数字序列,也可是字符序列,这样我们就可以利用这两个命令通过命令行拼接字符串的方式来实现,说到拼接字符串这里我们应该想到sed的后向引用,为什么要这样说呢。因为前面我们要通过seq或者{}生成和用户相关的序列,在后面想要使用前面字符串的内容最好的解决办法就是sed的后向引用。

1.4随机数和随机字符串

1、利用date命令生成随机数

[root@cmsweixin7151]# date +%s

1460971472//按秒生成

[root@cmsweixin7151]# date +%N

221539698//按纳秒生成,相当亿分之秒

[root@cmsweixin7151]# date +%s%N

1460971515409433433//两者的结合

[root@cms weixin7151]#

2、通过系统变量($RANDOM)获取随机数

[root@cmsweixin7151]# echo $RANDOM

8044

[root@cmsweixin7151]# echo $RANDOM

28351

[root@cmsweixin7151]# echo $RANDOM

20563

[root@cmsweixin7151]# echo $RANDOM

350

[root@cmsweixin7151]# echo $RANDOM

19317

[root@cmsweixin7151]# echo $RANDOM

6178

[root@cmsweixin7151]# echo $RANDOM

843

[root@cmsweixin7151]#

通过上面的我们可以看到最大的数字只有五位数,可能大家会想到要是我想生成8位的数怎么办呢?其实想一下就OK了。因为每一次生成的数字都不相同,那我们在这个基本上每一个数字给他加上10000000,那么就得到了一个随机的8位数了。

[root@cmsweixin7151]# echo $(($RANDOM+10000000))

10007221

[root@cmsweixin7151]#

3、通过md5sum命令生成随机字符串

md5sum在linux的最常用法就是使用他对一个文件生成一个字符串,如果对这个文件进行了修改,再次使用md5sum对文件生成一个字符串,这个时候比较两个字符来认识是否对此文件进行过修改。在这里我们可以对上面生成的字符串使用md5sum进行加密,然后生成一个字符串,由于上面的每一个数字是随机的,所以生成的字符串也是随机的。

[root@cmsweixin7151]# echo $(($RANDOM+10000000))|md5sum

7e8008ad11125bdca42b13624de19b99-

[root@cmsweixin7151]# echo $(($RANDOM+10000000))|md5sum

9e62014fd9eebdfe284758009e4e5087-

[root@cmsweixin7151]#

最后我们可以通过cut命令截取我们想要的字符串。

二、批量创建用户实践

2.1命令行拼接方式

批量生成十个用户,那我们就要在命令执行十次,所以我们就要生成十行命令,然后交给bash解释器执行。

[root@oldboy~]# echo stu{01..10}

stu01stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10

[root@oldboy~]# echo stu{01..10}|tr " " "\n"

stu01

stu02

stu03

stu04

stu05

stu06

stu07

stu08

stu09

stu10

[root@oldboy~]# echo stu{01..10}|xargs -n 1

stu01

stu02

stu03

stu04

stu05

stu06

stu07

stu08

stu09

stu10

[root@oldboy ~]#//接下来我们使用sed命令进行拼接。

[root@oldboy~]# echo stu{01..10}|xargs -n 1|sed -r 's#(.*)#\1#g'

stu01

stu02

stu03

stu04

stu05

stu06

stu07

stu08

stu09

stu10

[root@oldboy~]# echo stu{01..10}|xargs -n 1|sed -r 's#(.*)#useradd \1;#g'

useraddstu01;

useraddstu02;

useraddstu03;

useraddstu04;

useraddstu05;

useraddstu06;

useraddstu07;

useraddstu08;

useraddstu09;

useraddstu10;

这个时候我们如果将拼接的结果交给bash处理,结果就是创建了10个用户

[root@oldboy~]# echo stu{01..10}|xargs -n 1|sed -r 's#(.*)#useradd \1;#g'|bash

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

我们先删除刚才批量创建的用户,还是使用上面批量创建的方式。

[root@oldboy~]# echo stu{01..10}|xargs -n 1|sed -r 's#(.*)#userdel -r \1#g'|bash

userdel:/var/spool/mail/stu01 not owned by stu01, not removing

userdel:/home/stu01 not owned by stu01, not removing

userdel:/var/spool/mail/stu02 not owned by stu02, not removing

userdel:/home/stu02 not owned by stu02, not removing

userdel:/var/spool/mail/stu03 not owned by stu03, not removing

userdel:/home/stu03 not owned by stu03, not removing

userdel:/var/spool/mail/stu04 not owned by stu04, not removing

userdel:/home/stu04 not owned by stu04, not removing

userdel:/var/spool/mail/stu05 not owned by stu05, not removing

userdel:/home/stu05 not owned by stu05, not removing

userdel:/var/spool/mail/stu06 not owned by stu06, not removing

userdel:/home/stu06 not owned by stu06, not removing

userdel:/var/spool/mail/stu07 not owned by stu07, not removing

userdel:/home/stu07 not owned by stu07, not removing

userdel:/var/spool/mail/stu08 not owned by stu08, not removing

userdel:/home/stu08 not owned by stu08, not removing

userdel:/var/spool/mail/stu09 not owned by stu09, not removing

userdel:/home/stu09 not owned by stu09, not removing

userdel:/var/spool/mail/stu10 not owned by stu10, not removing

userdel:/home/stu10 not owned by stu10, not removing

接下我们继续拼接命令,在创建用户的同时给用户设备随机密码

[root@oldboy~]# echo stu{01..10}|xargs -n 1|sed -r 's#(.*)#useradd \1;echo $RANDOM|passwd\1 --stdin;#g'

useraddstu01;echo $RANDOM|passwd stu01 --stdin;

useraddstu02;echo $RANDOM|passwd stu02 --stdin;

useraddstu03;echo $RANDOM|passwd stu03 --stdin;

useraddstu04;echo $RANDOM|passwd stu04 --stdin;

useraddstu05;echo $RANDOM|passwd stu05 --stdin;

useraddstu06;echo $RANDOM|passwd stu06 --stdin;

useraddstu07;echo $RANDOM|passwd stu07 --stdin;

useraddstu08;echo $RANDOM|passwd stu08 --stdin;

useraddstu09;echo $RANDOM|passwd stu09 --stdin;

useraddstu10;echo $RANDOM|passwd stu10 --stdin;

将上面拼接好的字符串交给bash处理

[root@oldboy~]# echo stu{01..10}|xargs -n 1|sed -r 's#(.*)#useradd \1;echo $RANDOM|passwd\1 --stdin;#g'|bash

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu01.

passwd:all authentication tokens updated successfully.

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu02.

passwd:all authentication tokens updated successfully.

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu03.

passwd:all authentication tokens updated successfully.

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu04.

passwd:all authentication tokens updated successfully.

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu05.

passwd:all authentication tokens updated successfully.

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu06.

passwd:all authentication tokens updated successfully.

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu07.

passwd:all authentication tokens updated successfully.

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu08.

passwd:all authentication tokens updated successfully.

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu09.

passwd:all authentication tokens updated successfully.

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu10.

passwd:all authentication tokens updated successfully.

删除上面创建的用户

[root@oldboy~]# echo stu{01..10}|xargs -n 1|sed -r 's#(.*)#userdel \1#g'|bash

按上面的方法我们很快就会发现一个问题,我们创建的是随机密码,这样创建后连我们自己也不知道是什么密码了,所以我们要想办法把密码保存起来,那大家想一想我们有什么办法呢,我最初的想法是:

[root@oldboy~]# echo stu{01..10}|xargs -n 1|sed -r 's#(.*)#useradd \1;echo $RANDOM|passwd\1 --stdin; echo –e “\1\t $RANDOM”>>passwd.txt #g'|bash

大家想一下,这样可以吗?答案是否定的,因为后面保存的密码已经不是第一次生成的密码了,对吧。所以这时候我们需要使用一种方法提前生成密码并保存起来,然后在后面设置密码和保存密码的时候使用。

[root@oldboy~]# echo stu{01..10}|xargs -n 1|sed -r 's#(.*)#useradd \1;pass=$RANDOM;echo$pass|passwd \1 --stdin;echo-e"\1\t $pass">>pass.txt#g'|bash

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu01.

passwd:all authentication tokens updated successfully.

bash:line 1: echo-e: command not found

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu02.

passwd:all authentication tokens updated successfully.

bash:line 2: echo-e: command not found

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu03.

passwd:all authentication tokens updated successfully.

bash:line 3: echo-e: command not found

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu04.

passwd:all authentication tokens updated successfully.

bash:line 4: echo-e: command not found

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu05.

passwd:all authentication tokens updated successfully.

bash:line 5: echo-e: command not found

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu06.

passwd:all authentication tokens updated successfully.

bash:line 6: echo-e: command not found

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu07.

passwd:all authentication tokens updated successfully.

bash:line 7: echo-e: command not found

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu08.

passwd:all authentication tokens updated successfully.

bash:line 8: echo-e: command not found

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu09.

passwd:all authentication tokens updated successfully.

bash:line 9: echo-e: command not found

useradd:warning: the home directory already exists.

Notcopying any file from skel directory into it.

Creatingmailbox file: File exists

Changingpassword for user stu10.

passwd:all authentication tokens updated successfully.

bash:line 10: echo-e: command not found

[root@oldboy~]# echo stu{01..10}|xargs -n 1|sed -r 's#(.*)#useradd \1;pass=$RANDOM;echo$pass|passwd \1 --stdin;echo -e"\1\t $pass">>pass.txt#g'|bash

useradd:user 'stu01' already exists

Changingpassword for user stu01.

passwd:all authentication tokens updated successfully.

useradd:user 'stu02' already exists

Changingpassword for user stu02.

passwd:all authentication tokens updated successfully.

useradd:user 'stu03' already exists

Changingpassword for user stu03.

passwd:all authentication tokens updated successfully.

useradd:user 'stu04' already exists

Changingpassword for user stu04.

passwd:all authentication tokens updated successfully.

useradd:user 'stu05' already exists

Changingpassword for user stu05.

passwd:all authentication tokens updated successfully.

useradd:user 'stu06' already exists

Changingpassword for user stu06.

passwd:all authentication tokens updated successfully.

useradd:user 'stu07' already exists

Changingpassword for user stu07.

passwd:all authentication tokens updated successfully.

useradd:user 'stu08' already exists

Changingpassword for user stu08.

passwd:all authentication tokens updated successfully.

useradd:user 'stu09' already exists

Changingpassword for user stu09.

passwd:all authentication tokens updated successfully.

useradd:user 'stu10' already exists

Changingpassword for user stu10.

passwd:all authentication tokens updated successfully.

[root@oldboy~]# cat pass.txt

stu0113288

stu0224465

stu0323283

stu044573

stu0523015

stu0620841

stu0731821

stu0816954

stu093134

stu1028543

stu0130245

stu0230810

stu0324734

stu0416440

stu0517767

stu063100

stu076458

stu0815639

stu0914917

stu1011844

[root@oldboy~]#

我们可以上面讲过的其他方法替换生成随机密码的方法,也可以根据需要生成指定位数的密码,当然我们也可以使用seq生成序列。

2.2shell脚本循环

使用脚本创建用户,我觉得这个很简单一个循环就OK了,说简单就是把添加用户、设置密码,保存密码放在一个循环体里执行循环就OK。我个人认为这个要比命令行创建简单,我们来简单的演示一下,

[root@oldboy~]# for u in `echo {01..10}`;do useradd stu$u;pass=$RANDOM;echo $pass|passwdstu$u --stdin;echo -e "stu$u\t$pass";done

useradd:user 'stu01' already exists

Changingpassword for user stu01.

passwd:all authentication tokens updated successfully.

stu0129682

useradd:user 'stu02' already exists

Changingpassword for user stu02.

passwd:all authentication tokens updated successfully.

stu0211439

useradd:user 'stu03' already exists

Changingpassword for user stu03.

passwd:all authentication tokens updated successfully.

stu0317076

useradd:user 'stu04' already exists

Changingpassword for user stu04.

passwd:all authentication tokens updated successfully.

stu0423187

useradd:user 'stu05' already exists

Changingpassword for user stu05.

passwd:all authentication tokens updated successfully.

stu05427

useradd:user 'stu06' already exists

Changingpassword for user stu06.

passwd:all authentication tokens updated successfully.

stu069757

useradd:user 'stu07' already exists

Changingpassword for user stu07.

passwd:all authentication tokens updated successfully.

stu0716146

useradd:user 'stu08' already exists

Changingpassword for user stu08.

passwd:all authentication tokens updated successfully.

stu0822999

useradd:user 'stu09' already exists

Changingpassword for user stu09.

passwd:all authentication tokens updated successfully.

stu0913010

useradd:user 'stu10' already exists

Changingpassword for user stu10.

passwd:all authentication tokens updated successfully.

stu103806

当然你可以将生成的用户名和密码保存到一个文件里

[root@oldboy~]# for u in `echo {01..10}`;do useradd stu$u;pass=$RANDOM;echo $pass|passwdstu$u --stdin;echo -e "stu$u\t$pass">>pass.txt;done

useradd:user 'stu01' already exists

Changingpassword for user stu01.

passwd:all authentication tokens updated successfully.

useradd:user 'stu02' already exists

Changingpassword for user stu02.

passwd:all authentication tokens updated successfully.

useradd:user 'stu03' already exists

Changingpassword for user stu03.

passwd:all authentication tokens updated successfully.

useradd:user 'stu04' already exists

Changingpassword for user stu04.

passwd:all authentication tokens updated successfully.

useradd:user 'stu05' already exists

Changingpassword for user stu05.

passwd:all authentication tokens updated successfully.

useradd:user 'stu06' already exists

Changingpassword for user stu06.

passwd:all authentication tokens updated successfully.

useradd:user 'stu07' already exists

Changingpassword for user stu07.

passwd:all authentication tokens updated successfully.

useradd:user 'stu08' already exists

Changingpassword for user stu08.

passwd:all authentication tokens updated successfully.

useradd:user 'stu09' already exists

Changingpassword for user stu09.

passwd:all authentication tokens updated successfully.

useradd:user 'stu10' already exists

Changingpassword for user stu10.

passwd:all authentication tokens updated successfully.

三、总结及思考

此题是我们前面所学命令与知识的一个综合运用,我们回顾一下,主要涉及创建用户、非交互式设置密码、生成序列,管道,sed、date、生成随机数,md5sum、cut、echo –e等很多命令的使用,希望大家可以综合使用各种方式多试试。

最后我想提出来一个题,大家可以去试一试,就是批量更改文件名,比如我想把/tmp目录下所有以.txt结尾的文件改名为以.txt结尾,要求还是使用命令行拼接的方式处理。我提示一下,我们可以使用find命令查找,然后使用ls –l列表,再通过awk取到文件名,然后使用sed拼接命令,当然还很多,这只是我想到的一种。

四、批量改名

4.1使用脚本循环方式

[root@oldboy oldboy]# cat file.list

stu_10299_1_finished.jpg

stu_10299_2_finished.jpg

stu_10299_3_finished.jpg

stu_10299_4_finished.jpg

stu_10299_5_finished.jpg

[root@oldboyoldboy]# touch `cat file.list`

[root@oldboyoldboy]# ls

file.liststu_10299_2_finished.jpgstu_10299_4_finished.jpg

stu_10299_1_finished.jpgstu_10299_3_finished.jpgstu_10299_5_finished.jpg

[root@oldboyoldboy]# sh rename.sh

[root@oldboyoldboy]# ls

file.listrename.shstu_10299_1.jpgstu_10299_2.jpgstu_10299_3.jpgstu_10299_4.jpgstu_10299_5.jpg

[root@oldboyoldboy]# cat rename.sh

#!/bin/sh

forf in `ls *.jpg`

do

mv $f `echo $f|sed 's#_finished##g'`

done

[root@oldboyoldboy]#

思想是使用命令mv oldnae newname

4.2使用拼接字符串方式

使用awk命令拼接

[root@oldboyoldboy]# touch `cat file.list`

[root@oldboyoldboy]# ls

file.liststu_10299_1_finished.jpgstu_10299_3_finished.jpgstu_10299_5_finished.jpg

rename.shstu_10299_2_finished.jpgstu_10299_4_finished.jpg

[root@oldboyoldboy]# ls|awk -F "_finished" '{print "mv " $0}'

mvfile.list

mvrename.sh

mvstu_10299_1_finished.jpg

mvstu_10299_2_finished.jpg

mvstu_10299_3_finished.jpg

mvstu_10299_4_finished.jpg

mvstu_10299_5_finished.jpg

[root@oldboyoldboy]# ls *.jpg|awk -F "_finished" ' {print "mv " $0}'

mvstu_10299_1_finished.jpg

mvstu_10299_2_finished.jpg

mvstu_10299_3_finished.jpg

mvstu_10299_4_finished.jpg

mvstu_10299_5_finished.jpg

[root@oldboyoldboy]# ls *.jpg|awk -F "_finished" ' {print "mv " $0$1$2}'

mvstu_10299_1_finished.jpgstu_10299_1.jpg

mvstu_10299_2_finished.jpgstu_10299_2.jpg

mvstu_10299_3_finished.jpgstu_10299_3.jpg

mvstu_10299_4_finished.jpgstu_10299_4.jpg

mvstu_10299_5_finished.jpgstu_10299_5.jpg

[root@oldboyoldboy]# ls *.jpg|awk -F "_finished" ' {print "mv " $0" "$1$2}'

mvstu_10299_1_finished.jpg stu_10299_1.jpg

mvstu_10299_2_finished.jpg stu_10299_2.jpg

mvstu_10299_3_finished.jpg stu_10299_3.jpg

mvstu_10299_4_finished.jpg stu_10299_4.jpg

mvstu_10299_5_finished.jpg stu_10299_5.jpg

[root@oldboyoldboy]# ls *.jpg|awk -F "_finished" ' {print "mv " $0" "$1$2}'|bash

[root@oldboyoldboy]# ls

file.listrename.shstu_10299_1.jpgstu_10299_2.jpgstu_10299_3.jpgstu_10299_4.jpgstu_10299_5.jpg

[root@oldboyoldboy]#

使用sed命令

[root@oldboyoldboy]# ls *.jpg

stu_10299_1_finished.jpgstu_10299_3_finished.jpgstu_10299_5_finished.jpg

stu_10299_2_finished.jpgstu_10299_4_finished.jpg

[root@oldboyoldboy]# ls *.jpg|xargs -n1

stu_10299_1_finished.jpg

stu_10299_2_finished.jpg

stu_10299_3_finished.jpg

stu_10299_4_finished.jpg

stu_10299_5_finished.jpg

[root@oldboyoldboy]# ls *.jpg|xargs -n1|sed -r 's#(^.*)_finished(.*)#mv \1\2#g'

mvstu_10299_1.jpg

mvstu_10299_2.jpg

mvstu_10299_3.jpg

mvstu_10299_4.jpg

mvstu_10299_5.jpg

[root@oldboyoldboy]# ls *.jpg|xargs -n1|sed -r 's#(^.*)_finished(.*)#mv & \1\2#g'

mvstu_10299_1_finished.jpg stu_10299_1.jpg

mvstu_10299_2_finished.jpg stu_10299_2.jpg

mvstu_10299_3_finished.jpg stu_10299_3.jpg

mvstu_10299_4_finished.jpg stu_10299_4.jpg

mvstu_10299_5_finished.jpg stu_10299_5.jpg

[root@oldboyoldboy]# ls *.jpg|xargs -n1|sed -r 's#(^.*)_finished(.*)#mv & \1\2#g'|bash

[root@oldboyoldboy]# ls

file.listrename.shstu_10299_1.jpgstu_10299_2.jpgstu_10299_3.jpgstu_10299_4.jpgstu_10299_5.jpg

[root@oldboyoldboy]#

4.3使用rename命令

[root@oldboyoldboy]# ls

file.liststu_10299_1_finished.jpgstu_10299_3_finished.jpgstu_10299_5_finished.jpg

rename.shstu_10299_2_finished.jpgstu_10299_4_finished.jpg

[root@oldboy oldboy]# rename"_finished" "" *.jpg

[root@oldboyoldboy]# ls

file.listrename.shstu_10299_1.jpgstu_10299_2.jpgstu_10299_3.jpgstu_10299_4.jpgstu_10299_5.jpg

[root@oldboyoldboy]#

思想就是专业的人做专业的事

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

推荐阅读更多精彩内容