Linux基础介绍【第七篇】

linux用户分类
超级用户:UID=0,root
普通用户:UID 500起,由超级用户或具有超级用户权限的用户创建的用户。
虚拟用户:UID 1—499,为了满足文件或服务启动的需要而存在,一般都不能登录,只是傀儡用户。
用户关联的四个文件:
/etc/passwd:用户的账号文件
/etc/shadow:用户的密码文件
/etc/group:组的账号文件
/etc/gshadow:组的密码文件
账号管理
useradd(增):同adduser命令,执行此命令可在系统中添加用户。
userdel(删):执行此命令可删除用户及相关用户的配置或文件。
usermod(改):修改用户的命令,可以通过usermod来修改登录名、用户的家目录等。
usermod -s /sbin/nologin oldboy
usermod -s /bin/bash oldboy
id(查):查看用户的UID、GID及所归属的用户组。
passwd:执行此命令可为用户设置密码,更改/etc/shadow。
chage:修改用户密码有效期限,管理/etc/shadow。
su:用户角色切换工具。
sudo:sudo是通过另一个用户来执行命令,su是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo能在命令后面直接接命令执行,比如sudo ls /root,不需要root密码就可以执行只有root才能执行相应的命令或具备的目录权限;这个权限需要通过visudo命令或直接编辑/etc/sudoers来实现。
visudo:visudo配置sudo权限的编辑命令,也可以直接用vi编辑/etc/sudoers实现,推荐使用visudo来操作(会自动检查语法)。
/etc/skel目录
/etc/skel目录是用来存放新用户配置文件的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加的用户的家目录下;默认情况下,/etc/skel目录下的所有文件都是隐藏文件(以点开头的文件);通过修改、添加、删除/etc/skel目录下的文件,可以为新建的用户提供统一的、标准的、初始化用户环境。
删除/home/用户家目录 中的.bash_logout、.bash_profile、.bashrc产生的效果:-bash-4.1$
- [root@oldboy xiao1]# rm -f .bash
 - .bash_logout .bash_profile .bashrc
 - [root@oldboy xiao1]# rm -f .bash*
 - [root@oldboy xiao1]# su - xiao1
 - -bash-4.1$
 
解决办法:
从/etc/skel中拷贝.bash_logout、.bash_profile、.bashr到用户家目录即可解决。
- -bash-4.1$ cp /etc/skel/.bash* /home/xiao1/
 - -bash-4.1$ logout
 - [root@oldboy ~]# su - xiao1
 
/etc/login.defs配置文件
/etc/login.defs文件是用来定义创建用户时需要的一些用户的配置信息。如创建用户时,是否需要家目录,UID和GID的范围,用户及密码的有效期限等。
/etc/default/useradd文件
/etc/default/useradd文件是在使用useradd添加用户时的一个需要调用的一个默认文件,可以使用"useradd -D 参数",这样的命令格式来修改文件里面的内容。
- [root@oldboy ~]# cat /etc/default/useradd
 - # useradd defaults file
 - GROUP=100 #依赖于/etc/login.defs的USERGROUPS_ENAB参数,如果为no则此处控制。
 - HOME=/home #把用户的家目录创建在/home中
 - INACTIVE=-1 #是否启用账号过去停权,-1表示不启用
 - EXPIRE= #账号终止日期,不设置表示不启用
 - SHELL=/bin/bash #新用户默认所用的shell类型
 - SKEL=/etc/skel #配置新用户家目录的默认文件存放存放路径,当用useradd添加用户时,用户家目录下的文件,都从这里配置的目录中复制过去。
 - CREATE_MAIL_SPOOL=yes #创建mail文件
 
useradd命令
| 
 useradd参数选项  | 
 注释说明  | 
| 
 -c comment  | 
 新账号passwd挡的说明栏  | 
| 
 -d home_dir  | 
 新账号每次登入时所使用的home_dir。预设值为default_home内login名称,并当成登入时目录名称。  | 
| 
 -e expire_date  | 
 账号终止日期。日期的指定格式为MM/DD/YY。  | 
| 
 -f inactive_days  | 
 账号过期几日后永久停权。当值为0时账号则立刻被停权。而当值为-1时则关闭此功能,预设值为-1。  | 
