第三周 文件查看命令及用户管理命令
来源:互联网 发布:淘宝上面没有延长收货 编辑:程序博客网 时间:2024/06/06 00:03
第三周 文件查看命令及用户管理命令
摘要
1、描述Linux上的文件管理类命令并详解。2、描述用户管理。
一、文本查看及处理工具命令
cut:文本截取工具
语法: cut OPTION... [FILE]... 命令选项: -d CHAR:以指定的字符为分隔符; -f FIELDS:挑选出的字段; #:指定的单个字段; #-#:连续的多个字段; #,#:离散的多个字段; 例如: [root@localhost ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologi [root@localhost ~]# cut -d: -f1,2-4,7 /etc/passwd root:x:0:0:/bin/bash bin:x:1:1:/sbin/nologin daemon:x:2:2:/sbin/nologin adm:x:3:4:/sbin/nologin lp:x:4:7:/sbin/nologin sync:x:5:0:/bin/sync shutdown:x:6:0:/sbin/shutdown
sort: 排序命令,对内部文件不造成影响,以ascii排序
语法: sort [OPTION]... [FILE]... 命令选项: -n:基于数值大小而非字符进行排序; -t CHAR:指定分隔符; -k #:用于排序比较的字段; -r:逆序排序; -f:忽略字符大小写 -u:重复的行只保留一份; 复复行:连续且相同; 例如: [root@localhost ~]# cut -d: -f1,7 /etc/passwd |sort -k2 -n aaa:/bin/bash abrt:/sbin/nologin adm:/sbin/nologin avahi-autoipd:/sbin/nologin [root@localhost ~]# cut -d: -f1,7 /etc/passwd |sort -k2 -n |wc -l 4
uniq:报告或移除重复的行
语法: uniq [OPTION]... [INPUT [OUTPUT]] 命令选项: -c:显示每行的重复次数; -u:仅显示未曾重复过的行; -d:仅显示重复过的行; 例如: [root@localhost ~]# cut -d: -f1,7 /etc/passwd |sort -k2 -n | uniq -c 1 aaa:/bin/bash 1 abrt:/sbin/nologin 1 adm:/sbin/nologin 1 avahi-autoipd:/sbin/nologin 1 bin:/sbin/nologin 1 chrony:/sbin/nologin
diff:compare files line by line 逐行比较两个文件(目录)不同之处的
语法: diff [OPTION]... FILES diff /PATH/TO/OLDFILE /PATH/TO/NEWFILE > /PATH/TO/PATCH_FILE 命令选项 -u 更加详细的表示差异 -# +# 差异 有上下文连接,即显示要修改的行的上下文,默认为3行
patch 向文件打补丁
命令选项: -R 反向打补丁 patch [OPTIONS] -i /PATH/TO/PATCH_FILE /PATH/TO/OLDFILE patch /PATH/TO/OLDFILE < /PATH/TO/PATCH_FILE
which
显示文件完成路径 which - shows the full path of (shell) commands. which [options] [--] programname [...] ~]# which which alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' /usr/bin/alias /usr/bin/which --COMMAND-alias 忽略别名
whereis
显示文件的路径,手册页, -b 只看二进制文件路径 -m 只看使用手册文件路径
who
查看登录当前用户的相关信息 -b 显示系统此次启动时间 -d 显示此次死亡进程 -l 显示登录进程 -u 比who多显示端口号 -r 运行级别
w
查看当前用户和其现阶段工作内容
more命令:
more FILE 翻盘至文件尾部后自动退出
less命令 :
less FILE
head命令:
查看文件前N行 head -NUM /xxx 默认查看前10行
tail
命令:查看文件后N行 tail -NUM /xxx 默认查看前10行 -f 查看文件尾部结束后不退出,跟随显示新增的行
stat命令 :
显示文件/文件系统的状态 /]# stat /tmp/ks-script-x4E8mp 文件:"/tmp/ks-script-x4E8mp" 大小:813 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode:956087 硬链接:1 权限:(0700/-rwx------) Uid:( 0/ root) Gid:( 0/ root) 环境:system_u:object_r:initrc_tmp_t:s0 最近访问:2017-10-15 17:53:52.464998198 +0800 最近更改:2017-10-15 17:53:52.455998198 +0800 最近改动:2017-10-15 17:53:52.455998198 +0800
练习:
1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
[test1@localhost ~]$ who | cut -d " " -f 1 | sort -uroottest1test3
2、取出最后登录到当前系统的用户的相关信息
[test1@localhost ~]$ whoroot tty1 2017-12-17 21:36root pts/0 2017-12-17 21:36 (192.168.23.1)test3 pts/1 2017-12-17 21:48 (192.168.23.1)test1 pts/2 2017-12-17 21:49 (192.168.23.1)[test1@localhost ~]$ who | tail -1 test1 pts/2 2017-12-17 21:49 (192.168.23.1)
3、取出当前系统上被用户当作其默认shell的最多的那个shell
[test1@localhost ~]$ cat /etc/passwd |cut -d : -f 7 | uniq -c | sort -r | tail -1 17 /sbin/nologin
4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中
[test1@localhost ~]$ cat /etc/passwd |sort -t : -k3 -n |tail -10 | tr 'a-z' 'A-Z' |tee /tmp/maxusers.txtAVAHI-AUTOIPD:X:170:170:AVAHI IPV4LL STACK:/VAR/LIB/AVAHI-AUTOIPD:/SBIN/NOLOGINABRT:X:173:173::/ETC/ABRT:/SBIN/NOLOGINCHRONY:X:997:996::/VAR/LIB/CHRONY:/SBIN/NOLOGINLIBSTORAGEMGMT:X:998:997:DAEMON ACCOUNT FOR LIBSTORAGEMGMT:/VAR/RUN/LSM:/SBIN/NOLOGINPOLKITD:X:999:998:USER FOR POLKITD:/:/SBIN/NOLOGINMAGE:X:1000:1001::/HOME/MAGE:/BIN/BASHAAA:X:1001:1002:AVCA:/HOME/AAA:/BIN/BASHTEST1:X:1002:1003::/HOME/TEST1:/BIN/BASHTEST2:X:1003:1004::/HOME/TEST2:/BIN/BASHTEST3:X:1004:1005::/HOME/TEST3:/BIN/BASH[test1@localhost ~]$ cat /tmp/maxusers.txtAVAHI-AUTOIPD:X:170:170:AVAHI IPV4LL STACK:/VAR/LIB/AVAHI-AUTOIPD:/SBIN/NOLOGINABRT:X:173:173::/ETC/ABRT:/SBIN/NOLOGINCHRONY:X:997:996::/VAR/LIB/CHRONY:/SBIN/NOLOGINLIBSTORAGEMGMT:X:998:997:DAEMON ACCOUNT FOR LIBSTORAGEMGMT:/VAR/RUN/LSM:/SBIN/NOLOGINPOLKITD:X:999:998:USER FOR POLKITD:/:/SBIN/NOLOGINMAGE:X:1000:1001::/HOME/MAGE:/BIN/BASHAAA:X:1001:1002:AVCA:/HOME/AAA:/BIN/BASHTEST1:X:1002:1003::/HOME/TEST1:/BIN/BASHTEST2:X:1003:1004::/HOME/TEST2:/BIN/BASHTEST3:X:1004:1005::/HOME/TEST3:/BIN/BASH
5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分
[test3@localhost ~]$ ifconfig eno16777736 | head -2 | tail -1 inet 192.168.23.128 netmask 255.255.255.0 broadcast 192.168.23.255
6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中
[test3@localhost ~]$ ls /etc/*.conf |tr 'a-z' 'A-Z' | tee /tmp/etc.conf/ETC/ASOUND.CONF/ETC/CHRONY.CONF/ETC/DNSMASQ.CONF/ETC/DRACUT.CONF/ETC/E2FSCK.CONF
7、显示/var目录下一级子目录或文件的总个数
[test3@localhost ~]$ ls /var/ | wc -w29
8、取出/etc/group文件中第三个字段数值最小的10个组的名字
[test3@localhost ~]$ cat /etc/group | sort -t : -k3 -n | head -10 | cut -d : -f 1rootbindaemonsysadmttydisklpmemkmem
9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中
[test3@localhost ~]$ cat /etc//fstab /etc/issue > /tmp/etc.txt
二、用户管理命令
1、用户、用户组、权限管理:
Multi-tasks Multi-Users 多用户、多任务1)每个使用者:用户ID、密码 Authentication 认证机制 Authorization 授权机制 3A机制 Audition 审计机制 组:用户组,用户容器2)用户类别: 管理: 普通用户: 系统用户 登录用户 用户表示: UserID UID 16bits 二级制数字:0-65535 管理员: 0 普通用户:1-65635 系统用户:1-499(CentOS6) 1-999(CentOS7) 登录用户:500-60000(CentOS6) 1000-60000(CentOS7) 名称解析:名称转换的过程 Username<-->UID 根据名称解析库进行: /etc/passwd3)组: 组类别(1): 管理员组 普通用户组: 系统组 登录组 组标识: GroupID GID 管理员: 0 普通用户:1-65635 系统用户:1-499(CentOS6) 1-999(CentOS7) 登录用户:500-60000(CentOS6) 1000-60000(CentOS7) 名称解析: /etc/group 组类别(2): 用户的基本组 用户的附加组 组类别(3): 用户的私有组:组名同用户名,且只包含一个用户 用户的公共组:组内包含多个用户4)认证信息: 通过比对事先存储的,与登录时提供的信息是否一致 password: /etc/shadow /etc/gshadow 数据密码库 密码的使用策略: 1、使用随机密码 2、最短长度不要低于8位 3、应该使用大写字母、小写字母、数字和标点符号之中的至少三类 4、定期更换 加密算法: 1、对称加密:加密和解密使用同一个密码 2、非对称加密:加密和解密使用的一对密钥 密钥对儿: 公钥 私钥 3、单向加密: 只能加密,不能解密,提取数据特征码 定长输出 /]# echo "abcABC1" | md5sum 雪崩效应 算法: md5 message digest ,128bits sha secure hash algorithm 160bits 哈希算法 sha1sum sha224sum sha256sum sha384sum sha512sum 1: md5 2: sha1 3: sha224 4:sha256 5:sha384 6: sha512 在计算之时加salt ,添加的随机数: /etc/passwd:用户的信息库 ntp:x:38:38::/etc/ntp:/sbin/nologin name:password:UID:GID:GECOS:directory:shell GID:用户所属的主组ID GECOS:用户的注释信息 directory:用户的home路径 shell:用户登录时默认的shell路径 /etc/shdow:用户的密码库 root:$6$kAccl0KZ74DBvwrJ$OsVHXkxJw1IDRxwzzzZ7m71u3.eFZsAcM1Hsw1SjTTp5u70ldBqkufb9uKuqVruw8E0qQKQgg7pp7DSQJNE1G.:17454:0:99999:7:::解析: $6$ 代表 sha512 第三个$后才是真的密码串 用户:密码:最后一次更改密码的天数(从1970.01.01开始到今天):密码的最短使用期限: 密码的最长使用期限:密码警告期段:密码有效期间:账户过期日期:保留字段 /etc/group : root:x:0: group_name:password:GID:user_list user_list:该组的用户成员,以此组为附加组的用户的用户列表
2、用户管理命令
进程以其发起者的身份运行,进程对文件的访问权限,取决于发起此进程的用户的权限;系统用户:为了能够让那些后台进程或服务类进程以非管理员身份运行,通常需要为此创建多个普通用户,该类系统从不登录系统1)groupadd命令:添加组 groupadd [选项] group -g, --gid GID 手动指定GID,默认为上个组的GID+1 -r, --system 创建系统组,随机器开启的进程为后台进程 groupmod命令:修改组 groupmod [选项] GROUP -g, --gid GID 修改GID -n, --new-name NEW_GROUP 修改组名 groupdel命令: 删除组 groupdel [选项] GROUP2)useradd命令: 创建用户 (创建新用户若没指定组,则创建和用户名一样的组) useradd [选项] 登录 useradd -D useradd -D [选项] -u, --uid UID 指定UID,默认为上个组的UID+1 -g,--gid GROUP 指定基本组ID,此组必须事先存在 -c, --comment COMMENT 指定注释信息 -G, --groups GROUPS 指明用户所属的附加组,多个组之间用逗号分隔 -d, --home-dir HOME_DIR 以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名实现的,指定的家目录路径如果事先存在,则不会为用户复制配置环境配置文件(隐藏文件)。 -s, --shell SHELL 指定用户的默认shell,可用的所有shell列表存储在e/etc/shells文件 -r, --system 创建系统用户 -M, --no-create-home 不创建用户的主目录 -f, --inactive INACTIVE 密码过期后,账号被彻底禁用之前的天数, 0表示立即禁用,-1表示禁用这个功能 -D, --defaults 显示或更改默认的 useradd 配置 useradd -D 显示创建用户的默认配置,修改的结果保存于/etc/default/useradd文件中 注意:创建用户时的诸多默认设定配置文件为/etc/logic.defs usermod命令:修改用户属性 usermod [选项] 登录 -u, --uid UID 修改用户的ID号 -g, --gid GROUP 修改用户的基本组,原本的组必须存在 -G, --groups GROUPS 修改用户的所属的附加组,原来的附加组会被覆盖 -a, --append GROUP 与-G一同使用,用于添加多个附加组 -c, --comment 修改注释信息 -d, --home HOME_DIR 修改用户的家目录,用户的原来家目录的信息不会被复制到新的家目录 -m, --move-home 只能与-d一同使用,用于将原来的家目录文件一起移动至新的家目录 -l, --login LOGIN 修改用户名 -s, --shell SHELL 修改用户的默认shell -L, --lock 锁定用户的密码(禁止用户登录),即在用户原来的密码串之前添加一个“!” -U, --unlock 解锁用户的密码,删除之前密码串的“!” userdel命令:删除用户的命令 userdel [选项] 登录 -r:删除用户时一并删除其家目录3)passwd命令: passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username] 1)passwd:修改用户自己的密码 2)passwd USERNAME:修改指定用户的密码,仅root有此权限 -l, --lock 锁定指名帐户的密码(仅限 root 用户) -u, --unlock 解锁指名账户的密码(仅限 root 用户) -d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作) -e, --expire 过期期限,表示日期 -i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作) -x, --maximum=DAYS 密码的最长有效时限(只有根用户才能进行此操作) -n, --minimum=DAYS 密码的最短有效时限(只有根用户才能进行此操作) -w, --warning=DAYS 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作) 警告期限 --stdin 从标准输入读取令牌(只有根用户才能进行此操 用法: echo "PASSWIRD" | passwd --stadin USERNAME4)gpasswd命令:默认给组定义密码 组密码路径 /etc/gshadow gpasswd [选项] group -a, --add USER 向组中添加用户 -d, --delete USER 从组中移除用户5)newgrp命令:临时切换指定的组为基本组 newgrp [-] [group] - 会模拟用户重新登录以实现重新初始化其工作环境6)chage命令:更改用户密码过期信息 chage [选项] 登录名 -d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期” -E, --expiredate 过期日期 将帐户过期时间设为“过期日期” -W, --warndays 警告天数 将过期警告天数设为“警告天数” -m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数” -M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”7)id命令: 显示实际和有效的ID id [OPTION]... [USER] -u, --user 仅显示有效的UID -g, --group 仅显示用户基本组的ID -G, --groups 仅显示用户所属的所有组的ID -n, --name 显示名称而非ID8)su命令 :用户切换命令 登录式切换 :会通过读取用户的shell配置文件,重新初始化 su - USERNAME 或者 su -l USERMANE 非登录式切换 :不会读取目标配置文件,进行初始化 su USERNAME 注意: 管理员可无密码切换至其他用户,其他用户切换至任何用户都需要提供密码 -c 'COMMAND' 仅以指定用户的身份运行此处指定的命令
练习:
1)创建组distro,其GID为2016 [root@localhost ~]# groupadd -g 2016 distro [root@localhost ~]# cat /etc/group /*查看组*/2)创建用户mandriva, 其ID号为1005;基本组为distro; [root@localhost ~]# useradd -u 1005 -g distro mandriva [root@localhost ~]# cat /etc/passwd | grep mandriva mandriva:x:1005:2017::/home/mandriva:/bin/bash3)创建用户mageia,其ID号为1100,家目录为/home/linux; [root@localhost ~]# useradd -u 1100 -d /home/linux mageia [root@localhost ~]# cat /etc/passwd | grep mageia mageia:x:1100:1100::/home/linux:/bin/bash4)给用户mageia添加密码,密码为mageedu; [root@localhost ~]# passwd mageia 更改用户 mageia 的密码 。 新的 密码:5)删除mandriva,但保留其家目录; [root@localhost ~]# userdel mandriva6)创建用户slackware,其ID号为2002,基本组为distro,附加组peguin; [root@localhost ~]# useradd -u 2002 -g distro -G pegion slackware [root@localhost ~]# cat /etc/passwd | grep slackware slackware:x:2002:2017::/home/slackware:/bin/bash7)修改slackware的默认shell为/bin/tcsh [root@localhost ~]# usermod -s /bin/tcsh slackware [root@localhost ~]# cat /etc/passwd | grep slackware slackware:x:2002:2017::/home/slackware:/bin/tcsh8)为用户slackware新增附加组admins [root@localhost ~]# usermod -G admins -a slackware [root@localhost ~]# cat /etc/passwd | grep slackware slackware:x:2002:2017::/home/slackware:/bin/tcsh
阅读全文
0 0
- 第三周 文件查看命令及用户管理命令
- 第三章、Linux根文件系统及文件管理命令详解
- 第三章、Linux根文件系统及文件管理命令详解
- 文件搜索命令-用户管理命令
- linux用户查看和管理命令
- linux查看所有用户 以及 用户(组)管理命令
- dos下的一些查看网络,管理用户,文件的命令
- [RedHat笔记]第二课:时间表示、帮助命令、文本查看命令、实现用户管理及权限、BASH、变量、脚本
- Linux用户及用户组管理命令
- ORACLE基本命令及用户管理
- linux 中用户及用户组管理命令
- linux 用户及用户组管理命令详解
- Linux用户及用户组管理命令
- Linux用户及用户组管理命令
- linux 用户及用户组管理命令详解
- Linux命令--用户及权限管理
- Ubuntu用户及用户组管理命令
- 用户管理及权力下放命令
- 98. Validate Binary Search Tree
- 自然语言处理神器之NLTK安装
- 排序算法——快速排序
- WPAN(无线个域网)和WLAN(无线局域网)的区别
- 自己收集的资料 仅供学习使用——————Android反编译(经验证)
- 第三周 文件查看命令及用户管理命令
- Hadoop问题汇总
- 关于一个页面中引入另一个页面 bootstrap引用Js失效的坑
- intellij idea 使用 git stash 初探
- luogu 1003铺地毯
- 即插视图
- [CQOI2007]余数求和
- FilenameFilter总结
- IO操作-ObjectInputStream演示