**1. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. **
文件系统操作命令-目录
-
ls查看文件或目录的工具
用法:
ls
[选项]...[文件]...-l
出文件名之外,列出文件的类型、权限、所有者、所属组、文件大小、修改时间等详细信-a
显示所有以.开关的项目-A
列出除.及..以外的斜体项目-R
递归列出目录内容,若目录下有文件或子目录,则以下所有文件皆按序列出-n
类似-l
,但列出UID及GID号-F
在列出的文件名后加一个符号,去区分文件类型;例如*
代表可执行文件;/
代表是目录;@
代表链接文件;普通文件之后不加符号 -
实例:
[root@etcd01 opt]# ls -alF total 4415492 drwxr-xr-x. 5 root root 88 Mar 19 01:41 ./ dr-xr-xr-x. 20 root root 4096 Mar 13 20:49 ../ -rw-r--r-- 1 root root 4521459712 Dec 6 17:25 CentOS-7.4-x86_64-DVD-1708.iso drwx--x--x 4 root root 26 Feb 27 22:38 containerd/ drwxr-xr-x 5 root root 36 Mar 13 11:17 etcd drwxr-xr-x 5 root root 36 Mar 19 01:41 kubernetes/
cd
更改目录,切换目录
-
用法:
cd
目标目录【选项】:
. 当前目录
..父目录
cd .. 切换到父目录,切换到上一级目录
cd 切换到当前用户家目录
cd ~ 切换到当前用户家目录
cd - 返回上一次所处的目录
cd 类似于cd “test” 命令中的双引号(也可以是单引号);切换到名称带有空格的目录
-
实例:
[root@etcd01 ~]# cd /opt/ [root@etcd01 opt]# cd kubernetes/ [root@etcd01 kubernetes]# cd - /opt
pwd
显示当前所处的目录
-
【选项】
pwd -p
显示实际的工作目录,而非使用链接路径[root@etcd01 opt]# pwd -P /opt
mkdir
1创建目录
-
【选项】
mkdir
只能在已存在的目录下创建目录mkdir -p
帮助你直接将所需的目录递归创建起来。(在一个不存在的上级目录里面创建目录)
rmdir
删除空目录
-
【选项】
rmdir
只能删除空目录rmdir -p
递归删除空目录
rm
删除文件或目录
-
【选项】
rm
只能删除文件rm -r
删除目录及目录下的项目(文件和目录)rm -f
不提示强制删除 -
【实例1】
rm -rf *
强制删除所有文件,但是不包含隐藏文件。
谨慎使用!!!!
-
【实例2】
同时删除多个文件或目录
每个项目以空格隔开
[root@etcd01 tmp]# rm -rf {a,b,c}
mv
移动文件或目录
-
mv
原文件路径 目标文件路径 移动【选项】
-f
不提示并覆盖文件-n
不覆盖已存在文件-b
覆盖之前把原文件做备份,备份的文件在文件名之后有个~符号-u
只有原文件比覆盖的文件新的时候才可以覆盖文件;旧文件不能覆盖新文件
du
显示目录的磁盘使用情况
-
du
查看目录或文件大小
-a
或--all
显示目录中个别文件的大小-b
或--bytes
显示目录或文件时,以byte为单位.-c
或--total
除了显示个别目录或文件的大小外,同时民显示所有目录或文件的总和-D
或--dereference-args
显示指定符号连接的源文件大小-h
或--human-readable
以K,M,G为单位,提高信息的可读性-H
或--si
与-h
参数相同,但是K,M,G是以1000为换算单位-k
或--kilobytes
以1024 bytes为单位-l
或--count-links
重复计算硬件连接的文件-L
<符号连接>或--dereference
<符号连接>显示选项中指定符号连接的源文件-m
或--megabytes
以1MB为单位-s
或--summarize
仅显示总计-S
或--separate-dirs
显示个别目录的大小时,并不含其子目录的大小-x
或--one-file-xystem
以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过-X
<文件>或--exclude-from=<文件>
在<文件>指定目录或文件--exclude=<目录或文件>
略过指定的目录或文件--max-depth=<目录层数>
超过指定层数的目录后,予以忽略。--help
显示帮助--version
显示版本信息 -
实例
[root@etcd01 kubernetes]# ls bin cfg ssl [root@etcd01 kubernetes]# du -h --exclude=bin 16K ./cfg 16K ./ssl
df
查看所有已挂载磁盘使用情况
-
实例
[root@etcd01 kubernetes]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 46G 29G 18G 62% / devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 7.8G 704M 7.1G 9% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/sda1 497M 158M 340M 32% /boot /dev/loop0 4.3G 4.3G 0 100% /mnt/cdrom tmpfs 1.6G 0 1.6G 0% /run/user/0
注解
第一列: 文件系统对应的磁盘分区 第二列:分区的总空间大小,含的数据块的数据 第三列:已使用空间大小 第四列:未使用空间大小 第五列:用户空间使用的百分比 第六列: 文件系统的挂载点
2. 使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b
,在/tmp
目录下创建目录:x_y, x_z, q_y, q_z
-
实例
[root@etcd03 /]# mkdir -pv /tmp/a{1/{a,b},2} mkdir: created directory ‘/tmp/a1’ mkdir: created directory ‘/tmp/a1/a’ mkdir: created directory ‘/tmp/a1/b’ mkdir: created directory ‘/tmp/a2’ [root@etcd03 /]# mkdir -pv /tmp/{x,q}_{y,z} mkdir: created directory ‘/tmp/x_y’ mkdir: created directory ‘/tmp/x_z’ mkdir: created directory ‘/tmp/q_y’ mkdir: created directory ‘/tmp/q_z’
3.文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
-
元数据信息:
file
:文件名;size
:文件大小block
:文件占了多少个数据块IO Block
:文件所占数据块的块大小Device
:硬件,既说明该文件在硬盘的那个柱面Inode
:文件Inode号,文件的索引节点号links
:链接Access
:文件权限Uid
:该文件所属的属主Gid
:该文件所属的属组context
:安全上下文Access
(第二个):文件上一次的访问时间Modify
:文件上一次修改的时间Change
:文件上一次属性更改的时间 -
查看文件元数据的方法:
stat命令:
stat [OPTION]... FILE...
[root@etcd03 ~]# stat /etc/issue
File: ‘/etc/issue’
Size: 23 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 67192987 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-04-08 09:42:19.438089565 +0800
Modify: 2017-08-30 23:53:07.000000000 +0800
Change: 2018-04-16 15:26:42.557988341 +0800
Birth: -
修改文件的时间戳方法:
touch命令:用于改变文件时间戳,如果文件不存在则创建一个空文件
touch [OPTION]... FILE...
-c:指定的文件路径不存在时不予创建:
-a:仅修改access time:
-m:仅修改modify time:
-t STAMP:
[[CC]YY]MMDDhhmm[.ss] 年月日时分秒
touch -m -t 200212010303.03
4.在/tmp
目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
。
-
实例
[root@etcd03 tmp]# touch `date +%Y-%m-%d-%H-%M-%S` [root@etcd03 tmp]# ls 2019-04-08-18-14-06
5. 复制/etc
目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1
目录中。
-
实例
[root@etcd03 tmp]# mkdir mytest1 [root@etcd03 tmp]# cp -rv /etc/p*[^0-9] mytest1/
6. 创建用户tom,指定UID为5001,指定家目录为/tmp/tom
, 指定shell为/bin/zsh
, 指定基本组为tom
,附加组为jack
-
实例
[root@etcd03 tmp]# groupadd jack [root@etcd03 tmp]# useradd -u 5001 -d /tmp/tom/ -s /bin/zsh -G jack tom [root@etcd03 tmp]# cat /etc/passwd grep tom [root@etcd03 tmp]# cat /etc/passwd |grep tom tom:x:5001:5001::/tmp/tom/:/bin/zsh [root@etcd03 tmp]# id tom uid=5001(tom) gid=5001(tom) groups=5001(tom),1003(jack)
7. 常用的用户以及文件管理命令有哪些,并演示命令以及用法。
useradd、userdel、usermod、passwd、groupadd、groupdel、groupmod、gpasswd、chage、chsh、id、su
-
useradd
命令:创建用户useradd [OPTION] USER -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:创建系统用户;
-
userdel
命令:删除用户userdel [OPTION] USER -r:删除用户时一并删除其家目录;
-
usermod
命令:修改用户属性usermod [OPTION] USER -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:解锁用户的密码;
-
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, -u:锁定和解锁用户; -d:清除用户密码串; -e DATE: 过期期限,日期; -i DAYS:非活动期限; -n DAYS:密码的最短使用期限; -x DAYS:密码的最长使用期限; -w DAYS:警告期限; --stdin: echo "PASSWORD" | passwd --stdin USERNAME
-
groupadd
命令:添加组groupadd [OPTION] group_name -g GID:指定GID;默认是上一个组的GID+1; -r: 创建系统组;
-
groupdel
命令:删除组groupdel [OPTION] GROUP
-
groupmod
命令:修改组属性groupmod [OPTION] GROUP -g GID:修改GID; -n new_name:修改组名;
-
gpasswd
命令:管理组组密码文件:/etc/gshadow gpasswd [OPTION] group -a USERNAME:向组中添加用户 -d USERNAME:从组中移除用户
-
chage
命令:更改用户密码过期信息chage [OPTION] 登录名 -d -E -W -m -M
-
id
命令:显示用户和所属群组的实际与有效IDid [OPTION]... [USER] -u: 仅显示有效的UID; -g: 仅显示用户的基本组ID; -G:仅显示用户所属的所有组的ID; -n: 显示名字而非ID;
-
su
命令:切换用户登录式切换:会通过读取目标用户的配置文件来重新初始化 su - USERNAME su -l USERNAME 非登录式切换:不会读取目标用户的配置文件进行初始化 su USERNAME 注意:管理员可无密码切换至其它任何用户; -c 'COMMAND':仅以指定用户的身份运行此处指定的命令;