useradd 命令
用于在linux系统中创建用户信息。
参数解释如下:
-c comment
给账户添加注释信息,说明此账户的是干什么用的,有些linux上把它作为用户的全名
-d dir
为用户指定主目录;如果不指定,将使用 /etc/default/useradd中HOME指定的路径建立主目录,主目录名称为用户名
-m
此选项会检查-d指定的主目录是否存在,如果不存在则创建它;如果没有指定主目录,则以/etc/default/useradd中HOME的值创建一个以账户名为名字的目录
-k
skel如果没有此选项 -m会以/etc/default/useradd中SKEL指定的目录为模板创建用户主目录;如果指定了则以指定的目录创建主目录。模板内容一般包括用户登录后的一些设定,如.profile等
-M
不创建主目录,即使-d指定了主目录
-u uid
指定用户的ID,如果不指定,系统会根据/etc/login.defs中UID_MIN分派一个,比如,UID_MIN值为1000,系统已经有一个1001的账户,则系统会分派1002给此账户。
-g gid
指定用户所属的组的组ID,/etc/login.defs中有一个GID_MIN,使用方法和UID_MIN一样
-G [gname1,gname2 ...]
这里指定用户所属的次要的组 参数为以","分隔的组名称;此选项会修改/etc/group对应组名的第四个字段,比如 -G指定了组名sys,如果这个组存在,就会在sys对应的行上写入",username"
-r
创建一个系统账户;系统账户的ID由/etc/login.defs中SYSTEM_UID_MIN指定
-s shell
指定用户的登录Shell,此shell必须是/etc/shells中的一;如果不指定,会使用/etc/default/useradd中SHELL指定默认值
-p
指定账户的密码;如果不指定,系统会在/etc/shadow中此账户的密码字段里写一个"!",表示此账户禁用,可以用passwd给用户设定密码;如果指定了密码,系统会调用API crypt( )把密码加密(/etc/shadow中保存的是加密后的密码,只有root可以修改,同组账户可以查看);
加密方法可以查看crypt:man 3 crypt,由此还可以知道,密码中可以包含64种字符,用正则表达式表示:[a–zA–Z0–9./]。
useradd还有一些和密码有效期有关的选项,具体请看man。
在linux中,使用ln命令。
当需要在不同的目录,用到相同的文件时,不需要在每一个需要的目录下都放一个必须相同的文件,只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
例如:ln –s /bin/less /usr/local/bin/less
-s 是代号(symbolic)的意思。
注意:
第一,ln命令会保持每一处链接文件的同步性,不论你改动了哪一处,其它的文件都会发生相同的变化;
第二,ln的链接又软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
如果用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。
指令详细说明
指令名称 : ln
使用权限 : 所有使用者
使用方式 : ln [options] source dist,其中 option 的格式为 :
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
说明 : Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。
ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。
不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
-f : 链结时先将与 dist 同档名的档案删除
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
--help : 显示辅助说明
--version : 显示版本
看下面的例子:
ln -s yy zz
将文件 yy 产生一个 hard link : zz
ln yy xx
介绍下Vim的替换字符串方法技巧。
1,基本替换
:s/str1/str2/ 替换当前行第一个str1为str2
:s/str1/str2/g 替换当前行所有str1为str2
:n,$s/str1/str2/ 替换第 n 行开始到最后一行中每一行的第一个str1为str2
:n,$s/str1/str2/g 替换第 n 行开始到最后一行中每一行所有str1为str2
(n 为数字,若 n 为 .,表示从当前行开始到最后一行)
:%s/str1/str2/(等同于 :g/str1/s//str2/) 替换每一行的第一个str1为str2
:%s/str1/str2/g(等同于 :g/str1/s//str2/g) 替换每一行中所有str1为str2
2,可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#str1/#str2/# 替换当前行第一个str1/ 为str2/
(使用+ 来 替换 / ):
3,文件中删除^M
问题描述:对于换行,Windows下用回车换行(0A0D)来表示,Linux下是回车(0A)来表示。这样,将window上的文件拷到Unix上用时,总会有个^M,请写个用在Unix下的过滤Windows文件的换行符(0D)的shell或c程序。有两种方法可以完成此目的:
(1)使用命令:
(2)使用命令:
注意:
在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M。必须要手工进行输入,而不是粘贴。
在vim中处理:首先使用vim打开文件,然后按ESC键,接着输入命令:
:%s/^M$//g
如果上述方法无用,则正确的解决办法是:
(2) tr -d "\015" < old_file_name > new_file_name或者 cat oldfilename | tr -d "\015" > new_file_name
strings A>B
4,其它技巧
利用 :s 命令可以实现字符串的替换。具体的用法包括:
:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g 功能同上
从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。