美文网首页
linux-文件管理、IO重定向、管道、用户与组管理

linux-文件管理、IO重定向、管道、用户与组管理

作者: 執念_c24d | 来源:发表于2019-02-15 13:24 被阅读0次

    对应章节:

    第三、教学总监老王亲讲-Linux文件管理实战

    第四、教学总监老王亲讲-IO重定向、管道、用户与组管理

    **Linux系统目录遵循FHS文件分层标准。**

      /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录

      /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

      /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

      /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

      /lib64:专用于x86_64系统上的辅助共享库文件存放位置

      /etc:配置文件目录

      /home/USERNAME:普通用户家目录

      /root:管理员的家目录

      /media:便携式移动设备挂载点

      /mnt:临时文件系统挂载点

      /dev:设备文件及特殊文件存储位置

            b: block device,随机访问

          c: character device,线性访问

      /opt:第三方应用程序的安装位置

      /srv:系统上运行的服务用到的数据

      /tmp:临时文件存储位置

    蓝色-->目录  绿色-->可执行文件  红色-->压缩文件浅  蓝色-->链接文件          灰色-->其他文件

    大小写敏感取决于文件系统格式 ,比如ext4

    **cd 改变目录**

    切换至父目录:cd..

    切换至当前用户主目录:cd

    切换至以前的工作目录:cd-

    **ls列出当前目录的内容或指定目录**

    用法:ls [options] [files_or_dirs]

    只显示目录 ls -d */

    **文件通配符**

    *匹配零个或多个字符

    ?匹配任何单个字符

    ~ 当前用户家目录

    ~mage 用户mage家目录

    ~+ 当前工作目录

    ~-前一个工作目录

    [0-9]匹配数字范围

    [a-z]:字母

    [A-Z]:字母

    [wang]匹配列表中的任何的一个字符

    [^wang]匹配列表中的所有字符以外的字符

    [:digit:]:任意数字,相当于0-9

    [:lower:]:任意小写字母

    [:upper:]: 任意大写字母

    [:alpha:]: 任意大小写字母

    [:alnum:]:任意数字或字母

    **touch命令:**

    touch [OPTION]... FILE...

    -a仅改变atime和ctime

    -m 仅改变mtime和ctime

    -t [[CC]YY]MMDDhhmm[.ss]

    指定atime和mtime的时间戳

    -c如果文件不存在,则不予创建

    access time:访问时间,atime,读取文件内容

    modify time: 修改时间, mtime,改变文件内容(数据)

    change time: 改变时间, ctime,元数据发生改变

    **cp命令**

    -i:覆盖前提示

    -n:不覆盖,注意两者顺序

    -r, -R: 递归复制目录及内部的所有内容

    -a: 归档,相当于-dR--preserv=all  备份用

    -d:--no-dereference --preserv=links 不复制原文件,只复制链接名

    -p: 等同--preserv=mode,ownership,timestamp

    -v: --verbose

    -f: --force 先删文件再创建

    -u:--update 只复制源比目标更新文件或目标不存在的文件

    --backup=numbered 目标存在,覆盖前先备份加数字后缀

    练习:1创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限

    cp -a /root /data/rootdir

              2定义别名命令baketc,每天将/etc/目录下所有文件,备份到/testdir独立的子目录下,并要求子目录格式为backupYYYY-mm-dd,备份过程可见

              alias baketc=”cp -av /etc /data/backup`date +%F`”

    **删除rm**  rm-rf/ 慎用

    -i: 交互式

    -f: 强制删除

    -r: 递归

    **tree 显示目录树**

    -d: 只显示目录

    -L level:指定显示的层级数目

    -P pattern: 只显示由指定pattern匹配到的路径

    **mkdir创建目录**

    -p: 存在于不报错,且可自动创建所需的各目录

    -v: 显示详细信息

    -m MODE: 创建目录时直接指定权限

    **rmdir删除空目录**

    -p: 递归删除父空目录

    -v: 显示详细信息

    rm-r递归删除目录树

    如何创建/testdir/dir2/x,/testdir/dir2/y,/testdir/dir2/x/a,/testdir/dir2/x/b

    mkdir -p /testdir/dir2/{x/{a,b},y}  注意{}与【】的用法

    file [options] <filename>...

    **标准输入和输出**

    Linux给程序提供三种I/O设备

    标准输入(STDIN)-0默认接受来自键盘的输入

    标准输出(STDOUT)-1默认输出到终端窗口

    标准错误(STDERR)-2默认输出到终端窗口

    合并标准输出和错误输出为同一个数据流进行重定向

    &>覆盖重定向

    &>> 追加重定向

    COMMAND > /path/to/file.out 2>&1 (顺序很重要)

    COMMAND >> /path/to/file.out 2>&1

    tr转换和删除字符

    tr[OPTION]... SET1 [SET2]

    ln f1 f2 创建f2与f1同样的incode号

    ln -s f2 f2_link 创建软连接

    硬连接与软连接的区别:

    软和硬链接区别

    1 本质不同:

    硬是同一个文件,软不是同一个文件

    2 删除

    硬链接不影响,软链接失效

    3 创建

    硬:链接数加1,软:链接数不变

    4 跨分区

    硬:不,软:可以

    5 目录

    硬:不,软:可以

    硬连接:一个文件多个名字 软连接:一个文件对应快捷方式,不同文件

    **管道**

    命令1 | 命令2 | 命令3 | …

    将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN

    STDERR默认不能通过管道转发,可利用2>&1 或|& 实现

    最后一个命令会在当前shell进程的子shell进程中执行用来

    组合多种工具的功能

    ls | tr 'a-z' 'A-Z'

    **用户与组**

    Authentication:认证

    Authorization:授权

    Accouting|Audition:审计

    管理员:root, 0

    普通用户:1-65535

    系统用户:1-499, 1-999(CentOS7)

    对守护进程获取资源进行权限分配

    登录用户:500+, 1000+(CentOS7)

    交互式登录

    管理员组:root, 0

    普通组:

    系统组:1-499, 1-999(CENTOS7)

    普通组:500+, 1000+(CENTOS7)

    用户必须属于一个且只有一个主组

    组名同用户名,且仅包含一个用户,私有组

    用户的附加组(supplementary group)

    一个用户可以属于零个或多个辅助组

    Linux用户和组的主要配置文件:

    /etc/passwd:用户及其属性信息(名称、UID、主组ID等)

    /etc/group:组及其属性信息

    /etc/shadow:用户密码及其相关属性

    /etc/gshadow:组密码及其相关属性

    更改加密算法authconfig--passalgo=sha256 --update

    md5: message digest, 128bits

    sha1: secure hash algorithm, 160bits

    sha224: 224bits

    sha256: 256bits

    sha384: 384bits

    sha512: 512bits

    useradd[options] LOGIN

    -u UID

    -o 配合-u 选项,不检查UID的唯一性

    -g GID:指明用户所属基本组,可为组名,也可以GID

    -c "COMMENT":用户的注释信息

    -d HOME_DIR:以指定的路径(不存在)为家目录

    -s SHELL: 指明用户的默认shell程序

    可用列表在/etc/shells文件中

    -G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在

    -N 不创建私用组做主组,使用users组做主组

    -r: 创建系统用户CentOS 6: ID<500,CentOS 7: ID<1000

    -m 创建家目录,用于系统用户

    -M 不创建家目录,用于非系统用户

    /etc/default/useradd

    /etc/skel/*

    /etc/login.defs

    newusers passwd格式文件批量创建用户

    chpasswd 批量修改用户口令

    usermod[OPTION] login

    -u UID: 新UID

    -g GID: 新主组

    -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项

    -s SHELL:新的默认SHELL

    -c 'COMMENT':新的注释信息

    -d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项

    -l login_name: 新的名字;

    -L: lock指定用户,在/etc/shadow 密码栏的增加!

    userdel[OPTION]... login

    -r: 删除用户家目录

    id [OPTION]... [USER]

    -u: 显示UID

    -g: 显示GID

    -G: 显示用户所属的组的ID

    -n: 显示名称,需配合ugG使用

    su[options...] [-] [user [args...]]

    切换用户的方式:

    suUserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录

    su-UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换

    **passwd: 修改自己的密码**

    常用选项:

    -l:锁定指定用户

    -u:解锁指定用户

    -e:强制用户下次登录修改密码

    -n mindays: 指定最短使用期限

    -x maxdays:最大使用期限

    -w warndays:提前多少天开始警告

    -iinactivedays:非活动期限

    --stdin:从标准输入接收用户密码

    echo "PASSWORD" | passwd--stdinUSERNAME

    chage[OPTION]... LOGIN

    -d LAST_DAY

    -E --expiredateEXPIRE_DATE

    -I --inactive INACTIVE

    -m --mindaysMIN_DAYS

    -M --maxdaysMAX_DAYS

    -W --warndaysWARN_DAYS

    **创建组**

    groupadd[OPTION]... group_name

    -g GID: 指明GID号;[GID_MIN, GID_MAX]

    -r: 创建系统组

    CentOS 6: ID<500

    CentOS 7: ID<1000

    **修改和删除组**

    组属性修改:groupmod

    groupmod[OPTION]... group

    -n group_name: 新名字

    -g GID: 新的GID

    组删除:groupdel

    groupdelGROUP

    **更改组密码**

    组密码:gpasswd

    gpasswd[OPTION] GROUP

    -a user 将user添加至指定组中

    -d user 从指定组中移除用户user

    -A user1,user2,... 设置有管理权限的用户列表

    newgrp命令:临时切换主组

    如果用户本不属于此组,则需要组密码

    groupmems[options] [action]

    options:

    -g, --group groupname更改为指定组(只有root)

    Actions:

    -a, --add username 指定用户加入组

    -d, --delete username 从组中删除用户

    -p, --purge 从组中清除所有成员

    -l, --list 显示组成员列表

    groups [OPTION].[USERNAME]... 查看用户所属组列表

    作业

    1、w|tr 'a-z' 'A-Z' >/tmp/who.out

    2、echo {1..100} |tr ' ' '+'|bc      seq -s + 100|bc

    3、用户管理命令:useradd usermod userdel

    useradd命令:创建用户

    useradd [选项] 登录名

    -u, --uid UID:指定UID;

    -g, --gid GROUP:指定基本组ID,此组得事先存在;

    -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔;

    -c, --comment COMMENT:指明注释信息;

    -d, --home HOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;

    -s, --shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;

    -r, --system:创建系统用户;

    usermod命令:修改用户属性

    usermod [选项] 登录

    -u, --uid UID:修改用户的ID为此处指定的新UID;

    -g, --gid GROUP:修改用户所属的基本组;

    -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;

    -a, --append:与-G一同使用,用于为用户追加新的附加组;

    -c, --comment COMMENT:修改注释信息;

    -d, --home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;

    -m, --move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;

    -l, --login NEW_LOGIN:修改用户名;

    -s, --shell SHELL:修改用户的默认shell;

    -L, --lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";

    -U, --unlock:解锁用户的密码;

    userdel命令:删除用户

    userdel [选项] 登录

    -r:删除用户时一并删除其家目录;

        文件管理命令:cp mv rm

    cp 复制文件

    -i:交互式复制,即覆盖之前提醒用户确认;

    -f:强制覆盖目标文件;

    -r, -R:递归复制目录;

    -d:复制符号链接文件本身,而非其指向的源文件;

    -a:-dR --preserve=all, archive,用于实现归档;

    mv:移动

    常用选项:

    -i:交互式;

    -f:force

    rm 删除

    常用选项:

    -i:interactive

    -f:force

    -r: recursive

    4、useradd  -s /bin/csh -c "Gentoo Distribution" -G bin,root gentoo

    5、mkdir -p /testdir/dir

      chgrp webs /testdir/dir

      chmod g+s /testdir/dir

      setfacl -m g:apps:rwx /testdir/dir

      setfacl -m g:dbs:rx /testdir/dir

      chmod o= /testdir/dir

    6、ifconfig ens33 |grep -o "\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}" |head -n1

    7、cat /etc/passwd |cut -d ":" -f1,3,7|sort -nt: -k2|tail -n1

    8、cp /etc/rc.d/init.d/functions /tmp

      vim /tmp/functions

      :%s@/etc/sysconfig/init@/var/log@g

    相关文章

      网友评论

          本文标题:linux-文件管理、IO重定向、管道、用户与组管理

          本文链接:https://www.haomeiwen.com/subject/ermpeqtx.html