linux命令(用户)
一.常用命令
1.1 ls
ls 命令是 linux 下最常用的命令,ls 命令就是 list 的缩写。
	ls 用来打印出当前目录的清单。如果 ls 指定其他目录,那么就会显示指定目录里的文件及文件夹清单。
	通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。
	
	(1)命令格式
	ls [选项] [目录名]
	(2)常用参数
	参数	描述
	-a	–all 列出目录下的所有文件,包括以 . 开头的隐含文件
	-l	除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
	-d	–directory 将目录象文件一样显示,而不是显示其下的文件
	-h	–human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
	-t	以文件修改时间排序
	
	eg:
	列出/home目录下的所有文件
	ls -a /home
	列出/home 文件夹下的所有文件和目录的详细资料
	ls -a -l /home
	ls -al /home
1.2 cd
	cd 命令是 change directory 的缩写,切换当前目录至指定的目录。
	
	(1)命令格式
	cd [目录名]
	
	(2)常用范例
	从当前目录进入系统根目录:
	cd /
	从当前目录进入父目录:
	cd ..
	从当前目录进入当前用户主目录:
	cd ~
	从当前目录进入上次所在目录:
	cd -
	
1.3 pwd
	pwd 命令查看“当前工作目录”的完整路径。pwd 命令是 Print Working Directory 的缩写。
	
	(1)命令格式
	pwd [选项]
	
	(2)常用参数
	参数	描述
	-P	显示实际物理路径,而非使用连接(link)路径
	-L	当目录为连接路径时,显示连接路径
	
	(3)常用范例
	显示当前目录所在路径:
	pwd
	显示当前目录的物理路径:
	pwd -P
	显示当前目录的连接路径:
	pwd -L
	
另:常用快捷方式:
	Tab: 这个键是最有用的键了,也是敲击概率最高的一个键。因为当你打一个命令打一半时,它会帮你补全的。不光是命令,当你打一个目录时,同样可以补全。	
	Ctrl + C:这个是用来终止当前命令的快捷键,当然你也可以输入一大串字符,不想让它运行直接Ctrl + C,光标就会跳入下一行。 
	
	Ctrl + D: 退出当前终端,同样你也可以输入exit。
	Ctrl + L: 清屏,使光标移动到第一行。
	Ctrl+S	暂停当前程序,暂停后按下任意键恢复运行
	Ctrl+Z	将当前程序放到后台运行,恢复到前台为命令fg
	Ctrl+A	将光标移至输入行头,相当于Home键
	Ctrl+E	将光标移至输入行末,相当于End键
	Ctrl+K	删除从光标所在位置到行末
	Alt+Backspace	向前删除一个单词
	Shift+PgUp	将终端显示向上滚动
	Shift+PgDn	将终端显示向下滚动
	
	显示历史输入命令:方向上键↑
	
	通配符:
	*	匹配 0 或多个字符
	?	匹配任意一个字符
	[list]	匹配 list 中的任意单一字符
	[!list]	匹配 除list 中的任意单一字符以外的字符
	[c1-c2]	匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
	{string1,string2,...}	匹配 string1 或 string2 (或更多)其一字符串
	{c1..c2}	匹配 c1-c2 中全部字符 如{1..10}
	
	使用man 命令查看帮助文档
	eg: man ls
