十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
linux上用户和组的管理一般使用user和group相关命令管理
专注于为中小企业提供成都网站设计、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业资兴免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了超过千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
用户管理:
1、添加新的用户账号
使用useradd命令,其语法如下:
useradd 选项 用户名
其中各选项含义如下:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名 指定新账号的登录名。
2、删除用户
使用userdel命令, 其格式如下:
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令,其格式如下:
userdel 选项 用户名
常用的选项是-r,它的作用是把用户的主目录一起删除。
3、修改用户
使用usermod命令, 其格式如下:
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod命令,其格式如下:
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
用户组的管理
1、增加一个新的用户组
使用groupadd命令, 其格式如下:
groupadd 选项 用户组
可以使用的选项有:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
2、删除一个已有的用户组
使用groupdel命令, 其格式如下:
groupdel 用户组
3、修改用户组的属性
使用groupmod命令。 其语法如下:
groupmod 选项 用户组
常用的选项有:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
首先我们先认识一下cat指令的主要功能,如果不加任何参数,cat $file, 就是将文件内容输出到标准输出。
如果我们所要写的python脚本就是为了实现这一功能,那么就很好办了,以下是样例代码:
import re
import sys
import os
def main():
"""
"""
file_list = sys.argv[1:]
for file_name in file_list:
if os.path.exists(file_name):
with open(file_name) as file_obj:
print file_obj.read()
else:
print "File %s doesn't exist!" % file_name
if __name__ == "__main__":
reload(sys)
sys.setdefaultencoding("utf-8")
main()
虚拟机安装Linux开启进入系统后,常用的有3种进入终端命令(terminal)界面方法,分别如下:①按快捷键“Ctrl+Alt+T”即可打开终端窗口
②或者按“Ctrl+Alt+F1-F6”均可进入终端(模拟终端,不显示桌面)
③直接搜索“终端”并进入
注意事项:如果采用方法2的F1-F6的方法,返回图形界面只要按“Ctrl+Alt+F7即可”。
你是要这几个命令的实现吗?
我以前写过一个pwd的。。。你可以看看
其实这都是一些系统调用。。。。。你要搞清楚。。。。好好去看看高编那块内容
以下是pwd命令的实现代码:
伪代码:
pwd
得到.的i-node
得到..的i-node
如果.和..的i-node不同
转到父节点(chdir)
显示父目录的pwd
显示/,加上.对应的目录名(链接名)
(opendir,readdir,closedir)
否则
结束,父目录是/
*/
#include stdio.h
#include dirent.h
#include sys/types.h
#include unistd.h
int main(int argc, const char *argv[])
{
struct dirent *s,*i1,*i2,*i3;
DIR *p;
while(1){
p=opendir(".");
while( (s=readdir(p))!=NULL){
if((strcmp(".",s-d_name)==0))
i1=s;
if((strcmp("..",s-d_name)==0))
i2=s;
}
if(i1-d_ino!=i2-d_ino)
{
chdir("..");
p=opendir(".");
while(i3=readdir(p))
{
if(i3-d_ino==i1-d_ino)
printf("/%s",i3-d_name);
}
}
else
{
printf("/");
break;
}
}
closedir(p);
printf("\n");
return 0;
}