| 
 -g initial_group  | 
 group名称或以数字来做为用户登入起始用户组(group)。用户组名须为系统现有存在的名称。用户组数字也须为现有存在的用户组。预设的用户组数字为1。  | 
| 
 -G group,[…]  | 
 定义此用户为多个不同groups的成员。每个用户组使用","逗号分隔。用户组名同-g选项的限制。默认值为用户的起始用户组。  | 
| 
 -m  | 
 用户目录如不存在则自动建立。如使用-k选项,skeleton dir内的档案将复制至用户目录下。然而在/etc/skel目录下的档案也会复制过去。任何在skeleton_diror /etc/skel的目录也相同会在用户目录下一一建立。The-k同-m不建立目录以及不复制任何档案为预设值。  | 
| 
 -M  | 
 不建立用户家目录,优先于/etc/login.defs文件的设定。一般创建虚拟用户时不建立家目录,部署服务时需要创建虚拟用户。  | 
| 
 -n  | 
 默认情况下用户的用户组与用户的名称会相同。如果命令加了-n参数就不会生成和用户名的用户组了。  | 
| 
 -s shell  | 
 用户登入后使用的shell名称。默认值为不填写,这样系统会指定预设的登入shell(根据/etc/default/useradd预设的值)。  | 
| 
 -u uid  | 
 用户的ID值。这个值必须是唯一的,除非用-o选项。数字不可为负值。  | 
useradd -e、-u、-G、-s、-d多参数组合的例子:
添加用户oldboy,并设置用户注释信息为HandsomeBoy,UID指定为806,归属为用户组root、oldboy、sa成员,其shell类型为/bin/sh,设置家目录为/oldboy。
- [root@oldboy ~]# useradd -c "HandsomeBoy" -u 806 -G root,sa,oldboy -s /bin/sh -d /oldboy6 oldboy6
 - [root@oldboy ~]# tail -1 /etc/passwd
 - oldboy6:x:806:806:HandsomeBoy:/oldboy6:/bin/sh
 - [root@oldboy ~]# id oldboy6
 - uid=806(oldboy6) gid=806(oldboy6) groups=806(oldboy6),0(root),510(oldboy),511(sa)
 
groupadd命令
| 
 groupadd参数选项  | 
 注释说明  | 
| 
 -g gid  | 
 指定用户组GID值。除非接-o参数(如:groupadd -g gid)否则ID值必须是唯一的数字(不能为负数)。如果不指定会从500开始。  | 
passwd命令
| 
 passwd参数选项  | 
 注释说明  | 
| 
 --stdin  | 
 从stdin读入密码  | 
| 
 -k --keep-tokens  | 
 保留即将过期的用户在期满后仍能使用  | 
| 
 -d --delete  | 
 删除用户密码,仅能以root权限操作  | 
| 
 -l --lock  | 
 锁住用户无权更改其密码,仅能通过root权限操作  | 
| 
 -u --unlock  | 
 解除锁定  | 
| 
 -f --force  | 
 强制操作,仅root权限才能操作  | 
| 
 -x --maximum=DAYS  | 
 两次密码修改的最大天数,后面接数字,仅能root权限操作  | 
| 
 -n --mininum=DAYS  | 
 两次密码修改的最小天数,后面接数字,仅能root权限操作  | 
| 
 -w --warning=DAYS  | 
 在距多少天提醒用户修改密码,仅能root权限操作  | 
| 
 -i --inactive=DAYS  | 
 在密码过期后多少天,用户被禁掉,仅能root权限操作  | 
| 
 -S --status  | 
 查询用户的密码状态,仅能root权限操作  | 
- [root@oldboy ~]# echo 123456|passwd --stdin oldboy
 - 或
 - [root@oldboy ~]# echo 123456 >p.log
 - [root@oldboy ~]# passwd --stdin < p.log
 
oldboy用户7天内不能更改密码,60天以后必须修改密码,过期前10天提示,过期后30天后禁止用户登录。
- [root@oldboy ~]# passwd -n 7 -x 60 -w 10 -i 30 oldboy
 - Adjusting aging data for user oldboy.
 - passwd: Success
 - [root@oldboy ~]# chage -l oldboy
 - Last password change : Dec 29, 2016 #最后密码更换时间
 - Password expires : Feb 27, 2017 #密码过期时间
 - Password inactive : Mar 29, 2017 #密码停权时间
 - Account expires : never
 - Minimum number of days between password change : 7 #最小修改时间间隔
 - Maximum number of days between password change : 60 #最大修改时间间隔
 - Number of days of warning before password expires : 10 #警告时间
 - [root@oldboy ~]#
 