二.用户及用户组管理
	1.多用户多任务
	Linux 是一个多用户、多任务的操作系统。
	有时可能是很多用户同时用同一个系统,但并不所有的用户都一定都要做同一件事,所以这就有多用户多任务之说;
	需要注意的是:多用户多任务并不是大家同时挤到一接在一台机器的的键盘和显示器前来操作机器,多用户可能通过远程登录来进行,比如对服务器的远程控制,只要有用户权限任何人都是可以上去操作或访问的;
	
	2.用户角色区分
	用户在系统中是分角色的,在Linux系统中,由于角色不同,权限和所完成的任务也不同;值得注意的是用户的角色是通过UID和识别的,特别是UID;在系统管理中,系统管理员一定要坚守UID 唯一的特性;
	root 用户:系统唯一,是真实的,可以登录系统,可以操作系统任何文件和命令,拥有最高权限;
	虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等;这类用户都系统自身拥有的,而非后来添加的,当然我们也可以添加虚拟用户;
	普通真实用户:这类用户能登录系统,但只能操作自己家目录的内容;权限有限;这类用户都是系统管理员自行添加的;
	
	3.用户和用户组概念
	通过前面对Linux 多用户的理解,我们明白Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)。比如我们的同事想用我的计算机,但我不想让他用我的用户名登录,因为我的用户名下有不想让别人看到的资料和信息(也就是隐私内容)这时我就可以给他建一个新的用户名,让他用我所开的用户名去折腾,这从计算机安全角度来说是符合操作规则的;
	用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;
	
	用户和用户组的对应关系是:一对一、多对一、一对多或多对多;
	一对一:某个用户可以是某个组的唯一成员;
	多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;比如beinan和linuxsir两个用户只归属于beinan用户组;
	一对多:某个用户可以是多个用户组的成员;比如beinan可以是root组成员,也可以是linuxsir用户组成员,还可以是adm用户组成员;
	多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组;其实多对多的关系是前面三条的扩展;理解了上面的三条,这条也能理解;
	
	4.用户和用户组的相关配置
	
	1)与用户(user)相关的配置文件;
	/etc/passwd 注:用户(user)的配置文件;
	/etc/shadow 注:用户(user)影子口令文件;
2)与用户组(group)相关的配置文件;
	/etc/group 注:用户组(group)配置文件;
	/etc/gshadow 注:用户组(group)的影子文件;
	
	5.查看用户信息
	--使用 cat /etc/passwd  查看用户信息(这里 cat 命令用于读取指定文件的内容并打印到终端输出)
	
	root:x:0:0:root:/root:/bin/bash
	bin:x:1:1:bin:/bin:/sbin/nologin
	daemon:x:2:2:daemon:/sbin:/sbin/nologin
	adm:x:3:4:adm:/var/adm:/sbin/nologin
	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
	sync:x:5:0:sync:/sbin:/bin/sync
	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
	
	可以看到/etc/passwd的内容由":"分成了7段,每个字段的具体含义是:
	1)用户名(如第一行中的root就是用户名),代表用户账号的字符串。用户名字符可以是大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法。虽然用户名中可以出现点,但不建议使用,尤其是首位为点时,另外减号也不建议使用,因为容易造成混淆。
	2)存放的就是该账号的口令,为什么是’x’呢?早期的unix系统口令确实是存放在这里,但基于安全因素,后来就将其存放到/etc/shadow中了,在这里只用一个’x’代替。
	3)这个数字代表用户标识号,也叫做uid。系统识别用户身份就是通过这个数字来的,0就是root,也就是说你可以修改test用户的uid为0,那么系统会认为root和test为同一个账户。通常uid的取值范围是0~65535,0是超级用户(root)的标识号,1~499由系统保留,作为管理账号,普通用户的标识号从500开始,如果我们自定义建立一个普通用户,你会看到该账户的标识号是大于或等于500的。
	4)表示组标识号,也叫做gid。这个字段对应着/etc/group 中的一条记录,其实/etc/group和/etc/passwd基本上类似。
	5)注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等等。不过,当你使用finger的功能时就会显示这些信息的。
	6)用户的家目录,当用户登录时就处在这个目录下。root的家目录是/root,普通用户的家目录则为/home/username,这个字段是可以自定义的,比如你建立一个普通用户test1,要想让test1的家目录在/data目录下,只要修改/etc/passwd文件中test1那行中的该字段为/data即可。
	7)shell,用户登录后要启动一个进程,用来将用户下达的指令传给内核,这就是shell。Linux的shell有很多种sh, csh, ksh,tcsh,bash等,而Redhat/CentOS的shell就是bash。查看/etc/passwd文件,该字段中除了/bin/bash外还有/sbin/nologin比较多,它表示不允许该账号登录。如果你想建立一个账号不让他登录,那么就可以把该字段改成/sbin/nologin,默认是/bin/bash。
