• Linux操作系统学习之第三篇


    Linux操作系统学习之第三篇

    本篇将介绍两大快内容
    目录
    1. 目录管理

    2. 用户组管理


    1. 目录管理

    Linux的目录结构为树状结构,最顶级的目录为根目录 /,其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。(---老实说这个概念我也不理解)

    再开始本章学习之间要了解两个概念:

    • 绝对路径

    由根目录"/"写起:如:/home

    • 相对路径

    不是由"/"写起:如:从/home/Jun想切换到/home/King目录下

    cd ../King(cd是切换cd ..代表返回上级目录,cd ../king代表返回上级目录进入King目录下,前提是King目录和当前目录是同级关系)

    处理文件的常用命令

    (1)"ls"(list files)*列出目录及文件名(最常用)

    语法:

    ls [-adl] 目录名称

    参数:

    • -a:全部文件,连同隐藏文件(开头为.(点)的文件)一起列出

    • -d:仅列出目录本身(不包括隐藏文件,不是列出目录内的文件数据(常用))

    • -l:长数据串列出,包含文件的属性与权限(竖着列出)

    (参数可以组合使用,例如:ls -al ~(命令:ls,参数:-a -l,选项:~目录)


    (2)"cd"(change directory):切换目录

    语法:

    cd [相对路径/绝对路径] 都可以

    cd .. 返回上层目录

    cd ~ 返回家目录

    cd - 返回上次所在目录


    (3)“pwd”(print working directory):显示目前所在目录

    语法:

    pwd [-p]

    参数:

    • -p:显示出确是的路径,而非适用link路径。(不是很清楚什么是连接路径)

    (4)”mkdir"(make directory):创建新目录

    语法:

    mkdir [-mp] 目录名称

    参数:

    • “-m”:配置目录权限(在创建目录时候直接配置,数字来配置权限)

    • “-p”:递归创建(层层创建)

    举例:

    mkdir -m 777 a

    创建目录a其使用者、所属组、其他访问者都拥有rwx的权限

    mkdir -p /a/b/c/d

    在根目录下创建目录a,在目录a内创建目录b,在目录b内创建目录c,在目录c内创建目录d

    (4)”rmdir"(remove directory):删除一个空目录

    语法:

    rmdir [-p] 目录名称

    (这里强调的是删除空目录)

    参数:

    • “-p”:连同上一级【空的】目录一起删除

    (5)“cp”(copy file):拷贝文件或目录

    语法:

    cp [-adfilprsu] source(来源档) destination(目标档)

    cp [option] source1 source2 source3 ... directory

    参数:

    • “-a”:相当于-pdr,pdr参考下列说明

    • “-d“:来源档为连接当的属性(link file),辅助连接档属性而非文件本身

    • “-f”:强制(force)之意,强制复制

    • “-i”:目标档(destination)已经存在,覆盖是会先询问动作的进行(常用)(问你是否要复制且覆盖)

    • “-l”:硬式连接(hard link)的连接档创建,非复制文件本身!!!

    • “-p”:连同文件属性一起辅助过去,非使用默认属性(备份常用)

    • “-r“:递归持续复制,用于目录复制行为(常用)

    • “-s”:复制称为符号连接档(symbolic link),[捷径]文件

    • “-u”:若destination比source旧才升级destination!

    (6)“rm”(remove):移除文件后目录

    语法:

    rm [-fir] 文件或目录

    参数:

    • “-f”(force):忽略不存在的文件,不会出现警告信息。

    • “-i”:互动模式,删除前询问user是否删除

    • “-r”:递归删除,(可以理解为全删)---(教一个新指令:rm -rf */)按下就跑

    (7)“mv”(move file):移动文件或目录,或修改文件与目录名称。(二合一指令,改名则在路径后打出修改的目录名即可)

    语法: mv [-fiu] source destination mv [options] source1 source2 source3 .... directory

    参数:

    • "-f"(force):强制,若目标目录文件已存在,不会询问直接删除

    • "-i":若destination已存在,询问是否覆盖

    • “-u”(update):若destination已存在,且source比较新,才会升级


    Linux文件内容查看

    Linux系统中使用一下命令来查看文件的内容:

    • cat:由第一行开始显示文件内容

    语法:

    cat [-bnv]

    参数:

    -b :列出行号,仅针对非空白行做行号显示,空白行不标行号! -n :列印出行号,连同空白行也有行号(与-b不同的地方) -v :列出一些看不出来的特殊字符

    • tac:由最后一行开始显示文件内容

    语法:

    tac 文件路径

    • nl:显示行号

    语法:

    nl [-b]文件 -b:指定行号的指定方式,一般有两种。 -b a:不论是否为空行,一样列出行号(类似:cat -n) -b t:有空行,空的一行不要列出行号

    • more:一页一页翻动

    语法:

    more 路径/文件名

    more模式下可操作的按钮:

    space按钮(空格键):向下翻一页

    Enter:向下翻一行

    /字串:搜索“字串”这个关键字

    :f:立刻显示出档名以及目前显示的行数

    q:立刻离开more模式

    • less:一页一页翻动

    语法:

    less 路径/文件名

    在less模式下可操作的按钮:

    space按钮(空格键):向下翻动一页

    pagedown:向下翻动一页

    pageup:向上翻动一页

    /字串:向下搜寻“字串”

    ?字串:向上搜寻“字串”

    q:离开less这个程序

    • head:取出文件前几行

    语法:

    head [-n(number)] 文件 参数: -n(-后面接数字):显示几行的意思 (默认显示前10行)

    • tail:取出文件后几行 语法: tail [-n] 文件 选项与参数: -n:表示显示几行的意思


    1. 用户组管理

    每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

    用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新

    引用菜鸟教程


    (1)增加新的用户组:

    语法:

    groupadd 用户组

    (2)删除一个已有的用户组:

    语法:

    groupdel 用户组

    (3)修改用户组的属性:

    语法:

    groupmod option 用户组

    参数:

    -n(new):新用户组,将用户组的名字改为新名字

    groupmod new_name old_name

    (4)切换用户组(前提是目的组是该用户的附属组)

    语法:

    newgrp destination

    (用户组的管理也可以通过集成的系统管理工具来完成。)


    重中之重

    与用户帐号有关的系统文件

    用户和用户组相关的信息都存放在一些系统文件中,这些文件包括

    /etc/passwd

    /etc/shadow

    /etc/group

    ...

    1、/etc/passwd文件

    Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。

    这个文件对所有用户都是可读的。

    其文件内容的具体格式和含义:

    用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

    分别解释:

    用户名:帐号

    口令:密码

    这个字段存放的只是用户口令的加密串,不是明文。许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

    用户标识号:(用户ID)

    一个整数,系统内部用它来标识用户

    一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,它们可以有不同的口令、不同的主目录以及不同的登录Shell等。(可以理解为非管理员帐号拥有管理员权限) 组标识号:

    记录用户所属的用户组,对于/etc/group文件中的一条记录

    注释性描述:(该字段无实际用途)

    主目录:

    用户的起始工作目录,用户登录到系统之后所处的目录。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。

    用户登录后要启动一个进程,复制将用户的操作传给内核,这个进程就是shell

    Shell是用户与Linux系统之间的接口。

    系统管理员可以为用户指定某个shell。如果不指定shell,那么系统使用sh为默认的登录shell,字段值为/bin/sh


    用户的登录Shell也可以指定为某个特定的程序(此程序不是一个命令解释器)。利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中。

    引用菜鸟教程

    伪用户(pseudo users):

    伪用户在/etc/passwd文件中占有一条记录,但不能登录,因为他们的登录shell为空,其存在主要为了方便系统管理

    伪 用 户 含 义 
    bin 拥有可执行的用户命令文件
    sys 拥有系统文件
    adm 拥有帐户文件
    uucp UUCP使用
    lp lp或lpd子系统使用
    nobody NFS使用

     


    拥有帐户文件

    许多标准的伪用户,例如:audit, cron, mail, usenet等各自为相关的进程和文件所需要。

    安全性要求较高的Linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件。 有超级用户才拥有该文件读权限。

    /etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生

    /etc/shadow文件格式:

    登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

    分别解释:

    登录名:

    与/etc/passwd文件中登录名相一致的帐号

    口令:

    加密后的用户口令。口令如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。

    最后一次修改时间:

    用户最后一次改密码的时间

    最小时间间隔:

    两次修改密码之间最小的天数

    最大时间间隔:

    口令保持有效的最大天数 警告时间:

    从系统开始警告用户到用户密码正式失效之间的天数

    不活动时间:

    用户没有登录活动但帐号仍能保持有效的最大天数

    失效时间:

    帐号生存期,超过这个期限帐号就不合法了,就不能用来登录了


    用户组的所有信息

    用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。用户组的所有信息都存放在/etc/group文件中。

    (newgrp相当于切换组,是否属于这个组要使用前面的口令使该组称为自己帐户的附加组)

    /etc/group文件格式:

    组名:口令:组标识号:组内用户列表

    分别解释:

    组名:

    用户组的名字

    口令:

    用户组加密后的口令

    Linux系统中用户组一般没有口令,这个字段一般为空或者是*。

    组标识号:

    一个整数,被系统内部用来标识组

    组内用户列表:

    属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

  • 相关阅读:
    pythonselenium 3种等待方式
    SQL Server2008生成数据库字典
    C# 二分法查找和排序
    JavaScript 中的面向对象的初步认识
    分享一个通过面向对象方式完成的拖拽功能
    javascript 面向对象的继承的实现
    【转】ASP.NET MVC 3 Service Location, Part 3: View Engines/View Pages
    【转】ASP.NET MVC 3 Service Location, Part 2: Controllers
    【转】ASP.NET MVC 3 Service Location, Part 8: Value Providers
    【转】ASP.NET MVC 3 Service Location, Part 6: Model Validation
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14033561.html
Copyright © 2020-2023  润新知