/etc/shadow中查看
- [root@oldboy ~]# grep "\boldboy\b" /etc/shadow
 - oldboy:!!:17164:7:60:10:30::
 
批量创建10个用户stu01-stu10,并且设置随机8位密码,要求不能用shell循环(for、while等),只能用命令及管道实现。
echo stu{1..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1#g';
使用SHA算法来加密日期,并输出结果的前8个字符:
date +%s | sha256sum | base64 | head -c 8 ; echo
echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1 ; pass=$((RANDOM+10000000)); echo "$pass"|passwd --stdin \1; echo -e "\1 \t `echo "$pass"`">>/tmp/oldboy.log#g'|bash
修改用户密码有效期限相关命令chage
用法:chage [选项] 用户名
| 
 chage参数选项  | 
 注释说明  | 
| 
 -d --lastday  | 
 最近日期,将最近一次密码设置时间设为"最近日期"  | 
| 
 -E --expiredate  | 
 将账户过期时间设为"过期日期",日期写法:MM/DD/YY  | 
| 
 -h --help  | 
 显示此帮助信息并退出  | 
| 
 -l --list  | 
 显示账户年龄信息  | 
| 
 -m --mindays  | 
 最小天数,将两次改变密码之间相距的最小天数设为"最小天数"  | 
| 
 -M --maxdays  | 
 最大天数,将两次改变密码之间相距的最大天数设为"最大天数"  | 
| 
 -W --warndays  | 
 警告天数,将过期警告天数设为"警告天数"  | 
| 
 -I --inactive  | 
 失效天数,在密码过期后多少天,用户被禁掉  | 
修改账户过期时间:
- [root@oldboy ~]# chage -E ""2017/01/01 oldboy
 
查看账户的状态:
- [root@oldboy ~]# chage -l oldboy
 - Last password change : Dec 29, 2016
 - Password expires : Feb 27, 2017
 - Password inactive : Mar 29, 2017
 - Account expires : Jan 01, 2017
 - Minimum number of days between password change : 7 #7天内禁止修改密码
 - Maximum number of days between password change : 60 #60天后必须修改密码
 - Number of days of warning before password expires : 10 #过期前10天提醒oldboy修改密码
 
oldboy用户8天内不能更改密码,61天以后必须修改密码,过期前11通知用户,过期后31天后禁止用户登录。
- [root@oldboy ~]# chage -m 8 -M 61 -W 11 -I 31 oldboy
 - [root@oldboy ~]# chage -l oldboy
 - Last password change : Dec 29, 2016
 - Password expires : Feb 28, 2017
 - Password inactive : Mar 31, 2017
 - Account expires : Jan 01, 2017
 - Minimum number of days between password change : 8
 - Maximum number of days between password change : 61
 - Number of days of warning before password expires : 11
 
与passwd -n 8 -x 61 -w 11 -i 31 oldboy、chage -m8 -M61 -W10 -I30 oldboy功能相同只是参数不一样。
删除用户相关命令userdel
语法格式:userdel 用户名 或语法格式:userdel 用户名 -r
在生产场景中,不要轻易使用-r参数,这会在删除用户的同时删除用户家目录下的所有的文件和目录。如果一定要删除家目录,那么在删除前先备份。直接在/etc/passwd中注释要删除的用户记录是生产场景中常用的方法。
删除用户组相关命令groupdel
groupdel是用来删除用户组的,要求用户组名必须是已存在的。用groupdel删除用户组实际修改/etc/group(用户组文件)和/etc/gshadow(用户组加密文件)。
语法格式:groupdel 用户组
查看用户组:
grep 用户组 /etc/group
grep 用户组 /etc/gshadow
用户信息修改相关命令usermod
| 
 usermod参数选项  | 
 注释说明  | 
| 
 -e expire_date  | 
 加上用户账号停止日期。日期格式为MM/DD/YY。  | 
| 
 -g initial_group  | 
 更新用户新的起始登入用户组。用户组名必须已存在。  | 
| 
 -U  | 
 取消冻结用户的密码,使恢复登录,实际同样是修改/etc/shadow的  | 
| 
 -G group,[…]  | 
 定义用户为一堆groups的成员。每个用户组只用","逗号隔开。  | 
| 
 -l login_name  | 
 变更用户login时的名称为login_name。其余信息不变。usermod -l newname oldname  | 
| 
 -s shell  | 
 指定新登入shell。  | 
| 
 -u uid  | 
 指定用户UID只。这个值必须是唯一的,除非接-o参数,如usermod -u 505 -o oldboy(不能为负数)  | 
| 
 -L  | 
 冻结用户的密码,使无法登陆。  | 
| 
 -c  | 
 修改用户账号的备注信息  | 
| 
 -d  | 
 修改用户家目录  | 
| 
 -f  | 
 修改在密码过期后多少天关闭该账号  | 
将oldboy用户的注释信息修改为OldBoy,UID修改为1806,归属修改为用户组root、sa成员,其shell类型修改为/bin/tcsh,设置家目录为/tmp/oldboy。
- [root@oldboy ~]# grep oldboy /etc/passwd
 - oldboy:x:806:806:HandsomeBoy:/oldboy:/bin/sh
 - [root@oldboy ~]# grep "\boldboy\b" /etc/passwd
 - [root@oldboy ~]# usermod -c OldBoy -u 1806 -G root,sa -s /bin/tcsh -d /tmp/oldboy oldboy
 - [root@oldboy ~]# grep oldboy /etc/passwd
 - oldboy:x:1806:806:OldBoy:/tmp/oldboy:/bin/tcsh
 
使用户在2012-01-22后过期
- [root@oldboy ~]# usermod -e 01/22/12 oldboy #chage -E 01/22/12 oldboy一样
 - [root@oldboy ~]# chage -l oldboy
 - Last password change : Dec 29, 2016
 - Password expires : never
 - Password inactive : never
 - Account expires : Jan 22, 2012
 - Minimum number of days between password change : 0
 - Maximum number of days between password change : 99999
 - Number of days of warning before password expires : 7
 
w、who、users、last、lastlog命令
w:显示已经登录的用户,并且都做了什么的信息。查看的信息与/var/run/utmp文件有关。
- [root@oldboy ~]# w
 - 14:37:32 up 3:47, 1 user, load average: 0.00, 0.00, 0.00
 - USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
 - root pts/0 192.168.31.1 11:43 0.00s 0.13s 0.00s w
 
who:显示哪些用户在登录,终端及登录时间,来源主机。
- [root@oldboy ~]# who
 - root pts/0 2016-12-30 11:43 (192.168.31.1)
 
users:仅仅显示哪些用户在登录
- [root@oldboy ~]# users
 - root
 
last:显示已登录的用户列表及登录时间等,查看的信息与/var/log/wtmp及/var/log/btmp两个文件有关。
- [root@oldboy ~]# last
 - root pts/0 192.168.31.1 Fri Dec 30 11:43 still logged in
 - reboot system boot 2.6.32-504.el6.x Fri Dec 30 10:50 - 14:40 (03:50)
 - test tty1 Fri Dec 30 09:01 - down (01:24)
 - test tty1 Fri Dec 30 09:01 - 09:01 (00:00)
 - root pts/0 192.168.31.1 Fri Dec 30 08:27 - down (01:59)
 - reboot system boot 2.6.32-504.el6.x Fri Dec 30 08:26 - 10:26 (02:00)
 - root pts/1 192.168.31.1 Thu Dec 29 21:04 - 00:06 (03:01)
 - root pts/1 192.168.31.1 Thu Dec 29 21:04 - 21:04 (00:00)
 - root pts/0 192.168.31.1 Thu Dec 29 18:28 - down (05:39)
 
lastlog:报告最近的所有系统用户的登录信息,查看的信息与/var/log/lastlog日志有关。
- [root@oldboy ~]# lastlog
 - Username Port From Latest
 - root pts/0 192.168.31.1 Fri Dec 30 11:43:36 +0800 2016
 - saslauth **Never logged in**
 - postfix **Never logged in**
 - sshd **Never logged in**
 - tcpdump **Never logged in**
 - test tty1 Fri Dec 30 09:01:52 +0800 2016
 - oldgirl **Never logged in**
 - xiao1 **Never logged in**
 
数据文件查看,数据文件不能用cat查看。
- [root@oldboy ~]# file /var/log/lastlog
 - /var/log/lastlog: data
 
groups命令
语法格式:groups 用户名
- [root@oldboy ~]# groups oldboy #查询oldboy所属的用户组
 - oldboy : oldboy root sa #oldboy用户分别为oldboy、root、sa三个组的成员
 
su命令
语法格式:su [选项参数] 用户名
| 
 su参数选项  | 
 注释说明  | 
| 
 -,-l,-login  | 
 make the shell a login shell,使一个shell成为登陆的shell,如执行su - oldboy,并且使用oldboy用户的环境变量配置,如/home/oldboy/.bash_profile等。  | 
| 
 -c,--command=COMMAND  | 
 切换到一个shell下,执行一个命令,然后退出所切换的用户环境。  | 
| 
 -m,--preserve-environment  | 
 切换用户时,不重置用户环境变量,-p的功能同-m。  | 
| 
 -s,--shell=SHELL  | 
 如果/etc/shells允许,则运行指定的shell。  | 
su命令总结:
1、普通用户切换到root用户,可以使用su - 或su – root,必须输入root的密码才能完成切换。
2、root用户切换到普通用户,可以使用"su – 用户名"的写法,不需要输入密码就能切换完成。在切换到普通用户后,在执行一些命令如ifconfig时,可能会遭遇到环境变量PATH路径问题而找不到系统命令(一般是/sbin,/usr/sbin等下面的命令),这时就需要将普通用户的PATH,配置成root的PATH。
3、如果仅仅希望以某个用户的角色执行命令,而不直接切换到该用户下操作,可以使用"su - 用户名 -c 命令" 的方式执行。
- [root@oldboy ~]# su - oldboy -c "touch a.txt"
 - [root@oldboy ~]# ls -la /home/oldboy/a.txt
 - -rw-rw-r-- 1 oldboy oldboy 0 Dec 30 16:05 /home/oldboy/a.txt
 
sudo命令
sudo工作原理

语法格式:sudo [参数选项] 命令
| 
 sudo参数选项  | 
 注释说明  | 
| 
 -l  | 
 列出用户在主机上可用的和被禁止的命令,当配置好sudo授权规则后,可用这个参数来查看授权情况。  | 
| 
 -v  | 
 验证用户的时间戳,当用户运行sudo,输入用户的密码后,在短时间内可以不用输入口令直接进行sudo操作,用-v可以跟踪最新的时间戳。  | 
| 
 -u  | 
 指定以某个用户身份执行特定的命令操作。oldboy ALL=(ALL) /bin/cp  | 
| 
 -k  | 
 同-K,删除时间戳,下一个sudo命令要求提供密码,前提是该用户授权中不能有NOPASSWD:参数。时间戳默认5分钟失效。  | 
visudo相当于vi /etc/sudoers。
visudo -c检查语法
主机别名:
13 # Host_Alias FILESERVERS = fs1, fs2
14 # Host_Alias MAILSERVERS = smtp, smtp2
用户别名:
定义系统管理用户别名ADMINS,包含成员oldboy,mikem及sa组的成员。
User_Alias ADMINS = oldboy, mikem, %sa
注意定义的规范。
定义用户别名NETADMINS来管理网络,包含成员leo,maya。
User_Alias NETADMINS = leo, maya
定义用户别名USERADMINS来管理用户,包含成员zuma。
User_Alias USERADMINS = zuma
特别说明:为了方便管理,要尽可能使用有意义的名称作为别名。
命令别名:
27 # Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
案例:
- User_Alias ADMINS = oldboy,%sa
 - User_Alias CHUJIADMIN = oldboy,oldgirl
 - Host_Alias SERVERS = oldboy,test
 - Cmnd_Alias ADMINCMD = /bin/rm
 - Cmnd_Alias USER = /usr/bin/useradd
 - Runas_Alias OP = root
 - Runas_Alias OP1 = oldboy
 - ADMINS SERVERS =(OP) NOPASSWD:ADMINCMD,USER
 - CHUJIADMIN SERVERS =(OP) NOPASSWD:USER
 
sudo配置文件/etc/sudoers授权规则注意事项总结:
1、授权规则中的所有ALL字符串必须为大写字母。
2、禁止的命令尽量放在后面,使用!排除(!/sbin/fdisk)。
3、一行内容超长可以用"\"斜线换行。
4、"!"叹号表示非,就是命令取反的意思,即禁止执行的命令。
Linux基础介绍【第七篇】的更多相关文章
- Linux基础介绍【第二篇】
		
远程连接Linux的原理 SHH远程连接介绍 当前,在几乎所有的互联网企业环境中,最常用的Linux提供远程连接服务的工具就是SSH软件,SSH分为SSH客户端和SSH服务端两部分.其中,SSH服务端 ...
 - Linux基础介绍【第一篇】
		
Linux简介 什么是操作系统? 操作系统,英文名称Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心 ...
 - Linux基础介绍【第九篇】
		
服务器添加3块磁盘的体系结构 [root@oldboylinux test]# free -m total used free shared buffers cached M ...
 - Linux基础知识第七讲,用户权限以及用户操作命令
		
目录 Linux基础知识第七讲,用户权限以及用户操作命令 一丶简介linux用户,用户权限,组的概念. 1.1 基本概念 1.2 组 1.3 ls命令查看权限. 二丶用户权限修改命令 1.chmod ...
 - Linux基础介绍【第四篇】
		
Linux文件和目录的属性及权限 命令: [root@oldboy ~]# ls -lhi total 40K 24973 -rw-------. 1 root root 1.1K Dec 10 16 ...
 - Linux基础介绍【第八篇】
		
Linux网络基础 网线 568A 568B 线序:橙白橙 绿白蓝 蓝白绿 棕白棕 交换机.路由器 交换机:DLINK.H3C.CISCO 交换机(Switch)是一种用于电信号转发的网络设备.它可以 ...
 - Linux基础介绍【第六篇】
		
定时任务crond介绍 crond是什么? crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件.一般情况下,安装完CentOS5/6 linux操作系统之后,默认便会启动cro ...
 - Linux基础介绍【第五篇】
		
linux权限位 Linux文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件属主权限.属组权限.其他用户权限. r:read可读权限,对应数字4: w:write可写权限,对应数字 ...
 - Linux基础介绍【第三篇】
		
更改SSH服务端远程登录的配置 windows服务端的默认远程管理端口是3389,管理员用户是administrator,普通用户是guest.Linux的管理用户是root,普通用户默认有很多个,远 ...
 
随机推荐
- docker——容器安装tomcat
			
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
 - 故障重现, JAVA进程内存不够时突然挂掉模拟
			
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
 - C#高性能TCP服务的多种实现方式
			
哎~~ 想想大部分园友应该对 "高性能" 字样更感兴趣,为了吸引眼球所以标题中一定要突出,其实我更喜欢的标题是<猴赛雷,C#编写TCP服务的花样姿势!>. 本篇文章的主 ...
 - SSH实战  ·  唯唯乐购项目(中)
			
用户模块 三:一级分类的查询 创建一级分类表并导入基本数据 CREATE TABLE `category` ( `cid` int(11) NOT NULL AUTO_INCREMENT, ` ...
 - web全栈开发之网站开发二(弹出式登录注册框前端实现-类腾讯)
			
这次给大家分享的是目前很多网站中流行的弹出式登录框,如下面的腾讯网登录界面,采用弹出式登录的好处是大大提升了网站的用户体验和交互性,用户不用重新跳转到指定的页面就能登录,非常方便 先来个演示地址 要实 ...
 - redux-undo
			
简介 通过包装reducer,创建一个state History,保留历史state,可以做退一步,进一步操作 1.install npm install --save redux-undo@beta ...
 - Ubuntu 16.10 安装KolourPaint 4画图工具
			
KolourPaint 4画图工具简单实用,可以绘画.视频处理和图标编辑: • 绘画:绘制图表和“手绘” • 视频处理:编辑截图和照片;应用特效 • 图标编辑:绘画剪贴和标识透明化 1.在Ubuntu ...
 - Nhibernate的Session管理
			
参考:http://www.cnblogs.com/renrenqq/archive/2006/08/04/467688.html 但这个方法还不能解决Session缓存问题,由于创建Session需 ...
 - MongoDB系列(二):C#应用
			
前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...
 - svn常用命令
			
1.新建版本库 [root@localhost repos]# mkdir -p project [root@localhost repos]# svnadmin create project [ro ...