--使用 /etc/shadow  查看用户信息
	
	root:$1$8bVwhufy$7qyCLbpUfG9YzvkRrIB.m1::0:99999:7:::
	bin:*:17110:0:99999:7:::
	daemon:*:17110:0:99999:7:::
	adm:*:17110:0:99999:7:::
	
	/etc/shadow文件和/etc/passwd类似,用":"分割成了9段,各个字段含义如下:
	
	1)用户名,跟/etc/passwd对应。
	2)用户密码,这个才是该账号的真正的密码,不过这个密码已经加密过了,但是有些黑客还是能够解密的。所以为了安全,该文件属性设置为600,只允许root读写。
	3)上次更改密码的日期,这个数字是这样计算得来的,距离1970年1月1日到上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是365*(2012-1970)+1=15331。
	4)要过多少天才可以更改密码,默认是0,即不限制。
	5)密码多少天后到期。即在多少天内必须更改密码,例如这里设置成30,则30天内必须更改一次密码,否则将不能登录系统,默认是99999,可以理解为永远不需要改。
	6)密码到期前的警告期限,若这个值设置成7,则表示当7天后密码过期时,系统就发出警告告诉用户,提醒用户他的密码将在7天后到期。
	7)账号失效期限。你可以这样理解,如果设置这个值为3,则表示:密码已经到期,然而用户并没有在到期前修改密码,那么再过3天,则这个账号就失效了,即锁定了。
	8)账号的生命周期,跟第三段一样,是按距离1970年1月1日多少天算的。它表示的含义是,账号在这个日期前可以使用,到期后账号作废。
	9)作为保留用的,没有什么意义。
	
	
	6.用户相关命令
2.6.1 useradd 添加用户
	语法:  useradd [-u UID] [-g GID] [-d HOME] [-M] [-s] username
	-u 自定义UID
	-g 使其属于已经存在的某个GID
	-d 自定义用户的家目录
	-M 不建立家目录
	-s 自定义shell
	
	eg: useradd -M test1
	你会发现,创建test1时,加上了-M选项后,在/etc/passwd文件中test1那行的第六字段依然有/home/test1,K可是在home中没有此文件夹。
2.6.2 userdel 删除用户
	语法:userdel [-r] username
	-r 选项的作用是删除用户时,连同用户的家目录一起删除。
	
	eg:userdel -r test1
	
2.6.3 passwd username 创建/修改一个用户的密码
	等创建完账户后,默认是没有设置密码的,虽然没有密码,但该账户同样登录不了系统。只有设置好密码后方可登录系统。
	为用户创建密码时,为了安全起见,请尽量设置复杂一些。你可以按照这样的规则来设置密码:a. 长度大于10个字符;b. 密码中包含大小写字母数字以及特殊字符(*&等);c. 不规则性(不要出现root, happy, love,linux,123456,111111等等单词或者数字);d. 不要带有自己名字、公司名字、自己电话、自己生日等。
	
	【passwd 后不跟用户名,是修改当前用户密码】
	
2.6.4 usermod 修改用户信息
	语法:usermod [-option] username
	-c<备注>  修改用户帐号的备注文字。
	-d登入目录>  修改用户登入时的目录。
	-e<有效期限>  修改帐号的有效期限。
	-f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
	-g<群组>  修改用户所属的群组。
	-G<群组>  修改用户所属的附加群组。
	-l<帐号名称>  修改用户帐号名称。
	-L  锁定用户密码,使密码无效。
	-s<shell>  修改用户登入后所使用的shell。
	-u<uid>  修改用户ID。
	-U  解除密码锁定。
	
	eg:修改test1 的uid为2000,群组id为1000
	usermod -u 2000 -g 1000 test1
	修改test1 的用户名为zhiyou1
	usermod -l zhiyou1 test1
2.6.5 su/sudo 切换用户
	--查看用户 who am i
	smile    pts/0        2017-09-24 05:55 (:0)
	1)打开当前伪终端的用户的用户名
	2)伪终端.伪终端就是当你在图形用户界面使用 /dev/tty7 时每打开一个终端就会产生一个伪终端, pts/0 后面那个数字就表示打开的伪终端序号
	3)当前伪终端的启动时间。
--查看用户名 
	whoami
	echo $LOGNAME
	
	
	--切换用户
	语法: su [-] username	Linux系统中,有时候普通用户有些事情是不能做的,除非是root用户才能做到。这时就需要临时切换到root身份来做事了。
	使用su - 就可以切换成root身份,前提是知道root的密码。
使用su时,后面可以跟”-”也可以不跟,普通用户su不加username时就是切换到root用户,当然root用户同样可以su到普通用户。
	
	[root@localhost ~]# su - smile
	Last login: Sun Sep 24 06:49:48 PDT 2017 on pts/0
	[smile@localhost ~]$ exit
	logout
	[root@localhost ~]# su smile
	[smile@localhost root]$ pwd
	/root
加”-“后会连同用户的环境变量一起切换过来。su test 后虽然切换到了test用户,但是当前目录还是切换前的/root目录,然后当用su - test时切换用户后则到了test的家目录/home/test。当用root切换普通用户时,是不需要输入密码的。这也体现了root用户至高无上的权利。
	
	用su是可以切换用户身份,如果每个普通用户都能切换到root身份,如果某个用户不小心泄漏了root的密码,那岂不是系统非常的不安全?没有错,为了改进这个问题,产生了sudo这个命令。使用sudo执行一个root才能执行的命令是可以办到的,但是需要输入密码,这个密码并不是root的密码而是用户自己的密码。默认只有root用户能使用sudo命令,普通用户想要使用sudo,是需要root预先设定的,即,使用visudo命··令去编辑相关的配置文件/etc/sudoers。如果没有visudo这个命令,请使用” yum install -y sudo”安装。
	
另:finger 注:查看用户信息工具 id 注:查看用户的UID、GID及所归属的用户组 chfn 注:更改用户信息工具	
	7.查看用户组相关信息
	在Linux里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源。
	
	--在终端使用cat /etc/group 
	
	root:x:0:
	bin:x:1:
	daemon:x:2:
	sys:x:3:
	adm:x:4:
	tty:x:5:
	disk:x:6:
	lp:x:7:
	
	/etc/group文件中的内容共有四个字段:
	1)groupname组名
	2)password 组密码,上面的 password 字段为一个 x 并不是说密码就是它,只是表示密码不可见而已。
	3)GID 组id
	4)user_list 本字段可以为空;如果字段为空表示用户组为GID的用户名;
2.7.1 groups  显示用户所属的用户组
	eg:查看smile用户所在的用户组
	groups
2.7.2 groupadd 添加分组
	语法:groupadd groupname
	  -g GID:指定GID
      -r:系统组
2.7.3 groupdel 删除分组
	语法:groupdel groupname
2.7.4 groupmod 修改用户组信息
	语法: groupmod groupname
	-g GID
    -n NEW_GRP_NAME
2.7.1 id username 查看用户信息
三.文件命令
	pwd 打印出当前所在目录
	cd 进入到某一个目录(./当前目录    ../当前目录的上一级目录)
3.1 mkdir
	mkdir命令用来创建指定名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
	mkdir 命令是 make directory 的缩写。
	
	(1)命令格式
	mkdir [选项] 目录
	
	(2)常用参数
	参数	描述
	-m --mode=模式	设定权限<模式>
	-p --parents	可以是一个路径名称。若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
	-v --verbose	每次创建新目录都显示信息
	
	(3)常用范例
	递归创建多个目录:
	mkdir -p smile/test
	创建权限为 777 的目录:
	mkdir -m 777 zhang
	创建目录显示信息:
	mkdir -vp zhang/test
	
3.2 rmdir
	rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname佬表示目录名。如果dirname中没有指定路径,则删除当前目录下由dirname指定的目录;如dirname中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限
	rm 命令是 remove dirctory的缩写。
	
	(1)命令格式
	rmdir[选项] 目录
	
	(2)常用参数
	参数	描述
	-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除; --ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息; 
	--help:显示命令的帮助信息; 
	--version:显示命令的版本信息。
3.3 rm
	rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
	rm 命令是 remove 的缩写。
	
	(1)命令格式
	rm [选项] 文件或目录
	
	(2)常用参数
	参数	描述
	-f --force	忽略不存在的文件,从不给出提示
	-i --interactive	进行交互式删除
	-r --recursive	指示 rm 将参数中列出的全部目录和子目录均递归地删除
	-v --verbose	详细显示进行的步骤
	
	(3)常用范例
	删除文件,系统会先询问是否删除:
	rm  1.txt
	强行删除文件,系统不再提示:
	rm -f 1.txt
	删除后缀名为.txt 的所有,删除前逐一询问
	rm -i *.txt
	
3.4	mv
	mv 命令功能是用来移动文件或更改文件名,是 Linux 系统下常用的命令,经常用来备份文件或者目录。mv命令根据第二个参数类型(是目标文件还是目标目录),决定执行将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv 命令将各参数指定的源文件均移至目标目录中。
	mv 命令是 move 的缩写。
(1)命令格式
	mv [选项] 源文件或目录 目标文件或目录
	
	(2)常用参数
	参数	描述
	-b --back	若需覆盖文件,则覆盖前先行备份
	-f --force	如果目标文件已经存在,不会询问而直接覆盖
	-i --interactive	若目标文件已经存在时,就会询问是否覆盖
	-u --update	若目标文件已经存在,且源文件比较新,才会更新
	-t --target	该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后
	
	(3)常用范例
	将文件 1.txt 重命名为 a.txt:
	mv 1.txt a.txt
	将文件 a.txt 移动到 zhang 目录下,如果文件存在,覆盖前会询问是否覆盖:
	mv -i a.txt ../zhang/a.txt
	【注意目标文件是否是文件夹,以及文件夹是否存在】
	
3.5 cp
	cp 命令用来复制文件或者目录,是 Linux 系统中最常用的命令之一。一般情况下,shell 会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i 参数。但是如果是在 shell 脚本中执行 cp 时,没有-i 参数时不会询问是否覆盖。这说明命令行和 shell 脚本的执行方式有些不同。
	cp 命令是 copy 的缩写
	
	(1)命令格式
	cp [选项] 源文件 目录
	cp [选项] -t 目录 源文件
(2)常用参数
	参数	描述
	-t --target-directory	指定目标目录
	-i --interactive	覆盖前询问(使前面的 -n 选项失效)
	-n --no-clobber	不要覆盖已存在的文件(使前面的 -i 选项失效)
	-s --symbolic-link	对源文件建立符号链接,而非复制文件
	-f --force	强行复制文件或目录, 不论目的文件或目录是否已经存在
	-u --update	使用这项参数之后,只会在源文件的修改时间较目的文件更新时,或是对应的目的文件并不存在,才复制文件
(3)常用范例
	对文件 hello.txt 建立一个符号链接 1.txt:
	cp -s hello.txt 1.txt
	将 test1 目录下的所有文件复制到 test2 目录下,覆盖前询问:
	cp -i text1/* test2
	将 test1 目录下的最近更新的文件复制到 test2 目录下,覆盖前询问:
	cp  -iu  test1/*  test2
	
3.6 cat
	cat命令的功能是将文件或标准输入组合输出到标准输出。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
	cat 命令是 concatenate 的缩写。
(1)命令格式
	cat [选项] [文件]
	
	(2)常用参数	
	参数	描述
	-A --show-all	等价于 -vET
	-b --number-nonblank	对非空输出行编号
	-e	等价于 -vE
	-E --show-ends	在每行结束处显示 $
	-n --number	对输出的所有行编号,由 1 开始对所有输出的行数编号
	-s --squeeze-blank	有连续两行以上的空白行,就代换为一行的空白行
	-t	与 -vT 等价
	-T --show-tabs	将跳格字符显示为 ^I
	-u	(被忽略)
	-v --show-nonprinting	使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
(3)常用范例
	把 123.txt 的文件内容加上行号后输入1.txt 这个文件里:
	cat -n 123.txt > 1.txt
	将 123.txt 的文件内容反向显示:
	tac 123.txt
	
	【tac 是将 cat 反写过来,所以它的功能就跟 cat 相反,cat 是由第一行到最后一行连续显示在屏幕上,而 tac 则是由最后一行到第一行反向在屏幕上显示出来。】
	
3.7	nl 
	nl 命令在 linux 系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号。其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。
	nl 命令是 number of lines 的缩写。
	
	(1)命令格式
	nl [选项] [文件]
	(2)常用参数
	参数	描述
	-b	指定行号指定的方式,主要有两种:
	-b a	表示不论是否为空行,也同样列出行号(类似 cat -n)
	-b t	如果有空行,空的那一行不要列出行号(默认值)
	-n	列出行号表示的方法,主要有三种:
	-n ln	行号在屏幕的最左方显示
	-n rn	行号在自己栏位的最右方显示,且不加 0
	-n rz	行号在自己栏位的最右方显示,且加 0
	-w	行号栏位的占用的位数
(3)常用范例
	把 123.txt 的文件内容加上行号后显示,空行不加行号
	nl -b t 123.txt
	
	
3.8 more
	more 命令,功能类似 cat ,cat 命令是将整个文件的内容从上到下显示在屏幕上。 more 命令会一页一页的显示,方便使用者逐页阅读,而最基本的指令就是按空白键(space)往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more 命令从前向后读取文件,因此在启动时就加载整个文件。
(1)命令格式
	more [选项] 文件
(2)常用参数
	参数	描述
	+n	从笫 n 行开始显示
	-n	定义屏幕大小为 n 行
	+/pattern	在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
	-c	从顶部清屏,然后显示
	-d	提示“Press space to continue,’q’ to quiet”,禁用响铃功能
	-p	通过清除窗口而不是滚屏来对文件进行换页,与-c 选项相似
	-s	把连续的多个空行显示为一行
	-u	把文件内容中的下画线去掉
(3)常用操作
	符号	描述
	=	输出当前行的行号
	q	退出 more
	enter   向下查看一行
	空格键	向下滚动一屏
	b	返回上一屏
	
3.9 less
	less 工具也是对文件或其它输出进行分页显示的工具,应该说是 linux 正统查看文件内容的工具,功能极其强大。
	less 作用跟more一样,但比more好在可以上翻,下翻。空格键同样可以翻页,而按”j”键可以向下移动(按一下就向下移动一行),按”k”键向上移动。在使用more和less查看某个文件时,你可以按一下”/” 键,然后输入一个word回车,这样就可以查找这个word了。如果是多个该word可以按”n”键显示下一个。另外你也可以不按”/”而是按”?”后边同样跟word来搜索这个word,唯一不同的是,”/”是在当前行向下搜索,而”?”是在当前行向上搜索。
3.10 head
 	head后直接跟文件名,则显示文件的前十行。如果加 –n 选项则显示文件前n行。
3.11 tail
	tail 和head一样,后面直接跟文件名,则显示文件最后十行。如果加-n 选项则显示文件最后n行。
	
		【一般使用cat和tail命令查看日志信息】
	
四、文件操作
4.1 touch 命令
	使用touch命令可以创建一个新的空白文件
	语法: touch 文件
4.2 vim 命令
	vi: Visual Interface 可视化接口
	vim: VI iMproved	VI增强版
全屏编辑器,模式化编辑器
	
	【vim模式:】
		正常模式
	正常模式主要用来浏览和修改文本内容的
	一般的,打开Vim都是正常模式。在任何模式下,只要按下 Esc 键就可以返回正常模式。
		插入模式
	插入模式则用来向文本中添加内容的,按下i,a,o,都可以切换到插入模式
		可视模式
	可视模式相当于高亮选取文本后的普通模式。
		命令模式(底行模式)
	命令模式则多用于操作文本文件(而不是操作文本文件的内容),例如保存文件;或者用来改变编辑器本身的状态,例如设定多栏窗口、标签或者退出编辑器……
		
	模式切换:
	使用vim命令打开文件,或者点击esc都可进入正常模式
	点击键盘i,a,o都可进入编辑模式
	点击键盘v,可进入可视化模式
	点击键盘esc或者ctrl+C,推出编辑模式,进入命令模式
	
	命令模式(末行模式关闭文件):
	:q  退出
    :wq 保存并退出
    :q! 不保存并退出
    :w 保存
    :w! 强行保存
    :wq --> :x
linux命令(用户)的更多相关文章
- Linux命令——用户和用户组管理
		Linux命令--用户和用户组管理 命令groupadd 作用:新增组 格式:groupadd [-g GID] groupname 参数:-g,指定GID,一般从500开始 说明:一般不必加-g参数 ... 
- Linux命令 用户管理命令
		groupadd [功能说明] 新建用户组 [语法格式] Groupadd[-f][-r][-g<GID><-o>][组名] [选项参数] 参数 说明 -f 建立已存在的组,强 ... 
- Linux命令-用户管理:useradd,userdel,usermod,id,su,env,exit
		添加一个linux用户之后,相当于在linux系统里面创建了如下文件: 添加一个用户(默认也会创建一个同名的用户组,在linux下面用户默认必须在一个用户组里面): useradd wyp 添加用户w ... 
- Linux命令-用户及权限管理
		一.权限管理linux系统中对文件权限的描述机制: u g od r w x r w x r - x (r读,w写,x执行)文件 所有者 所属组 其他人可以表示为二进制: 111 111 101也可以 ... 
- Linux命令-用户、用户组、权限
		参考资料: http://www.linuxidc.com/Linux/2014-07/104445.htm Linux入门教程:如何手动创建一个Linux用户 http://www.linux ... 
- Linux命令--用户管理
		useradd命令 Linux useradd命令用于建立用户帐号. useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号.使用useradd指 ... 
- Linux命令--用户用户组管理
		新增用户组 : groupadd groupadd [-g GID] 组名 不加-g 则按照系统默认的gid创建组,跟用户一样,gid也是从500开始的 修改用户组信息 : groupmod grou ... 
- 每天一个linux命令-用户之间切换
		怎么从root用户切换到普通用户 su是在用户间切换,可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户.如果当前是root用户,那么切换成普通用户test用以下命令:su - ... 
- Linux命令-用户管理命令:useradd,passwd,who,w
		who 查看登录用户 w 查看登录用户详细信息 
随机推荐
- 7.算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别(转载)
			7.算法竞赛中的常用JAVA API :String .StringBuilder.StringBuffer常用方法和区别 摘要 本文将介绍String.StringBuilder类的常用方法. 在j ... 
- 修改Linux系统的默认语言编码集
			RedHat 今天晚上发现服务器上vi的界面提示变成了乱码,只能将XShell的编码改为GBK才能正常显示,导致consolas字体无法使用,GBK编码下的字体丑陋无比,无法忍受,一轮google之后 ... 
- Vmware15的安装以及Ubunt的在虚拟机上的安装
			一.vmware15安装 1.百度网盘地址 链接:https://pan.baidu.com/s/1Lgez57n50QEW97HNdYZCfQ 提取码:9wvy 2.下载到本地后 3.双击安装程序 ... 
- 第一次上传代码到gitee
			初始化 git init 添加文件到本地仓库 git add . 提交文件到本地仓库 git remote add origin 仓库地址 拉去远程仓库代码 git pull origin maste ... 
- redis数据同步之redis-shake
			redis-shake简介 redis-shake是阿里开源的用于redis数据同步的工具,基本功能有: 恢复restore:将RDB文件恢复到目的redis数据库. 备份dump:将源redis的全 ... 
- 迭代器 与 foreach 的区别
			迭代器的常见运用--Eg:有一组数据 需要对每个符合条件的数据 进行记录 static void Main() { int[] s = new int[] { 1, 2, 8 }; foreach ( ... 
- Java异常与异常处理
			异常体系结构 1.所有异常都继承于Throwable类,其下有两大子类: (1)Error类:错误,一般编程人员不太接触,如虚拟机错误.线程死锁.硬伤:使程序崩溃 (2)Exception类:异常,编 ... 
- 多线程编程<五>
			1 /** 2 * 中断线程:当线程由于调用sleep(),join(),wait()而暂停时,如果中断它,则会收到一个InterruptedException异常. 3 * 调用Thread.isI ... 
- lambda与方法引用
			哈喽,大家好,我是指北君. 虽然目前Java最新版本都已经到16了,但是绝大部分公司目前用的Java版本都是8,想当初Java8问世后,其Lambda表达式与方法引用可是最亮眼的新特性,目前,这两个特 ... 
- Spring 事务回滚机制详解
			1:事务原理 1.2:aop/动态代理 类路径:org/springframework/aop/framework/CglibAopProxy.java ReflectiveMethodInvocat ... 
